From c55c4fad9972df04273e9a98f9dd4918998e4e70 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 21 Jul 2015 17:47:46 +0200 Subject: Manage lan planner organizations (refs #2671) --- archaeological_files/models.py | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) (limited to 'archaeological_files/models.py') 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() -- cgit v1.2.3