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,24 +186,34 @@ class GenerateAdminClass:
title_edit=_('Edit item')
self.model.conditions=['WHERE `'+self.model.name+'`.`'+self.model.name_field_id+'`=%s', [getpostfiles.get['id']]]
if self.pre_update:
getpostfiles.post=self.pre_update(self, getpostfiles.post)
error_pre=False
if insert_row(getpostfiles.post):
set_flash_message(_('Task successful'))
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)
if self.pre_update:
(getpostfiles.post, error_pre)=self.pre_update(self, getpostfiles.post)
if not error_pre:
if insert_row(getpostfiles.post):
set_flash_message(_('Task successful'))
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)
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)
pass

View file

@ -445,7 +445,7 @@ class AjaxList(SimpleList):
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
message=''
@ -467,7 +467,7 @@ def simple_ajax_list(model, fields_searched, fields_selected, func_options=None)
except:
num_elements=20
num_elements=num_elements
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
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, raw_query=True) as cursor:
with model.set_conditions(sql_search_text, search_values).set_order({order_field: order}).select(fields_selected) as cursor:
for v in cursor:
items.append(v)
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

View file

@ -285,6 +285,13 @@ class PTemplate:
self.filters[filter_name.__name__]=filter_name
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()
@ -294,6 +301,12 @@ def set_flash_message(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()
message=s.get('flash', '')

View file

@ -5,14 +5,20 @@
</%def>
<%def name="help(help, name)">
% if help:
<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>
<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>-->
% 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
</%def>
<div class="form">
% for form in forms.values():
% 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>
${help_tooltip(form.help, form.name)}
% else:
${form.form()|n}
% endif

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