diff --git a/paramecio/citoplasma/generate_admin_class.py b/paramecio/citoplasma/generate_admin_class.py index 31e06ee..de83f6b 100644 --- a/paramecio/citoplasma/generate_admin_class.py +++ b/paramecio/citoplasma/generate_admin_class.py @@ -92,7 +92,7 @@ class GenerateAdminClass: form=show_form(post, edit_forms, self.t, False, pass_value) - 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) + 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) elif getpostfiles.get['op_admin']=='2': @@ -127,7 +127,7 @@ class GenerateAdminClass: 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) + 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 @@ -236,7 +236,7 @@ class GenerateConfigClass: 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='0', url_action=url_action) + return self.t.render_template(self.template_insert, admin=self, title_edit=title_edit, form=form, model=self.model, id='0', url_action=url_action, enctype=self.model.enctype) else: form_values=self.model.select_a_row_where() @@ -246,5 +246,5 @@ class GenerateConfigClass: form=show_form(form_values, 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=0, url_action=url_action) + return self.t.render_template(self.template_insert, admin=self, title_edit=title_edit, form=form, model=self.model, id=0, url_action=url_action, enctype=self.model.enctype) diff --git a/paramecio/citoplasma/mtemplates.py b/paramecio/citoplasma/mtemplates.py index bad30c2..98df6e5 100644 --- a/paramecio/citoplasma/mtemplates.py +++ b/paramecio/citoplasma/mtemplates.py @@ -357,4 +357,6 @@ def set_flash_message(message): s.save() -#standard_t=ptemplate(__file__) +env=env_theme(__file__) + +standard_t=PTemplate(env) diff --git a/paramecio/citoplasma/templates/utils/insertform.phtml b/paramecio/citoplasma/templates/utils/insertform.phtml index 28f4f62..b812741 100644 --- a/paramecio/citoplasma/templates/utils/insertform.phtml +++ b/paramecio/citoplasma/templates/utils/insertform.phtml @@ -4,8 +4,16 @@ %else: ${title_edit} \ %endif +<% + + enctype_txt='' + + if enctype: + enctype_txt='enctype="multipart/form-data"' + +%>

-
+

${title_edit}

${model.query_error} ${ form|n } diff --git a/paramecio/cromosoma/extrafields/imagefield.py b/paramecio/cromosoma/extrafields/imagefield.py index 94ba07e..f9eabc1 100644 --- a/paramecio/cromosoma/extrafields/imagefield.py +++ b/paramecio/cromosoma/extrafields/imagefield.py @@ -2,6 +2,7 @@ import os import sys from pathlib import Path from paramecio.cromosoma.corefields import CharField +from paramecio.cromosoma.extraforms.fileform import FileForm from paramecio.citoplasma import httputils import traceback @@ -42,6 +43,10 @@ class ImageField(CharField): self.sizes=sizes + self.name_form=FileForm + self.extra_parameters=[self.save_folder] + + def change_folder(self, folder): pass @@ -81,6 +86,8 @@ class ImageField(CharField): #value=arr_image[self.name] self.model.yes_reset_conditions=old_reset + self.txt_error='Field is empty' + self.error=True return '' @@ -257,7 +264,7 @@ class ImageField(CharField): print(traceback.format_exc()) return "" - def show_formatted(value): + def show_formatted(self, value): return os.path.basename(value) diff --git a/paramecio/cromosoma/extraforms/fileform.py b/paramecio/cromosoma/extraforms/fileform.py index 0ecbddf..6215cfc 100644 --- a/paramecio/cromosoma/extraforms/fileform.py +++ b/paramecio/cromosoma/extraforms/fileform.py @@ -1,4 +1,21 @@ #!/usr/bin/env python3 from paramecio.cromosoma.coreforms import BaseForm +from paramecio.citoplasma.mtemplates import env_theme, PTemplate +env=env_theme(__file__) + +t=PTemplate(env) + +class FileForm(BaseForm): + + def __init__(self, name, value, path): + + super().__init__(name, value) + + self.t=t + self.enctype=True + + def form(self): + + return self.t.load_template('forms/fileform.phtml', form=self) diff --git a/paramecio/cromosoma/extraforms/i18nform.py b/paramecio/cromosoma/extraforms/i18nform.py index be7c985..21b5b83 100644 --- a/paramecio/cromosoma/extraforms/i18nform.py +++ b/paramecio/cromosoma/extraforms/i18nform.py @@ -2,13 +2,9 @@ from paramecio.cromosoma.coreforms import BaseForm from paramecio.citoplasma.i18n import I18n -from paramecio.citoplasma.mtemplates import env_theme, PTemplate +from paramecio.citoplasma.mtemplates import standard_t import json -env=env_theme(__file__) - -t=PTemplate(env) - class I18nForm(BaseForm): def __init__(self, name, value, form): @@ -16,6 +12,7 @@ class I18nForm(BaseForm): super().__init__(name, value) self.form_child=form + self.t=standard_t def form(self): @@ -32,4 +29,4 @@ class I18nForm(BaseForm): for lang in I18n.dict_i18n: self.default_value[lang]=self.default_value.get(lang, '') - return t.load_template('forms/i18nform.phtml', name_form=self.name_field_id, real_name_form=self.name, form=self.form_child, arr_i18n=I18n.dict_i18n, lang_selected=lang_selected, default_value=self.default_value) + return standard_t.load_template('forms/i18nform.phtml', name_form=self.name_field_id, real_name_form=self.name, form=self.form_child, arr_i18n=I18n.dict_i18n, lang_selected=lang_selected, default_value=self.default_value) diff --git a/paramecio/cromosoma/webmodel.py b/paramecio/cromosoma/webmodel.py index 4556bf7..fa1e52e 100644 --- a/paramecio/cromosoma/webmodel.py +++ b/paramecio/cromosoma/webmodel.py @@ -335,6 +335,10 @@ class WebModel: # property for use show_formatted property if needed self.show_formatted=False + + # property for def if the model have enctype + + self.enctype=False # A method where create the new fields of this model @@ -472,7 +476,14 @@ class WebModel: try: - fields, values, update_values=self.check_all_fields(dict_values, external_agent, True, 'update') + arr_return=self.check_all_fields(dict_values, external_agent, True, 'update') + + if arr_return: + + fields, values, update_values=arr_return + + else: + return False except: