Objet au lieu de ObjetSQL. bug statut dans document/id
[restcoda.git] / utilisateur.py
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
8 from objet import Objet, ObjetInconnu
9 from utils import dict_fetchone
10
11 class utilisateur(Objet):
12 """objet utilisateur CODA"""
13 accept_like_filters = [ 'code', 'nom', 'nom_connexion', 'implantation' ]
14 def __init__(self, environ):
15 super(utilisateur, self).__init__(environ)
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
23 request = "select top %d * from auf_v_acces_users %s order by date_connexion desc" % ( self.sqllimit, self.sqlwhere )
24 cursor.execute( request )
25 items = []
26 while 1:
27 item = dict_fetchone( cursor )
28 if item == None: break
29 items.append(item)
30 index = {}
31 index['filtres'] = self.filters
32 index['utilisateurs'] = items
33 index['requete_sql'] = request
34 return index
35
36 def _get_utilisateur(self,code):
37 """renvoie un utilisateur"""
38 cursor = self.cursor()
39 if self.sqlwhere != '': self.sqlwhere = ' and ' + self.sqlwhere
40 request = "select top 1 * from auf_v_acces_users where (code like '%s') %s" % (code, self.sqlwhere)
41 cursor.execute( request )
42 utilisateur = dict_fetchone(cursor)
43 if utilisateur == None:
44 raise ObjetInconnu('utilisateur')
45 utilisateur['requete_sql'] = request
46 return utilisateur
47
48 def index(self):
49 """renvoie une liste d'utilisateurs formatée"""
50 template = self.template('utilisateur-index') # préparation du modèle
51 index = self._get_index( ) # extraction des documents concernés
52 output = template.render( index ) # formattage via le modèle
53 return self.outputformat, output
54
55 def show(self):
56 """renvoie un utilisateur formaté"""
57 code = self.environ['wsgiorg.routing_args'][1]['id'].replace('*','%').upper()
58 template = self.template( 'utilisateur' )
59 utilisateur = self._get_utilisateur( code )
60 output = template.render( utilisateur )
61 return self.outputformat, output
62