From 9a9185d3d57199aab84fee770898f4c290709b70 Mon Sep 17 00:00:00 2001 From: j Date: Thu, 11 Feb 2016 21:25:16 +0530 Subject: [PATCH] use peer.library in some places --- oml/queryparser.py | 11 +++++++++-- oml/user/models.py | 6 ++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/oml/queryparser.py b/oml/queryparser.py index d492c27..ea4f9c0 100644 --- a/oml/queryparser.py +++ b/oml/queryparser.py @@ -124,8 +124,15 @@ class Parser(object): u = self._user.query.filter_by(nickname=nickname).one() else: u = self._user.query.filter_by(id=settings.USER_ID).one() - l = self._list.query.filter_by(user_id=u.id, name=name).one() - ids = l.get_items().options(load_only('id')) + if nickname: + peer = utils.get_peer(u.id) + if name: + ids = peer.info['lists'].get(name, []) + else: + ids = list(peer.library.keys()) + else: + l = self._list.query.filter_by(user_id=u.id, name=name).one() + ids = l.get_items().options(load_only('id')) in_op = operators.notin_op if exclude else operators.in_op q = in_op(self._model.id, ids) return q diff --git a/oml/user/models.py b/oml/user/models.py index 89768c2..a503933 100644 --- a/oml/user/models.py +++ b/oml/user/models.py @@ -372,6 +372,12 @@ class List(db.Model): return self.public_id def items_count(self): + if self.user_id != settings.USER_ID: + peer = utils.get_peer(self.user_id) + if self.name: + return len(peer.info['lists'].get(self.name, [])) + else: + return len(peer.library) return self.get_items().count() def json(self):