Ejemplo n.º 1
0
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'
        ]
Ejemplo n.º 2
0
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'
        ]
Ejemplo n.º 3
0
    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(),
        }
Ejemplo n.º 4
0
 class Meta:
     model = Book
     fields = '__all__'
     widgets = {
         'author': Select2MultipleWidget(),
         'genre': Select2MultipleWidget()
     }
Ejemplo n.º 5
0
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']
Ejemplo n.º 6
0
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'))
Ejemplo n.º 7
0
 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'})
     }
Ejemplo n.º 8
0
 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(),
     }
Ejemplo n.º 9
0
    class Meta:
        model = ParticipationRole
        fields = [
            'name', 'type', 'groups', 'approvable_by', 'global_limit',
            'attending'
        ]

        widgets = {
            'type': Select2Widget(),
            'groups': Select2MultipleWidget(),
            'approvable_by': Select2MultipleWidget(),
        }
Ejemplo n.º 10
0
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',)
Ejemplo n.º 11
0
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']
Ejemplo n.º 12
0
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']
Ejemplo n.º 13
0
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'
            }))
Ejemplo n.º 14
0
	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'}),
		}
Ejemplo n.º 15
0
    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(),
        }
Ejemplo n.º 16
0
 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)'
     }
Ejemplo n.º 17
0
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']
Ejemplo n.º 18
0
	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()
		}
Ejemplo n.º 19
0
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'),
        }
Ejemplo n.º 20
0
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']
Ejemplo n.º 21
0
    class Meta:

        model = Juror

        fields = ["bias", "conflicting"]

        widgets = {"conflicting": Select2MultipleWidget()}
Ejemplo n.º 22
0
 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)
Ejemplo n.º 23
0
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')
Ejemplo n.º 24
0
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
Ejemplo n.º 25
0
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__"
Ejemplo n.º 26
0
 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%'})
             }
         },
     }
Ejemplo n.º 27
0
 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(),
     }
Ejemplo n.º 28
0
 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"},
         ),
     }
Ejemplo n.º 29
0
 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()
     }
Ejemplo n.º 30
0
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)