[PATCH 2 of 2 sherpa] [templates] Build url using build_url given as context

Sylvain Thenault sylvain.thenault at logilab.fr
Fri Mar 3 16:26:35 CET 2017


# HG changeset patch
# User Sylvain Thénault <sylvain.thenault at logilab.fr>
# Date 1488554571 -3600
#      Fri Mar 03 16:22:51 2017 +0100
# Node ID 13f6c2ee54eb77d5a422279e758d01af1e0487cb
# Parent  80eb000ff2eaa5856835dfdf28eb535c3f9a1a31
[templates] Build url using build_url given as context

instead of by concatenating strings manually, which may be error prone (e.g.
depending on the '/' suffix of base_url).

Stop giving base_url to make things clear.

diff --git a/cubicweb_sherpa/views/__init__.py b/cubicweb_sherpa/views/__init__.py
--- a/cubicweb_sherpa/views/__init__.py
+++ b/cubicweb_sherpa/views/__init__.py
@@ -44,11 +44,11 @@ class JinjaStaticView(View):
         self.w(jinja_render(self.template_name, **self.build_context()))
 
     def build_context(self):
         return {
             'title': self._cw._(self.title),
-            'base_url': self._cw.build_url(''),
+            'build_url': self._cw.build_url,
             'data_url': self._cw.datadir_url,
         }
 
 
 def jinja_static_view(template_name, title=None, regid=None, path=None):
diff --git a/cubicweb_sherpa/views/templates.py b/cubicweb_sherpa/views/templates.py
--- a/cubicweb_sherpa/views/templates.py
+++ b/cubicweb_sherpa/views/templates.py
@@ -138,11 +138,11 @@ class SherpaMainTemplate(basetemplates.T
         req = self._cw
         return {
             'page_id': 'contentmain',
             '_': req._,
             'user': req.user.login,
-            'base_url': req.build_url(''),
+            'build_url': req.build_url,
             'data_url': req.datadir_url,
             'current_url': req.relative_path(),
         }
 
 
diff --git a/cubicweb_sherpa/views/templates/index.jinja2.html b/cubicweb_sherpa/views/templates/index.jinja2.html
--- a/cubicweb_sherpa/views/templates/index.jinja2.html
+++ b/cubicweb_sherpa/views/templates/index.jinja2.html
@@ -29,12 +29,12 @@ SHERPA est un outil qui permet de créer
       <span class="underline mr"></span>
       <span class="losange"></span>
       <span class="underline ml"></span>
     </div>
     <div id="buttons-wrapper">
-      <a href="{{base_url}}/sedaarchivetransfer" class="btn btn-default">Voir les profils d'archivage déja existants</a>
-      <a href="{{base_url}}/register" class="btn btn-default">Créer un compte et ajouter mes propres profils</a>
+      <a href="{{ build_url('sedaarchivetransfer') }}" class="btn btn-default">Voir les profils d'archivage déja existants</a>
+      <a href="{{ build_url('register') }}" class="btn btn-default">Créer un compte et ajouter mes propres profils</a>
     </div>
   </section>
 
 
   <section id="project">
@@ -59,11 +59,11 @@ SHERPA est un outil qui permet de créer
       <p>
         SHERPA propose une interface simple et ergonomique pour rédiger des profils d’archivage et les
         exporter dans un format utilisable par le SAE. Il permet également d’obtenir une documentation
         du profil, lisible par un humain.
       </p>
-      <p><a href="{{ base_url}}/project">En savoir plus</a></p>
+      <p><a href="{{ build_url('project') }}">En savoir plus</a></p>
     </div>
     <div class="col-md-4">
       <img class="img-responsive project-image" src="{{ data_url }}images/sherpa_general.png"/>
     </div>
   </section>
@@ -93,23 +93,23 @@ SHERPA est un outil qui permet de créer
       communicabilité).
     </p>
     <p>
       Des agents (personnes ou collectivités) sont associés afin de décrire les archives échangées
       ou de spécifier des informations de gestion les concernant. SHERPA propose de gérer un seul
