objet fournisseur
authorThomas NOEL <thomas@new-dev.(none)>
Fri, 4 Jul 2008 18:28:12 +0000 (14:28 -0400)
committerThomas NOEL <thomas.noel@auf.org>
Fri, 4 Jul 2008 18:28:12 +0000 (14:28 -0400)
fournisseur.py [new file with mode: 0644]
rest.py
templates/fournisseur-index.html [new file with mode: 0644]
templates/fournisseur.html [new file with mode: 0644]

diff --git a/fournisseur.py b/fournisseur.py
new file mode 100644 (file)
index 0000000..dd7cd03
--- /dev/null
@@ -0,0 +1,69 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+#
+# Classe pour un fournisseur
+# (export de la vue auf_v_acces_fournisseur)
+
+from objet import Objet, ObjetInconnu
+from utils import dict_fetchone
+
+class fournisseur(Objet):
+    """objet fournisseur CODA"""
+    accept_like_filters = [ 'code', 'nom', 'nom_complet', 'categorie', 'addresse_pays' ]
+    def __init__(self, environ):
+        super(fournisseur, self).__init__(environ)
+       # finition sur le where : si aucune categorie d'adresse n'est demandee, on envoie celle par defaut
+       if not 'categorie' in self.filters:
+           if self.sqlwhere != '':
+               self.sqlwhere += ' and (addresse_defaut = 1) '
+           else:
+               self.sqlwhere = ' (addresse_defaut = 1) '
+
+    def _get_index(self):
+        """renvoie une liste de fournisseur"""
+       # connexion a la base de données
+       cursor = self.cursor()
+       if self.sqlwhere != '':
+           self.sqlwhere = ' where ' + self.sqlwhere
+       # extraction des données
+       request = "select top %d * from auf_v_acces_fournisseurs %s order by nom desc" % ( self.sqllimit, self.sqlwhere )
+       cursor.execute( request )
+       items = []
+       while 1:
+           item = dict_fetchone( cursor )
+           if item == None: break
+           items.append(item)
+       index = {}
+       index['filtres'] = self.filters
+       index['fournisseurs'] = items
+       index['requete_sql'] = request
+       return index
+
+    def _get_fournisseur(self,code):
+        """renvoie un fournisseur"""
+       cursor = self.cursor()
+       if self.sqlwhere != '': self.sqlwhere = ' and ' + self.sqlwhere
+       request = "select top 1 * from auf_v_acces_fournisseurs where (code like '%s') %s" % (code, self.sqlwhere)
+       cursor.execute( request )
+        fournisseur = dict_fetchone(cursor)
+       if fournisseur == None:
+           raise ObjetInconnu('fournisseur')
+       fournisseur['requete_sql'] = request
+        return fournisseur
+
+    def index(self):
+        """renvoie une liste de fournisseurs formatée"""
+        template = self.template('fournisseur-index') # préparation du modèle
+       index = self._get_index( )                    # extraction des documents concernés
+       output = template.render( index )             # formattage via le modèle
+       return self.outputformat, output
+
+    def show(self):
+        """renvoie un fournisseur formaté"""
+        code = self.environ['wsgiorg.routing_args'][1]['id'].replace('*','%').upper()
+        template = self.template( 'fournisseur' )
+        fournisseur = self._get_fournisseur( code )
+        output = template.render( fournisseur )
+       return self.outputformat, output
+
diff --git a/rest.py b/rest.py
index 73f7e4e..959da45 100644 (file)
--- a/rest.py
+++ b/rest.py
@@ -40,10 +40,12 @@ mapper.resource('comxrei','comxre:(impl)',controller='comxre')
 mapper.resource('dem','dem')
 mapper.resource('com','com')
 mapper.resource('utilisateur','utilisateur')
+mapper.resource('fournisseur','fournisseur')
 
 # objets disponibles
 from document import demlog, comlog, demdep, comdep, dempub, compub, comare, comsre, comxre, dem, com
 from utilisateur import utilisateur
+from fournisseur import fournisseur
 
 def dispatcher(environ, start_response):
     """dispatch vers la bonne methode du bon objet, et retour WSGI"""
diff --git a/templates/fournisseur-index.html b/templates/fournisseur-index.html
new file mode 100644 (file)
index 0000000..5f07ff3
--- /dev/null
@@ -0,0 +1,2 @@
+<pre>{{ debug()|e }}</pre>
+
diff --git a/templates/fournisseur.html b/templates/fournisseur.html
new file mode 100644 (file)
index 0000000..5f07ff3
--- /dev/null
@@ -0,0 +1,2 @@
+<pre>{{ debug()|e }}</pre>
+