changeset 974:f6658c70eeeb beta

#56 fixed relationship query behavior to speed up fetching, and added tooltip showing group members
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 28 Jan 2011 19:02:02 +0100
parents 9be6d46c72d6
children 27dba61f07d3
files rhodecode/controllers/admin/users_groups.py rhodecode/model/db.py rhodecode/templates/admin/users_groups/users_groups.html
diffstat 3 files changed, 3 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/controllers/admin/users_groups.py	Fri Jan 28 18:44:20 2011 +0100
+++ b/rhodecode/controllers/admin/users_groups.py	Fri Jan 28 19:02:02 2011 +0100
@@ -173,7 +173,6 @@
         c.users_group.permissions = {}
         c.group_members = [(x.user_id, x.user.username) for x in
                            c.users_group.members]
-        print c.group_members, 'x' * 100
         c.available_members = [(x.user_id, x.username) for x in
                                self.sa.query(User).all()]
         defaults = c.users_group.get_dict()
--- a/rhodecode/model/db.py	Fri Jan 28 18:44:20 2011 +0100
+++ b/rhodecode/model/db.py	Fri Jan 28 19:02:02 2011 +0100
@@ -162,7 +162,7 @@
     users_group_name = Column("users_group_name", String(length=None, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None)
     users_group_active = Column("users_group_active", Boolean(), nullable=True, unique=None, default=None)
 
-    members = relationship('UsersGroupMember', cascade="all, delete, delete-orphan")
+    members = relationship('UsersGroupMember', cascade="all, delete, delete-orphan", lazy="joined")
 
 class UsersGroupMember(Base, BaseModel):
     __tablename__ = 'users_groups_members'
@@ -172,7 +172,7 @@
     users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None)
     user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None)
 
-    user = relationship('User')
+    user = relationship('User', lazy='joined')
     users_group = relationship('UsersGroup')
 
     def __init__(self, gr_id, u_id):
--- a/rhodecode/templates/admin/users_groups/users_groups.html	Fri Jan 28 18:44:20 2011 +0100
+++ b/rhodecode/templates/admin/users_groups/users_groups.html	Fri Jan 28 19:02:02 2011 +0100
@@ -37,7 +37,7 @@
             %for cnt,u_group in enumerate(c.users_groups_list):
                 <tr class="parity${cnt%2}">
                     <td>${h.link_to(u_group.users_group_name,h.url('edit_users_group', id=u_group.users_group_id))}</td>
-                    <td>${len(u_group.members)}</td>
+                    <td><span class="tooltip" title="${', '.join([x.user.username for x in u_group.members[:50]])}">${len(u_group.members)}</span></td>
                     <td>${h.bool2icon(u_group.users_group_active)}</td>
                     <td>
                         ${h.form(url('users_group', id=u_group.users_group_id),method='delete')}