-      référentiel <a href="{{ base_url}}/authorityrecord">« Agents »</a> dont les notices peuvent
+      référentiel <a href="{{ build_url('authorityrecord') }}">« Agents »</a> dont les notices peuvent
       être utilisées dans tous les profils d’archivage rédigés dans l’application. Le rédacteur peut
       ainsi alimenter et maintenir une seule liste de référence pour l’ensemble de son corpus de
       profils.
     </p>
     <p>
       Des termes d'indexations et des listes de valeurs contrôlées sont utilisées pour échanger les
       métadonnées techniques (format, encodage…), descriptives (niveaux de description, langues…) et
       de gestion (sorts finaux, les délais de communicabilité…). SHERPA fournit un référentiel <a
-      href="{{ base_url}}/conceptscheme">« Vocabulaires »</a> dont les références et les valeurs
+      href="{{  build_url('conceptscheme') }}">« Vocabulaires »</a> dont les références et les valeurs
       peuvent être utilisées dans l’ensemble des profils rédigés dans l’application.
     </p>
-    <p><a href="{{ base_url}}/project">En savoir plus</a></p>
+    <p><a href="{{  build_url('project') }}">En savoir plus</a></p>
   </section>
 
 
   <section id="utilisation">
     <h2>Quelques clés du SHERPA</h2>
@@ -137,12 +137,12 @@ SHERPA est un outil qui permet de créer
     <div>
       <h3>Travail en référentiel</h3>
       <p>
         Le SEDA 2 s'appuie sur des référentiels externes qu’il convient donc de définir à
         l’extérieur du profil. SHERPA met en œuvre ce principe en proposant des zones permettant
-        d’alimenter et de mettre à jour les <a href="{{ base_url}}/authorityrecord">agents</a> et
-        les <a href="{{ base_url}}/conceptscheme">vocabulaires</a>.
+        d’alimenter et de mettre à jour les <a href="{{ build_url('authorityrecord') }}">agents</a> et
+        les <a href="{{ build_url('conceptscheme') }}">vocabulaires</a>.
       </p>
     </div>
     <div>
       <h3>Travail collaboratif</h3>
       <p>
@@ -152,9 +152,9 @@ SHERPA est un outil qui permet de créer
         Un système d’habilitation permet à tous les utilisateurs de consulter le travail des autres
         utilisateurs. Le rédacteur d’un profil peut le modifier à tout moment et peut étendre les
         droits de modifications à d’autres utilisateurs s’il le souhaite.
       </p>
     </div>
-    <p><a href="{{ base_url}}/project">En savoir plus</a></p>
+    <p><a href="{{  build_url('project') }}">En savoir plus</a></p>
   </section>
 
 </div>
diff --git a/cubicweb_sherpa/views/templates/index_authenticated.jinja2.html b/cubicweb_sherpa/views/templates/index_authenticated.jinja2.html
--- a/cubicweb_sherpa/views/templates/index_authenticated.jinja2.html
+++ b/cubicweb_sherpa/views/templates/index_authenticated.jinja2.html
@@ -1,11 +1,11 @@
 <div class="col-md-2" id="actions">
   <section>
     <div id="actions-buttons-wrapper">
-      <a href="{{base_url}}/add/sedaarchivetransfer" class="btn btn-default">créer un nouveau profil</a>
-      <a href="{{base_url}}/add/sedaarchiveunit?unit_type=unit_content" class="btn btn-default">créer une nouvelle unité d'archive</a>
-      <a href="{{base_url}}/add/authorityrecord" class="btn btn-default">créer une nouvelle notice d'autorité</a>
+      <a href="{{ build_url('add/sedaarchivetransfer') }}" class="btn btn-default">créer un nouveau profil</a>
+      <a href="{{ build_url('add/sedaarchiveunit?unit_type=unit_content') }}" class="btn btn-default">créer une nouvelle unité d'archive</a>
+      <a href="{{ build_url('add/authorityrecord') }}" class="btn btn-default">créer une nouvelle notice d'autorité</a>
     </div>
   </section>
 </div>
 
 
