diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-01-07 16:29:48 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-01-07 16:29:48 +0100 |
commit | e2f3099bb54a873e948777a8136562bcc4b058a3 (patch) | |
tree | 04735a5e5dd76a86e44bd6b5b02a14d69fc3b696 /ishtar/furnitures/forms.py | |
parent | 7139cf45633184161616962750971ebe52ee6bcb (diff) | |
download | Ishtar-e2f3099bb54a873e948777a8136562bcc4b058a3.tar.bz2 Ishtar-e2f3099bb54a873e948777a8136562bcc4b058a3.zip |
Add an implicit numerical id (refs #59)
Diffstat (limited to 'ishtar/furnitures/forms.py')
-rw-r--r-- | ishtar/furnitures/forms.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py index bf8f089a2..b5437d65f 100644 --- a/ishtar/furnitures/forms.py +++ b/ishtar/furnitures/forms.py @@ -29,6 +29,7 @@ from django.utils.translation import ugettext_lazy as _ from django.template import Context, RequestContext from django.shortcuts import render_to_response from django.forms.formsets import formset_factory, BaseFormSet +from django.db.models import Max from django import forms @@ -115,6 +116,10 @@ class Wizard(NamedUrlSessionFormWizard): datas.append((lbl, value)) return datas + def get_extra_model(self, dct, request, storage, form_list): + dct['history_modifier'] = request.user + return dct + def done(self, request, storage, form_list, return_object=False, **kwargs): """ Save to the model @@ -143,7 +148,7 @@ class Wizard(NamedUrlSessionFormWizard): if key in associated_models: value = associated_models[key].objects.get(pk=value) dct[key] = value - dct['history_modifier'] = request.user + dct = self.get_extra_model(dct, request, storage, form_list) obj = self.model(**dct) obj.save() for key, value in m2m: @@ -239,6 +244,15 @@ class FileWizard(Wizard): files) return form + def get_extra_model(self, dct, request, storage, form_list): + dct = super(FileWizard, self).get_extra_model(dct, request, storage, + form_list) + models.File.objects.filter(year=dct['year']) + current_ref = models.File.objects.filter(year=dct['year'] + ).aggregate(Max('numeric_reference'))["numeric_reference__max"] + dct['numeric_reference'] = current_ref and current_ref + 1 or 1 + return dct + def done(self, request, storage, form_list, **kwargs): ''' Save parcels |