summaryrefslogtreecommitdiff
path: root/archaeological_finds/models_finds.py
diff options
context:
space:
mode:
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
commit0493613840e21a9b72ea6d9d5eaa90968dc7f472 (patch)
tree05cdd1da4246ddb4e3e8b69c9a968f3e0d14d7b9 /archaeological_finds/models_finds.py
parentd55d1326e67635ba9cef04e6423fe5070bad0009 (diff)
downloadIshtar-0493613840e21a9b72ea6d9d5eaa90968dc7f472.tar.bz2
Ishtar-0493613840e21a9b72ea6d9d5eaa90968dc7f472.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.py24
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