changeset 62:4df4c0eac619

Updated admin to show last 5 actions + updated db model
author Marcin Kuzminski <marcin@python-blog.com>
date Sat, 10 Apr 2010 16:42:08 +0200
parents 1b6d7662d6e2
children 3cf0603cd4f5
files pylons_app/controllers/admin.py pylons_app/model/db.py pylons_app/templates/admin.html
diffstat 3 files changed, 31 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/pylons_app/controllers/admin.py	Sat Apr 10 16:29:25 2010 +0200
+++ b/pylons_app/controllers/admin.py	Sat Apr 10 16:42:08 2010 +0200
@@ -12,7 +12,8 @@
 from pylons_app.model.forms import LoginForm
 import formencode
 import formencode.htmlfill as htmlfill
-from pylons_app.lib.auth import authenticate
+from pylons_app.model import meta
+from pylons_app.model.db import Users, UserLogs
 log = logging.getLogger(__name__)
 
 class AdminController(BaseController):
@@ -50,6 +51,9 @@
                     defaults=c.form_result,
                     encoding="UTF-8"
                 )
+        if c.admin_user:
+            sa = meta.Session
+            c.users_log = sa.query(UserLogs).limit(10).all()
         return render('/admin.html')
 
     def hgrc(self, dirname):
--- a/pylons_app/model/db.py	Sat Apr 10 16:29:25 2010 +0200
+++ b/pylons_app/model/db.py	Sat Apr 10 16:42:08 2010 +0200
@@ -21,6 +21,7 @@
     __table_args__ = {'useexisting':True}
     id = Column("id", SLInteger(), nullable=False, unique=True, default=None, primary_key=1)
     user_id = Column("user_id", SLInteger(), ForeignKey(u'users.user_id'), nullable=True, unique=None, default=None)
-    last_action = Column("last_action", SLText(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
-    last_action_date = Column("last_action_date", SLDateTime(timezone=False), nullable=True, unique=None, default=None)
+    repository = Column("repository", SLText(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
+    action = Column("action", SLText(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
+    action_date = Column("action_date", SLDateTime(timezone=False), nullable=True, unique=None, default=None)
     user = relation('Users')
--- a/pylons_app/templates/admin.html	Sat Apr 10 16:29:25 2010 +0200
+++ b/pylons_app/templates/admin.html	Sat Apr 10 16:42:08 2010 +0200
@@ -33,8 +33,29 @@
     </ul>
     <br/>
     <div>
-    
-        <h2>Hi !</h2>
+        <h2>Welcome ${c.admin_username}</h2>
+        <div>Last 5 user actions</div>
+        %if c.users_log:
+	        <table>
+	        <tr>
+	        	<td>${_('Username')}</td>
+	        	<td>${_('Repository')}</td>
+	        	<td>${_('Action')}</td>
+	        	<td>${_('Date')}</td>
+	        </tr>
+	        %for cnt,l in enumerate(c.users_log):
+				<tr class="parity${cnt%2}">
+					<td>${l.user.username}</td>
+					<td>${l.repository}</td>
+					<td>${l.action}</td>
+					<td>${l.action_date}</td>
+				</tr>
+			%endfor
+			</table>        
+		%else:
+			${_('No actions yet')}
+		%endif
+
     </div>
     %else:
         <div>