diff options
author | Étienne Loks <etienne.loks@proxience.com> | 2015-07-21 17:47:46 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@proxience.com> | 2015-07-21 17:47:46 +0200 |
commit | 4162b84d564cbf4749224d6107cddaea26033d73 (patch) | |
tree | 28e882ed130ed7d681f958879522cbe5ae24d814 /archaeological_files/models.py | |
parent | 2777328c08b6c4e730f54de97d4f0e6e71b1916f (diff) | |
download | Ishtar-4162b84d564cbf4749224d6107cddaea26033d73.tar.bz2 Ishtar-4162b84d564cbf4749224d6107cddaea26033d73.zip |
Manage lan planner organizations (refs #2671)
Diffstat (limited to 'archaeological_files/models.py')
-rw-r--r-- | archaeological_files/models.py | 36 |
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() |