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.py58
1 files changed, 52 insertions, 6 deletions
diff --git a/archaeological_files/models.py b/archaeological_files/models.py
index 9bdfc6146..4c9705641 100644
--- a/archaeological_files/models.py
+++ b/archaeological_files/models.py
@@ -46,7 +46,7 @@ class FileType(GeneralType):
try:
preventive = FileType.objects.get(txt_idx=key).pk
return file_type_id == preventive
- except ObjectDoesNotExist:
+ except FileType.DoesNotExist:
return False
class PermitType(GeneralType):
@@ -57,7 +57,7 @@ class PermitType(GeneralType):
if settings.COUNTRY == 'fr':
class SaisineType(GeneralType, ValueGetter):
- delay = models.IntegerField(_(u"Delay (in days)"))
+ delay = models.IntegerField(_(u"Delay (in days)"), default=30)
class Meta:
verbose_name = u"Type Saisine"
verbose_name_plural = u"Types Saisine"
@@ -83,16 +83,23 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
related_name='general_contractor',
verbose_name=_(u"General contractor"), blank=True, null=True,
on_delete=models.SET_NULL,) # aménageur
+ raw_general_contractor = models.CharField(_(u"General contractor (raw)"),
+ max_length=200, blank=True, null=True)
responsible_town_planning_service = models.ForeignKey(Person,
related_name='responsible_town_planning_service',
blank=True, null=True,
verbose_name=_(u"Responsible for town planning service"),
on_delete=models.SET_NULL,) # service instructeur
+ raw_town_planning_service = models.CharField(
+ _(u"Town planning service (raw)"), max_length=200,
+ blank=True, null=True)
permit_type = models.ForeignKey(PermitType, verbose_name=_(u"Permit type"),
blank=True, null=True)
permit_reference = models.CharField(_(u"Permit reference"),
max_length=60, blank=True, null=True)
end_date = models.DateField(_(u"Closing date"), null=True, blank=True)
+ main_town = models.ForeignKey(Town, verbose_name=_(u"Town"), null=True,
+ blank=True, related_name='file_main')
towns = models.ManyToManyField(Town, verbose_name=_(u"Towns"),
related_name='file')
creation_date = models.DateField(_(u"Creation date"),
@@ -106,13 +113,15 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
verbose_name= u"Type de saisine")
reference_number = models.IntegerField(_(u"Ref. number"),
blank=True, null=True)
+ instruction_deadline = models.DateField(_(u'Instruction deadline'),
+ blank=True, null=True)
total_surface = models.IntegerField(_(u"Total surface (m²)"),
blank=True, null=True)
total_developed_surface = models.IntegerField(
_(u"Total developed surface (m²)"), blank=True, null=True)
+ locality = models.CharField(_(u"Locality"),
+ max_length=100, null=True, blank=True)
address = models.TextField(_(u"Main address"), null=True, blank=True)
- address_complement = models.TextField(_(u"Main address - complement"),
- null=True, blank=True)
postal_code = models.CharField(_(u"Main address - postal code"),
max_length=10, null=True, blank=True)
comment = models.TextField(_(u"Comment"), null=True, blank=True)
@@ -253,7 +262,7 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
@property
def reference(self):
- return u"-".join((unicode(self.year),
+ return settings.FILE_PREFIX+u"-".join((unicode(self.year),
unicode(self.numeric_reference or '0')))
def _generate_cached_label(self):
@@ -268,7 +277,9 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
def get_town_label(self):
lbl = unicode(_('Intercommunal'))
- if self.towns.count() == 1:
+ if self.main_town:
+ lbl = self.main_town.name
+ elif self.towns.count() == 1:
lbl = self.towns.all()[0].name
return lbl
@@ -315,8 +326,43 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
acts.append(act)
return acts
+ def update_raw_town_planning_service(self):
+ if (self.raw_town_planning_service and not \
+ self.responsible_town_planning_service) or \
+ not self.responsible_town_planning_service:
+ return False
+ current_lbl = ""
+ if self.raw_town_planning_service:
+ current_lbl = self.raw_town_planning_service[:]
+ lbl = unicode(self.responsible_town_planning_service)
+ if not lbl:
+ return False
+ self.raw_town_planning_service = lbl[:200]
+ return current_lbl != self.raw_town_planning_service
+
+ def update_raw_general_contractor(self):
+ if (self.raw_general_contractor and not \
+ self.general_contractor) or \
+ not self.general_contractor:
+ return False
+ current_lbl = ""
+ if self.raw_general_contractor:
+ current_lbl = self.raw_general_contractor[:]
+ lbl = unicode(self.general_contractor)
+ if not lbl:
+ return False
+ self.raw_general_contractor = lbl[:200]
+ return current_lbl != self.raw_general_contractor
+
+
def save(self, *args, **kwargs):
returned = super(File, self).save(*args, **kwargs)
+ if self.main_town and not self.main_town in list(self.towns.all()):
+ self.towns.add(self.main_town)
+ updated = self.update_raw_town_planning_service()
+ updated += self.update_raw_general_contractor()
+ if updated:
+ self.save()
self.update_delay_date()
self.update_short_menu_class()
return returned