class CreateAlert(forms.Form): location = forms.PolygonField( widget=AlertAreaWidget(attrs={ 'map_width': 800, 'map_height': 500 }), error_messages={ 'required': 'Please select an area by drawing on the map', 'invalid_geom': 'Invalid area selected' })
class PolygonForm(forms.Form): poly = forms.PolygonField(widget=forms.OSMWidget( attrs={ 'map_width': 800, 'map_height': 500, 'map_srid': 4326, 'default_lat': DEFAULT_LAT, 'default_lon': DEFAULT_LON, 'default_zoom': DEFAULT_ZOOM, }))
class ZoneForm(forms.ModelForm): class Meta: model = Zone exclude = ["nothing"] poly = forms.PolygonField(widget=forms.OSMWidget( attrs={ 'map_width': 800, 'map_height': 500, 'default_lat': 55.751244, 'default_lon': 37.618423 }))
def __init__(self, *args, **kwargs): feature_type = kwargs.pop('feature_type') user = kwargs.pop('user', None) super().__init__(*args, **kwargs) project = feature_type.project # Status choices initial = 'draft' choices = tuple(x for x in Feature.STATUS_CHOICES) if not project.moderation: choices = tuple(x for x in Feature.STATUS_CHOICES if x[0] != 'pending') initial = 'published' if not self.instance else self.instance.status if project.moderation and not Authorization.has_permission( user, 'can_publish_feature', project): choices = tuple(x for x in Feature.STATUS_CHOICES if x[0] in ['draft', 'pending']) initial = 'pending' if project.moderation and Authorization.has_permission( user, 'can_publish_feature', project): choices = tuple(x for x in Feature.STATUS_CHOICES if x[0] in ['draft', 'published', 'archived']) initial = 'draft' self.fields['status'] = forms.ChoiceField(choices=choices, initial=initial, label='Statut') # TODO: factoriser les attributs de champs geom if feature_type.geom_type == "point": self.fields['geom'] = forms.PointField(label="Localisation", required=True, srid=4326) if feature_type.geom_type == "linestring": self.fields['geom'] = forms.LineStringField(label="Localisation", required=True, srid=4326) if feature_type.geom_type == "polygon": self.fields['geom'] = forms.PolygonField(label="Localisation", required=True, srid=4326)
class PolygonForm(forms.Form): p = forms.PolygonField()
class ProjectAddExtents(forms.ModelForm): extent = gisforms.PolygonField(widget=LeafletWidget(), required=False) class Meta: model = Project fields = ['extent']