Skip to content

Commit

Permalink
Remove group.members_of_type()
Browse files Browse the repository at this point in the history
Remove group.members_of_type() and related code. It isn't used anywhere
except in the old publisher and organizations extensions which are to be
replaced by a new organizations implementation in CKAN core. Also it
duplicates functionality provided by group.active_packages().
  • Loading branch information
Sean Hammond authored and tobes committed Nov 27, 2012
1 parent 5847bd0 commit 8f5c897
Showing 1 changed file with 1 addition and 41 deletions.
42 changes: 1 addition & 41 deletions ckan/model/group.py
Expand Up @@ -143,35 +143,6 @@ def set_approval_status(self, status):
if status == "denied":
pass

def members_of_type(self, object_type, capacity=None):
from ckan import model
object_type_string = object_type.__name__.lower()
query = meta.Session.query(object_type).\
filter(model.Group.id == self.id).\
filter(model.Member.state == 'active').\
filter(model.Member.table_name == object_type_string)

if hasattr(object_type, 'state'):
query = query.filter(object_type.state == 'active')

if capacity:
query = query.filter(model.Member.capacity == capacity)

query = query.join(model.Member, member_table.c.table_id ==
getattr(object_type, 'id')).\
join(model.Group, group_table.c.id == member_table.c.group_id)

return query

def add_child(self, object_instance):
object_type_string = object_instance.__class__.__name__.lower()
if not object_instance in self.members_of_type(
object_instance.__class__).all():
member = Member(group=self,
table_id=getattr(object_instance, 'id'),
table_name=object_type_string)
meta.Session.add(member)

def get_children_groups(self, type='group'):
# Returns a list of dicts where each dict contains "id", "name",
# and "title" When querying with a CTE specifying a model in the
Expand Down Expand Up @@ -236,23 +207,12 @@ def search_by_name_or_title(cls, text_query, group_type=None):
q = q.filter(cls.type == group_type)
return q.order_by(cls.title)

def as_dict(self, ref_package_by='name'):
_dict = domain_object.DomainObject.as_dict(self)
_dict['packages'] = [getattr(package, ref_package_by)
for package in self.packages]
_dict['extras'] = dict([(key, value) for key, value
in self.extras.items()])
if (self.type == 'organization'):
_dict['users'] = [getattr(user, "name")
for user in self.members_of_type(_user.User)]
return _dict

def add_package_by_name(self, package_name):
if not package_name:
return
package = _package.Package.by_name(package_name)
assert package
if not package in self.members_of_type(package.__class__).all():
if not package in self.active_packages().all():
member = Member(group=self, table_id=package.id,
table_name='package')
meta.Session.add(member)
Expand Down

0 comments on commit 8f5c897

Please sign in to comment.