From 6fd05f526e2b6d84777b1f41f129465cb2df1380 Mon Sep 17 00:00:00 2001 From: Antonio de la Rosa Date: Sat, 23 Oct 2021 00:03:59 +0200 Subject: [PATCH] Added plugins --- paramecio2/libraries/generate_admin_class.py | 15 +++++++ paramecio2/libraries/plugins.py | 46 ++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 paramecio2/libraries/plugins.py diff --git a/paramecio2/libraries/generate_admin_class.py b/paramecio2/libraries/generate_admin_class.py index ffe45d7..c71ce6c 100644 --- a/paramecio2/libraries/generate_admin_class.py +++ b/paramecio2/libraries/generate_admin_class.py @@ -7,8 +7,23 @@ from paramecio2.libraries.i18n import I18n from collections import OrderedDict class GenerateAdminClass: + """Class for generate items for a model + """ def __init__(self, model, url, t): + """A class for generate forms, insert and update items from a database model + + For an easy and fast access to database data, you can use this class for get a simple database model of paramecio and get list of items, add forms, edit forms and more. + + Args: + model (WebModel): A WebModel model (equivalent to database mysql table) + url (str): A string with the base url for the forms. + t (PTemplate): Template used for the class. Normally template subclassed from admin_t PTemplate + + Attributes: + + + """ self.model_name='' diff --git a/paramecio2/libraries/plugins.py b/paramecio2/libraries/plugins.py new file mode 100644 index 0000000..3ee8d31 --- /dev/null +++ b/paramecio2/libraries/plugins.py @@ -0,0 +1,46 @@ +from flask import g +from functools import wraps +from paramecio2.libraries.db.webmodel import WebModel + +login_name='login' +login_url='.login' + +def db(f): + + @wraps(f) + + def wrapper(*args, **kwds): + + g.connection=WebModel.connection() + + try: + + code=f(*args, **kwds) + + g.connection.close() + + except: + + g.connection.close() + + raise + + return code + + return wrapper + +def login_site(f): + + @wraps(f) + + def wrapper(*args, **kwds): + + if not login_name in session: + + return redirect(url_for(login_url)) + + else: + + return f(*args, **kwds) + + return wrapper