Kod źródłowy modułu poradnia.advicer.forms

from atom.ext.crispy_forms.forms import (
    FormHorizontalMixin,
    HelperMixin,
    SingleButtonMixin,
)
from atom.forms import AuthorMixin
from braces.forms import UserKwargModelFormMixin
from crispy_forms.layout import Fieldset, Layout
from dal import autocomplete
from django import forms
from django.forms import ModelForm
from django.utils.timezone import now
from django.utils.translation import gettext as _

from poradnia.cases.models import Case

from .models import Advice, Attachment


[dokumentacja] class AdviceForm( UserKwargModelFormMixin, FormHorizontalMixin, SingleButtonMixin, AuthorMixin, ModelForm, ): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper.form_method = "post" self.fields["grant_on"].initial = now() self.fields["case"].queryset = Case.objects.for_user(self.user).all() self.fields["case"].help_text = _( "Select from poradnia.cases which do " "you have a permission" ) self.helper.layout = Layout( Fieldset( _("Statistic data"), "case", "issues", "area", "person_kind", "institution_kind", "jst", "helped", ), Fieldset(_("Details"), "subject", "grant_on", "advicer", "comment"), ) class Meta: model = Advice fields = [ "case", "subject", "grant_on", "issues", "area", "person_kind", "institution_kind", "advicer", "comment", "helped", "jst", ] widgets = { "jst": autocomplete.ModelSelect2(url="teryt:community-autocomplete"), "case": autocomplete.ModelSelect2(url="cases:autocomplete"), "issues": autocomplete.ModelSelect2Multiple( url="advicer:issue-autocomplete" ), "area": autocomplete.ModelSelect2Multiple(url="advicer:area-autocomplete"), }
[dokumentacja] class AttachmentForm(HelperMixin, forms.ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper.form_tag = False self.helper.form_method = "post" class Meta: model = Attachment fields = ["attachment"]