Changeset - 4eef5eeb81a3
[Not reviewed]
beta
0 4 0
Marcin Kuzminski - 13 years ago 2012-08-07 23:02:50
marcin@python-works.com
fixed sorting by last_login in users admin page
4 files changed with 22 insertions and 1 deletions:
0 comments (0 inline, 0 general)
rhodecode/controllers/admin/users.py
Show inline comments
 
@@ -47,6 +47,7 @@ from rhodecode.model.user import UserMod
 
from rhodecode.model.meta import Session
 
from rhodecode.lib.utils import action_logger
 
from rhodecode.lib.compat import json
 
from rhodecode.lib.utils2 import datetime_to_time
 

	
 
log = logging.getLogger(__name__)
 

	
 
@@ -89,6 +90,7 @@ class UsersController(BaseController):
 
                .render(user_id, username, _=_, h=h, c=c))
 

	
 
        for user in c.users_list:
 

	
 
            users_data.append({
 
                "gravatar": grav_tmpl(user. email, 24),
 
                "raw_username": user.username,
 
@@ -96,6 +98,7 @@ class UsersController(BaseController):
 
                "firstname": user.name,
 
                "lastname": user.lastname,
 
                "last_login": h.fmt_date(user.last_login),
 
                "last_login_raw": datetime_to_time(user.last_login),
 
                "active": h.bool2icon(user.active),
 
                "admin": h.bool2icon(user.admin),
 
                "ldap": h.bool2icon(bool(user.ldap_dn)),
rhodecode/lib/utils2.py
Show inline comments
 
@@ -24,6 +24,7 @@
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 

	
 
import re
 
import time
 
from datetime import datetime
 
from pylons.i18n.translation import _, ungettext
 
from rhodecode.lib.vcs.utils.lazy import LazyProperty
 
@@ -429,6 +430,11 @@ def get_changeset_safe(repo, rev):
 
    return cs
 

	
 

	
 
def datetime_to_time(dt):
 
    if dt:
 
        return time.mktime(dt.timetuple())
 

	
 

	
 
MENTIONS_REGEX = r'(?:^@|\s@)([a-zA-Z0-9]{1}[a-zA-Z0-9\-\_\.]+)(?:\s{1})'
 

	
 

	
 
@@ -444,6 +450,7 @@ def extract_mentioned_users(s):
 

	
 
    return sorted(list(usrs), key=lambda k: k.lower())
 

	
 

	
 
class AttributeDict(dict):
 
    def __getattr__(self, attr):
 
        return self.get(attr, None)
rhodecode/public/js/rhodecode.js
Show inline comments
 
@@ -1529,6 +1529,15 @@ var ageSort = function(a, b, desc, field
 
    return compState;
 
};
 

	
 
var lastLoginSort = function(a, b, desc, field) {
 
	var a_ = a.getData('last_login_raw') || 0;
 
    var b_ = b.getData('last_login_raw') || 0;
 
    
 
    var comp = YAHOO.util.Sort.compare;
 
    var compState = comp(a_, b_, desc);
 
    return compState;
 
};
 

	
 
var nameSort = function(a, b, desc, field) {
 
    var a_ = fromHTML(a.getData(field));
 
    var b_ = fromHTML(b.getData(field));
rhodecode/templates/admin/users/users.html
Show inline comments
 
@@ -44,6 +44,7 @@
 
          {key: "firstname"},
 
          {key: "lastname"},
 
          {key: "last_login"},
 
          {key: "last_login_raw"},
 
          {key: "active"},
 
          {key: "admin"},
 
          {key: "ldap"},
 
@@ -78,7 +79,8 @@
 
      },
 
      {key:"firstname",label:"${_('firstname')}",sortable:true,},
 
      {key:"lastname",label:"${_('lastname')}",sortable:true,},
 
      {key:"last_login",label:"${_('last login')}",sortable:true,},
 
      {key:"last_login",label:"${_('last login')}",sortable:true,
 
    	  sortOptions: { sortFunction: lastLoginSort }},
 
      {key:"active",label:"${_('active')}",sortable:true,},
 
      {key:"admin",label:"${_('admin')}",sortable:true,},
 
      {key:"ldap",label:"${_('ldap')}",sortable:true,},
0 comments (0 inline, 0 general)