예제 #1
0
파일: forms.py 프로젝트: danyjavierb/remo
    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'])

        super(EventForm, self).__init__(*args, **kwargs)

        # 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.
        if self.editable_owner:
            self.fields['owner_form'] = forms.ModelChoiceField(
                queryset=User.objects.filter(
                    userprofile__registration_complete=True,
                    groups__name='Rep'),
                empty_label='Owner', initial=self.instance.owner.pk)
        else:
            self.fields['owner_form'] = forms.CharField(
                required=False, initial=get_full_name(self.instance.owner),
                widget=forms.TextInput(attrs={'readonly': 'readonly',
                                              'class': 'input-text big'}))

        instance = self.instance
        # Dynamically set the year portion of the datetime widget
        now = datetime.now()
        start_year = getattr(self.instance.start, 'year', now.year)
        end_year = getattr(self.instance.end, 'year', now.year)
        self.fields['start_form'] = forms.DateTimeField(
            widget=SplitSelectDateTimeWidget(
                years=range(start_year, now.year + 10), minute_step=5),
            validators=[validate_datetime])
        self.fields['end_form'] = forms.DateTimeField(
            widget=SplitSelectDateTimeWidget(
                years=range(end_year, now.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
예제 #2
0
파일: forms.py 프로젝트: AshishNamdev/remo
    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"])

        super(EventForm, self).__init__(*args, **kwargs)

        # 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.
        if self.editable_owner:
            self.fields["owner_form"] = forms.ModelChoiceField(
                queryset=User.objects.filter(userprofile__registration_complete=True, groups__name="Rep"),
                empty_label="Owner",
                initial=self.instance.owner.pk,
            )
        else:
            self.fields["owner_form"] = forms.CharField(
                required=False,
                initial=get_full_name(self.instance.owner),
                widget=forms.TextInput(attrs={"readonly": "readonly", "class": "input-text big"}),
            )

        instance = self.instance
        # 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
예제 #3
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'])

        super(EventForm, self).__init__(*args, **kwargs)

        # 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.
        if self.editable_owner:
            self.fields['owner_form'] = forms.ModelChoiceField(
                queryset=User.objects.filter(
                    userprofile__registration_complete=True,
                    groups__name='Rep'),
                empty_label='Owner',
                initial=self.instance.owner.pk)
        else:
            self.fields['owner_form'] = forms.CharField(
                required=False,
                initial=get_full_name(self.instance.owner),
                widget=forms.TextInput(attrs={
                    'readonly': 'readonly',
                    'class': 'input-text big'
                }))

        instance = self.instance
        # Dynamically set the year portion of the datetime widget
        now = datetime.now()
        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
예제 #4
0
파일: forms.py 프로젝트: flaki/remo
    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