ajout filtre json ; systeme de template dans .py a part
[restcoda.git] / utilisateur.py
CommitLineData
ef44a84b
TN
1#!/usr/bin/python
2# -*- coding: utf-8 -*-
3
4#
5# Classe pour un utilisateur
6# (export de la vue auf_v_acces_users)
7
65f02320 8from objet import Objet, ObjetInconnu
ef44a84b
TN
9from utils import dict_fetchone
10
65f02320 11class utilisateur(Objet):
ef44a84b
TN
12 """objet utilisateur CODA"""
13 accept_like_filters = [ 'code', 'nom', 'nom_connexion', 'implantation' ]
14 def __init__(self, environ):
15 super(utilisateur, self).__init__(environ)
ef44a84b
TN
16
17 def _get_index(self):
18 """renvoie une liste d'utilisateur"""
19 # connexion a la base de données
20 cursor = self.cursor()
21 if self.sqlwhere != '': self.sqlwhere = ' where ' + self.sqlwhere
22 # extraction des données
ecb895d1 23 request = "select top %d * from auf_v_acces_users %s order by date_creation desc" % ( self.sqllimit, self.sqlwhere )
6264cb94 24 cursor.execute( request )
ef44a84b
TN
25 items = []
26 while 1:
27 item = dict_fetchone( cursor )
28 if item == None: break
29 items.append(item)
30 index = {}
ef44a84b 31 index['utilisateurs'] = items
924e2f0a
TN
32 index['nombre_utilisateurs'] = len(items)
33 index['limite_utilisateurs'] = self.sqllimit
34 index['filtres'] = self.filters
6264cb94 35 index['requete_sql'] = request
ef44a84b
TN
36 return index
37
38 def _get_utilisateur(self,code):
39 """renvoie un utilisateur"""
40 cursor = self.cursor()
924e2f0a 41 request = "select top 1 * from auf_v_acces_users where (code = '%s')" % code
6264cb94 42 cursor.execute( request )
ef44a84b
TN
43 utilisateur = dict_fetchone(cursor)
44 if utilisateur == None:
65f02320 45 raise ObjetInconnu('utilisateur')
6264cb94 46 utilisateur['requete_sql'] = request
ef44a84b
TN
47 return utilisateur
48
49 def index(self):
50 """renvoie une liste d'utilisateurs formatée"""
51 template = self.template('utilisateur-index') # préparation du modèle
52 index = self._get_index( ) # extraction des documents concernés
53 output = template.render( index ) # formattage via le modèle
54 return self.outputformat, output
55
56 def show(self):
57 """renvoie un utilisateur formaté"""
924e2f0a 58 code = self.environ['wsgiorg.routing_args'][1]['id'].upper()
ef44a84b
TN
59 template = self.template( 'utilisateur' )
60 utilisateur = self._get_utilisateur( code )
61 output = template.render( utilisateur )
62 return self.outputformat, output
63