@@ -14,11 +14,11 @@
     <h2>Profils d'archivage</h2>
     <div class="titleUnderline">
       <span class="underline mr"></span><span class="losange"></span><span class="underline ml"></span>
     </div>
     <p>
-      Les profils d'archivage définissent la structure et le contenu attendu pour un bordereau de versement. Ils sont généralements associés à un flux d'archivage. <a href="{{ base_url}}/project">En savoir plus</a>
+      Les profils d'archivage définissent la structure et le contenu attendu pour un bordereau de versement. Ils sont généralements associés à un flux d'archivage. <a href="{{ build_url('project') }}">En savoir plus</a>
     </p>
     {% if my_profiles_html %}
     <p>
       Voici la liste des profils que vous avez rédigés ou sur lesquels vous avez le droit de modification :
     </p>
@@ -31,11 +31,11 @@
     <div class="titleUnderline">
       <span class="underline mr"></span><span class="losange"></span><span class="underline ml"></span>
     </div>
     <p>
       Les unités d'archives sont des morceaux de profils réutilisables ensuite dans les profils
-      d'archivage. <a href="{{ base_url}}/project">En savoir plus</a>
+      d'archivage. <a href="{{ build_url('project') }}">En savoir plus</a>
     </p>
     {% if my_units_html %}
     <p>
       Voici la liste des unités d'archives que vous avez
       rédigées ou sur lesquelles vous avez le droit de modification :
@@ -49,11 +49,11 @@
     <div class="titleUnderline">
       <span class="underline mr"></span><span class="losange"></span><span class="underline ml"></span>
     </div>
     <p>
       Les notices d'autorité permettent de décrire les agents (personnes ou organisation)
-      intervenant dans la vie d'un document ou dans le processus d'archivage. <a href="{{ base_url}}/project">En savoir plus</a>
+      intervenant dans la vie d'un document ou dans le processus d'archivage. <a href="{{ build_url('project') }}">En savoir plus</a>
     </p>
     {% if my_records_html %}
     <p>
       Voici la liste des notices d'autorité que vous avez rédigées ou sur lesquelles vous avez le droit de
       modification :
diff --git a/cubicweb_sherpa/views/templates/maintemplate.jinja2.html b/cubicweb_sherpa/views/templates/maintemplate.jinja2.html
--- a/cubicweb_sherpa/views/templates/maintemplate.jinja2.html
+++ b/cubicweb_sherpa/views/templates/maintemplate.jinja2.html
@@ -1,10 +1,10 @@
 <body>
   <nav class="navbar-default header-sherpa" role="banner">
     <div class="container-fluid">
       <div class="col-md-2 hidden-xs hidden-sm">
-        <a href="{{ base_url }}"><img src="{{ data_url }}images/logo_SIAF.png" class="logoSIAF" /></a>
+        <a href="{{ build_url('') }}"><img src="{{ data_url }}images/logo_SIAF.png" class="logoSIAF" /></a>
       </div>
       <div class="col-md-7 col-xs-8">
         <a href="/">
           <div class="logoSHERPA">
             <img src="{{ data_url }}images/logo_SHERPA_2.png" class="img-responsive"/>
@@ -67,12 +67,12 @@
           <a href='{{ resource.url }}'> {{ resource.label }}</a>
         {% endfor %}
         </div>
       </section>
       <div id="footer-links">
-        <span><a href="{{ base_url }}/apropos">À propos</a></span>
-        <span><a href="{{ base_url }}/contact">Contact</a></span>
+        <span><a href="{{ build_url('apropos') }}">À propos</a></span>
+        <span><a href="{{ build_url('contact') }}">Contact</a></span>
         <span>© Service Interministériel des Archives de France</span>
       </div>
     </footer>
   </div>
 </body>


More information about the saem-devel mailing list