class SearchForm(forms.Form): handlowiec = forms.CharField(max_length=50, required=False) ulica = forms.CharField(max_length=50, required=False) miejscowosc = forms.CharField(max_length=50, required=False, label='Miejscowość') symbol = forms.CharField(max_length=50, required=False) predkosc_od = forms.IntegerField(required=False, label="Prędkość od") predkosc_do = forms.IntegerField(required=False, label="Prędkość do") hp_od = forms.IntegerField(required=False) hp_do = forms.IntegerField(required=False) wypelnienie_od = forms.IntegerField(required=False, label="Wypełnienie od") wypelnienie_do = forms.IntegerField(required=False, label="Wypełnienie do") liczba_klientow_od = forms.IntegerField(required=False, label="Liczba klientów od") liczba_klientow_do = forms.IntegerField(required=False, label="Liczba klientów do") uruchomienie_od = forms.DateField(required=False, widget=DatePicker( options={ 'useCurrent': True, 'collapse': False, }, attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True, } ), ) uruchomienie_do = forms.DateField(required=False, widget=DatePicker( options={ 'useCurrent': True, 'collapse': False, }, attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True, } ), )
class DateFilterForm(forms.Form): date_field_from = forms.DateField(widget=DatePicker( options={ 'useCurrent': True, 'data-date-end-date': "0d", 'maxDate': 'now' }, attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True, 'size': 'small' } ),) date_field_to = forms.DateField(widget=DatePicker( options={ 'useCurrent': True, 'maxDate': 'now' }, attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True, 'size': 'small', } ),) def __init__(self, *args, **kwargs): super(DateFilterForm, self).__init__(*args, **kwargs) self.fields['date_field_from'].required = False self.fields['date_field_to'].required = False
class ScanFilter(django_filters.FilterSet): date_lte = django_filters.DateFilter(field_name='date', lookup_expr='gte', label='Date debut', widget=DatePicker( options={'format': 'MM/D/YYYY'}, attrs={ 'append': 'fa fa-calendar', })) date_gte = django_filters.DateFilter(field_name='date', lookup_expr='lte', label='Date fin', widget=DatePicker( options={'format': 'MM/D/YYYY'}, attrs={ 'append': 'fa fa-calendar', })) ville = django_filters.CharFilter(label='Ville', lookup_expr='icontains') cars__immatriculation = django_filters.CharFilter(label='Imm.', lookup_expr='icontains') class Meta: model = Scan fields = ('date', 'ville', 'cars') filter_overrides = { models.DateTimeField: { 'filter_class': django_filters.DateTimeFilter, 'extra': lambda f: { 'widget': DateTimePickerInput(), }, }, }
class PassagemForms(forms.Form): origem = forms.CharField(label='Origem',max_length=100) destino = forms.CharField(label='Destino',max_length=100) data_ida = forms.DateField(label='Ida',widget=DatePicker()) data_volta = forms.DateField(label='Volta',widget=DatePicker()) data_pesquisa = forms.DateField(label='Data da pesquisa ',disabled=True,initial=datetime.today) classe_viagem = forms.ChoiceField(label='Classe do vôo',choices=tipos_de_classes) informacoes = forms.CharField(label='Informações extras ',max_length=200,widget=forms.Textarea(),required=False) email = forms.EmailField(label='Email',max_length=150) def clean(self): origem = self.cleaned_data.get('origem') destino = self.cleaned_data.get('destino') data_ida = self.cleaned_data.get('data_ida') data_volta = self.cleaned_data.get('data_volta') data_pesquisa = self.cleaned_data.get('data_pesquisa') lista_erros = {} campo_tem_algum_numero(origem,'origem',lista_erros) campo_tem_algum_numero(destino,'destino',lista_erros) origem_destino(origem,destino,lista_erros) data_ida_maior_data_volta(data_ida,data_volta,lista_erros) data_ida_menor_data_de_hoje(data_ida,data_pesquisa,lista_erros) if lista_erros is not None: for erro in lista_erros: mensagem_erro = lista_erros[erro] self.add_error(erro,mensagem_erro) return self.cleaned_data
class Meta: """ Quando trabalhamos com ModelForms, a classe Meta permite fazer a manipulação das informações que estão no nosso modelo para gerar o nosso formulário. Nela, nós passamos o modelo base que vamos utilizar e os campos desse modelo que iremos utilizar. Obs.1 O campo fiels irá exibir no formulário as labels da mesma forma que estão no modelo. Para melhorarmos o UX, podemos usar o atributo labels: Obs.2 Para alterar os campos, podemos usar a propriedade widgets. Obs.3 Perceba que, como o campo data_pesquisa possue várias alterações diferentes dos outros campos, podemos trazer apenas esse campo a parte com as características desejadas. No nosso caso, importamos esse campo antes da classe Meta. """ model = Passagem # fields = ['origem', 'destino'] - Podemos usar dessa forma para trazer apenas alguns campos desejados fields = '__all__' # Ou dessa forma para trazer todos os campos labels = { 'data_ida':'Data de ida', 'data_volta':'Data de volta', 'informacoes':'Informações', 'classe_viagem':'Classe da viagem' } widgets = { 'data_ida':DatePicker(), 'data_volta':DatePicker(), }
class UserOrgForm(forms.ModelForm): user = forms.ModelChoiceField(queryset=User.objects.none()) start = forms.DateField( initial=timezone.now(), label="Start Date", widget=DatePicker( options={"format": "M/DD/YYYY"}, attrs={"autocomplete": "off"}, ), ) end = forms.DateField( initial=timezone.now() + timezone.timedelta(days=365), label="End Date", widget=DatePicker( options={"format": "M/DD/YYYY"}, attrs={"autocomplete": "off"}, ), ) officer = forms.TypedChoiceField( coerce=lambda x: x == "True", choices=((False, "No"), (True, "Yes")) ) class Meta: model = UserOrgParticipate fields = ["user", "org_name", "type", "officer", "start", "end"] def __init__(self, *args, **kwargs): hide_user = kwargs.pop("hide_user", False) super().__init__(*args, **kwargs) if hide_user: self.fields["user"].widget = forms.HiddenInput()
class Meta: model = Passagem fields = '__all__' labels = { 'ida': 'Data de ida', 'volta': 'Data de volta', 'informacoes': 'Informações adicionais', 'classe': 'Classe do voô' } widgets = {'ida': DatePicker(), 'volta': DatePicker()} def clean(self): origem = self.cleaned_data.get('origem') destino = self.cleaned_data.get('destino') ida = self.cleaned_data.get('ida') volta = self.cleaned_data.get('volta') pesquisa_data = self.cleaned_data.get('data_pesquisa') lista_de_erros = {} campo_tem_algum_numero(origem, 'origem', lista_de_erros) campo_tem_algum_numero(destino, 'destino', lista_de_erros) origem_destino_iguais(origem, destino, lista_de_erros) data_ida_maior_que_data_volta(ida, volta, lista_de_erros) data_ida_menor_data_de_hoje(ida, pesquisa_data, lista_de_erros) if lista_de_erros is not None: for erro in lista_de_erros: mensagem = lista_de_erros[erro] self.add_error(erro, mensagem) return self.cleaned_data
class DateForm(forms.Form): year = forms.DateField(required=False, widget=DatePicker( options={ "format": "YYYY", "pickTime": False, 'useCurrent': True, 'collapse': False, }, attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True, } ), label='Rok' ) month = forms.DateField(required=False, widget=DatePicker( options={ "format": "M", "pickTime": False, 'useCurrent': True, 'collapse': False, }, attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True, } ), label='Miesiąc' )
class Meta: fields = '__all__' model = models.DatosPersonales labels = { 'nombres': 'Nombre(s)', 'ap_paterno': 'Apellido paterno', 'ap_materno': 'Apellido materno', 'fecha_nacimiento': 'Fecha nacimiento', 'rfc': 'RFC', 'curp': 'CURP', 'nss': 'NSS', 'sexo': 'Sexo', 'estado_civil': 'Estado civil', 'domicilio': 'Domicilio', 'municipio': 'Municipio', 'status': 'Status', } widgets = { 'nombres': forms.TextInput(attrs={'class': 'form-control'}), 'ap_materno': forms.TextInput(attrs={'class': 'form-control'}), 'ap_paterno': forms.TextInput(attrs={'class': 'form-control'}), 'fecha_nacimiento': DatePicker(), 'rfc': forms.TextInput(attrs={'class': 'form-control'}), 'curp': forms.TextInput(attrs={'class': 'form-control'}), 'nss': forms.TextInput(attrs={'class': 'form-control'}), 'domicilio': forms.TextInput(attrs={'class': 'form-control'}), 'fecha_nacimiento': DatePicker(), } error_messages = { 'nombre': { 'max_length': LONGITUD_MAXIMA, 'required': 'Se requiere' }, 'rfc': { 'max_length': LONGITUD_MAXIMA, 'required': 'Se requiere' }, 'curp': { 'max_length': LONGITUD_MAXIMA, 'required': 'Se requiere' }, 'ap_paterno': { 'max_length': LONGITUD_MAXIMA, 'required': 'Se requiere' }, 'ap_materno': { 'max_length': LONGITUD_MAXIMA, 'required': 'Se requiere' }, 'nss': { 'max_length': LONGITUD_MAXIMA, 'required': 'Se requiere' }, 'domicilio': { 'max_length': LONGITUD_MAXIMA, 'required': 'Se requiere' } }
class Meta: model = Candidate_acceptance_form exclude = ['employee'] widgets = { 'joining_date': DatePicker(), 'contract_start_date': DatePicker(), 'expected_joining_date': DatePicker(), }
class Meta: model = Passagem fields = '__all__' # traz todos os campos do formulario labels = {'data_ida': 'Data de ida', 'data_volta': 'Data de volta', 'informacoes': 'Informações'} widgets = { 'data_ida': DatePicker(), 'data_volta': DatePicker() }
class LeaveRequestModelForm(PopRequestMixin, CreateUpdateAjaxMixin, forms.ModelForm): requested_start_date = forms.DateField(widget=DatePicker( options={ 'format': 'YYYY-MM-DD', 'useCurrent': True, 'collapse': False, }, attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True, 'sideBySide': True, }), ) requested_end_date = forms.DateField(widget=DatePicker( options={ 'format': 'YYYY-MM-DD', 'useCurrent': True, 'collapse': False, }, attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True, 'sideBySide': True, }), ) class Meta: model = Leave fields = ('staff_name', 'requested_start_date', 'requested_end_date', 'leave_type') def __init__(self, *args, **kwargs): super(LeaveRequestModelForm, self).__init__(*args, **kwargs) for name in self.fields.keys(): self.fields[name].widget.attrs.update({ 'class': 'form-control', }) self.fields['requested_start_date'].label = "Requested Start Date" self.fields['requested_start_date'].widget.attrs[ 'placeholder'] = "Enter Requested Start Date" self.fields['requested_end_date'].label = "Requested End Date" self.fields['requested_end_date'].widget.attrs[ 'placeholder'] = "Enter Requested End Date" self.fields['leave_type'].label = "Leave Type" self.fields['leave_type'].widget.attrs[ 'placeholder'] = "Enter Leave Type" def save(self): if not self.request.is_ajax(): instance = super(CreateUpdateAjaxMixin, self).save(commit=True) instance.save() else: instance = super(CreateUpdateAjaxMixin, self).save(commit=False) return instance
class Meta: model = Role_Log fields = ('role_type', 'start_date', 'end_date') widgets = { 'start_date': DatePicker(attrs={ 'append': 'fa fa-calendar', 'data-target': '#datetimepicker4'}), 'end_date': DatePicker(attrs={'append': 'fa fa-calendar'}) }
class Meta: model = Passagem fields = '__all__' labels = {'data_ida': 'Data de ida', 'data_volta': 'Data de volta', 'informacoes': 'Informações', 'classe_viagem': 'Classe do vôo'} widgets = { 'data_ida': DatePicker(), 'data_volta': DatePicker() } data_pesquisa = forms.DateField(label='Data da pesquisa', disabled=True, initial=datetime.today)
class Meta: model = Education fields = [ 'education', 'college', 'name_of_degree', 'duration_from', 'duration_to', 'specialization', 'percentage', 'certificates' ] widgets = { 'duration_from': DatePicker(), 'duration_to': DatePicker(), }
class Meta: model = Passagem fields = "__all__" labels = { "data_ida": "Data de ida", "data_volta": "Data de volta", "informacoes": "Informações", "classe_viagem": "Classe do vôo", } widgets = {"data_ida": DatePicker(), "data_volta": DatePicker()}
class Meta: model = Passagem fields = '__all__' labels = { 'data_ida': 'Data de ida', 'data_volta': 'Data de volta', 'informacoes': 'Informações', 'classe_viagem': 'Classe do vôo' } widgets = {'data_ida': DatePicker(), 'data_volta': DatePicker()}
class Meta: model = VendorInfo fields = [ 'vendor_supplier', 'invoice_no', 'grn_type', 'received_date', 'invoice_date' ] widgets = { 'received_date': DatePicker(), 'invoice_date': DatePicker(), }
class ColiFilter(django_filters.FilterSet): date_lte = django_filters.DateFilter(field_name='dateheure', lookup_expr='gte', label='Date debut', widget=DatePicker( options={'format': 'MM/D/YYYY'}, attrs={ 'append': 'fa fa-calendar', })) date_gte = django_filters.DateFilter(field_name='dateheure', lookup_expr='lte', label='Date fin', widget=DatePicker( options={'format': 'MM/D/YYYY'}, attrs={ 'append': 'fa fa-calendar', })) #time_lte = django_filters.TimeFilter(field_name='dateheure', #lookup_expr='time__gte' , #label='Heure debut' , #widget= TimePicker( options={'format': 'HH:mm'}, attrs={'append': 'fa fa-clock',} ) ) #time_gte = django_filters.TimeFilter(field_name='dateheure', #lookup_expr='time__lte' , #label='Heure fin' , #widget= TimePicker( options={'format': 'HH:mm'}, attrs={'append': 'fa fa-clock',} ) ) #datetime = django_filters.DateTimeFromToRangeFilter( widget=RangeWidget(attrs={'type': DateTimePickerInput() }) ) numero_colis = django_filters.CharFilter(label='Colis ID', lookup_expr='icontains') telephone_exp = django_filters.CharFilter(label='Tel. Exp.', lookup_expr='icontains') telephone_dest = django_filters.CharFilter(label='Tel. Dest.', lookup_expr='icontains') immatriculation__immatriculation = django_filters.CharFilter( label='Imm.', lookup_expr='icontains') class Meta: model = Coli fields = [ 'numero_colis', 'telephone_exp', 'immatriculation', 'etat_colis', 'destination' ] filter_overrides = { models.DateTimeField: { 'filter_class': django_filters.DateTimeFilter, 'extra': lambda f: { 'widget': DateTimePickerInput(), }, }, }
class Meta: model = Institution fields = [ 'school', 'degree', 'field_of_study', 'grade_or_class', 'started', 'ended' ] widgets = { 'started': DatePicker(options={'minDate': '1998-01-01'}), 'ended': DatePicker(options={'minDate': '1998-01-01'}) }
class Meta: model = Passagem fields = '__all__' labels = { 'data_ida': 'Data de Ida', 'data_volta': 'Data de Volta', 'data_pesquisa': 'Data da Pesquisa', 'classe_viagem': 'Classe do Vôo', 'informacoes': 'Informações' } widgets = {'data_ida': DatePicker(), 'data_volta': DatePicker()}
class Meta: model = Passagem fields = '__all__' # se eu quiser utilizar todos os campos do meu model labels = { 'data_ida': 'Data de ida', 'data_volta': 'Data de volta', 'data_pesquisa': 'Data da pesquisa', 'informacoes': 'Informações', 'classe_viagem': 'Classe do vôo' } widgets = {'data_ida': DatePicker(), 'data_volta': DatePicker()}
class EmployeeExtendedDataForm(forms.ModelForm): '''class representing a form to create/change and save the extented data of employee''' NO_OVERTIME = 0 WEEKLY_OVERTIME = 1 SATURDAT_OVERTIME = 2 RATINGS = [(NO_OVERTIME, 'Clear contract'), (WEEKLY_OVERTIME, 'Weekly overtime'), (SATURDAT_OVERTIME, 'Saturday overtime')] # options, attrs, overclass options = { 'icons': icons, 'useCurrent': True, 'buttons': { 'showToday': True, 'showClear': True, 'showClose': True } } attrs = { 'prepend': 'fa fa-calendar-check', 'append': 'fa fa-calendar-check', 'input_toggle': False, 'icon_toggle': True } overclass = {'class': 'btn-sm btn-outline-light'} # fields worker = forms.ModelChoiceField( widget=forms.HiddenInput(attrs={'readonly': True}), queryset=queryset) birthday = forms.DateField(label='Date of birthday', widget=DatePicker(options=options, attrs=attrs)) start_contract = forms.DateField(label='Date of start contract', widget=DatePicker(options=options, attrs=attrs)) end_contract = forms.DateField(required=False, label='Date of end contract', widget=DatePicker(options=options, attrs=attrs)) overtime = forms.ChoiceField( label="Select the contract type:", required=True, initial=0, widget=RadioSelectButtonGroup(attrs=overclass), choices=RATINGS) class Meta: model = EmployeeData fields = ('worker', 'birthday', 'postal', 'city', 'street', 'house', 'flat', 'phone', 'workplace', 'start_contract', 'end_contract', 'overtime') widgets = { 'city': forms.TextInput(attrs={'id': 'autocpl'}), }
class SaleFilter(django_filters.FilterSet): From = django_filters.DateFilter(field_name="sale_date", lookup_expr="gte", label='From', widget=DatePicker()) To = django_filters.DateFilter(field_name="sale_date", lookup_expr="lte", label='To', widget=DatePicker()) class Meta: model = PatientInfo fields = ['bill_no', 'phone']
class DateRangeForm(forms.Form): start_date = forms.DateField(widget=DatePicker( attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True, } )) end_date = forms.DateField(widget=DatePicker( attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True, } ))
class TicketItemForm(forms.ModelForm): ''' Used to create a form for editing ticket item. Used by the TicketItemEdit view. ''' required_css_class = 'required' error_css_class = 'error' ticketing_event = forms.ModelChoiceField( queryset=TicketingEvents.objects.exclude( conference__status='completed'), empty_label=None, label=ticket_item_labels['ticketing_event']) start_time = forms.DateField(help_text=ticket_item_help_text['start_time'], required=False, widget=DatePicker( attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True }, options={'format': "M/D/YYYY"})) end_time = forms.DateField(help_text=ticket_item_help_text['end_time'], required=False, widget=DatePicker( attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True }, options={'format': "M/D/YYYY"})) class Meta: model = TicketItem fields = [ 'ticket_id', 'title', 'cost', 'ticketing_event', 'has_coupon', 'special_comp', 'live', 'start_time', 'end_time', 'is_minimum', 'add_on' ] labels = ticket_item_labels help_texts = ticket_item_help_text def save(self, user, commit=True): form = super(TicketItemForm, self).save(commit=False) form.modified_by = user exists = TicketItem.objects.filter(ticket_id=form.ticket_id) if (exists.count() > 0): form.id = exists[0].id if commit: form.save() return form
class Meta: model = Order fields = ( 'company_name', 'email', 'category', 'date_start', 'date_end', ) help_texts = { 'date_start': 'Please enter date in "YYYY-mm-dd" format', 'date_end': 'You can double-click to activate datepicker', } widgets = {'date_start': DatePicker(), 'date_end': DatePicker()}
class Meta: model = Task fields = ['name', 'description', 'due_date', 'executor', 'notify', 'scheduled', 'start_date', 'end_date', 'start_time', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'] widgets = { 'due_date': DateTimePicker( options={ 'useCurrent': True, 'collapse': True, }, attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True, } ), 'start_date': DatePicker( options={ 'useCurrent': True, 'collapse': True, }, attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True, } ), 'end_date': DatePicker( options={ 'useCurrent': True, 'collapse': True, }, attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True, } ), 'start_time': TimePicker( options={ 'useCurrent': True, 'collapse': True, }, attrs={ 'append': 'fa fa-clock-o', 'icon_toggle': True, } ), }
class Meta: model = DetalleMascota fields = ('fecha_nacimiento', 'estado', 'adicional') widgets = { 'fecha_nacimiento' : DatePicker( options={ 'useCurrent': True, 'locale': 'es', }, attrs={ 'append': 'fa fa-calendar', 'icon_toggle': True } ), 'estado': forms.Select( attrs={ 'oninvalid': 'this.setCustomValidity("Por favor llene el campo")', 'oninput': 'setCustomValidity("")' }), 'adicional': forms.Textarea( attrs={ 'oninvalid': 'this.setCustomValidity("Por favor llene el campo")', 'oninput': 'setCustomValidity("")' })} labels = { 'fecha_nacimiento': _('Fecha de Nacimiento'), 'estado': _('Estado actual'), 'adicional': _('Comentario Adicional') }
class Meta: model = Tournament fields = ('title', 'superviser', 'start_date', 'start_time', 'tours_amount', 'tt_category', 'tt_type') widgets = { 'start_date': DatePicker(options={ 'useCurrent': True, 'collapse': False, }, attrs={ 'append': 'far fa-calendar-alt', 'icon_toggle': True, }), 'start_time': TimePicker( options={ 'enabledHours': [9, 10, 11, 12, 13, 14, 15, 16], 'defaultDate': '1992-01-01T10:00:00' }, attrs={ 'append': 'far fa-clock', 'icon_toggle': True, }, ), }