From 312629238fda6d4a94c44678408c46da34a1d06d Mon Sep 17 00:00:00 2001 From: Antonio de la Rosa Date: Wed, 5 Jun 2024 17:36:38 +0200 Subject: [PATCH] Fixes in generate_admin_class for make independent of flask --- paramecio2/libraries/generate_admin_class.py | 62 ++++++++++++++++---- pyproject.toml | 10 ++-- 2 files changed, 56 insertions(+), 16 deletions(-) diff --git a/paramecio2/libraries/generate_admin_class.py b/paramecio2/libraries/generate_admin_class.py index 4723400..30da483 100644 --- a/paramecio2/libraries/generate_admin_class.py +++ b/paramecio2/libraries/generate_admin_class.py @@ -38,7 +38,7 @@ class GenerateAdminClass: """Class for insert, update and list items of a model """ - def __init__(self, model, url, t=None): + def __init__(self, model, url, t=None, query_args=None, request_post=None): """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. @@ -116,6 +116,10 @@ class GenerateAdminClass: self.post_update=None self.text_home=_('Home') + + self.query_args=None + + self.request_post=None def show(self): """ Method for show the admin model @@ -126,9 +130,13 @@ class GenerateAdminClass: html (str): The html content of the admin page, can be, items list, forms for create items, etc... """ - op_admin=request.args.get('op_admin', '0') + if not self.query_args: + op_admin=request.args.get('op_admin', '0') + item_id=request.args.get('id', '0') - item_id=request.args.get('id', '0') + else: + op_admin=self.query_args.get('op_admin', '0') + item_id=self.query_args.get('id', '0') if len(self.model.forms)==0: @@ -189,7 +197,11 @@ class GenerateAdminClass: try: - item_id=str(int(request.args.get('id', '0'))) + if not self.query_args: + + item_id=str(int(request.args.get('id', '0'))) + else: + item_id=str(int(self.query_args.get('id', '0'))) except: @@ -203,7 +215,11 @@ class GenerateAdminClass: title_edit=_('Edit item') self.model.conditions=['WHERE `'+self.model.name+'`.`'+self.model.name_field_id+'`=%s', [item_id]] - post=dict(request.form) + if not self.request_post: + + post=dict(request.form) + else: + post=self.request_post if pre_update_ret: @@ -221,7 +237,10 @@ class GenerateAdminClass: url_action=add_get_parameters(self.url, op_admin=2, id=item_id) - post=dict(request.form) + if not self.request_post: + post=dict(request.form) + else: + post=self.request_post form=show_form(post, edit_forms, self.t, True) @@ -231,7 +250,7 @@ class GenerateAdminClass: else: url_action=add_get_parameters(self.url, op_admin=2, id=item_id) - post=dict(request.form) + #post=dict(request.form) form=show_form(post, edit_forms, self.t, True) @@ -242,7 +261,13 @@ class GenerateAdminClass: elif op_admin=='3': - verified=request.args.get('verified', '0') + if not self.query_args: + + verified=request.args.get('verified', '0') + + else: + + verified=self.query_args.get('verified', '0') if verified=='1': @@ -338,7 +363,11 @@ class GenerateConfigClass: """ - op_config=request.args.get('op_config', '0') + #op_config=request.args.get('op_config', '0') + if not self.query_args: + op_config=request.args.get('op_config', '0') + else: + op_config=self.query_args.get('op_config', '0') if len(self.model.forms)==0: @@ -366,7 +395,13 @@ class GenerateConfigClass: if c: insert_model=self.model.update - post=dict(request.form) + #post=dict(request.form) + if not self.request_post: + + post=dict(request.form) + else: + post=self.request_post + if insert_model(post): set_flash_message(_('Task successful')) @@ -380,7 +415,12 @@ class GenerateConfigClass: else: - post=dict(request.form) + #post=dict(request.form) + if not self.request_post: + post=dict(request.form) + else: + post=self.request_post + form=show_form(post, edit_forms, self.t, True) self.model.yes_reset_conditions=True diff --git a/pyproject.toml b/pyproject.toml index ed7ee66..0ecc617 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,11 +4,10 @@ build-backend = "flit_core.buildapi" [project] name = "paramecio2" -version = "2.0.36" -description = "Simple Web Framework based in flask and Mako." -readme = "README.md" -license = {file = "LICENSE.txt"} authors = [{name = "Antonio de la Rosa", email = "antonio.delarosa@salirdelhoyo.com"}] +readme = "README.md" +dynamic = ["version", "description"] + classifiers=['Development Status :: 4 - Beta', "Intended Audience :: Developers", "License :: OSI Approved :: GNU Affero General Public License v3", @@ -37,9 +36,10 @@ install_requires=[ "bleach", "argon2-cffi" ] + [project.urls] +Home = "https://git.cuchulu.com/paramecio/paramecio2fm/" Documentation = "https://docs.cuchulu.com/paramecio2/" -Source = "https://git.cuchulu.com/paramecio/paramecio2fm/" [project.scripts] paramecio2 = "paramecio2.console:start"