diff pylons_app/controllers/users.py @ 49:3ada2f409c1c

Added sqlalchemy support made models for database changed views to handle sqlalchemy
author Marcin Kuzminski <marcin@python-blog.com>
date Thu, 08 Apr 2010 01:50:46 +0200
parents 8e250e86a670
children 73f413946c14
line wrap: on
line diff
--- a/pylons_app/controllers/users.py	Wed Apr 07 21:10:43 2010 +0200
+++ b/pylons_app/controllers/users.py	Thu Apr 08 01:50:46 2010 +0200
@@ -4,7 +4,9 @@
 from pylons.controllers.util import abort, redirect
 
 from pylons_app.lib.base import BaseController, render
-from pylons_app.lib import auth
+from formencode import htmlfill
+from pylons_app.model import meta
+from pylons_app.model.db import Users, UserLogs
 log = logging.getLogger(__name__)
 
 class UsersController(BaseController):
@@ -16,14 +18,13 @@
         c.staticurl = g.statics
         c.admin_user = session.get('admin_user')
         c.admin_username = session.get('admin_username')
-        self.conn, self.cur = auth.get_sqlite_conn_cur()
+        self.sa = meta.Session
         
     def index(self, format='html'):
         """GET /users: All items in the collection"""
         # url('users')
         
-        self.cur.execute('SELECT * FROM users')
-        c.users_list = self.cur.fetchall()        
+        c.users_list = self.sa.query(Users).all()     
         return render('/users.html')
     
     def create(self):
@@ -52,20 +53,24 @@
         #           method='delete')
         # url('user', id=ID)
         try:
-            self.cur.execute("DELETE FROM users WHERE user_id=?", (id,))
-            self.conn.commit()
+            self.sa.delete(self.sa.query(Users).get(id))
+            self.sa.commit()
         except:
-            self.conn.rollback()
+            self.sa.rollback()
             raise
         return redirect(url('users'))
         
     def show(self, id, format='html'):
         """GET /users/id: Show a specific item"""
         # url('user', id=ID)
-        self.cur.execute("SELECT * FROM users WHERE user_id=?", (id,))
-        ret = self.cur.fetchone()
-        c.user_name = ret[1]
-        return render('/users_show.html')
+        c.user = self.sa.query(Users).get(id)
+
+        return htmlfill.render(
+            render('/users_show.html'),
+            defaults=c.user.__dict__,
+            encoding="UTF-8",
+            force_defaults=False
+        )        
     
     def edit(self, id, format='html'):
         """GET /users/id/edit: Form to edit an existing item"""