class MusicalExperienceFilter(filters.FilterSet): experience = filters.ModelMultipleChoiceFilter( queryset=MusicalSkill.objects.all(), widget=Select2MultipleWidget(attrs={}), label="Skilled In Any Of", field_name="experience") m_proficiency = filters.MultipleChoiceFilter( field_name="proficiency", choices=PROFICIENCY_M_CHOICES, widget=Select2MultipleWidget(), lookup_expr='icontains', label="Proficiency Level") m_age_learning_started = filters.RangeFilter( field_name="age_learning_started", label="Age Learning Started Range", widget=RangeWidget(attrs={ 'type': 'number', 'class': 'form-control mb-2' })) m_age_learning_ended = filters.RangeFilter( field_name="age_learning_ended", label="Age Learning Ended Range", widget=RangeWidget(attrs={ 'type': 'number', 'class': 'form-control mb-2' })) class Meta: model = MusicalExperience fields = [ 'experience', 'proficiency', 'age_learning_started', 'age_learning_ended' ]
class FamilyFilter(filters.FilterSet): parent_given_name = filters.AllValuesMultipleFilter( widget=Select2MultipleWidget(), field_name='a_family__parent__given_name', lookup_expr='icontains', label="Parental Given Name") child_given_name = filters.AllValuesMultipleFilter( widget=Select2MultipleWidget(), field_name='c_family__child__given_name', lookup_expr='icontains', label="Child Given Name") parent_surname = filters.AllValuesMultipleFilter( widget=Select2MultipleWidget(), field_name='a_family__parent__surname', lookup_expr='icontains', label="Parental Surname") child_surname = filters.AllValuesMultipleFilter( widget=Select2MultipleWidget(), field_name='c_family__child__surname', lookup_expr='icontains', label="Child Surname") notes_inc = filters.CharFilter(field_name='notes', lookup_expr='icontains', label="Notes Include") class Meta: model = Family exclude = [ 'a_family__parent__surname', 'c_family__child__surname', 'a_family__parent__given_name', 'c_family__child__given_name', 'notes' ]
class Meta: model = Starter fields = [ 'firstname', 'lastname', 'job_title', 'email', 'division', 'systems', 'start_date', 'end_date', 'is_a_member_of_TSS', 'replacing', 'telephone', 'overseas_calls', 'mailing_lists', 'uni_card_number', 'sso', 'shared_accounts', 'shared_folders', 'others', ] widgets = { 'systems': Select2MultipleWidget(), 'mailing_lists': Select2MultipleWidget(), 'start_date': DatePickerInput(), 'end_date': DatePickerInput(), }
class Meta: model = Book fields = '__all__' widgets = { 'author': Select2MultipleWidget(), 'genre': Select2MultipleWidget() }
class AdultFilter(filters.FilterSet): given_name = filters.AllValuesMultipleFilter( widget=Select2MultipleWidget(), field_name='given_name', lookup_expr="icontains", label="Given Name") surname = filters.AllValuesMultipleFilter(widget=Select2MultipleWidget(), field_name='surname', lookup_expr='icontains', label="Surname") preferred_name = filters.AllValuesMultipleFilter( widget=Select2MultipleWidget(), field_name='preferred_name', lookup_expr='icontains', label="Preferred Name") birth_date = filters.DateFromToRangeFilter( label="Birth Date Range", widget=RangeWidget(attrs={ 'type': 'date', 'class': 'form-control mb-2' })) years_of_education = filters.RangeFilter( label="Years of Education Range", widget=RangeWidget(attrs={ 'type': 'number', 'class': 'form-control mb-2' })) contact_pref = filters.MultipleChoiceFilter(choices=CONTACT_CHOICES, widget=Select2MultipleWidget(), lookup_expr='icontains', label="Contact Preference") gender = filters.AllValuesMultipleFilter(widget=Select2MultipleWidget(), lookup_expr='icontains', label="Gender") health_notes_inc = filters.CharFilter(field_name='health_notes', lookup_expr='icontains', label="Health Notes Include") personal_notes_inc = filters.CharFilter(field_name='personal_notes', lookup_expr='icontains', label="Personal Notes Include") has_family = filters.BooleanFilter(field_name='parent', lookup_expr='isnull', exclude=True, label="Family In Database") class Meta: model = Adult exclude = ['id', 'address', 'phone', 'email']
class LibraryFilterForm(forms.Form): q = forms.CharField( max_length=50, widget=forms.TextInput(attrs={"style": "width: 100%;", "class": "select2-lookalike"}), required=False, label="Search" ) platforms = forms.MultipleChoiceField( widget=Select2MultipleWidget( attrs={'data-width': '100%', 'data-close-on-select': 'false', 'data-placeholder': '', 'data-minimum-input-length': 2} ), required=False, ) genres = forms.ModelMultipleChoiceField( queryset=models.Genre.objects.all(), widget=ModelSelect2MultipleWidget( model=models.Genre, search_fields=['name__icontains'], attrs={'data-width': '100%', 'data-close-on-select': 'false', 'data-placeholder': '', 'data-minimum-input-length': 3} ), required=False, ) companies = forms.ModelMultipleChoiceField( queryset=models.Company.objects.all(), widget=ModelSelect2MultipleWidget( model=models.Company, search_fields=['name__icontains'], attrs={'data-width': '100%', 'data-close-on-select': 'false', 'data-placeholder': '', 'data-minimum-input-length': 3} ), required=False ) years = forms.MultipleChoiceField( choices=[(i, i) for i in range(date.today().year, 1970, -1)], widget=Select2MultipleWidget(attrs={'data-width': '100%', 'data-close-on-select': 'false', 'data-placeholder': ''}), required=False ) flags = forms.MultipleChoiceField( choices=models.Game.GAME_FLAGS, widget=BitFieldCheckboxSelectMultiple, required=False, ) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['platforms'].choices = (models.Platform.objects.values_list('pk', 'name'))
class Meta: fields = "__all__" model = models.PayGrade widgets = { 'payroll_taxes': Select2MultipleWidget(attrs={'data-width': '40rem'}), 'deductions': Select2MultipleWidget(attrs={'data-width': '40rem'}), 'allowances': Select2MultipleWidget(attrs={'data-width': '40rem'}) }
class Meta: model = Project fields = "__all__" widgets = { "start_date": DatePickerInput(options={"format": CORRECT_DATE_FORMAT}), "stop_date": DatePickerInput(options={"format": CORRECT_DATE_FORMAT}), "managers": Select2MultipleWidget(), "members": Select2MultipleWidget(), }
class Meta: model = ParticipationRole fields = [ 'name', 'type', 'groups', 'approvable_by', 'global_limit', 'attending' ] widgets = { 'type': Select2Widget(), 'groups': Select2MultipleWidget(), 'approvable_by': Select2MultipleWidget(), }
class BaseElecteeGroupForm(forms.ModelForm): leaders = forms.ModelMultipleChoiceField( widget=Select2MultipleWidget(), queryset=MemberProfile.get_actives() ) officers = forms.ModelMultipleChoiceField( widget=Select2MultipleWidget(), queryset=Officer.get_current_members() ) class Meta: model = ElecteeGroup exclude = ('term', 'members', 'points',)
class CollectionPlaceRelationFilter(django_filters.FilterSet): collection = django_filters.ModelMultipleChoiceFilter( queryset=Collection.objects.all(), widget=Select2MultipleWidget( attrs={'data-placeholder': "Select multiple"}, )) place = django_filters.ModelMultipleChoiceFilter( queryset=Place.objects.all(), widget=Select2MultipleWidget( attrs={'data-placeholder': "Select multiple"}, )) class Meta: model = CollectionPlaceRelation exclude = ['uuid']
class PersonCatalogueRelationFilter(django_filters.FilterSet): person = django_filters.ModelMultipleChoiceFilter( queryset=Person.objects.all(), widget=Select2MultipleWidget( attrs={'data-placeholder': "Select multiple"}, )) catalogue = django_filters.ModelMultipleChoiceFilter( queryset=Catalogue.objects.all(), widget=Select2MultipleWidget( attrs={'data-placeholder': "Select multiple"}, )) class Meta: model = PersonCatalogueRelation exclude = ['uuid']
class DealFilterForm(forms.Form): def __init__(self, *args, **kwargs): super(DealFilterForm, self).__init__(*args, **kwargs) customer = list(Customer.objects.all().values_list('pk', 'name')) company = list(Company.objects.all().values_list('pk', 'name')) act_status = list(Deal.ACT_STATUS_CHOICES) pay_status = list(Deal.PAYMENT_STATUS_CHOICES) self.fields['customer'].choices = customer self.fields['company'].choices = company self.fields['act_status'].choices = act_status self.fields['pay_status'].choices = pay_status customer = forms.MultipleChoiceField( label='Замовник', required=False, widget=Select2MultipleWidget(attrs={ "onChange": 'submit()', "style": 'width: 100%' })) company = forms.MultipleChoiceField( label='Компанія', required=False, widget=Select2MultipleWidget(attrs={ "onChange": 'submit()', "style": 'width: 100%' })) act_status = forms.MultipleChoiceField( label='Акт виконаних робіт', required=False, widget=Select2MultipleWidget(attrs={ "onChange": 'submit()', "style": 'width: 100%' })) pay_status = forms.MultipleChoiceField( label='Статус оплати', required=False, widget=Select2MultipleWidget(attrs={ "onChange": 'submit()', "style": 'width: 100%' })) filter = forms.CharField( label='Слово пошуку', max_length=255, required=False, widget=forms.TextInput( attrs={ "style": 'width: 100%', "class": 'select2-container--bootstrap select2-selection' }))
class Meta: model = Application fields = ['name', 'purpose', 'application_type', 'website', 'cost', 'cost_type', 'requestor', 'business_owner', 'dhbs'] widgets = { 'name': forms.TextInput(attrs={'class' : 'w3-input w3-border'}), 'purpose': forms.Textarea(attrs={'class' : 'w3-input w3-border', 'cols': '40', 'rows': '3'}), 'cost_type': forms.RadioSelect(attrs={'class': 'w3-ul'}), 'requestor': forms.Select(attrs={'class' : 'w3-select w3-border', 'empty_value' : 'Choose a business owner'}), 'business_owner': forms.Select(attrs={'class' : 'w3-select w3-border'}), 'application_type': Select2MultipleWidget(attrs={'class' : 'w3-input w3-border', }), 'dhbs': Select2MultipleWidget(attrs={'class' : 'w3-input w3-border', }), 'cost': forms.TextInput(attrs={'class' : 'w3-input w3-border'}), 'website': forms.TextInput(attrs={'class' : 'w3-input w3-border'}), }
class Meta: model = AttendeeProperty fields = [ 'name', 'type', 'required', 'optional', 'edit_deadline', 'user_property', 'apply_required', "hidden", "data_utilisation", 'required_if', 'manager_confirmed' ] widgets = { 'type': Select2Widget(), 'required': Select2MultipleWidget(), 'optional': Select2MultipleWidget(), 'apply_required': Select2MultipleWidget(), 'required_if': Select2Widget(), }
class Meta: exclude = "active", model = models.Deduction widgets = { 'payroll_taxes': Select2MultipleWidget(attrs={'data-width': '40rem'}), 'commission': Select2MultipleWidget(attrs={'data-width': '40rem'}), 'benefits': Select2MultipleWidget(attrs={'data-width': '40rem'}) } labels = { 'fixed_amount': 'Fixed amount(paid by employee)', 'employer_contribution': 'Employer Contribution(% of employee contribution)' }
class CollectionHeldByFilter(django_filters.FilterSet): library = django_filters.ModelMultipleChoiceFilter( queryset=Library.objects.all(), widget=Select2MultipleWidget( attrs={'data-placeholder': "Select multiple"}, ), ) collection = django_filters.ModelMultipleChoiceFilter( queryset=Collection.objects.all(), widget=Select2MultipleWidget( attrs={'data-placeholder': "Select multiple"}, ), ) class Meta: model = CollectionHeldBy exclude = ['uuid']
class Meta(object): model = Material fields = [ 'title', 'description', 'content', 'link', 'suggested_ages', 'types', 'themes', 'languages', 'user' ] widgets = { 'title': TextInput(attrs = { 'placeholder': _('Título del material') }), 'description': Textarea(attrs = { 'placeholder': _('Breve descripción del material'), 'rows': 6, 'style': 'resize: none;' }), 'content': ClearableFileInput(attrs = { 'placeholder': _('Documentation') }), 'link': URLInput(attrs = { 'placeholder': _('Link a referencia en formato http') }), 'suggested_ages': CheckboxSelectMultiple(), 'types': CheckboxSelectMultiple(), 'themes': Select2MultipleWidget(), 'languages': CheckboxSelectMultiple(), 'user': HiddenInput() }
class editarGrupoForm(ModelForm): ESTADOS = (('Abierto', 'Abierto'), ('Cerrado', 'Cerrado')) estado = forms.ChoiceField(choices=ESTADOS, widget=Select2Widget) tutores = forms.ModelMultipleChoiceField(widget=Select2MultipleWidget(), queryset=Tutor.objects.all()) # alumnos = forms.ModelMultipleChoiceField(widget=Select2MultipleWidget(), queryset=Alumno.objects.all()) alumnos = forms.CharField( help_text="Ingrese legajos individualmente seguido de tecla ENTER", widget=forms.TextInput( attrs={ 'type': 'text', 'placeholder': 'Ingrese legajos', 'multiple': 'multiple' })) titulo = forms.CharField( help_text= 'Ingrese nombre representativo del grupo, así se lo reconocerá facilmente en las demas pantallas.', min_length=4) class Meta: model = Grupo exclude = ['fecha_baja'] widgets = { 'fecha_alta': DatePickerInput(format='%Y-%m-%d'), }
class agregarGrupoForm(ModelForm): ESTADOS = (('Abierto', 'Abierto'), ('Cerrado', 'Cerrado')) # estado = forms.ChoiceField(choices=ESTADOS, widget=Select2Widget) tutores = forms.ModelMultipleChoiceField(widget=Select2MultipleWidget(), queryset=Tutor.objects.all()) # alumnos = forms.ModelMultipleChoiceField(widget=Select2MultipleWidget(), queryset=SysacadAlumno.objects.all()) alumnos = forms.CharField( help_text="Ingrese legajos individualmente seguido de tecla ENTER", widget=forms.TextInput( attrs={ 'type': 'text', 'placeholder': 'Ingrese legajos', 'multiple': 'multiple' })) titulo = forms.CharField( min_length=4, help_text= 'Ingrese nombre representativo del grupo, así se lo reconocerá facilmente en las demas pantallas.' ) class Meta: model = Grupo exclude = ['fecha_baja', 'fecha_alta', 'estado'] widgets = {'fecha_alta': DatePickerInput(format='%Y-%m-%d')} def __init__(self, *args, **kwargs): user = kwargs.pop('user', None) super(agregarGrupoForm, self).__init__(*args, **kwargs) if not user.is_staff: del self.fields['tutores']
class Meta: model = Juror fields = ["bias", "conflicting"] widgets = {"conflicting": Select2MultipleWidget()}
def __init__(self, attrs=None, choices=(), *args, **kwargs): assert choices, 'No "choices" given' widgets = ( Select2MultipleWidget(attrs=attrs, choices=choices), forms.CheckboxInput(attrs=attrs), ) super().__init__(widgets, attrs)
class PostForm(forms.ModelForm): """ Форма для создания/редактирования информации о посте """ # Текстовое поле для Заголовка статьи title = forms.CharField(max_length=256, label="Название статьи", widget=forms.TextInput(attrs={'class': 'input-1'})) # Текстовое поле для Текста статьи text = forms.CharField(label='Текст статьи', widget=CKEditorUploadingWidget) # Выпадающий список для выбора Категорий для статьи categories = forms.ModelMultipleChoiceField( label='Категории', queryset=Category.objects.all(), widget=Select2MultipleWidget(attrs={'class': 'input-1'})) # Поле для выбора картинки-превью image = forms.ImageField(label='Картинка-превью', required=False) class Meta: model = Post fields = ('title', 'text', 'categories', 'image')
class CombinationForm(forms.Form): # TODO convert to AltNames ingredients = forms.ModelMultipleChoiceField( queryset=Ingredient.objects.all(), widget=Select2MultipleWidget( attrs={'data-maximum-selection-length': 10}), required=True, to_field_name="listed_name", label="New Combination", help_text="Select a combination that you like.", validators=[validate_count]) def clean_ingredients(self): ingredients = self.cleaned_data[ 'ingredients'] # QuerySet of `Ingredient`s existing_combos = ingredients[0].combination_set.all( ) # Doesn't matter which ingredient I look at. for combo in existing_combos: ings = combo.ingredients.all() if list(ings) == list( ingredients ): # Will this be properly sorted, or should I just make it a set? raise ValidationError( "This combination has already been submitted!") return ingredients
class MailTemplateForm(forms.ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields["default_recipients"].choices = get_emailrecipientlist() # get all valid options for template usages available = dict(USAGES) used_keys = MailTemplate.objects.values_list('usage', flat=True) valid_keys = set(available.keys()) - set(used_keys) valid_choices = [] for key in valid_keys: valid_choices.append((key, available[key])) # if edit: append usage of edited template to valid choices edit_usage = kwargs['instance'] if edit_usage is not None and edit_usage.usage is not None: valid_choices.append( (edit_usage.usage, available[edit_usage.usage])) valid_choices.insert(0, ('', '--------')) self.fields["usage"].choices = valid_choices error_css_class = 'has-error' body = forms.CharField(widget=forms.Textarea()) default_recipients = forms.MultipleChoiceField( required=False, widget=Select2MultipleWidget(attrs={'style': 'width:100%;'})) class Meta: model = MailTemplate fields = "__all__"
class Meta: model = Musique fields = { 'titre': ['icontains'], 'artiste': ['exact'], 'remixed_by': ['exact'], 'featuring': ['exact'], 'styles': ['exact'] } # Utilise un widget Select2 pour les champs ManyToMany filter_overrides = { ForeignKey: { 'filter_class': django_filters.ModelChoiceFilter, 'extra': lambda f: { 'queryset': remote_queryset(f), 'widget': Select2Widget(attrs={'style': 'width: 100%'}) } }, ManyToManyField: { 'filter_class': django_filters.ModelMultipleChoiceFilter, 'extra': lambda f: { 'queryset': remote_queryset(f), 'widget': Select2MultipleWidget(attrs= {'style': 'width: 100%'}) } }, }
class Meta: model = Tutor fields = [ 'qualifications', 'affiliation', 'nino', 'employee_no', 'appointment_id', 'bankname', 'branchaddress', 'accountname', 'sortcode', 'accountno', 'swift', 'iban', 'other_bank_details', 'oracle_supplier_number', 'biography', 'image', 'subjects', ] widgets = { 'biography': CKEditorUploadingWidget(), 'subjects': Select2MultipleWidget(), }
class Meta: model = Organization fields = ["name", "description", "ext_link", "states"] labels = { "ext_link": "Link to Organization Website", } widgets = { "name": forms.TextInput(attrs={"placeholder": "Name of Organization"}), "description": forms.Textarea(attrs={ "placeholder": "Short Description", "rows": 4, "cols": 20, }), "ext_link": forms.TextInput( attrs={ "placeholder": "External link to your organization's website. Include 'http'." }), "states": Select2MultipleWidget( choices=STATES, attrs={"data-placeholder": "Select States"}, ), }
class Meta: model = AntecedentesGestacionales fields = ('paciente', 'planeado', 'deseado', 'gemelar', 'controlado', 'consumo_embarazo', 'semanas_gestacion', 'parto_termino', 'parto_prematuro', 'amenaza_aborto', 'trabajo_parto_prolongado', 'meconio', 'diabetes', 'otro_sintoma', 'otro_consumo','circular_cordon', 'placenta_previa', 'torchs', 'cesarea', 'preeclamsia', 'forceps') labels = { 'otro_sintoma': "Otro síntoma", 'otro_consumo': "Otro consumo", 'consumo_embarazo': "Consumo durante el embarazo de", 'planeado': "Embarazo planeado", 'deseado': "Embarazo deseado", 'controlado': "Embarazo controlado", 'gemelar': "Parto gemelar", 'semanas_gestacion': "Semanas de gestación", 'parto_termino': "Parto a término", 'parto_prematuro': "Parto prematuro", 'amenaza_aborto': "Amenaza de aborto", 'trabajo_parto_prolongado': "Trabajo de parto prolongado", 'circular_cordon': "Circular de cordón", 'placenta_previa': "Placenta previa", 'cesarea': "Cesárea", 'torchs': "TORCHS", 'forceps': "Fórceps", 'preeclamsia': "Pre-eclamsia" } widgets = { 'paciente': Select2Widget(), 'consumo_embarazo': Select2MultipleWidget() }
class SearchSubjectForm(forms.Form): name = forms.CharField( label='Wyszukiwana fraza:', widget=forms.TextInput(attrs={'class': 'form-control'}), required=False) min_ects = forms.ChoiceField( label='Minimalna liczba ects:', choices=ects_choices(), widget=Select2Widget(attrs={'class': 'form-control'}), required=False) max_ects = forms.ChoiceField( label='Maksymalna liczba ects:', choices=ects_choices(), widget=Select2Widget(attrs={'class': 'form-control'}), required=False) classType = forms.MultipleChoiceField( label='Rodzaj zajęć:', choices=make_choices(ClassType.objects.all()), widget=Select2MultipleWidget(attrs={'class': 'form-control'}), required=False) courseGroup = forms.MultipleChoiceField( label="Grupa przedmiotow:", choices=make_choices(CourseGroup.objects.all()), widget=Select2MultipleWidget(attrs={'class': 'form-control'}), required=False) courseLanguage = forms.MultipleChoiceField( label='Język:', choices=make_choices(CourseLanguage.objects.all()), widget=Select2MultipleWidget(attrs={'class': 'form-control'}), required=False) coursePeriod = forms.MultipleChoiceField( label='Semestr:', choices=make_choices(CoursePeriod.objects.all()), widget=Select2MultipleWidget(attrs={'class': 'form-control'}), required=False) courseType = forms.MultipleChoiceField( label='Typ przedmiotu:', choices=make_choices(CourseType.objects.all()), widget=Select2MultipleWidget(attrs={'class': 'form-control'}), required=False)