diff options
Diffstat (limited to 'archaeological_files/models.py')
| -rw-r--r-- | archaeological_files/models.py | 58 | 
1 files changed, 52 insertions, 6 deletions
| diff --git a/archaeological_files/models.py b/archaeological_files/models.py index a1b42f722..2b0b299ec 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 | 
