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
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
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
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