Have page builder allow you to inject custom HTML. Make the generic
[kiosk.git] / page_builder.py
index 65f5b93e354fc138d9dcbf390feaa2e0d1801fce..4aa72fe85f9851f9d221ce6be4fb73971834f952 100644 (file)
@@ -14,6 +14,7 @@ class page_builder(object):
         self.layout = page_builder.LAYOUT_AUTO
         self.items = []
         self.debug_info = None
+        self.custom_html = None
 
     def set_layout(self, layout):
         self.layout = layout
@@ -43,6 +44,10 @@ class page_builder(object):
         else:
             self.layout = page_builder.LAYOUT_MANY_ITEMS
 
+    def __render_custom_html(self, f):
+        if self.custom_html is not None:
+            f.write(self.custom_html)
+
     def __render_header(self, f):
         if self.title is not None:
             f.write("<H1>%s</H1>\n" % self.title)
@@ -56,7 +61,7 @@ class page_builder(object):
     def render_html(self, f):
         if self.layout == page_builder.LAYOUT_AUTO or self.layout is None:
             self.__pick_layout()
-
+        self.__render_custom_html(f)
         self.__render_header(f)
 
         items_per_row = None
@@ -86,8 +91,10 @@ class page_builder(object):
             count += 1
             if count % items_per_row == 0:
                 f.write("</TR>\n<TR>\n")
-
         self.__render_footer(f)
 
+    def set_custom_html(self, html):
+        self.custom_html = html
+
 #x = page_builder()
 #x.set_title("title").add_item("item1").add_item("item2").add_item("item3").render_html(sys.stdout)