From 2876fe6251bd4dfceef06f638ee74c2728ad1207 Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Tue, 3 Sep 2024 14:53:06 -0500 Subject: Extract common UI pattern to separate module for reusability. --- uploader/species/views.py | 15 +++------------ uploader/ui.py | 13 +++++++++++++ 2 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 uploader/ui.py diff --git a/uploader/species/views.py b/uploader/species/views.py index 6009f03..6f4d51f 100644 --- a/uploader/species/views.py +++ b/uploader/species/views.py @@ -4,9 +4,9 @@ from flask import (flash, url_for, redirect, Blueprint, - current_app as app, - render_template as flask_render_template) + current_app as app) +from uploader.ui import make_template_renderer from uploader.authorisation import require_login from uploader.db_utils import database_connection @@ -14,16 +14,7 @@ from .models import all_species, save_species, species_by_id speciesbp = Blueprint("species", __name__) - - -def render_template(template, **kwargs): - """Render template for species.""" - return flask_render_template( - template, - **{ - **kwargs, - "activelink": kwargs.get("activelink", "species") - }) +render_template = make_template_renderer("species") @speciesbp.route("/", methods=["GET"]) diff --git a/uploader/ui.py b/uploader/ui.py new file mode 100644 index 0000000..4115b02 --- /dev/null +++ b/uploader/ui.py @@ -0,0 +1,13 @@ +"""Utilities to handle the UI""" +from flask import render_template as flask_render_template + +def make_template_renderer(default): + """Render template for species.""" + def render_template(template, **kwargs): + return flask_render_template( + template, + **{ + **kwargs, + "activelink": kwargs.get("activelink", default) + }) + return render_template -- cgit v1.2.3