summaryrefslogtreecommitdiff
path: root/archaeological_files/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_files/models.py')
-rw-r--r--archaeological_files/models.py38
1 files changed, 16 insertions, 22 deletions
diff --git a/archaeological_files/models.py b/archaeological_files/models.py
index 0258cb16d..1cfbe35d3 100644
--- a/archaeological_files/models.py
+++ b/archaeological_files/models.py
@@ -31,9 +31,10 @@ from ishtar_common.utils import cached_label_changed, get_cache
from ishtar_common.models import GeneralType, BaseHistorizedItem, \
HistoricalRecords, OwnPerms, Person, Organization, Department, Town, \
Dashboard, DashboardFormItem, IshtarUser, ValueGetter, ShortMenuItem, \
- OperationType
+ OperationType, get_external_id
-from archaeological_operations.models import get_values_town_related
+from archaeological_operations.models import get_values_town_related, \
+ ClosedItem
class FileType(GeneralType):
@@ -68,8 +69,8 @@ if settings.COUNTRY == 'fr':
ordering = ('label',)
-class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
- DashboardFormItem):
+class File(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,
+ ShortMenuItem, DashboardFormItem):
TABLE_COLS = ['numeric_reference', 'year', 'internal_reference',
'file_type', 'saisine_type', 'towns', ]
year = models.IntegerField(_(u"Year"),
@@ -80,6 +81,8 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
null=True, max_length=60)
external_id = models.CharField(_(u"External ID"), blank=True, null=True,
max_length=120)
+ auto_external_id = models.BooleanField(
+ _(u"External ID is set automatically"), default=False)
name = models.TextField(_(u"Name"), blank=True, null=True)
file_type = models.ForeignKey(FileType, verbose_name=_(u"File type"))
in_charge = models.ForeignKey(Person, related_name='file_responsability',
@@ -133,9 +136,9 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
verbose_name=u"Type de saisine")
instruction_deadline = models.DateField(_(u'Instruction deadline'),
blank=True, null=True)
- total_surface = models.IntegerField(_(u"Total surface (m2)"),
- blank=True, null=True)
- total_developed_surface = models.IntegerField(
+ total_surface = models.FloatField(_(u"Total surface (m2)"),
+ blank=True, null=True)
+ total_developed_surface = models.FloatField(
_(u"Total developed surface (m2)"), blank=True, null=True)
locality = models.CharField(_(u"Locality"),
max_length=100, null=True, blank=True)
@@ -394,18 +397,6 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
def town_list(self):
return u", ".join([unicode(tw) for tw in self.towns.all()])
- def closing(self):
- if self.is_active():
- return
- q = self.history
- if not q.count():
- return {'date': None, 'user': None}
- for item in q.all():
- if not item.end_date:
- break
- return {'date': item.history_date,
- 'user': IshtarUser.objects.get(pk=item.history_modifier_id)}
-
def total_surface_ha(self):
if self.total_surface:
return self.total_surface / 10000.0
@@ -491,14 +482,17 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
self.update_resp_planning_service()
updated += self.update_raw_general_contractor()
updated += self.update_corpo_general_contractor()
- if self.year and self.numeric_reference:
- external_id = u"{}{}-{}".format(settings.ISHTAR_LOCAL_PREFIX,
- self.year, self.numeric_reference)
+
+ if not self.external_id or self.auto_external_id:
+ external_id = get_external_id('file_external_id', self)
if external_id != self.external_id:
updated = True
+ self.auto_external_id = True
self.external_id = external_id
if updated:
self.save()
+ return returned
+
self.update_delay_date()
self.update_short_menu_class()
return returned