From cdcc050f6510d9c0adbef3a76e904d4936981c6c Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 4 Dec 2021 17:05:23 +0000 Subject: [PATCH] demo: Add tabs to form examples Signed-off-by: Michael Tremer --- Makefile.am | 1 - src/templates/demo/forms.html | 5 ----- src/templates/modules/tabs.html | 5 ++++- src/westferry/handlers/demo.py | 22 ++++++---------------- src/westferry/ui/forms.py | 3 +++ src/westferry/ui/tabs.py | 15 +++++++++++---- 6 files changed, 24 insertions(+), 27 deletions(-) delete mode 100644 src/templates/demo/forms.html diff --git a/Makefile.am b/Makefile.am index 7a819b9..57ce56f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -149,7 +149,6 @@ dist_templates_DATA = \ templates_demodir = $(templatesdir)/demo dist_templates_demo_DATA = \ - src/templates/demo/forms.html \ src/templates/demo/index.html templates_modulesdir = $(templatesdir)/modules diff --git a/src/templates/demo/forms.html b/src/templates/demo/forms.html deleted file mode 100644 index efe0314..0000000 --- a/src/templates/demo/forms.html +++ /dev/null @@ -1,5 +0,0 @@ -{% extends "../base.html" %} - -{% block main %} - {% module Form(form) %} -{% end block %} diff --git a/src/templates/modules/tabs.html b/src/templates/modules/tabs.html index 038d5d8..bfd7d45 100644 --- a/src/templates/modules/tabs.html +++ b/src/templates/modules/tabs.html @@ -1,3 +1,4 @@ +{% import westferry.ui.forms %} {% import westferry.ui.graphs %} {# @@ -27,7 +28,9 @@
{% for item in tab.items %} - {% if isinstance(item, westferry.ui.graphs.Graph) %} + {% if isinstance(item, westferry.ui.forms.Form) %} + {% module Form(item) %} + {% elif isinstance(item, westferry.ui.graphs.Graph) %} {% module GraphBox(item, show_title=False) %} {% else %} {% module WarningBox(_("Unknown UI Element"), diff --git a/src/westferry/handlers/demo.py b/src/westferry/handlers/demo.py index 93000dd..b990311 100644 --- a/src/westferry/handlers/demo.py +++ b/src/westferry/handlers/demo.py @@ -53,22 +53,14 @@ class DemoFormsHandler(DemoBaseHandler): url = r"/demo/forms" title = N_("Forms") - def get(self): - self.render("demo/forms.html", form=self.form) - - def post(self): - data = self.form.export() - self.finish(data) - - @property - def form(self): - """ - This creates a simple form that asks the user - for their address. - """ + def initialize(self): _ = self.locale.translate - form = backend.forms.Form(self) + # Create a new tab + tab = self.tabs.add_tab("example-1", _("Example 1")) + + # Add a form to the tab + form = tab.add_form() form.submit_text = _("Order") # First name @@ -99,5 +91,3 @@ class DemoFormsHandler(DemoBaseHandler): # Subscribe to newsletter? e = fs2.add_yesno_input("subscribe_to_newsletter", description=_("Subscribe to newsletter?")) - - return form diff --git a/src/westferry/ui/forms.py b/src/westferry/ui/forms.py index 2764d92..76dd616 100644 --- a/src/westferry/ui/forms.py +++ b/src/westferry/ui/forms.py @@ -22,6 +22,9 @@ from ..backend import forms from . import base +# Forward-compatibility +from ..backend.forms import Form + class FormModule(base.BaseUIModule): def render(self, form): return self.render_string("modules/forms/index.html", diff --git a/src/westferry/ui/tabs.py b/src/westferry/ui/tabs.py index 82f7e48..5db6800 100644 --- a/src/westferry/ui/tabs.py +++ b/src/westferry/ui/tabs.py @@ -22,6 +22,7 @@ import uuid from . import base +from . import forms from . import graphs class TabsModule(base.BaseUIModule): @@ -72,8 +73,14 @@ class Tab(object): # List to store all items that have been added to this tab self.items = [] - def add_graph(self, *args, **kwargs): - graph = graphs.Graph(self.handler, *args, **kwargs) - self.items.append(graph) + def _add_item(self, cls, *args, **kwargs): + item = cls(self.handler, *args, **kwargs) + self.items.append(item) + + return item - return graph + def add_form(self, *args, **kwargs): + return self._add_item(forms.Form, *args, **kwargs) + + def add_graph(self, *args, **kwargs): + return self._add_item(graphs.Graph, *args, **kwargs) -- 2.47.3