diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-11-29 19:34:31 +0100 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-11-29 19:34:31 +0100 |
| commit | afd7fb9c2be01a44a45f582eebdf02632a10be99 (patch) | |
| tree | 05cdd1da4246ddb4e3e8b69c9a968f3e0d14d7b9 /archaeological_finds/models_finds.py | |
| parent | c0c093276dec2a34c5702711e3c3147b98ca4df8 (diff) | |
| download | Ishtar-afd7fb9c2be01a44a45f582eebdf02632a10be99.tar.bz2 Ishtar-afd7fb9c2be01a44a45f582eebdf02632a10be99.zip | |
Basket: manage basket share (ro and edit) - manage alt query own
Diffstat (limited to 'archaeological_finds/models_finds.py')
| -rw-r--r-- | archaeological_finds/models_finds.py | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index 9baced4e0..0c9770186 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -591,6 +591,11 @@ class FindBasket(Basket, OwnPerms): @classmethod def get_query_owns(cls, ishtaruser): + return Q(user=ishtaruser) | Q(shared_with=ishtaruser) | Q( + shared_write_with=ishtaruser) + + @classmethod + def get_write_query_owns(cls, ishtaruser): return Q(user=ishtaruser) def get_extra_actions(self, request): @@ -599,13 +604,18 @@ class FindBasket(Basket, OwnPerms): """ # url, base_text, icon, extra_text, extra css class, is a quick action - # no particular rights: if you can view an itm you can add it to your - # own basket - actions = [ - (reverse("select_itemsinbasket", args=[self.pk]), - _(u"Manage basket"), - "fa fa-shopping-basket", "", "", False), - ] + if not request.user or not request.user.ishtaruser: + return [] + + ishtaruser = request.user.ishtaruser + actions = [] + if self.user == ishtaruser or ishtaruser.pk in [ + user.pk for user in self.shared_write_with.all()]: + actions = [ + (reverse("select_itemsinbasket", args=[self.pk]), + _(u"Manage basket"), + "fa fa-shopping-basket", "", "", False), + ] return actions |
