Fixes in modelform

This commit is contained in:
Antonio de la Rosa 2025-12-21 22:17:46 +01:00
parent 314683661f
commit c86f7215c0
5 changed files with 51 additions and 25 deletions

View file

@ -186,25 +186,35 @@ class GenerateAdminClass:
title_edit=_('Edit item') title_edit=_('Edit item')
self.model.conditions=['WHERE `'+self.model.name+'`.`'+self.model.name_field_id+'`=%s', [getpostfiles.get['id']]] self.model.conditions=['WHERE `'+self.model.name+'`.`'+self.model.name_field_id+'`=%s', [getpostfiles.get['id']]]
error_pre=False
if self.pre_update: if self.pre_update:
getpostfiles.post=self.pre_update(self, getpostfiles.post) (getpostfiles.post, error_pre)=self.pre_update(self, getpostfiles.post)
if insert_row(getpostfiles.post): if not error_pre:
set_flash_message(_('Task successful'))
if self.post_update: if insert_row(getpostfiles.post):
if getpostfiles.get['id']=='0': set_flash_message(_('Task successful'))
getpostfiles.get['id']=self.model.insert_id()
self.post_update(self, getpostfiles.get['id']) if self.post_update:
if getpostfiles.get['id']=='0':
getpostfiles.get['id']=self.model.insert_id()
self.post_update(self, getpostfiles.get['id'])
redirect(self.url_redirect)
else:
url_action=add_get_parameters(self.url, op_admin=2, id=getpostfiles.get['id'])
form=show_form(getpostfiles.post, edit_forms, self.t, True)
return self.t.render_template(self.template_insert, admin=self, title_edit=title_edit, form=form, model=self.model, id=getpostfiles.get['id'], url_action=url_action, enctype=self.model.enctype)
redirect(self.url_redirect)
else: else:
url_action=add_get_parameters(self.url, op_admin=2, id=getpostfiles.get['id']) url_action=add_get_parameters(self.url, op_admin=2, id=getpostfiles.get['id'])
form=show_form(getpostfiles.post, edit_forms, self.t, True) form=show_form(getpostfiles.post, edit_forms, self.t, True)
return self.t.render_template(self.template_insert, admin=self, title_edit=title_edit, form=form, model=self.model, id=getpostfiles.get['id'], url_action=url_action, enctype=self.model.enctype) return self.t.render_template(self.template_insert, admin=self, title_edit=title_edit, form=form, model=self.model, id=getpostfiles.get['id'], url_action=url_action, enctype=self.model.enctype)
pass pass
elif getpostfiles.get['op_admin']=='3': elif getpostfiles.get['op_admin']=='3':

View file

@ -445,7 +445,7 @@ class AjaxList(SimpleList):
return {'fields': self.fields, 'rows': rows, 'html_pages': html_pages} return {'fields': self.fields, 'rows': rows, 'html_pages': html_pages}
def simple_ajax_list(model, fields_searched, fields_selected, func_options=None): def simple_ajax_list(model, fields_searched, fields_selected, func_options=None, num_elements=20):
error=1 error=1
message='' message=''
@ -467,7 +467,7 @@ def simple_ajax_list(model, fields_searched, fields_selected, func_options=None)
except: except:
num_elements=20 num_elements=num_elements
arr_order=['ASC', 'DESC'] arr_order=['ASC', 'DESC']
@ -507,20 +507,17 @@ def simple_ajax_list(model, fields_searched, fields_selected, func_options=None)
search_values=arr_values+search_values search_values=arr_values+search_values
sql_search_text+=f' AND ({' OR '.join(arr_fields)})' sql_search_text+=f' AND ({' OR '.join(arr_fields)})'
#print(order_field)
#print(search_values)
#print(sql_search_text)
#print({order_field: order}) with model.set_conditions(sql_search_text, search_values).set_order({order_field: order}).select(fields_selected) as cursor:
with model.set_conditions(sql_search_text, search_values).set_order({order_field: order}).select(fields_selected, raw_query=True) as cursor:
for v in cursor: for v in cursor:
items.append(v) items.append(v)
if func_options: if func_options:
items[len(items)-1]['options']=func_options(v) for k_f,func in func_options.items():
items[len(items)-1][k_f]=func(v)
pass pass

View file

@ -285,6 +285,13 @@ class PTemplate:
self.filters[filter_name.__name__]=filter_name self.filters[filter_name.__name__]=filter_name
def set_flash_message(message): def set_flash_message(message):
"""Function for save flash message in session
A function for save flash message in a session for use in templates.
Args:
message (str): The message to save.
"""
s=get_session() s=get_session()
@ -294,6 +301,12 @@ def set_flash_message(message):
def show_flash_message(): def show_flash_message():
"""Function for get the message
Function for get the message from session and clean the value from session.
"""
s=get_session() s=get_session()
message=s.get('flash', '') message=s.get('flash', '')

View file

@ -5,14 +5,20 @@
</%def> </%def>
<%def name="help(help, name)"> <%def name="help(help, name)">
% if help: % if help:
<i class="fa fa-question-circle tooltip" data-tooltip-content="#tooltip_${name}_content" style="cursor:pointer;"></i> \ <i class="fa fa-question-circle tooltip" data-tooltip-content="#tooltip_${name}_content" style="cursor:pointer;"></i>
<div class="tooltip_templates" style="display:none;"><div id="tooltip_${name}_content">${help|n}</div></div> <!--<div class="tooltip_templates" style="display:none;"><div id="tooltip_${name}_content">${help|n}</div></div>-->
% endif
</%def>
<%def name="help_tooltip(help, name)">
% if help:
<div class="tooltip_templates" style="display:none;"><div id="tooltip_${name}_content">${help|n}</div></div>
% endif % endif
</%def> </%def>
<div class="form"> <div class="form">
% for form in forms.values(): % for form in forms.values():
% if form.type!='hidden': % if form.type!='hidden':
<p><label>${form.label} ${check_required(form.required)} ${help(form.help, form.name)}</label>${form.form()|n} <span class="error" id="${form.name}_error">${form.txt_error}</span></p> <p><label>${form.label} ${check_required(form.required)} ${help(form.help, form.name)}</label>${form.form()|n} <span class="error" id="${form.name}_error">${form.txt_error}</span></p>
${help_tooltip(form.help, form.name)}
% else: % else:
${form.form()|n} ${form.form()|n}
% endif % endif

@ -1 +1 @@
Subproject commit ff69d57ca5224ddf528ab283f4e628b296ea4886 Subproject commit 598d59c129d15d9d5cde089078808931403cf460