diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-04-07 12:16:37 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-04-07 12:16:37 +0200 |
commit | 6b87dae76d931ead9838db1f66a6ff1fe1cc1dd1 (patch) | |
tree | 0a2273d9db0499214e18a041987339eac9d20ac9 /archaeological_context_records/models.py | |
parent | 75730c0ac55c935c03e58977405b4b8a2233595d (diff) | |
parent | 3d8b8d86f01ecb9b37e24e25fd15500b8f4fb2a0 (diff) | |
download | Ishtar-6b87dae76d931ead9838db1f66a6ff1fe1cc1dd1.tar.bz2 Ishtar-6b87dae76d931ead9838db1f66a6ff1fe1cc1dd1.zip |
Merge branch 'master' into v0.9
Diffstat (limited to 'archaeological_context_records/models.py')
-rw-r--r-- | archaeological_context_records/models.py | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index 4df56c49f..bb3afc899 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -159,7 +159,7 @@ class CRBulkView(object): class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, - ValueGetter, ShortMenuItem): + ValueGetter, ShortMenuItem): SHOW_URL = 'show-contextrecord' SLUG = 'contextrecord' TABLE_COLS = ['label', 'operation__common_name', 'parcel__town__name', @@ -365,9 +365,11 @@ class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, @classmethod def get_query_owns(cls, user): - return Q(operation__scientist=user.ishtaruser.person) |\ - Q(operation__in_charge=user.ishtaruser.person) |\ - Q(history_creator=user) + return (Q(operation__scientist=user.ishtaruser.person) | + Q(operation__in_charge=user.ishtaruser.person) | + Q(operation__collaborators__pk=user.ishtaruser.person.pk) | + Q(history_creator=user)) \ + & Q(operation__end_date__isnull=True) @classmethod def get_owns(cls, user, menu_filtr=None, limit=None, @@ -401,8 +403,16 @@ class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, return self.full_label() def _get_associated_cached_labels(self): - from archaeological_finds.models import Find - return list(Find.objects.filter(base_finds__context_record=self).all()) + from archaeological_finds.models import Find, BaseFind + return list(Find.objects.filter(base_finds__context_record=self).all())\ + + list(BaseFind.objects.filter(context_record=self).all()) + + def _cached_labels_bulk_update(self): + if settings.TESTING and settings.USE_SPATIALITE_FOR_TESTS: + return + self.base_finds.model.cached_label_bulk_update( + context_record_id=self.pk) + return True @property def reference(self): @@ -615,6 +625,18 @@ class ContextRecordSource(Source): class Meta: verbose_name = _(u"Context record documentation") verbose_name_plural = _(u"Context record documentations") + permissions = ( + ("view_contextrecordsource", + ugettext(u"Can view all Context record sources")), + ("view_own_contextrecordsource", + ugettext(u"Can view own Context record source")), + ("add_own_contextrecordsource", + ugettext(u"Can add own Context record source")), + ("change_own_contextrecordsource", + ugettext(u"Can change own Context record source")), + ("delete_own_contextrecordsource", + ugettext(u"Can delete own Context record source")), + ) context_record = models.ForeignKey( ContextRecord, verbose_name=_(u"Context record"), related_name="source") @@ -622,3 +644,12 @@ class ContextRecordSource(Source): @property def owner(self): return self.context_record + + @classmethod + def get_query_owns(cls, user): + return ( + Q(context_record__operation__scientist=user.ishtaruser.person) | + Q(context_record__operation__in_charge=user.ishtaruser.person) | + Q(context_record__operation__collaborators__pk= + user.ishtaruser.person.pk)) \ + & Q(context_record__operation__end_date__isnull=True) |