summaryrefslogtreecommitdiff
path: root/ishtar_common/forms_common.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-10-27 00:40:22 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-10-27 00:40:22 +0200
commitc6ebf3353c9b981c3c805b82bf4d48bb8731262a (patch)
treeccd91e634e13948fec375332a27e5f6298f30583 /ishtar_common/forms_common.py
parent8d9fa3c928d888533412be6bb59d58fddd230d1e (diff)
downloadIshtar-c6ebf3353c9b981c3c805b82bf4d48bb8731262a.tar.bz2
Ishtar-c6ebf3353c9b981c3c805b82bf4d48bb8731262a.zip
Add person type to new person creation form (refs #1427)
Diffstat (limited to 'ishtar_common/forms_common.py')
-rw-r--r--ishtar_common/forms_common.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index 0a001883c..661709a09 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -139,6 +139,14 @@ class PersonForm(forms.Form):
reverse_lazy('autocomplete-organization'),
associated_model=models.Organization, new=True),
validators=[models.valid_id(models.Organization)], required=False)
+ person_types = forms.MultipleChoiceField(label=_("Person type"),
+ choices=[], widget=forms.CheckboxSelectMultiple)
+
+ def __init__(self, *args, **kwargs):
+ super(PersonForm, self).__init__(*args, **kwargs)
+ self.fields['person_types'].choices = models.PersonType.get_types(
+ empty_first=False)
+ self.fields['person_types'].help_text = models.PersonType.get_help()
def save(self, user):
dct = self.cleaned_data
@@ -146,8 +154,10 @@ class PersonForm(forms.Form):
if 'attached_to' in dct and dct['attached_to']:
dct['attached_to'] = models.Organization.objects.get(
pk=dct['attached_to'])
- new_item = models.Person(**dct)
- new_item.save()
+ person_types = dct.pop('person_types')
+ new_item = models.Person.objects.create(**dct)
+ for pt in person_types:
+ new_item.person_types.add(pt)
return new_item
class PersonTypeForm(forms.Form):