diff --git a/paramecio/citoplasma/generate_admin_class.py b/paramecio/citoplasma/generate_admin_class.py index ee2e89c..045ad8c 100644 --- a/paramecio/citoplasma/generate_admin_class.py +++ b/paramecio/citoplasma/generate_admin_class.py @@ -111,7 +111,7 @@ class GenerateAdminClass: set_flash_message(I18n.lang('common', 'task_successful', 'Task successful')) redirect(self.url) else: - + form=show_form(post, edit_forms, self.t, True) return self.t.load_template(self.template_insert, admin=self, title_edit=title_edit, form=form, model=self.model, id=GetPostFiles.get['id']) diff --git a/paramecio/cromosoma/coreforms.py b/paramecio/cromosoma/coreforms.py index 0020b70..30f2026 100644 --- a/paramecio/cromosoma/coreforms.py +++ b/paramecio/cromosoma/coreforms.py @@ -66,9 +66,10 @@ class HiddenForm(BaseForm): class SelectForm(BaseForm): - def __init__(self, name, value): + def __init__(self, name, value, elements=OrderedDict(), default_value=""): super(SelectForm, self).__init__(name, value) - self.arr_select=OrderedDict() + self.arr_select=elements + self.default_value=default_value def form(self): @@ -108,4 +109,4 @@ class SelectModelForm(SelectForm): - \ No newline at end of file + diff --git a/paramecio/cromosoma/extrafields/langfield.py b/paramecio/cromosoma/extrafields/langfield.py new file mode 100644 index 0000000..f79c484 --- /dev/null +++ b/paramecio/cromosoma/extrafields/langfield.py @@ -0,0 +1,26 @@ +#!/usr/bin/python3 + +from paramecio.cromosoma.corefields import CharField +from paramecio.cromosoma import coreforms +from paramecio.citoplasma.i18n import I18n + +class LangField(CharField): + + def __init__(self, name, size=255, required=False): + + super(CharField, self).__init__(name, size, required) + + select_lang={} + + for lang in I18n.dict_i18n: + select_lang[lang]=lang + + self.change_form(coreforms.SelectForm, [select_lang, I18n.default_lang]) + + def check(self, value): + + if value not in I18n.dict_i18n: + + value=I18n.default_lang + + return value diff --git a/paramecio/cromosoma/webmodel.py b/paramecio/cromosoma/webmodel.py index d916052..c38dc13 100644 --- a/paramecio/cromosoma/webmodel.py +++ b/paramecio/cromosoma/webmodel.py @@ -830,6 +830,10 @@ class WebModel: for error in k_error: error_txt+=error+"\n" + + for type_error in self.errors.values(): + for error in type_error: + error_txt+=error+"\n" return error_txt diff --git a/paramecio/modules/admin/admin/ausers.py b/paramecio/modules/admin/admin/ausers.py index 84524b2..29543e5 100644 --- a/paramecio/modules/admin/admin/ausers.py +++ b/paramecio/modules/admin/admin/ausers.py @@ -13,7 +13,7 @@ def admin(t): user_admin.fields['privileges'].name_form=SelectForm - user_admin.create_forms(['username', 'password', 'email', 'privileges']) + user_admin.create_forms(['username', 'password', 'email', 'privileges', 'lang']) user_admin.forms['privileges'].arr_select={0: I18n.lang('admin', 'without_privileges', 'Without privileges'), 1: I18n.lang('admin', 'selected_privileges', 'Selected privileges'), 2: I18n.lang('admin', 'administrator', 'Administrator')} @@ -27,8 +27,12 @@ def admin(t): admin.list.search_fields=['username'] - admin.arr_fields_edit=['username', 'password', 'repeat_password', 'email', 'privileges'] + admin.arr_fields_edit=['username', 'password', 'repeat_password', 'email', 'privileges', 'lang'] #admin.list.limit_pages=5 - return admin.show() + form_admin=admin.show() + + print(user_admin.show_errors()) + + return form_admin diff --git a/paramecio/modules/admin/models/admin.py b/paramecio/modules/admin/models/admin.py index e5c41b2..4d9de3e 100644 --- a/paramecio/modules/admin/models/admin.py +++ b/paramecio/modules/admin/models/admin.py @@ -6,6 +6,7 @@ from paramecio.cromosoma.usermodel import UserModel from paramecio.cromosoma import corefields from paramecio.cromosoma.extrafields.emailfield import EmailField from paramecio.cromosoma.extrafields.passwordfield import PasswordField +from paramecio.cromosoma.extrafields.langfield import LangField class PrivilegesField(corefields.IntegerField): @@ -22,7 +23,10 @@ class PrivilegesField(corefields.IntegerField): class UserAdmin(UserModel): - def create_fields(self): + #def create_fields(self): + def __init__(self): + + super().__init__() # I can change other fields here, how the name. @@ -43,6 +47,8 @@ class UserAdmin(UserModel): self.register(corefields.CharField('token_login')) self.register(PrivilegesField('privileges')) + + self.register(LangField('lang', 20)) """