diff options
Diffstat (limited to 'ishtar_common/models.py')
| -rw-r--r-- | ishtar_common/models.py | 28 | 
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' | 
