예제 #1
0
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'
        })
예제 #2
0
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,
        }))
예제 #3
0
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
        }))
예제 #4
0
파일: forms.py 프로젝트: hcharp/geocontrib
    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)
예제 #5
0
 class PolygonForm(forms.Form):
     p = forms.PolygonField()
예제 #6
0
class ProjectAddExtents(forms.ModelForm):
    extent = gisforms.PolygonField(widget=LeafletWidget(), required=False)

    class Meta:
        model = Project
        fields = ['extent']