summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commite2f3099bb54a873e948777a8136562bcc4b058a3 (patch)
tree04735a5e5dd76a86e44bd6b5b02a14d69fc3b696
parent7139cf45633184161616962750971ebe52ee6bcb (diff)
downloadIshtar-e2f3099bb54a873e948777a8136562bcc4b058a3.tar.bz2
Ishtar-e2f3099bb54a873e948777a8136562bcc4b058a3.zip
Add an implicit numerical id (refs #59)
-rw-r--r--ishtar/furnitures/admin.py4
-rw-r--r--ishtar/furnitures/forms.py16
-rw-r--r--ishtar/furnitures/models.py3
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"))