diff options
Diffstat (limited to 'ishtar/furnitures/forms_common.py')
| -rw-r--r-- | ishtar/furnitures/forms_common.py | 42 | 
1 files changed, 34 insertions, 8 deletions
| diff --git a/ishtar/furnitures/forms_common.py b/ishtar/furnitures/forms_common.py index c62160df6..2082cd2b7 100644 --- a/ishtar/furnitures/forms_common.py +++ b/ishtar/furnitures/forms_common.py @@ -28,6 +28,7 @@ from django.shortcuts import render_to_response  from django.core import validators  from django.core.mail import send_mail  from django.core.exceptions import ObjectDoesNotExist +from django.utils.safestring import mark_safe  from django.forms.formsets import formset_factory, DELETION_FIELD_NAME  from django.utils.translation import ugettext_lazy as _  from django.contrib.auth.models import User @@ -40,11 +41,24 @@ import widgets  from forms import Wizard, FinalForm, FormSet, reverse_lazy, name_validator,\                    clean_duplicated +def get_town_field(required=True): +    help_text = _(u"<p>Type name, department code and/or postal code of the " +    u"town you would like to select. The search is insensitive to case.</p>\n" +    u"<p>Only the first twenty results are displayed but specifying the " +    u"department code is generally sufficient to get the appropriate result.</p>" +    u"\n<p class='example'>For instance type \"saint denis 93\" for getting " +    u"the french town Saint-Denis in the Seine-Saint-Denis department.</p>") +    return forms.IntegerField( +         widget=widgets.JQueryAutoComplete("/" + settings.URL_PATH + \ +                     'autocomplete-town', associated_model=models.Town), +         validators=[models.valid_id(models.Town)], label=_(u"Town"), +         help_text=mark_safe(help_text), required=required) +  class WarehouseForm(forms.Form):      name = forms.CharField(label=_(u"Name"), max_length=40,                                validators=[name_validator])      warehouse_type = forms.ChoiceField(label=_(u"Warehouse type"), -                                  choices=models.WarehouseType.get_types()) +                                       choices=[])      person_in_charge = forms.IntegerField(label=_(u"Person in charge"),           widget=widgets.JQueryAutoComplete(             reverse_lazy('autocomplete-person'), associated_model=models.Person), @@ -65,6 +79,13 @@ class WarehouseForm(forms.Form):      mobile_phone = forms.CharField(label=_(u"Town"), max_length=18,                                     required=False) +    def __init__(self, *args, **kwargs): +        super(WarehouseForm, self).__init__(*args, **kwargs) +        self.fields['warehouse_type'].choices = \ +                                          models.WarehouseType.get_types() +        self.fields['warehouse_type'].help_text = \ +                                          models.WarehouseType.get_help() +      def save(self, user):          dct = self.cleaned_data          dct['history_modifier'] = user @@ -81,7 +102,7 @@ class OrganizationForm(forms.Form):      name = forms.CharField(label=_(u"Name"), max_length=40,                                validators=[name_validator])      organization_type = forms.ChoiceField(label=_(u"Organization type"), -                                  choices=models.OrganizationType.get_types()) +                                          choices=[])      address = forms.CharField(label=_(u"Address"), widget=forms.Textarea,                                required=False)      address_complement = forms.CharField(label=_(u"Address complement"), @@ -95,6 +116,13 @@ class OrganizationForm(forms.Form):      mobile_phone = forms.CharField(label=_(u"Town"), max_length=18,                                     required=False) +    def __init__(self, *args, **kwargs): +        super(OrganizationForm, self).__init__(*args, **kwargs) +        self.fields['organization_type'].choices = \ +                                          models.OrganizationType.get_types() +        self.fields['organization_type'].help_text = \ +                                          models.OrganizationType.get_help() +      def save(self, user):          dct = self.cleaned_data          dct['history_modifier'] = user @@ -128,7 +156,7 @@ class PersonForm(forms.Form):      email = forms.CharField(label=_(u"Email"), max_length=40, required=False,                              validators=[validators.validate_email])      person_type = forms.ChoiceField(label=_("Person type"), -                                  choices=models.PersonType.get_types()) +                                  choices=[])      attached_to = forms.IntegerField(label=_("Current organization"),    widget=widgets.JQueryAutoComplete(reverse_lazy('autocomplete-organization'),    associated_model=models.Organization, new=True), @@ -141,6 +169,7 @@ class PersonForm(forms.Form):      def __init__(self, *args, **kwargs):          super(PersonForm, self).__init__(*args, **kwargs)          self.fields['person_type'].choices = models.PersonType.get_types() +        self.fields['person_type'].help_text = models.PersonType.get_help()      def save(self, user):          dct = self.cleaned_data @@ -255,7 +284,7 @@ class AccountForm(forms.Form):      form_label = _("Account")      associated_models = {'pk':models.Person}      currents = {'pk':models.Person} -    pk = forms.IntegerField(widget=forms.HiddenInput, required=False) +    pk = forms.IntegerField(label=u"", widget=forms.HiddenInput, required=False)      username = forms.CharField(label=_(u"Account"), max_length=30)      email = forms.CharField(label=_(u"Email"), max_length=75,                              validators=[validators.validate_email]) @@ -310,10 +339,7 @@ class TownForm(forms.Form):      form_label = _("Towns")      associated_models = {'town':models.Town}      # !FIXME hard_link, reverse_lazy doen't seem to work with formsets -    town = forms.IntegerField(label=_(u"Town"), required=False, -         widget=widgets.JQueryAutoComplete("/" + settings.URL_PATH + \ -                     'autocomplete-town', associated_model=models.Town), -         validators=[models.valid_id(models.Town)]) +    town = get_town_field(required=False)  class TownFormSet(FormSet):      def clean(self): | 
