Exemple #1
0
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'
        }
Exemple #2
0
 class Meta:
     model = PythonGroup
     exclude = ('user')
     widgets = {
         'point': forms.HiddenInput(),
         'date_add': forms.HiddenInput(),
         'date_upd': forms.HiddenInput(),
     }
Exemple #3
0
class SelectAreaForm(forms.Form):
    mpoly = forms.CharField(
        widget=forms.HiddenInput(),
        required=False,
    )
    selected_area = forms.CharField(
        label='',
        widget=forms.HiddenInput(),
        required=False,
    )
Exemple #4
0
 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(),
     }
Exemple #5
0
class TrackForm(forms.Form):
    tracks = forms.CharField(
        label=_('Routes'),
        widget=forms.HiddenInput(attrs={'bikeanjo-geojson': 'lines'}),
        required=False)

    def __init__(self, *args, **kwargs):
        self.user = kwargs.pop('user', None)
        super(TrackForm, self).__init__(*args, **kwargs)

    def clean_tracks(self):
        if not self.cleaned_data.get('tracks'):
            return []

        try:
            lines = json.loads(self.cleaned_data.get('tracks'))
            tracks = []

            for line in lines:
                _id = line.get('properties').get('id')

                if _id:
                    track = models.Track.objects.get(id=_id)
                else:
                    track = models.Track()

                track.track = LineString([c for c in line.get('coordinates')])
                track.start = line.get('properties').get('start')
                track.end = line.get('properties').get('end')

                tracks.append(track)

            return tracks
        except ValueError, e:
            raise forms.ValidationError(e.message)
Exemple #6
0
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 = ''
Exemple #7
0
 class Meta:
     model = UserProfile
     exclude = ('user')
     widgets = {
         'point': forms.HiddenInput(),
         'python_frameworks': forms.CheckboxSelectMultiple(),
     }
Exemple #8
0
 class Meta:
     model = Walk
     fields = ("name", "description", "route", "attributes", "submitter")
     widgets = {
         "route":
         ResponsiveMapWidget(attrs={
             "default_zoom": 10,
             "modifiable": True
         }),
         "submitter":
         forms.HiddenInput(),
     }
     help_texts = {
         "name":
         "A descriptive name for this walk",
         "description":
         "Describe the walk in as much detail as you can.\n"
         "Include points of interest and instructions",
         "route":
         "Use the map to enter the walk route.\n"
         "Click on the map to start drawing the route and double click to end.\n"
         "Use the Esc, Delete or Backspace Key to remove only the last point.\n"
         "Use the button to remove all points.",
     }
     error_messages = {
         "route": {
             "required": "Please enter the walk route using the map"
         }
     }
Exemple #9
0
class OrganizationForm(forms.ModelForm):
    organization_id = forms.IntegerField(required=False,
                                         widget=forms.HiddenInput())

    class Meta:
        model = Organization
        exclude = ['slug']
        labels = {'url': 'URL'}
Exemple #10
0
class PointsForm(forms.Form):
    points = forms.CharField(
        label=_('Points'),
        widget=forms.HiddenInput(attrs={'bikeanjo-geojson': 'points'}),
        required=False)

    def __init__(self, *args, **kwargs):
        self.user = kwargs.pop('user', None)
        super(PointsForm, self).__init__(*args, **kwargs)
        self['points'].field.initial = self.load_points()

    def clean_points(self):
        points = []

        if not self.cleaned_data.get('points'):
            return points

        try:
            json_points = json.loads(self.cleaned_data.get('points'))

            if not json_points:
                return points

            for p in json_points:
                _id = p.get('properties').get('id')

                if _id:
                    point = models.Point.objects.get(id=_id)
                else:
                    point = models.Point()

                point.coords = Point(p.get('coordinates'))
                point.address = p.get('properties').get('address')

                points.append(point)

            return points
        except ValueError:
            pass

        return points

    def save(self):
        points = self.cleaned_data['points']
        existent = [point.id for point in points if point.id]
        self.user.point_set.exclude(id__in=existent).delete()

        for point in points:
            point.user = self.user
            point.save()
        return self.cleaned_data['points']

    def load_points(self):
        if self.errors:
            return '[]'

        points = models.Point.objects.filter(user=self.user)
        return '[%s]' % ','.join([p.json() for p in points])
Exemple #11
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.fields["text_value"].widget.attrs["rows"] = 2
     self.fields["text_value"].required = False
     self.fields["date_value"].required = False
     if getattr(self, "instance", None) and self.instance.pk:
         self.fields["name"].disabled = True
     else:
         self.fields["record_change"].widget = forms.HiddenInput()
