Example #1
0
 class Meta:
     model = Poll
     fields = [
         'name', 'start', 'end', 'valid_groups', 'description',
         'comments_allowed'
     ]
     widgets = {
         'start': SplitSelectDateTimeWidget(),
         'end': SplitSelectDateTimeWidget()
     }
Example #2
0
 class Meta:
     model = Event
     fields = ['name', 'start', 'end', 'venue', 'region', 'owner',
               'country', 'city', 'lat', 'lon', 'external_link',
               'planning_pad_url', 'timezone', 'estimated_attendance',
               'description', 'extra_content', 'hashtag', 'mozilla_event',
               'swag_bug', 'budget_bug', 'campaign']
     widgets = {'lat': forms.HiddenInput(attrs={'id': 'lat'}),
                'lon': forms.HiddenInput(attrs={'id': 'lon'}),
                'start': SplitSelectDateTimeWidget(),
                'end': SplitSelectDateTimeWidget()}
Example #3
0
    def __init__(self, *args, **kwargs):
        """Initialize form.

        Dynamically set some fields of the form.
        """
        super(PollEditForm, self).__init__(*args, **kwargs)

        instance = self.instance
        # Set the year portion of the widget
        end_year = getattr(self.instance.end, 'year', now().year)
        self.fields['end_form'] = forms.DateTimeField(
            widget=SplitSelectDateTimeWidget(years=range(
                end_year,
                now().year + 10),
                                             minute_step=5),
            validators=[validate_datetime])
        if self.instance.end:
            self.fields['end_form'].initial = instance.end
Example #4
0
    def __init__(self, *args, **kwargs):
        """Initialize form.

        Dynamically set some fields of the form.
        """
        self.range_poll_formset = kwargs.pop('range_poll_formset')
        self.radio_poll_formset = kwargs.pop('radio_poll_formset')
        super(PollAddForm, self).__init__(*args, **kwargs)

        instance = self.instance
        # Set the year portion of the widget
        start_year = getattr(self.instance.start, 'year', now().year)
        self.fields['start_form'] = forms.DateTimeField(
            widget=SplitSelectDateTimeWidget(years=range(
                start_year,
                now().year + 10),
                                             minute_step=5),
            validators=[validate_datetime])

        if self.instance.start:
            self.fields['start_form'].initial = instance.start
Example #5
0
    def __init__(self, *args, **kwargs):
        """Initialize form.

        Dynamically set choices for country field.
        """
        if 'editable_owner' in kwargs:
            self.editable_owner = kwargs['editable_owner']
            del(kwargs['editable_owner'])

        self.clone = kwargs.pop('clone', None)
        self.user = kwargs.pop('user', None)
        super(EventForm, self).__init__(*args, **kwargs)

        # Dynamic categories field.
        categories_query = FunctionalArea.objects.filter(Q(active=True))

        if self.instance.id and self.instance.categories.all():
            categories_query |= categories_query.filter(Q(id__in=self.instance.categories.all()))
            initial_category = self.instance.categories.all()[0]
            self.fields['categories'].initial = initial_category.id

        categories = ([('', 'Please select a functional area')]
                      + list(categories_query.values_list('id', 'name')))
        self.fields['categories'].choices = categories

        # Intiatives/Campaign field
        self.fields['campaign'].empty_label = 'Please select an initiative.'

        # Dynamic countries field.
        countries = product_details.get_regions('en').values()
        countries.sort()
        country_choices = ([('', 'Country')]
                           + [(country, country) for country in countries])
        self.fields['country'].choices = country_choices

        # Dynamic owner field.
        initial_user = self.instance.owner
        if self.clone:
            initial_user = self.user
        if self.editable_owner:
            self.fields['owner_form'] = forms.ModelChoiceField(
                queryset=User.objects.filter(userprofile__registration_complete=True,
                                             groups__name='Rep').order_by('first_name'),
                empty_label='Owner', initial=initial_user.id)
        else:
            self.fields['owner_form'] = forms.CharField(required=False,
                                                        initial=get_full_name(initial_user),
                                                        widget=forms.TextInput(
                                                            attrs={'readonly': 'readonly',
                                                                   'class': 'input-text big'}))

        instance = self.instance
        # Dynamically set the year portion of the datetime widget
        start_year = min(getattr(self.instance.start, 'year', now().year), now().year - 1)
        end_year = min(getattr(self.instance.end, 'year', now().year), now().year - 1)

        self.fields['start_form'] = forms.DateTimeField(widget=SplitSelectDateTimeWidget(
            years=range(start_year, start_year + 10), minute_step=5),
            validators=[validate_datetime])
        self.fields['end_form'] = forms.DateTimeField(widget=SplitSelectDateTimeWidget(
            years=range(end_year, end_year + 10), minute_step=5),
            validators=[validate_datetime])
        # Make times local to venue
        if self.instance.start:
            start = make_naive(instance.local_start, timezone(instance.timezone))
            self.fields['start_form'].initial = start

        if self.instance.end:
            end = make_naive(instance.local_end, timezone(instance.timezone))
            self.fields['end_form'].initial = end

        # Use of intermediate fields to translate between bug.id and
        # bug.bug_id
        if instance.budget_bug:
            self.fields['budget_bug_form'].initial = instance.budget_bug.bug_id
        if instance.swag_bug:
            self.fields['swag_bug_form'].initial = instance.swag_bug.bug_id