summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-04-22 14:22:42 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-06-12 08:43:31 +0200
commit9a63b07c1270f47c0409bf463a4197570fef530c (patch)
tree6c8f02fce5a0f73da11c4f415261af424c2ebe9a /ishtar_common/models.py
parentabd0cb791ab4e0ca35136c65ae3ec6def1539f15 (diff)
downloadIshtar-9a63b07c1270f47c0409bf463a4197570fef530c.tar.bz2
Ishtar-9a63b07c1270f47c0409bf463a4197570fef530c.zip
Refactoring of query owns (refs #4060)
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 2ebe07961..c14635a51 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -364,6 +364,34 @@ class OwnPerms(object):
items = [(i, cls.get_short_menu_class(i.pk)) for i in items]
return items
+ @classmethod
+ def _get_query_owns_dicts(cls, ishtaruser):
+ """
+ List of query own dict to construct the query.
+ Each dict are join with an AND operator, each dict key, values are
+ joined with OR operator
+ """
+ return []
+
+ @classmethod
+ def _construct_query_own(cls, prefix, dct_list):
+ q = None
+ for subquery_dict in dct_list:
+ subquery = None
+ for k in subquery_dict:
+ subsubquery = Q(**{prefix + k: subquery_dict[k]})
+ if subquery:
+ subquery |= subsubquery
+ else:
+ subquery = subsubquery
+ if not subquery:
+ continue
+ if q:
+ q &= subquery
+ else:
+ q = subquery
+ return q
+
class Cached(object):
slug_field = 'txt_idx'