mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-01-29 16:58:21 -05:00
Add each_<userrel>() method.
This commit is contained in:
@@ -63,16 +63,19 @@ class UserRelManager(object):
|
||||
return self.add(thing, user, **attrs)
|
||||
|
||||
def ids(self, thing):
|
||||
q = self.relation._query(self.relation.c._thing1_id == thing._id,
|
||||
self.relation.c._name == self.name,
|
||||
sort='_date')
|
||||
return [r._thing2_id for r in q]
|
||||
return [r._thing2_id for r in self.by_thing(thing)]
|
||||
|
||||
def reverse_ids(self, user):
|
||||
q = self.relation._query(self.relation.c._thing2_id == user._id,
|
||||
self.relation.c._name == self.name)
|
||||
return [r._thing1_id for r in q]
|
||||
|
||||
def by_thing(self, thing):
|
||||
return self.relation._query(self.relation.c._thing1_id == thing._id,
|
||||
self.relation.c._name == self.name,
|
||||
sort='_date')
|
||||
|
||||
|
||||
|
||||
class MemoizedUserRelManager(UserRelManager):
|
||||
"""Memoized manager for a relation to users."""
|
||||
@@ -138,6 +141,7 @@ def UserRel(name, relation, disable_ids_fn=False, disable_reverse_ids_fn=False):
|
||||
setattr(UR, 'get_' + name, UR._bind(mgr.get))
|
||||
setattr(UR, 'add_' + name, UR._bind(mgr.add))
|
||||
setattr(UR, 'remove_' + name, UR._bind(mgr.remove))
|
||||
setattr(UR, 'each_' + name, UR._bind(mgr.by_thing))
|
||||
setattr(UR, name + '_permission_class', permission_class)
|
||||
if not disable_ids_fn:
|
||||
setattr(UR, mgr.ids_fn_name, UR._bind(mgr.ids))
|
||||
|
||||
Reference in New Issue
Block a user