prise en charge comarexxx et comsrexxx
authorThomas NOEL <thomas@new-dev.(none)>
Thu, 3 Jul 2008 00:42:06 +0000 (20:42 -0400)
committerThomas NOEL <thomas.noel@auf.org>
Thu, 3 Jul 2008 00:42:06 +0000 (20:42 -0400)
rest.wsgi

index dc3a572..6538a65 100644 (file)
--- a/rest.wsgi
+++ b/rest.wsgi
@@ -35,9 +35,11 @@ mapper.resource('demdep','demdep')
 mapper.resource('comdep','comdep')
 mapper.resource('dempub','dempub')
 mapper.resource('compub','compub')
-# TODO à étudier pour permettre les comarexxx
 mapper.resource('comare','comare')
+# pour les comarexxx où xxx est un code d'implantation
+mapper.resource('comarei','comare:(impl)',controller='comare')
 mapper.resource('comsra','comsre')
+mapper.resource('comsrai','comsre:(impl)',controller='comsre')
 
 class objetsql(object):
     """objet de base : dispose d'un accès à MS-SQL (lire les données) et d'un accès à jinja (rendu des données)"""
@@ -70,6 +72,9 @@ class document(objetsql):
        output = template.render(documents)
        return self.outputformat, output
 
+    def show_debug(self):
+        return 'txt', '%s' % self.environ
+
     def show(self):
         id = int(self.environ['wsgiorg.routing_args'][1]['id'])
         self.cursor.execute("select top 1 * from auf_v_acces_demcom where code like '%s' and numero = %d" % (self.code_document, id))
@@ -112,15 +117,16 @@ class compub(document):
     def __init__(self, environ):
         super(compub, self).__init__(environ, code_document = 'COM-PUB-AUF')
 
-# TODO : voir la possibilité d'appel de comsre/sn1.rss
 class comsre(document):
     def __init__(self, environ):
-        super(comsre, self).__init__(environ, code_document = 'COM-SRE-%')
+        # est-ce un appel de comsre ou comsrexxx (avec xxx = implantation)
+        impl = environ['wsgiorg.routing_args'][1].get('impl','%')
+        super(comsre, self).__init__(environ, code_document = 'COM-SRE-%s' % impl)
 
 class comare(document):
     def __init__(self, environ):
-        super(comare, self).__init__(environ, code_document = 'COM-ARE-%')
-
+        impl = environ['wsgiorg.routing_args'][1].get('impl','%')
+        super(comare, self).__init__(environ, code_document = 'COM-ARE-%s' % impl)
 
 def dispatcher(environ, start_response):
     """sera lancée par mod_wsgi"""
@@ -159,10 +165,14 @@ def dict_fetchone(cursor):
     return result_dict
 
 import re 
-p = re.compile('(dem|com)-(...)-auf',re.IGNORECASE)
+p = re.compile('(dem|com)-(...)-(...)',re.IGNORECASE)
 def coda2rest(value):
-    """Traduit un nom CODA en l'objet correspodant, par exemple DEM-LOG-AUF en demlog"""
+    """Traduit un nom CODA vers la base REST correspodante, 
+    par exemple DEM-LOG-AUF en demlog ou COM-ARE-VN3 en comarevn3"""
     m = p.search(value)
     if m == None: return value
-    return m.group(1).lower() + m.group(2).lower()
+    if m.group(3).lower() == 'auf':
+        return m.group(1).lower() + m.group(2).lower()
+    else:
+        return m.group(1).lower() + m.group(2).lower() + m.group(3).lower()