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.py36
1 files changed, 32 insertions, 4 deletions
diff --git a/archaeological_files/models.py b/archaeological_files/models.py
index 4c9705641..1910de7d6 100644
--- a/archaeological_files/models.py
+++ b/archaeological_files/models.py
@@ -80,19 +80,28 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
on_delete=models.SET_NULL,
blank=True, null=True)
general_contractor = models.ForeignKey(Person,
- related_name='general_contractor',
+ related_name='general_contractor_files',
verbose_name=_(u"General contractor"), blank=True, null=True,
- on_delete=models.SET_NULL,) # aménageur
+ on_delete=models.SET_NULL,) # aménageur - personne
raw_general_contractor = models.CharField(_(u"General contractor (raw)"),
max_length=200, blank=True, null=True)
+ corporation_general_contractor = models.ForeignKey(Organization,
+ related_name='general_contractor_files',
+ verbose_name=_(u"General contractor - corporation"), blank=True,
+ null=True, on_delete=models.SET_NULL,) # aménageur
responsible_town_planning_service = models.ForeignKey(Person,
- related_name='responsible_town_planning_service',
+ related_name='responsible_town_planning_service_files',
blank=True, null=True,
verbose_name=_(u"Responsible for town planning service"),
- on_delete=models.SET_NULL,) # service instructeur
+ on_delete=models.SET_NULL,) # service instructeur - personne
raw_town_planning_service = models.CharField(
_(u"Town planning service (raw)"), max_length=200,
blank=True, null=True)
+ planning_service = models.ForeignKey( Organization,
+ related_name='planning_service_files',
+ blank=True, null=True,
+ verbose_name=_(u"Planning service - corporation"),
+ on_delete=models.SET_NULL,) # service instructeur
permit_type = models.ForeignKey(PermitType, verbose_name=_(u"Permit type"),
blank=True, null=True)
permit_reference = models.CharField(_(u"Permit reference"),
@@ -340,6 +349,15 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
self.raw_town_planning_service = lbl[:200]
return current_lbl != self.raw_town_planning_service
+ def update_planning_service(self):
+ if not self.responsible_town_planning_service or \
+ self.responsible_town_planning_service.attached_to \
+ == self.planning_service:
+ return False
+ self.planning_service = \
+ self.responsible_town_planning_service.attached_to
+ return True
+
def update_raw_general_contractor(self):
if (self.raw_general_contractor and not \
self.general_contractor) or \
@@ -354,13 +372,23 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
self.raw_general_contractor = lbl[:200]
return current_lbl != self.raw_general_contractor
+ def update_corpo_general_contractor(self):
+ if not self.general_contractor or \
+ self.general_contractor.attached_to \
+ == self.corporation_general_contractor:
+ return False
+ self.corporation_general_contractor = \
+ self.general_contractor.attached_to
+ return True
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_planning_service()
updated += self.update_raw_general_contractor()
+ updated += self.update_corpo_general_contractor()
if updated:
self.save()
self.update_delay_date()