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 | |
parent | 7139cf45633184161616962750971ebe52ee6bcb (diff) | |
download | Ishtar-e2f3099bb54a873e948777a8136562bcc4b058a3.tar.bz2 Ishtar-e2f3099bb54a873e948777a8136562bcc4b058a3.zip |
Add an implicit numerical id (refs #59)
-rw-r--r-- | ishtar/furnitures/admin.py | 4 | ||||
-rw-r--r-- | ishtar/furnitures/forms.py | 16 | ||||
-rw-r--r-- | ishtar/furnitures/models.py | 3 |
3 files changed, 19 insertions, 4 deletions
diff --git a/ishtar/furnitures/admin.py b/ishtar/furnitures/admin.py index cfc65507f..b7821fb43 100644 --- a/ishtar/furnitures/admin.py +++ b/ishtar/furnitures/admin.py @@ -58,8 +58,8 @@ class PersonAdmin(HistorizedObjectAdmin): admin.site.register(models.Person, PersonAdmin) class FileAdmin(HistorizedObjectAdmin): - list_display = ['year', 'internal_reference', 'is_active', 'file_type', - 'general_contractor',] + list_display = ['year', 'numeric_reference', 'internal_reference', + 'is_active', 'file_type', 'general_contractor',] if settings.COUNTRY == 'fr': list_display += ['saisine_type', 'reference_number'] list_filter = ("file_type", "year", 'is_active',) 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 diff --git a/ishtar/furnitures/models.py b/ishtar/furnitures/models.py index 112970bb1..7e9822b89 100644 --- a/ishtar/furnitures/models.py +++ b/ishtar/furnitures/models.py @@ -219,8 +219,9 @@ if settings.COUNTRY == 'fr': class File(BaseHistorizedItem, OwnPerms): year = models.IntegerField(_(u"Year"), default=lambda:datetime.datetime.now().year) + numeric_reference = models.IntegerField(_(u"Numeric reference")) internal_reference = models.CharField(_(u"Internal reference"), - max_length=60) + max_length=60, unique=True) file_type = models.ForeignKey(FileType, verbose_name=_(u"File type")) in_charge = models.ForeignKey(Person, related_name='+', verbose_name=_(u"Person in charge")) |