diff options
Diffstat (limited to 'archaeological_files/models.py')
| -rw-r--r-- | archaeological_files/models.py | 27 | 
1 files changed, 20 insertions, 7 deletions
| diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 52f628817..2a4bcb0aa 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")) @@ -430,9 +430,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 +554,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) | 
