diff --git a/paramecio2/libraries/db/extrafields/datetimefield.py b/paramecio2/libraries/db/extrafields/datetimefield.py index 10511d6..c68d028 100644 --- a/paramecio2/libraries/db/extrafields/datetimefield.py +++ b/paramecio2/libraries/db/extrafields/datetimefield.py @@ -26,16 +26,17 @@ class DateTimeField(PhangoField): value=datetime.local_to_gmt(value) elif not datetime.obtain_timestamp(value): - + self.error=True self.txt_error=self.error_default - return '' + + return '0000-00-00 00:00:00' if value==False: self.error=True self.txt_error=self.error_default - return '' + return '0000-00-00 00:00:00' else: """ diff --git a/paramecio2/libraries/generate_admin_class.py b/paramecio2/libraries/generate_admin_class.py index 23101d7..3497132 100644 --- a/paramecio2/libraries/generate_admin_class.py +++ b/paramecio2/libraries/generate_admin_class.py @@ -72,6 +72,8 @@ class GenerateAdminClass: self.url_redirect=self.url + self.pre_update=None + self.post_update=None self.text_home=I18n.lang('common', 'home', 'Home') @@ -131,6 +133,13 @@ class GenerateAdminClass: insert_row=self.model.insert + pre_update_ret=False + + if not self.pre_update: + pre_update_ret=True + else: + pre_update_ret=self.pre_update(self) + try: item_id=str(int(request.args.get('id', '0'))) @@ -149,21 +158,36 @@ class GenerateAdminClass: post=dict(request.form) - if insert_row(post): - flash(I18n.lang('common', 'task_successful', 'Task successful')) - - if self.post_update: - if item_id=='0': - item_id=self.model.insert_id() - self.post_update(self, item_id) - - return redirect(self.url_redirect) + if pre_update_ret: + + if insert_row(post): + flash(I18n.lang('common', 'task_successful', 'Task successful')) + + if self.post_update: + if item_id=='0': + item_id=self.model.insert_id() + self.post_update(self, item_id) + + return redirect(self.url_redirect) + + else: + + url_action=add_get_parameters(self.url, op_admin=2, id=item_id) + + post=dict(request.form) + + 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=item_id, url_action=url_action, enctype=self.model.enctype) + + else: url_action=add_get_parameters(self.url, op_admin=2, id=item_id) post=dict(request.form) 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=item_id, url_action=url_action, enctype=self.model.enctype) diff --git a/paramecio2/modules/admin/app.py b/paramecio2/modules/admin/app.py index acdf460..a4755f2 100644 --- a/paramecio2/modules/admin/app.py +++ b/paramecio2/modules/admin/app.py @@ -305,7 +305,9 @@ def signup(): forms['privileges']=2 - user_admin.valid_fields=['username', 'email', 'password', 'privileges'] + forms['last_login']=now() + + user_admin.valid_fields=['username', 'email', 'password', 'privileges', 'last_login'] user_admin.create_forms()