Browse Source

Merge pull request #144 from damdam-s/7.0

[ADD] add module 'web_warning_on_save'
pull/225/head
Guewen Baconnier 9 years ago
parent
commit
af1770d369
  1. 78
      web_warning_on_save/README.rst
  2. 23
      web_warning_on_save/__init__.py
  3. 69
      web_warning_on_save/__openerp__.py
  4. 22
      web_warning_on_save/controllers/__init__.py
  5. 43
      web_warning_on_save/controllers/controller.py
  6. 31
      web_warning_on_save/i18n/web_warning_on_save.pot
  7. 28
      web_warning_on_save/orm.py
  8. 28
      web_warning_on_save/static/src/js/web_warning_on_save.js

78
web_warning_on_save/README.rst

@ -0,0 +1,78 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:alt: License: AGPL-3
Raise warning when saving
=========================
This module was written to extend the functionality of saving a record in the web interface.
/!\\/!\\/!\\
In no way this module stops the save of the record. You must consider this as a warning displayed
to the user AFTER save completed.
/!\\/!\\/!\\
If you don't want OpenERP to save the record, you should use constraints.
Usage
=====
To use this module, you need to:
* write a method called 'check_warning_on_save' which will make some checks and return a string
example :
.. code:: python
def check_warning_on_save(self, cr, uid, id, context=None):
"""
@param: int: record_id
@return: string: message that should be displayed to the user
"""
res = ""
record = self.browse(cr, uid, id, context=context)
# ... make some checks
return res
For further information, please visit:
* https://www.odoo.com/forum/help-1
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/{project_repo}/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed feedback
`here <https://github.com/OCA/web/issues/new?body=module:%20web_warning_on_save%0Aversion:%207.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Credits
=======
Contributors
------------
* Damien Crier <damien.crier@camptocamp.com>
* Vincent Renaville <vincent.renaville@camptocamp.com>
Maintainer
----------
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
To contribute to this module, please visit http://odoo-community.org.

23
web_warning_on_save/__init__.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Damien Crier
# Copyright 2015 Camptocamp SA
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import controllers
from . import orm

69
web_warning_on_save/__openerp__.py

@ -0,0 +1,69 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Damien Crier
# Copyright 2015 Camptocamp SA
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
{
"name": "Web warning on save",
"version": "1.0",
"depends": ['web'],
"author": "Camptocamp,Odoo Community Association (OCA)",
'license': 'AGPL-3',
'website': 'http://www.camptocamp.com',
'description': """
This module was written to extend the functionality of
saving a record in the web interface.
/!\/!\/!\ In no way this module stops the save of the record.
You must consider this as a warning displayed
to the user AFTER save completed. /!\/!\/!\
If you don't want OpenERP to save the record, you should use constraints.
Usage
=====
To use this module, you need to:
* write a method called 'check_warning_on_save' which will make some checks
and return a string
example :
def check_warning_on_save(self, cr, uid, id, context=None):
'''
@param: int: record_id
@return: string: message that should be displayed to the user
'''
res = ""
record = self.browse(cr, uid, id, context=context)
# ... make some checks
return res
""",
'data': [
],
'js': [
'static/src/js/web_warning_on_save.js',
],
'css': [
],
'qweb': [
],
'installable': True,
'auto_install': False,
}

22
web_warning_on_save/controllers/__init__.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Damien Crier
# Copyright 2015 Camptocamp SA
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import controller

43
web_warning_on_save/controllers/controller.py

@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Damien Crier
# Copyright 2015 Camptocamp SA
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
import xmlrpclib
import openerp
class WarningOnSaveController(openerp.addons.web.http.Controller):
_cp_path = "/web_warning_on_save"
@openerp.addons.web.http.jsonrequest
def check_warning_on_save(self, req, model, id):
"""
try to call a method on the model given in parameter
if method does not exist in the model, do nothing
"""
m = req.session.model(model)
try:
return m.check_warning_on_save(id, req.context)
except xmlrpclib.Fault as e:
if 'AttributeError' in e.faultString:
return False
else:
raise openerp.osv.osv.except_osv('Error', e.faultCode)

31
web_warning_on_save/i18n/web_warning_on_save.pot

@ -0,0 +1,31 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * web_warning_on_save
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-06-08 09:04+0000\n"
"PO-Revision-Date: 2015-06-08 09:04+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: web_warning_on_save
#: code:_description:0
#: model:ir.model,name:web_warning_on_save.model_res_users
#, python-format
msgid "Users"
msgstr ""
#. module: web_warning_on_save
#. openerp-web
#: code:addons/web_warning_on_save/static/src/js/web_warning_on_save.js:18
#, python-format
msgid "Warning"
msgstr ""

28
web_warning_on_save/orm.py

@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Damien Crier
# Copyright 2015 Camptocamp SA
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.osv import orm
def check_warning_on_save(self, cr, uid, id, context=None):
return False
orm.BaseModel.check_warning_on_save = check_warning_on_save

28
web_warning_on_save/static/src/js/web_warning_on_save.js

@ -0,0 +1,28 @@
openerp.web_warning_on_save = function (instance) {
instance.web.FormView.include({
on_button_save: function(e) {
// inherit method to be able to display an alert if
// method called returns a string
var self = this;
return self._super.apply(this, arguments).done(function(id){
var model = self.model;
var param = {
'model': model,
'id': self.datarecord.id ? self.datarecord.id : id
};
self.rpc('/web_warning_on_save/check_warning_on_save', param)
.done(function(res) {
if (res != false){
var dialog = new instance.web.Dialog(this, {
title: _t("Warning"),
width: 850,
}).open();
dialog.$el.html(res);
}
});
})
},
});
};
Loading…
Cancel
Save