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 Meta: model = PythonGroup exclude = ('user') widgets = { 'point': forms.HiddenInput(), 'date_add': forms.HiddenInput(), 'date_upd': forms.HiddenInput(), }
class SelectAreaForm(forms.Form): mpoly = forms.CharField( widget=forms.HiddenInput(), required=False, ) selected_area = forms.CharField( label='', widget=forms.HiddenInput(), required=False, )
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 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)
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 Meta: model = UserProfile exclude = ('user') widgets = { 'point': forms.HiddenInput(), 'python_frameworks': forms.CheckboxSelectMultiple(), }
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" } }
class OrganizationForm(forms.ModelForm): organization_id = forms.IntegerField(required=False, widget=forms.HiddenInput()) class Meta: model = Organization exclude = ['slug'] labels = {'url': 'URL'}
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])
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()
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', )
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')
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)
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')
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'}), }
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.'))
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.'))
def add_fields(self, form, index): super().add_fields(form, index) form.fields[forms.formsets.DELETION_FIELD_NAME].widget = forms.HiddenInput()
class Meta: model = Survey exclude = ('user') widgets = { 'date_add': forms.HiddenInput(), }