Use jinja to display the home page
authorJuliette Belin <juliette.belin@logilab.fr>
Tue, 07 Feb 2017 14:55:02 +0100
changeset 88 c6ed8a4c61c8
parent 84 704d56e7cd9f
child 89 076c4612c7c3
Use jinja to display the home page
views/__init__.py
views/homepage.py
views/index.html
views/templates/index.jinja2
--- a/views/__init__.py	Tue Feb 07 12:38:33 2017 +0100
+++ b/views/__init__.py	Tue Feb 07 14:55:02 2017 +0100
@@ -18,7 +18,7 @@
 
 from cubicweb import _
 from cubicweb.view import View
-from cubicweb.web.views import urlrewrite
+from cubicweb.web.views import urlrewrite, startup
 
 _JINJA_ENV = Environment(loader=PackageLoader('cubes.sherpa.views'))
 
@@ -43,13 +43,17 @@
                             data_url=self._cw.datadir_url))
 
 
-def jinja_static_view(template_name, title):
+def jinja_static_view(template_name, title=None):
     """Generate a sub-class of JinjaStaticView parametrized with its `template_name` and `title`.
 
     `__regid__` is built by prepending 'sherpa.' to template_name.
     """
     class_name = template_name.capitalize() + 'View'
-    return type(class_name, (JinjaStaticView,), {'__regid__': 'sherpa.' + template_name,
+    regid = 'sherpa.' + template_name
+    if (template_name == 'index') :
+        regid = 'index'
+
+    return type(class_name, (JinjaStaticView,), {'__regid__': regid,
                                                  'template_name': template_name,
                                                  'title': title})
 
@@ -57,18 +61,20 @@
 ProjectView = jinja_static_view('project', _('Le projet Sherpa'))
 UtilisationView = jinja_static_view('utilisation', _("Mode d'emploi"))
 SedaView = jinja_static_view('seda', _('Le SEDA'))
-
+IndexView = jinja_static_view('index')
 
 class SherpaReqRewriter(urlrewrite.SimpleReqRewriter):
     rules = [
+        (urlrewrite.rgx('/'), dict(vid='sherpa.index')),
         (urlrewrite.rgx('/project'), dict(vid='sherpa.project')),
         (urlrewrite.rgx('/utilisation'), dict(vid='sherpa.utilisation')),
-        (urlrewrite.rgx('/seda'), dict(vid='sherpa.seda'))
+        (urlrewrite.rgx('/seda'), dict(vid='sherpa.seda')),
     ]
 
 
 def registration_callback(vreg):
     from cubicweb.web.views import bookmark
 
-    vreg.register_all(globals().values(), __name__)
+    vreg.register_and_replace(IndexView, startup.IndexView)
+    vreg.register_all(globals().values(), __name__, (IndexView,))
     vreg.unregister(bookmark.BookmarksBox)
--- a/views/homepage.py	Tue Feb 07 12:38:33 2017 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-# copyright 2017 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
-# contact http://www.logilab.fr -- mailto:contact@logilab.fr
-#
-# This program is free software: you can redistribute it and/or modify it under
-# the terms of the GNU Lesser General Public License as published by the Free
-# Software Foundation, either version 2.1 of the License, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
-# details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""sherpa views/homepage views and components"""
-
-from six import text_type as unicode
-from os.path import dirname, join
-from cubicweb.web.component import CtxComponent
-from cubicweb.web.views import startup
-
-
-_ = unicode
-
-
-class HomepageAbstractComponent(CtxComponent):
-    __abstract__ = True
-    context = 'homepage'
-
-    def render(self, w, view=None):
-        self._render(w)
-
-    def _render(self, w):
-        raise NotImplementedError
-
-
-class SherpaIndexView(startup.IndexView):
-
-    def call(self, **kwargs):
-        with open(join(dirname(__file__), 'index.html')) as stream:
-            self.w(stream.read().decode("UTF8"))
-
-
-def registration_callback(vreg):
-    vreg.register_and_replace(SherpaIndexView, startup.IndexView)
--- a/views/index.html	Tue Feb 07 12:38:33 2017 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-<div class="col-md-12" id="accueil">
-
-  <section id="presentation">
-      <h2>Présentation du projet</h2>
-      <div class="titleUnderline">
-        <span class="underline mr"></span>
-        <span class="losange"></span>
-        <span class="underline ml"></span>
-      </div>
-
-      <div class="col-md-10 col-md-offset-1">
-        <p>
-        Le projet <span class="emphasis">SHERPA</span> a été conduit par le Service interministériel des Archives de France en 2016 afin de doter le <span class="emphasis">réseau des services publics d’archives</span> d’un outil disponible en ligne et permettant de <span class="emphasis">rédiger des profils d’archivage</span> conformes au <span class="emphasis">Standard</span> d’échange des données pour l’archivage, version 2.0.
-        <br />
-        Le projet SHERPA a été réalisé en collaboration avec le projet <a href="http://saem.e-bordeaux.org/">SAEM</a> auquel participent le Conseil départemental de la Gironde, Bordeaux Métropole et la Ville de Bordeaux, dans une optique de mutualisation des moyens.
-
-        SHERPA a été réalisé par la société LOGILAB. Son code source est librement réutilisable.<br />
-        Licence : ### LICENCE ###
-        </p>
-
-        <a href="./project"> En savoir plus...</a>
-        <br />
-        <a href="./utilisation"> Consulter le mode d'emploi</a>
-      </div>
-  </section>
-
-<section id="seda">
-  <h2> Le SEDA </h2>
-  <div class="titleUnderline">
-    <span class="underline mr"></span>
-    <span class="losange"></span>
-    <span class="underline ml"></span>
-  </div>
-
-  <div class="col-md-10 col-md-offset-1">
-    <p>
-      Le standard d’échange de données pour l’archivage permet de modéliser les transactions d’un processus d’archivage (transfert, communication, élimination, modification et restitution) entre différents acteurs (service producteur, service versant, service d’archives et demandeur d’archives).
-    </p>
-    <a href="./seda"> En savoir plus ...</a>
-  </div>
-</section>
-
-
-
-</div>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/templates/index.jinja2	Tue Feb 07 14:55:02 2017 +0100
@@ -0,0 +1,43 @@
+<div class="col-md-12" id="accueil">
+
+  <section id="presentation">
+      <h2>Présentation du projet</h2>
+      <div class="titleUnderline">
+        <span class="underline mr"></span>
+        <span class="losange"></span>
+        <span class="underline ml"></span>
+      </div>
+
+      <div class="col-md-10 col-md-offset-1">
+        <p>
+        Le projet <span class="emphasis">SHERPA</span> a été conduit par le Service interministériel des Archives de France en 2016 afin de doter le <span class="emphasis">réseau des services publics d’archives</span> d’un outil disponible en ligne et permettant de <span class="emphasis">rédiger des profils d’archivage</span> conformes au <span class="emphasis">Standard</span> d’échange des données pour l’archivage, version 2.0.
+        <br />
+        Le projet SHERPA a été réalisé en collaboration avec le projet <a href="http://saem.e-bordeaux.org/">SAEM</a> auquel participent le Conseil départemental de la Gironde, Bordeaux Métropole et la Ville de Bordeaux, dans une optique de mutualisation des moyens.
+
+        SHERPA a été réalisé par la société LOGILAB. Son code source est librement réutilisable.<br />
+        Licence : ### LICENCE ###
+        </p>
+
+        <a href="./project"> En savoir plus...</a>
+        <br />
+        <a href="./utilisation"> Consulter le mode d'emploi</a>
+      </div>
+  </section>
+
+
+  <section id="seda">
+    <h2> Le SEDA </h2>
+    <div class="titleUnderline">
+      <span class="underline mr"></span>
+      <span class="losange"></span>
+      <span class="underline ml"></span>
+    </div>
+
+    <div class="col-md-10 col-md-offset-1">
+      <p>
+        Le standard d’échange de données pour l’archivage permet de modéliser les transactions d’un processus d’archivage (transfert, communication, élimination, modification et restitution) entre différents acteurs (service producteur, service versant, service d’archives et demandeur d’archives).
+      </p>
+      <a href="./seda"> En savoir plus ...</a>
+    </div>
+  </section>
+</div>