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 9bdfc6146..4c9705641 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 |