From c4f229ca1c6bf213665a0bda9b5dafc8052c5e55 Mon Sep 17 00:00:00 2001 From: hurrinico Date: Mon, 10 Nov 2014 17:13:33 +0100 Subject: [PATCH] [ADD] Add New Model --- field_validator/__init__.py | 20 +++++++++++ field_validator/__openerp__.py | 40 ++++++++++++++++++++++ field_validator/field.py | 62 ++++++++++++++++++++++++++++++++++ 3 files changed, 122 insertions(+) create mode 100644 field_validator/__init__.py create mode 100644 field_validator/__openerp__.py create mode 100644 field_validator/field.py diff --git a/field_validator/__init__.py b/field_validator/__init__.py new file mode 100644 index 000000000..c968a1572 --- /dev/null +++ b/field_validator/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (C) 2014 Agile Business Group sagl () +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +import field diff --git a/field_validator/__openerp__.py b/field_validator/__openerp__.py new file mode 100644 index 000000000..d8095f23b --- /dev/null +++ b/field_validator/__openerp__.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (C) 2014 Agile Business Group sagl () +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +{ + 'name': "Field Validator", + 'version': '0.1', + 'category': 'Tools', + 'summary': "Checks for whitespace before fields", + 'description': """ +This module delete eventually whitespace before strings in fields. + +""", + 'author': 'Agile Business Group', + 'website': 'http://www.agilebg.com', + 'license': 'AGPL-3', + "depends": ['base'], + "data": [], + "demo": [], + 'test': [ + ], + "active": False, + "installable": True +} diff --git a/field_validator/field.py b/field_validator/field.py new file mode 100644 index 000000000..4ef1c1766 --- /dev/null +++ b/field_validator/field.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (C) 2014 Agile Business Group sagl () +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp.osv import orm +from openerp import SUPERUSER_ID +from openerp.tools.translate import _ + + +class ir_model_field(orm.Model): + + _inherit = 'ir.model.field' + + def _wrap_name_create(self, old_create, model): + def wrapper(cr, uid, name, context=None): + raise orm.except_orm(_('Error'), + _("Can't create quickly. " + "Opening create form")) + return wrapper + + def _register_hook(self, cr, ids=None): + if ids is None: + ids = self.search(cr, SUPERUSER_ID, []) + for model in self.browse(cr, SUPERUSER_ID, ids): + if model.avoid_quick_create: + model_name = model.model + model_obj = self.pool.get(model_name) + if model_obj and not hasattr(model_obj, 'check_quick_create'): + model_obj.name_create = self._wrap_name_create( + model_obj.name_create, + model_name) + model_obj.check_quick_create = True + return True + + def create(self, cr, uid, vals, context=None): + res_id = super(ir_model_field, self).create( + cr, uid, vals, context=context) + self._register_hook(cr, [res_id]) + return res_id + + def write(self, cr, uid, ids, vals, context=None): + if isinstance(ids, (int, long)): + ids = [ids] + super(ir_model_field, self).write(cr, uid, ids, vals, context=context) + self._register_hook(cr, ids) + return True