diff options
Diffstat (limited to 'archaeological_files/models.py')
-rw-r--r-- | archaeological_files/models.py | 41 |
1 files changed, 26 insertions, 15 deletions
diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 195418bc8..a9a277280 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -26,7 +26,8 @@ from django.db.models import Q, Count, Sum from django.db.models.signals import post_save, m2m_changed, post_delete from django.utils.translation import ugettext_lazy as _, ugettext -from ishtar_common.utils import cached_label_changed, get_cache +from ishtar_common.utils import cached_label_changed, get_cache, \ + get_current_year from ishtar_common.models import GeneralType, BaseHistorizedItem, \ HistoricalRecords, OwnPerms, Person, Organization, Department, Town, \ @@ -105,8 +106,7 @@ class File(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, } # fields - year = models.IntegerField(_(u"Year"), - default=lambda: datetime.datetime.now().year) + year = models.IntegerField(_(u"Year"), default=get_current_year) numeric_reference = models.IntegerField( _(u"Numeric reference"), blank=True, null=True) internal_reference = models.CharField(_(u"Internal reference"), blank=True, @@ -180,7 +180,7 @@ class File(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, comment = models.TextField(_(u"Comment"), null=True, blank=True) # research archaeology --> departments = models.ManyToManyField( - Department, verbose_name=_(u"Departments"), null=True, blank=True) + Department, verbose_name=_(u"Departments"), blank=True) requested_operation_type = models.ForeignKey( OperationType, related_name='+', null=True, blank=True, verbose_name=_(u"Requested operation type")) @@ -220,14 +220,12 @@ class File(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, verbose_name = _(u"Archaeological file") verbose_name_plural = _(u"Archaeological files") permissions = ( - ("view_file", ugettext(u"Can view all Archaeological files")), - ("view_own_file", ugettext(u"Can view own Archaeological file")), - ("add_own_file", ugettext(u"Can add own Archaeological file")), - ("change_own_file", - ugettext(u"Can change own Archaeological file")), - ("delete_own_file", - ugettext(u"Can delete own Archaeological file")), - ("close_file", ugettext(u"Can close File")), + ("view_file", u"Can view all Archaeological files"), + ("view_own_file", u"Can view own Archaeological file"), + ("add_own_file", u"Can add own Archaeological file"), + ("change_own_file", u"Can change own Archaeological file"), + ("delete_own_file", u"Can delete own Archaeological file"), + ("close_file", u"Can close File"), ) ordering = ('cached_label',) @@ -430,9 +428,9 @@ class File(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, return self.towns.all()[0].numero_insee[:2] @classmethod - def get_query_owns(cls, user): - return (Q(history_creator=user) | - Q(in_charge__ishtaruser=user.ishtaruser)) \ + def get_query_owns(cls, ishtaruser): + return (Q(history_creator=ishtaruser.user_ptr) | + Q(in_charge__ishtaruser=ishtaruser)) \ & Q(end_date__isnull=True) def is_active(self): @@ -554,6 +552,19 @@ class FileByDepartment(models.Model): """ Database view for dashboard """ + CREATE_SQL = """ + CREATE VIEW file_department (id, department_id, file_id) as + select town."id", town."departement_id", file_towns."file_id" + from ishtar_common_town town + inner join archaeological_files_file_towns file_towns + on file_towns."town_id"=town."id" + order by town."departement_id"; + CREATE RULE file_department_delete + AS ON DELETE TO file_department DO INSTEAD(); + """ + DELETE_SQL = """ + DROP VIEW file_department; + """ file = models.ForeignKey(File, verbose_name=_(u"File")) department = models.ForeignKey(Department, verbose_name=_(u"Department"), blank=True, null=True) |