class Meta: model = CzarApplication exclude = ['application_reviewed', 'czar_granted'] labels = { 'name_first': 'First Name', 'name_last': 'Last Name', 'municipality': 'Location', 'description': 'About You', 'twitter': 'Twitter', 'url': 'URL' } widgets = { 'description': forms.Textarea( attrs={ 'rows': 3, 'placeholder': 'Why you are a good fit for this role' }), 'municipality': forms.TextInput(attrs={'placeholder': 'Municipality/City/Region'}), 'twitter': forms.TextInput(attrs={'placeholder': 'Twitter (optional)'}), 'url': forms.TextInput(attrs={'placeholder': 'URL (optional)'}) }
class SupplierContactForm(forms.ModelForm): required_css_class = 'required' error_css_class = 'error' company = forms.CharField( widget=forms.TextInput(attrs={ 'placeholder': 'Your company', 'class': 'input-lg' }), ) email = forms.EmailField( widget=forms.TextInput(attrs={ 'placeholder': 'Email address', 'class': 'input-lg' }), ) phone = forms.CharField(widget=forms.TextInput(attrs={ 'placeholder': 'Phone number', 'class': 'input-lg' }), required=False) website = forms.CharField( widget=forms.TextInput(attrs={ 'placeholder': 'www.your-company.com', 'class': 'input-lg' }), required=False) type_of_business = forms.ChoiceField( label='', choices=SupplierContact.SUPPLIER_TYPE_CHOICES, widget=forms.RadioSelect(), help_text=_('Please select your type of business.')) class Meta: exclude = [] model = SupplierContact
class CartForm(geoforms.Form): pin = geoforms.PointField(widget=geoforms.OSMWidget( attrs={ 'map_width': '100%', 'map_height': 'auto', 'default_lat': -1.2921, 'default_lon': 36.8219, 'default_zoom': 13 })) # Must be filled if point is NULL || Blank floor = geoforms.CharField( label="Floor", widget=geoforms.TextInput(attrs={ 'class': 'form-control', 'placeholder': 'Floor', 'id': 'floor' })) street = geoforms.CharField( label="Street", widget=geoforms.TextInput(attrs={ 'class': 'form-control', 'placeholder': 'Street', 'id': 'street' })) apt = geoforms.CharField( label="Apartment", widget=geoforms.TextInput(attrs={ 'class': 'form-control', 'placeholder': 'Apartment', 'id': 'apt' }))
class Meta: model = models.Notice fields = ['starts_at', 'ends_at', 'timezone'] widgets = { 'starts_at': forms.TextInput(attrs={'type': 'datetime'}), 'ends_at': forms.TextInput(attrs={'type': 'datetime'}), }
class BasicInformationForm(forms.ModelForm): """Form for Basic Information model.""" name = forms.CharField( required=True, label='Your name', widget=forms.TextInput(attrs={'placeholder': 'John Doe'})) email = forms.EmailField( required=True, label='Your email', widget=forms.EmailInput(attrs={ 'readonly': 'readonly', 'placeholder': '*****@*****.**' })) image = forms.ImageField(required=False, widget=CustomClearableFileInput()) website = forms.URLField( required=False, label='Your website', widget=forms.URLInput(attrs={'placeholder': 'http://john.doe.com'})) inasafe_roles = forms.ModelMultipleChoiceField( required=True, label='Your InaSAFE role(s)', queryset=InasafeRole.objects.filter(sort_number__gte=1), widget=forms.CheckboxSelectMultiple) osm_roles = forms.ModelMultipleChoiceField( required=False, label='Your OSM role(s)', queryset=OsmRole.objects.filter(sort_number__gte=1), widget=forms.CheckboxSelectMultiple) osm_username = forms.CharField( required=False, label='OSM Username', widget=forms.TextInput(attrs={'placeholder': 'johndoe'})) email_updates = forms.BooleanField( required=False, label='Receive project news and updates') location = forms.PointField(label='Click your location on the map', widget=LeafletWidget()) class Meta: """Association between models and this form.""" model = User fields = [ 'name', 'email', 'image', 'website', 'inasafe_roles', 'osm_roles', 'osm_username', 'location', 'email_updates' ] def save(self, commit=True): """Save form. :param commit: Whether committed to db or not. :type commit: bool """ user = super(BasicInformationForm, self).save(commit=False) if commit: user.save() return user
class Meta: model = Contact fields = ( 'name', 'email', 'phone', ) widgets = { 'name': forms.TextInput(attrs={'placeholder': 'eg. John Smith'}), 'email': forms.EmailInput(attrs={'placeholder': 'eg. [email protected]'}), 'phone': forms.TextInput(attrs={'placeholder': 'eg. 07123456789'}), }
class ProcessCycleCreateForm(forms.ModelForm): title = forms.CharField(widget=forms.TextInput(attrs={ 'class': 'form-control', }), label=_('Название')) sort = forms.CharField(widget=forms.TextInput(attrs={ 'class': 'form-control', }), label=_('Сортировка')) class Meta: model = ProcessCycle fields = ( 'title', 'sort', )
class HomeForm(forms.Form): name = forms.CharField( min_length=1, max_length=255, strip=True, widget=forms.TextInput(attrs={'class': 'form-control'}) ) lat = forms.FloatField( widget=forms.HiddenInput() ) lng = forms.FloatField( widget=forms.HiddenInput() ) radius = forms.IntegerField( max_value='1000000000', min_value='5', widget=forms.NumberInput(attrs={'class': 'form-control'}), initial=50 ) module = forms.ModelChoiceField( widget=forms.RadioSelect, queryset=Module.objects.all(), empty_label='モジュールを選択', required=True ) class Meta: labels = { 'radius': 'Radius', 'name': 'Name', 'module': 'Module' }
class AssessmentSignupForm(SignupForm): required_css_class = 'required' error_css_class = 'error' assessment_uuid = forms.CharField( widget=forms.HiddenInput(), ) email = forms.EmailField( label='', widget=forms.TextInput( attrs={ 'placeholder': _('Your email'), 'class': 'input-lg', }, ), ) password1 = forms.CharField( label='', widget=forms.PasswordInput( attrs={ 'placeholder': _('Choose password'), 'class': 'input-lg', }, ), ) def __init__(self, *args, **kwargs): super(AssessmentSignupForm, self).__init__(*args, **kwargs) # The label attribute in the field definition # does not work, probably bc there is some magic # going on due to email/username options. self.fields['email'].label = ''
class GeoNamesMatchingLogMatchForm(ModelForm): object_id = forms.CharField(widget=forms.TextInput( attrs={'readonly': 'readonly'})) class Meta: model = GeoNamesMatchingLogMatch exclude = ('display_for_users', 'number_of_alternatives', 'content_type')
class GeoNamesMatchingLogMatchedPlacesFormUser(autocomplete_light.ModelForm): united_geoname = autocomplete_light.ModelChoiceField( 'UnitedGeoNameAutocomplete') remark = forms.CharField(widget=forms.TextInput(attrs={'size': '30'}), required=False) class Meta: model = GeoNamesMatchingLogMatchedPlaces exclude = ('matchinglogmatch', )
class Meta: model = PlaceType fields = ("place_type", ) { "place_type": forms.TextInput(attrs={ "placeholder": "Eg. Tourism", "required": "false" }) }
def __init__(self, *args, **kwargs): extra = kwargs.pop('extra', None) feature = kwargs.pop('feature', None) super().__init__(*args, **kwargs) for custom_field in extra.order_by('position'): if custom_field.field_type == 'boolean': self.fields[custom_field.name] = forms.BooleanField( label=custom_field.label, initial=False, required=False, ) if custom_field.field_type == 'char': self.fields[custom_field.name] = forms.CharField( label=custom_field.label, max_length=256, required=False) if custom_field.field_type == 'date': self.fields[custom_field.name] = forms.DateField( label=custom_field.label, required=False, ) if custom_field.field_type == 'integer': self.fields[custom_field.name] = forms.IntegerField( label=custom_field.label, required=False) if custom_field.field_type == 'decimal': self.fields[custom_field.name] = forms.DecimalField( label=custom_field.label, required=False, widget=forms.TextInput(attrs={'localization': False})) if custom_field.field_type == 'text': self.fields[custom_field.name] = forms.CharField( label=custom_field.label, required=False, widget=forms.Textarea()) if custom_field.field_type == 'list' and custom_field.options: self.fields[custom_field.name] = forms.ChoiceField( label=custom_field.label, choices=[(str(xx), str(xx)) for xx in custom_field.options], required=False) self.fields[custom_field.name].widget.attrs.update( {'field_type': custom_field.field_type}) if feature and isinstance(feature.feature_data, dict): for custom_field in extra: self.fields[ custom_field.name].initial = feature.feature_data.get( custom_field.name)
class Normal2BScanVectorizedModelForm(forms.ModelForm): name = forms.CharField( label='Update the NAME of Normal2BScanVectorized', max_length=254, required=False, widget=forms.TextInput(attrs={'class': 'form-control mr-sm-1'})) class Meta: model = Normal2BScanVectorized fields = ['name']
class CategoryModelForm(forms.ModelForm): description = forms.CharField(widget=forms.TextInput( attrs={ 'class': 'form-control mr-sm-1', 'cols': 80, 'rows': 20 })) class Meta: model = Category fields = ['name', 'description']
class BasicInformationForm(forms.ModelForm): """Form for Basic Information model.""" name = forms.CharField( required=True, label='Your name', widget=forms.TextInput( attrs={ 'placeholder': 'John Doe'}) ) email = forms.EmailField( required=True, label='Your email', widget=forms.EmailInput( attrs={ 'readonly': 'readonly', 'placeholder': '*****@*****.**'}) ) website = forms.URLField( required=False, label='Your website', widget=forms.URLInput( attrs={ 'placeholder': 'http://john.doe.com'}) ) role = forms.ModelChoiceField( label='Your role', queryset=Role.objects.filter(sort_number__gte=1), initial=1) email_updates = forms.BooleanField( required=False, label='Receive project news and updates') location = forms.PointField( label='Click your location on the map', widget=LeafletWidget()) class Meta: """Association between models and this form.""" model = User fields = ['name', 'email', 'website', 'role', 'location', 'email_updates'] def save(self, commit=True): """Save form. :param commit: Whether committed to db or not. :type commit: bool """ user = super(BasicInformationForm, self).save(commit=False) if commit: user.save() return user
class FeatureSelectFieldAdminForm(forms.Form): related_field = forms.ChoiceField( label="Champs à ajouter", choices=[(str(field.name), "{0} - {1}".format(field.name, field.get_internal_type())) for field in Feature._meta.get_fields()], required=False) alias = forms.CharField( label="Alias", required=False, widget=forms.TextInput(attrs={ 'class': 'form-control', 'placeholder': "Alias pour cette colonne" }))
class CallsignForm(forms.ModelForm): issued = forms.DateField(widget=forms.TextInput(attrs={'type': 'date'}), required=False) location = forms.PointField( srid=4326, widget=forms.OSMWidget(attrs={ 'map_width': 785, 'map_height': 500, 'default_zoom': 12 })) class Meta: model = Callsign fields = ["type", "location", 'cq_zone', "itu_zone", "dstar", "issued"]
class Meta: model = Actor exclude = ['user'] help_texts = { 'vat_number': 'Trouvez votre numéro <a href="https://www.bfs.admin.ch/bfs/fr/home/registres/registre-entreprises/numero-identification-entreprises.html" target="_blank">TVA</a>', } widgets = { 'address': RemoteAutocompleteWidget( attrs={ "apiurl": "https://api3.geo.admin.ch/rest/services/api/SearchServer?", "apiurl_detail": "https://api3.geo.admin.ch/rest/services/api/MapServer/ch.bfs.gebaeude_wohnungs_register/", "search_prefix": "false", "origins": "address", "zipcode_field": "zipcode", "city_field": "city", "placeholder": "ex: Place Pestalozzi 2 Yverdon", }), 'phone_fixed': forms.TextInput(attrs={'placeholder': 'ex: 024 111 22 22'}), 'phone_mobile': forms.TextInput(attrs={'placeholder': 'ex: 079 111 22 22'}), 'vat_number': forms.TextInput(attrs={'placeholder': 'ex: CHE-123.456.789'}), 'name': forms.TextInput(attrs={'placeholder': 'ex: Dupond'}), 'firstname': forms.TextInput(attrs={'placeholder': 'ex: Marcel'}), 'zipcode': forms.TextInput(attrs={'placeholder': 'ex: 1400'}), 'city': forms.TextInput(attrs={'placeholder': 'ex: Yverdon'}), 'company_name': forms.TextInput(attrs={'placeholder': 'ex: Construction SA'}), 'email': forms.TextInput( attrs={'placeholder': 'ex: [email protected]'}), }
class Meta: model = Basemap fields = ['name', 'style', 'zoom', 'location'] widgets = { 'name': forms.TextInput( attrs={'class': 'form-control form-control nav-item'}), 'style': forms.Select( attrs={'class': 'form-control form-control nav-item'}), 'location': forms.HiddenInput(), 'zoom': forms.HiddenInput(), }
class Meta: model = Actor exclude = ['user', 'vat_number'] widgets = { 'address': RemoteAutocompleteWidget( attrs={ "apiurl": "https://api3.geo.admin.ch/rest/services/api/SearchServer?", "apiurl_detail": "https://api3.geo.admin.ch/rest/services/api/MapServer/ch.bfs.gebaeude_wohnungs_register/", "search_prefix": "false", "origins": "address", "zipcode_field": "zipcode", "city_field": "city", "placeholder": "ex: Place Pestalozzi 2 Yverdon", }), 'phone_fixed': forms.TextInput(attrs={'placeholder': 'ex: 024 111 22 22'}), 'phone_mobile': forms.TextInput(attrs={'placeholder': 'ex: 079 111 22 22'}), 'name': forms.TextInput(attrs={'placeholder': 'ex: Dupond'}), 'firstname': forms.TextInput(attrs={'placeholder': 'ex: Marcel'}), 'zipcode': forms.TextInput(attrs={'placeholder': 'ex: 1400'}), 'city': forms.TextInput(attrs={'placeholder': 'ex: Yverdon'}), 'company_name': forms.TextInput(attrs={'placeholder': 'ex: Construction SA'}), 'phone_mobile': forms.TextInput(attrs={'placeholder': 'ex: 079 111 22 22'}), 'email': forms.TextInput( attrs={'placeholder': 'ex: [email protected]'}), }
class SearchForm(forms.Form): distance = forms.IntegerField(widget=forms.NumberInput( attrs={ 'class': 'hidden', 'required': 'required' })) address = forms.CharField(widget=forms.TextInput(attrs={ 'class': 'hidden', 'required': 'required' })) days = forms.IntegerField(widget=forms.NumberInput(attrs={ 'class': 'hidden', 'required': 'required' })) event_types = forms.MultipleChoiceField( choices=Event.EVENT_TYPE_CHOICES, widget=CheckboxSelectMultipleULAttrs( ulattrs='class="list-unstyled hidden event-type-list"'))
class CustomFieldModelAdminForm(forms.ModelForm): alias = forms.CharField( label="Alias", required=False, widget=forms.TextInput(attrs={ 'class': 'form-control', 'placeholder': "Alias pour cette colonne" })) class Meta: model = CustomField fields = ('name', 'alias', 'field_type') def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['field_type'].disabled = True def save(self, *args, **kwargs): return None
class Meta: widgets = { 'name': forms.TextInput(attrs={'size': 13}), 'phone_number': forms.NumberInput(attrs={'size': 8}) }
class SignUpForm(UserCreationForm): username = forms.CharField( label='Usuario', max_length=30, required=True, help_text= 'Requerido. 30 characters o menos. Letras, digitos y @/./+/-/_ solamente.', widget=forms.TextInput(attrs={ 'class': "form-control", 'placeholder': 'Usuario', 'type': "text" })) first_name = forms.CharField( label='Nombre', max_length=30, required=False, help_text='Opcional.', widget=forms.TextInput(attrs={ 'class': "form-control", 'placeholder': 'Nombres', 'type': "text" })) last_name = forms.CharField( label='Apellido', max_length=30, required=False, help_text='Opcional.', widget=forms.TextInput(attrs={ 'class': "form-control", 'placeholder': 'Apellido', 'type': "text" })) email = forms.EmailField( label='Correo Electrónico', max_length=254, help_text='Requerido. Informar una casilla de correo válida.', widget=forms.TextInput( attrs={ 'class': "form-control", 'placeholder': 'casilla@dominio', 'type': "email" })) password1 = forms.CharField(label='Contraseña', max_length=30, required=False, help_text='Requerido.', widget=forms.TextInput( attrs={ 'class': "form-control", 'placeholder': 'Contraseña', 'type': "password" })) password2 = forms.CharField(label='Confirmación de Contraseña', max_length=30, required=False, help_text='Requerido.', widget=forms.TextInput( attrs={ 'class': "form-control", 'placeholder': 'Contraseña', 'type': "password" })) class Meta: model = User fields = ( 'username', 'first_name', 'last_name', 'email', 'password1', 'password2', )
class Meta: model = FeatureType fields = '__all__' widgets = { 'color': forms.TextInput(attrs={'type': 'color'}), }
class EmpleadoForm(forms.Form): cedula = forms.CharField(required=False, label=u'Cédula') nombres = forms.CharField(max_length=250, widget=forms.TextInput(attrs={'size': '30'})) apellido_paterno = forms.CharField( max_length=250, widget=forms.TextInput(attrs={'size': '30'})) apellido_materno = forms.CharField( max_length=250, widget=forms.TextInput(attrs={'size': '30'}), required=False) pais = forms.ModelChoiceField( queryset=Pais.objects.all(), empty_label="Escoger un pais", widget=forms.Select(attrs={ 'placeholder': 'País', 'onChange': "getProvincias(this.value)" })) provincia = forms.ModelChoiceField( queryset=Provincia.objects.none(), empty_label="Escoger una provincia", widget=forms.Select( attrs={ 'placeholder': 'Provincia o estado', 'onChange': "getCiudades(this.value)" })) ciudad = forms.ModelChoiceField( queryset=Ciudad.objects.none(), empty_label="Escoger una ciudad", widget=forms.Select(attrs={'placeholder': 'Ciudad o Cantón'})) sexo = forms.ChoiceField(choices=PersonaNatural.SEXO_CHOICES, required=True) fecha_nacimiento = forms.DateField(required=False) observaciones = forms.CharField(widget=forms.Textarea()) usuario = forms.CharField(max_length=13, widget=forms.TextInput(attrs={'size': '30'})) contrasenia = forms.CharField( max_length=13, widget=forms.PasswordInput(attrs={'size': '30'})) email = forms.EmailField(max_length=25, widget=forms.TextInput(attrs={'size': '30'})) plazas_trabajo = forms.ModelMultipleChoiceField( queryset=PlazaTrabajo.objects.all(), widget=forms.SelectMultiple) foto = forms.ImageField(required=False) def modificarQuerySet(self, pais_id, provincia_id): if pais_id not in ('', None): self.fields['provincia'].queryset = Provincia.objects.filter( pais__id=pais_id) if provincia_id not in ('', None): self.fields['ciudad'].queryset = Ciudad.objects.filter( provincia__id=provincia_id) def save(self, empleado=None): cleaned_data = super(EmpleadoForm, self).clean() if empleado is None: persona = Persona() persona.tipo = Persona.TIPO_PERSONA_NATURAL persona.observaciones = cleaned_data["observaciones"] persona.ruc = cleaned_data["cedula"] persona.nombre_comercial = "" persona.save() usuario = User() usuario.username = cleaned_data["usuario"] usuario.set_password(cleaned_data["contrasenia"]) usuario.email = cleaned_data["email"] usuario.save() persona_natural = PersonaNatural() persona_natural.ciudad_nacimiento = cleaned_data['ciudad'] persona_natural.cedula = cleaned_data["cedula"] persona_natural.nombres = cleaned_data["nombres"] persona_natural.apellido_paterno = cleaned_data["apellido_paterno"] persona_natural.apellido_materno = cleaned_data["apellido_materno"] persona_natural.persona = persona persona_natural.sexo = cleaned_data["sexo"] persona_natural.fecha_nacimiento = cleaned_data["fecha_nacimiento"] persona_natural.save() empleado = Empleado() empleado.persona = persona_natural empleado.usuario = usuario empleado.foto = cleaned_data["foto"] empleado.observaciones = cleaned_data["observaciones"] empleado.save() empleado.plazas_trabajo = cleaned_data["plazas_trabajo"] empleado.save() else: empleado.persona.nombres = cleaned_data["nombres"] empleado.persona.apellido_paterno = cleaned_data[ "apellido_paterno"] empleado.persona.apellido_materno = cleaned_data[ "apellido_materno"] empleado.persona.sexo = cleaned_data["sexo"] empleado.persona.cedula = cleaned_data["cedula"] empleado.persona.ciudad_nacimiento = cleaned_data["ciudad"] empleado.persona.save() empleado.usuario.email = cleaned_data["email"] empleado.usuario.save() empleado.foto = cleaned_data["foto"] empleado.observaciones = cleaned_data["observaciones"] empleado.save() empleado.plazas_trabajo = cleaned_data["plazas_trabajo"] empleado.save() return empleado def clean_usuario(self): if self.cleaned_data['usuario']: p = User.objects.filter(username=self.cleaned_data['usuario']) if len(p) > 0: raise forms.ValidationError( _("Ya esxiste un usuario con este username")) return self.cleaned_data['usuario']
class Meta: model = PermitRequest exclude = [] fields = [ 'company', 'project_owner', 'ended', 'archeotype', 'has_archeology', 'amount', 'paid', 'validated', 'sent', 'date_start', 'date_end', 'date_end_work_announcement', 'date_end_work', 'date_request_created', 'road_marking_damaged', 'is_green_area', 'invoice_to', 'sitetype', 'description', 'administrative_entity', 'address', 'length', 'width', 'geom' ] help_texts = { 'validated': "Par le secrétariat uniquement", 'archeotype': "Zone archéologique observée au moment de la fouille", 'has_archeology': "Zone archéologique détectée sur la base des géodonnées cantonales", 'ended': "La fouille a-t-elle été contrôlée par le bureau STE ?", } widgets = { 'geom': SitOpenLayersWidget( attrs={ 'map_width': '100%', 'map_height': settings.OL_MAP_HEIGHT, 'map_srid': 2056, 'default_center': [2539057, 1181111], 'default_zoom': 10, 'display_raw': False, #show coordinate in debug 'map_clear_style': "visibility:visible;", 'edit_geom': False, 'min_zoom': 6, 'wmts_capabilities_url': settings.WMTS_GETCAP, 'wmts_layer': settings.WMTS_LAYER, 'wmts_capabilities_url_alternative': settings.WMTS_GETCAP_ALTERNATIVE, 'wmts_layer_alternative': settings.WMTS_LAYER_ALTERNATIVE, 'administrative_entities_url': 'gpf:adm-entity-geojson', }), 'administrative_entity': forms.Select( attrs={ 'onchange': "gpfMap.zoomToAdminEntity(this.options[this.selectedIndex].value);" }), 'date_start': DatePickerInput(options={ "format": "DD/MM/YYYY", "locale": "fr" }).start_of('event days'), 'date_end': DatePickerInput(options={ "format": "DD/MM/YYYY", "locale": "fr" }).end_of('event days'), 'date_end_work': DatePickerInput(options={ "format": "DD/MM/YYYY", "locale": "fr" }), 'date_end_work_announcement': DatePickerInput(options={ "format": "DD/MM/YYYY", "locale": "fr" }, ), 'date_request_created': forms.TextInput(attrs={'readonly': 'readonly'}), 'description': forms.Textarea(attrs={'rows': '3'}), 'address': RemoteAutocompleteWidget( attrs={ "apiurl": "https://api3.geo.admin.ch/rest/services/api/SearchServer?", "apiurl_detail": "https://api3.geo.admin.ch/rest/services/api/MapServer/ch.bfs.gebaeude_wohnungs_register/", "search_prefix": "true", "origins": "address", "zipcode_field": "zipcode", "city_field": "city", "placeholder": "ex: Place Pestalozzi 2 Yverdon", }), }
class Meta: model = PermitRequest fields = [ 'administrative_entity', 'address', 'geom', 'description', 'date_start', 'date_end', 'sitetype', 'length', 'width', 'road_marking_damaged', 'is_green_area', 'invoice_to' ] widgets = { 'geom': SitOpenLayersWidget( attrs={ 'map_width': '100%', 'map_height': settings.OL_MAP_HEIGHT, 'map_srid': 2056, 'default_center': [2539057, 1181111], 'default_zoom': 10, 'display_raw': False, #show coordinate in debug 'map_clear_style': "visibility:visible;", 'edit_geom': True, 'min_zoom': 8, 'wmts_capabilities_url': settings.WMTS_GETCAP, 'wmts_layer': settings.WMTS_LAYER, 'wmts_capabilities_url_alternative': settings.WMTS_GETCAP_ALTERNATIVE, 'wmts_layer_alternative': settings.WMTS_LAYER_ALTERNATIVE, 'administrative_entities_url': 'gpf:adm-entity-geojson', }), 'administrative_entity': forms.Select( attrs={ 'onchange': "gpfMap.zoomToAdminEntity(this.options[this.selectedIndex].value);" }), 'date_start': DatePickerInput( options={ "format": "DD/MM/YYYY", "locale": "fr", "minDate": ( datetime.datetime.today() + datetime.timedelta(days=int(settings.MIN_START_DELAY)) ).strftime('%Y/%m/%d') }).start_of('event days'), 'date_end': DatePickerInput( options={ "format": "DD/MM/YYYY", "locale": "fr", "minDate": ( datetime.datetime.today() + datetime.timedelta(days=int(settings.MIN_START_DELAY)) ).strftime('%Y/%m/%d') }).end_of('event days'), 'description': forms.Textarea(attrs={'rows': '3'}), 'zipcode': forms.TextInput(attrs={'id': 'id_zipcode_permit'}), 'city': forms.TextInput(attrs={'id': 'id_city_permit'}), 'address': RemoteAutocompleteWidget( attrs={ "id": "id_adress_permit", "apiurl": "https://api3.geo.admin.ch/rest/services/api/SearchServer?", "apiurl_detail": "https://api3.geo.admin.ch/rest/services/api/MapServer/ch.bfs.gebaeude_wohnungs_register/", "search_prefix": "true", "origins": "address", "zipcode_field": "zipcode_permit", "city_field": "city_permit", "placeholder": "ex: Rue de la plaine", }), }
class Meta: model = Town # fields = "__all__" fields = [ "codeTown", "nameTown", "surface", "population", "townPostalcode", "codeRegion", "codeDepartement", "centerCoordinateLat", "centerCoordinateLong" ] widgets = { 'codeTown': forms.TextInput( attrs={ 'class': 'm-2 border border-2 border-green-200 focus:outline-none ' 'focus:ring-2 focus:ring-green-600 focus:border-transparent ' 'text-gray-400 font-bold py-2 px-4 rounded-full' }), 'nameTown': forms.TextInput( attrs={ 'placeholder': 'Un nouveau nom ?', 'class': 'm-2 border border-2 border-green-200 focus:outline-none ' 'focus:ring-2 focus:ring-green-600 focus:border-transparent ' 'text-gray-400 font-bold py-2 px-4 rounded-full' }), 'codeRegion': forms.Select( attrs={ 'class': 'm-2 border border-2 border-green-200 focus:outline-none ' 'focus:ring-2 focus:ring-green-600 focus:border-transparent ' 'text-gray-400 font-bold py-2 px-4 rounded-full' }), 'codeDepartement': forms.Select( attrs={ 'class': 'm-2 border border-2 border-green-200 focus:outline-none ' 'focus:ring-2 focus:ring-green-600 focus:border-transparent ' 'text-gray-400 font-bold py-2 px-4 rounded-full' }), 'townPostalcode': forms.TextInput( attrs={ 'class': 'm-2 border border-2 border-green-200 focus:outline-none ' 'focus:ring-2 focus:ring-green-600 focus:border-transparent ' 'text-gray-400 font-bold py-2 px-4 rounded-full' }), 'surface': forms.NumberInput( attrs={ 'class': 'm-2 border border-2 border-green-200 focus:outline-none ' 'focus:ring-2 focus:ring-green-600 focus:border-transparent ' 'text-gray-400 font-bold py-2 px-4 rounded-full' }), 'centerCoordinateLat': forms.NumberInput( attrs={ 'class': 'm-2 border border-2 border-green-200 focus:outline-none ' 'focus:ring-2 focus:ring-green-600 focus:border-transparent ' 'text-gray-400 font-bold py-2 px-4 rounded-full' }), 'centerCoordinateLong': forms.NumberInput( attrs={ 'class': 'm-2 border border-2 border-green-200 focus:outline-none ' 'focus:ring-2 focus:ring-green-600 focus:border-transparent ' 'text-gray-400 font-bold py-2 px-4 rounded-full' }), 'population': forms.NumberInput( attrs={ 'class': 'm-2 border border-2 border-green-200 focus:outline-none ' 'focus:ring-2 focus:ring-green-600 ' 'focus:border-transparent text-gray-400 font-bold py-2 ' 'px-4 rounded-full' }), # 'center': forms.OSMWidget(attrs={'map_width': 800, 'map_height': 500}), }