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() | 
