diff options
Diffstat (limited to 'archaeological_finds/models_finds.py')
-rw-r--r-- | archaeological_finds/models_finds.py | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index 35dc6995a..7155f3906 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -1094,14 +1094,21 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, ImageModel, @classmethod def get_query_owns(cls, ishtaruser): - return (Q(base_finds__context_record__operation__scientist= - ishtaruser.person) | - Q(base_finds__context_record__operation__in_charge= - ishtaruser.person) | - Q(base_finds__context_record__operation__collaborators__pk= - ishtaruser.person.pk) | - Q(history_creator=ishtaruser.user_ptr)) \ - & Q(base_finds__context_record__operation__end_date__isnull=True) + profile = ishtaruser.current_profile + town_ids = [] + if profile: + town_ids = [town['pk'] + for town in profile.query_towns.values('pk').all()] + return ( + Q(base_finds__context_record__operation__scientist= + ishtaruser.person) | + Q(base_finds__context_record__operation__in_charge= + ishtaruser.person) | + Q(base_finds__context_record__operation__collaborators__pk= + ishtaruser.person.pk) | + Q(history_creator=ishtaruser.user_ptr) | + Q(base_finds__context_record__operation__towns__pk__in=town_ids) + ) & Q(base_finds__context_record__operation__end_date__isnull=True) @classmethod def get_owns(cls, user, menu_filtr=None, limit=None, |