# HG changeset patch
# User Katia Saurfelt <katia.saurfelt@logilab.fr>
# Date 1393947801 -3600
#      Tue Mar 04 16:43:21 2014 +0100
# Node ID 61da700ea4cfe3e98e11d2533cc59b2e3ed94902
# Parent  6695480c23c4e27dacb57b48db96afae49a98a7f
[footer] do not write footer HTML markup if no footer components selected

diff --git a/views/basetemplates.py b/views/basetemplates.py
--- a/views/basetemplates.py
+++ b/views/basetemplates.py
@@ -150,10 +150,7 @@
 
 @monkeypatch(basetemplates.TheMainTemplate)
 def content_footer(self, view=None):
-    # TODO : do not add the wrapping div if no data
-    self.w(u'<div class="row">') # metadata and so
     self.wview('contentfooter', rset=self.cw_rset, view=view)
-    self.w(u'</div>\n') # closes row
 
 
 @monkeypatch(basetemplates.TheMainTemplate)
@@ -271,12 +268,24 @@
         self.w(u'</div>')
         self.w(u'</nav>')
 
+
+@monkeypatch(basetemplates.HTMLContentFooter)
+def call(self, view, **kwargs):
+    components = self._cw.vreg['ctxcomponents'].poss_visible_objects(
+        self._cw, rset=self.cw_rset, view=view, context='navbottom')
+    if components:
+        # the row is needed here to correctly put the HTML flux
+        self.w(u'<div class="row">')
+        self.w(u'<div id="contentfooter">')
+        for comp in components:
+            comp.render(w=self.w, view=view)
+        self.w(u'</div>')
+        self.w(u'</div>')
+
 @monkeypatch(basetemplates.HTMLPageFooter)
 def call(self, **kwargs):
     self.w(u'<footer id="pagefooter">')
-    self.w(u'<div id="footer" class="container">')
     self.footer_content()
-    self.w(u'</div>\n')
     self.w(u'</footer>\n')
 
 def registration_callback(vreg):