def __init__(self, *args, **kwargs): super(SubscribeForm, self).__init__(*args, **kwargs) self.fields['email'].required = True #self.fields['lastname'].required = True #Do not display (Mrs and M) gender on subscribe form self.fields['gender'].choices = self.fields['gender'].choices[:3] entity_types_choices = [] if crm_settings.ALLOW_SINGLE_CONTACT: entity_types_choices.append((0, _(u'Individual'))) else: entity_types_choices.append((0, '')) entity_types_choices.extend([ (et.id, et.name) for et in EntityType.objects.filter(subscribe_form=True) ]) self.fields['entity_type'].choices = entity_types_choices self.fields['groups'].choices = [ (group.id, group.name) for group in Group.objects.filter(subscribe_form=True) ] self.fields['action_types'].choices = [ (action_type.id, action_type.name) for action_type in ActionType.objects.filter(subscribe_form=True) ] self._add_subscription_types_field() if crm_settings.has_language_choices(): self.fields['favorite_language'].initial = get_language()
def __init__(self, *args, **kwargs): self.subscription_type = kwargs.pop('subscription_type', None) super(EmailSubscribeForm, self).__init__(*args, **kwargs) self.fields['favorite_language'].widget = forms.HiddenInput() if crm_settings.has_language_choices(): self.fields['favorite_language'].initial = get_language()
def __init__(self, *args, **kwargs): super(MinimalSubscribeForm, self).__init__(*args, **kwargs) self.fields['email'].required = True self._add_subscription_types_field() if crm_settings.has_language_choices(): self.fields['favorite_language'].initial = get_language()
def __init__(self, *args, **kwargs): super(SubscribeForm, self).__init__(*args, **kwargs) self.fields['email'].required = True # Do not display (Mrs and M) gender on subscribe form self.fields['gender'].choices = [ (models.Contact.GENDER_NOT_SET, _('')), (models.Contact.GENDER_MALE, ugettext('Mr')), (models.Contact.GENDER_FEMALE, ugettext('Mrs')), ] entity_types_choices = [] if crm_settings.ALLOW_SINGLE_CONTACT: entity_types_choices.append((0, _('Individual'))) else: entity_types_choices.append((0, '')) entity_types_choices.extend([ (et.id, et.name) for et in EntityType.objects.filter(subscribe_form=True) ]) self.fields['entity_type'].choices = entity_types_choices self.fields['groups'].choices = [ (group.id, group.name) for group in Group.objects.filter(subscribe_form=True) ] self.fields['action_types'].choices = [ (action_type.id, action_type.name) for action_type in ActionType.objects.filter(subscribe_form=True) ] self._add_subscription_types_field() if crm_settings.has_language_choices(): self.fields['favorite_language'].initial = get_language()
def __init__(self, *args, **kwargs): # Configure the fieldset with dynamic fields fieldset_fields = self.Meta.fieldsets[-2][1]["fields"] for subscription_type in models.SubscriptionType.objects.all(): field_name = "subscription_{0}".format(subscription_type.id) if field_name not in fieldset_fields: fieldset_fields.append(field_name) has_data = len(args) > 0 super(ContactForm, self).__init__(*args, **kwargs) try: if self.instance and self.instance.entity and self.instance.entity.is_single_contact: self.fields['has_left'].widget = forms.HiddenInput() except models.Entity.DoesNotExist: pass self.fields["role"].help_text = _( "Select the roles played by the contact in his entity") if 'balafon.Profile' not in settings.INSTALLED_APPS: self.fields["accept_notifications"].widget = forms.HiddenInput() if has_data: self.fields.pop("email_verified") else: self.fields["email_verified"].widget.attrs['disabled'] = "disabled" # define the allowed gender gender_choices = [ (models.Contact.GENDER_NOT_SET, '-------'), (models.Contact.GENDER_MALE, ugettext('Mr')), (models.Contact.GENDER_FEMALE, ugettext('Mrs')), ] if ALLOW_COUPLE_GENDER: gender_choices += [(models.Contact.GENDER_COUPLE, ugettext('Mrs and Mr'))] self.fields['gender'].choices = gender_choices # create the dynamic fields for subscription_type in models.SubscriptionType.objects.all(): field_name = "subscription_{0}".format(subscription_type.id) field = self.fields[field_name] = forms.BooleanField( label=subscription_type.name, required=False) if self.instance and self.instance.id: try: subscription = models.Subscription.objects.get( subscription_type=subscription_type, contact=self.instance) field.initial = subscription.accept_subscription except models.Subscription.DoesNotExist: field.initial = False else: field.initial = get_subscription_default_value() if has_language_choices(): self.fields['favorite_language'].widget = forms.Select( choices=get_language_choices(), attrs={'class': 'form-control'}) else: self.fields['favorite_language'].widget = forms.HiddenInput() if not self.instance or not any([ self.instance.lastname, self.instance.firstname, self.instance.email ]): # If the contact has not been created of not filled pass # keep the widget if len(args): # The form has been posted; we must initialize the list with allowed values contact_id = self.instance.id if self.instance else None post_data = args[0] lastname = post_data.get('lastname', '') firstname = post_data.get('firstname', '') email = post_data.get('email', '') same_as_contacts = get_suggested_same_as_contacts( contact_id=contact_id, lastname=lastname, firstname=firstname, email=email) self.fields['same_as_suggestions'].choices = [ (contact.id, '{0}'.format(contact)) for contact in same_as_contacts ] else: # hide the field self.fields['same_as_suggestions'].widget = forms.HiddenInput()
def __init__(self, *args, **kwargs): # Configure the fieldset with dynamic fields fieldset_fields = self.Meta.fieldsets[-2][1]["fields"] for subscription_type in models.SubscriptionType.objects.all(): field_name = "subscription_{0}".format(subscription_type.id) if field_name not in fieldset_fields: fieldset_fields.append(field_name) super(ContactForm, self).__init__(*args, **kwargs) try: if self.instance and self.instance.entity and self.instance.entity.is_single_contact: self.fields['has_left'].widget = forms.HiddenInput() except models.Entity.DoesNotExist: pass self.fields["role"].help_text = _(u"Select the roles played by the contact in his entity") if 'balafon.Profile' not in settings.INSTALLED_APPS: self.fields["accept_notifications"].widget = forms.HiddenInput() self.fields["email_verified"].widget.attrs['disabled'] = "disabled" # define the allowed gender gender_choices = [ (0, u'-------'), (models.Contact.GENDER_MALE, ugettext(u'Mr')), (models.Contact.GENDER_FEMALE, ugettext(u'Mrs')), ] if ALLOW_COUPLE_GENDER: gender_choices += [ (models.Contact.GENDER_COUPLE, ugettext(u'Mrs and Mr')) ] self.fields['gender'].choices = gender_choices # create the dynamic fields for subscription_type in models.SubscriptionType.objects.all(): field_name = "subscription_{0}".format(subscription_type.id) field = self.fields[field_name] = forms.BooleanField( label=subscription_type.name, required=False ) if self.instance: try: subscription = models.Subscription.objects.get( subscription_type=subscription_type, contact=self.instance ) field.initial = subscription.accept_subscription except models.Subscription.DoesNotExist: field.initial = get_subscription_default_value() else: field.initial = get_subscription_default_value() if has_language_choices(): self.fields['favorite_language'].widget = forms.Select( choices=get_language_choices(), attrs={'class': 'form-control'} ) else: self.fields['favorite_language'].widget = forms.HiddenInput() if not self.instance or not any([self.instance.lastname, self.instance.firstname, self.instance.email]): # If the contact has not been created of not filled pass # keep the widget if len(args): # The form has been posted; we must initialize the list with allowed values contact_id = self.instance.id if self.instance else None post_data = args[0] lastname = post_data.get('lastname', '') firstname = post_data.get('firstname', '') email = post_data.get('email', '') same_as_contacts = get_suggested_same_as_contacts( contact_id=contact_id, lastname=lastname, firstname=firstname, email=email ) self.fields['same_as_suggestions'].choices = [ (contact.id, unicode(contact)) for contact in same_as_contacts ] else: # hide the field self.fields['same_as_suggestions'].widget = forms.HiddenInput()