Exemple #12
0
class HelpRequestCompleteForm(forms.ModelForm):
    help_with = forms.IntegerField()
    geo_json = forms.CharField(widget=forms.HiddenInput(), required=True)

    def save(self):
        self.instance.track = self.save_track()
        super(HelpRequestCompleteForm, self).save()
        self.save_points()
        self.instance.assign_bikeanjo()

        if self.instance.bikeanjo:
            notify_bikeanjo_about_new_request(self.instance)

        return self.instance

    def save_points(self):
        geo_json = self.cleaned_data.get('geo_json')
        points = []

        for p in geo_json.get('points', []):
            point = models.Point()
            point.helprequest = self.instance
            point.user = self.instance.requester
            point.coords = Point(p.get('coordinates'))
            point.address = p.get('properties').get('address')
            points.append(point)

        self.instance.point_set.bulk_create(points)
        return points

    def save_track(self):
        geo_json = self.cleaned_data.get('geo_json')
        line = geo_json.get('track')

        if not line:
            return

        track = models.Track()
        track.user = self.instance.requester
        track.track = LineString([c for c in line.get('coordinates')])
        track.start = line.get('properties').get('start')
        track.end = line.get('properties').get('end')
        track.save()

        return track

    def clean_geo_json(self):
        if type(self.data['geo_json']) in (list, dict):
            return self.data['geo_json']
        return self.cleaned_data['geo_json']

    class Meta:
        model = models.HelpRequest
        fields = (
            'help_with',
            'message',
        )
Exemple #13
0
class VenueForm(forms.ModelForm):
    venue_id = forms.IntegerField(required=False, widget=forms.HiddenInput())

    class Meta:
        model = Venue
        exclude = ['slug']
        widgets = {'description': forms.Textarea(attrs={'rows': 3})}
        labels = {'title': 'Venue Name', 'url': 'URL'}

    class Media:
        js = ('js/sigo.js', 'js/add-form.js')
Exemple #14
0
class AddMessageToEventMarkForm(forms.Form):
    eventmarkid = forms.CharField(widget=forms.HiddenInput())
    message = forms.CharField(label=_('Message'),
                              widget=forms.Textarea(attrs={
                                  'cols': '',
                                  'rows': ''
                              }),
                              required=True)

    def __init__(self, *args, **kwargs):
        self.event = kwargs.pop('event')
        super(AddMessageToEventMarkForm, self).__init__(*args, **kwargs)
Exemple #15
0
class PageForm(forms.ModelForm):
    title = forms.CharField(max_length=128, help_text="Please enter the name of the food")
    url = forms.ChoiceField(choices=FOOD_CHOICES, help_text="Please select the type of food it is")
    views = forms.IntegerField(widget=forms.HiddenInput(), initial=0)

    class Meta:
        # Provide an association between the ModelForm and a model
        model = Page
        # What fields do we want to include in our form?
        # This way we don't need every field in the model present.
        # Some fields may allow NULL values, so we may not want to include them… # Here, we are hiding the foreign key.
        fields = ('title', 'url', 'views')
Exemple #16
0
class ContactForm(forms.ModelForm):
    required_css_class = 'required'
    error_css_class = 'error'

    assessment_uuid = forms.CharField(widget=forms.HiddenInput())

    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'}),
        }
Exemple #17
0
class HelpRequestRouteForm(forms.Form):
    track = forms.CharField(
        label=_('Route'),
        widget=forms.HiddenInput(attrs={'bikeanjo-geojson': 'lines'}),
        required=False)

    def clean_track(self):
        try:
            lines = json.loads(self.cleaned_data.get('track'))
            if type(lines) in (list, tuple) and len(lines) > 0:
                line = lines[0]
                LineString([c for c in line.get('coordinates')])
                assert line.get('properties').get('start')
                assert line.get('properties').get('end')

                return line
        except:
            pass
        raise forms.ValidationError(_('This field is required.'))
Exemple #18
0
class HelpRequestPointForm(forms.Form):
    points = forms.CharField(
        label=_('Points'),
        widget=forms.HiddenInput(attrs={'bikeanjo-geojson': 'points'}),
        required=True)

    def __init__(self, *args, **kwargs):
        super(HelpRequestPointForm, self).__init__(*args, **kwargs)

    def clean_points(self):
        try:
            points = json.loads(self.cleaned_data.get('points'))
            if type(points) in (list, tuple) and len(points) > 0:
                for json_p in points:
                    Point(json_p.get('coordinates'))
                    assert json_p.get('properties').get('address')
                return points
        except:
            pass

        raise forms.ValidationError(_('This field is required.'))
Exemple #19
0
 def add_fields(self, form, index):
     super().add_fields(form, index)
     form.fields[forms.formsets.DELETION_FIELD_NAME].widget = forms.HiddenInput()
Exemple #20
0
 class Meta:
     model = Survey
     exclude = ('user')
     widgets = {
         'date_add': forms.HiddenInput(),
     }