From b7ef61445b8e68b0faad2adb9cafc1bb290b9983 Mon Sep 17 00:00:00 2001 From: Maria Alhambra Date: Thu, 20 Jun 2019 10:00:01 +0200 Subject: [PATCH 1/4] Create a module helpdesk_improvement --- helpdesk/README.rst | 4 +- helpdesk_improvement/README.rst | 86 +++++++++++++++++ helpdesk_improvement/__init__.py | 1 + helpdesk_improvement/__manifest__.py | 29 ++++++ helpdesk_improvement/models/__init__.py | 2 + .../models/helpdesk_improvement.py | 33 +++++++ helpdesk_improvement/models/res_config.py | 44 +++++++++ helpdesk_improvement/readme/CONFIGURE.rst | 14 +++ helpdesk_improvement/readme/CONTRIBUTORS.rst | 23 +++++ helpdesk_improvement/readme/DESCRIPTION.rst | 1 + helpdesk_improvement/readme/USAGE.rst | 19 ++++ .../static/description/Blacklist.png | Bin 0 -> 7985 bytes .../static/description/Settings.png | Bin 0 -> 34721 bytes .../static/description/Whitelist.png | Bin 0 -> 7709 bytes .../views/helpdesk_improvement_menu.xml | 17 ++++ .../views/helpdesk_improvement_view.xml | 91 ++++++++++++++++++ .../views/res_config_view.xml | 32 ++++++ 17 files changed, 395 insertions(+), 1 deletion(-) create mode 100644 helpdesk_improvement/README.rst create mode 100644 helpdesk_improvement/__init__.py create mode 100644 helpdesk_improvement/__manifest__.py create mode 100644 helpdesk_improvement/models/__init__.py create mode 100644 helpdesk_improvement/models/helpdesk_improvement.py create mode 100644 helpdesk_improvement/models/res_config.py create mode 100644 helpdesk_improvement/readme/CONFIGURE.rst create mode 100644 helpdesk_improvement/readme/CONTRIBUTORS.rst create mode 100644 helpdesk_improvement/readme/DESCRIPTION.rst create mode 100644 helpdesk_improvement/readme/USAGE.rst create mode 100644 helpdesk_improvement/static/description/Blacklist.png create mode 100644 helpdesk_improvement/static/description/Settings.png create mode 100644 helpdesk_improvement/static/description/Whitelist.png create mode 100644 helpdesk_improvement/views/helpdesk_improvement_menu.xml create mode 100644 helpdesk_improvement/views/helpdesk_improvement_view.xml create mode 100644 helpdesk_improvement/views/res_config_view.xml diff --git a/helpdesk/README.rst b/helpdesk/README.rst index b910d9a5d4..456f0ab184 100644 --- a/helpdesk/README.rst +++ b/helpdesk/README.rst @@ -17,7 +17,7 @@ Helpdesk :target: https://github.com/aitorbouzas/helpdesk/tree/11.0/helpdesk :alt: aitorbouzas/helpdesk -|badge1| |badge2| |badge3| +|badge1| |badge2| |badge3| This module adds Helpdesk functionality in Odoo. @@ -76,6 +76,8 @@ Contributors * `Factor Libre `_: * María Alhambra + * Daniel Cano + * Adrián Cruz Maintainers ~~~~~~~~~~~ diff --git a/helpdesk_improvement/README.rst b/helpdesk_improvement/README.rst new file mode 100644 index 0000000000..3a81b477a1 --- /dev/null +++ b/helpdesk_improvement/README.rst @@ -0,0 +1,86 @@ +======== +Helpdesk Improvement +======== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-aitorbouzas%2Fhelpdesk-lightgray.png?logo=github + :target: https://github.com/aitorbouzas/helpdesk/tree/11.0/helpdesk + :alt: aitorbouzas/helpdesk + +|badge1| |badge2| |badge3| + +This module adds Helpdesk functionality in Odoo. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +* Go to... + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* AdaptiveCity +* C2i Change 2 Improve +* Domatix +* Factor Libre +* SDi Soluciones + +Contributors +~~~~~~~~~~~~ + +* `Domatix `_: + + * Carlos Martínez + +* `Adaptive City `_: + + * Aitor Bouzas + +* `SDi Soluciones, S.L. `_: + + * Oscar Soto + * Jorge Luis Quinteros + +* `C2i Change 2 improve `_: + + * Eduardo Magdalena + +* `Factor Libre `_: + + * María Alhambra + * Daniel Cano + * Adrián Cruz +Maintainers +~~~~~~~~~~~ + +This module is part of the `aitorbouzas/helpdesk `_ project on GitHub. + +You are welcome to contribute. diff --git a/helpdesk_improvement/__init__.py b/helpdesk_improvement/__init__.py new file mode 100644 index 0000000000..0650744f6b --- /dev/null +++ b/helpdesk_improvement/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/helpdesk_improvement/__manifest__.py b/helpdesk_improvement/__manifest__.py new file mode 100644 index 0000000000..55b9c7415c --- /dev/null +++ b/helpdesk_improvement/__manifest__.py @@ -0,0 +1,29 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + 'name': 'Helpdesk Improvement', + 'summary': """ + Helpdesk""", + 'version': '11.0.1.0.0', + 'license': 'AGPL-3', + 'category': 'After-Sales', + 'author': 'AdaptiveCity, ' + 'C2i Change 2 Improve, ' + 'Domatix, ' + 'Factor Libre, ' + 'SDi Soluciones, ' + 'Odoo Community Association (OCA)', + 'website': 'https://github.com/OCA/helpdesk', + 'depends': [ + 'helpdesk', + 'mail', + 'portal', + ], + 'data': [ + 'views/res_config_view.xml', + 'views/helpdesk_improvement_menu.xml', + 'views/helpdesk_improvement_view.xml' + ], + 'application': True, + 'installable': True, +} diff --git a/helpdesk_improvement/models/__init__.py b/helpdesk_improvement/models/__init__.py new file mode 100644 index 0000000000..ff4c9e31c6 --- /dev/null +++ b/helpdesk_improvement/models/__init__.py @@ -0,0 +1,2 @@ +from . import helpdesk_improvement +from . import res_config diff --git a/helpdesk_improvement/models/helpdesk_improvement.py b/helpdesk_improvement/models/helpdesk_improvement.py new file mode 100644 index 0000000000..2bf42eedff --- /dev/null +++ b/helpdesk_improvement/models/helpdesk_improvement.py @@ -0,0 +1,33 @@ +from odoo import fields, models, _ + + +class HelpdeskBlacklistLine(models.Model): + _name = "helpdesk.ticket.blacklist.line" + _description = "Emails detected as machines" + + _sql_constraints = [ + ('helpdesk_ticket_blacklist_lineunique_code', 'UNIQUE (email)', + _('The email must be unique!')), + ] + + email = fields.Char('Email', help="email to block", required=True) + comment = fields.Text( + 'Comment', + help="Reason wich this email is in the list", required=True) + + +class HelpdeskWhitelistLine(models.Model): + _name = "helpdesk.ticket.whitelist.line" + _description = "Emails excluded from blacklist" + + _sql_constraints = [ + ('crm_helpdesk_whitelist_unique_code', 'UNIQUE (email)', + _('The email must be unique!')), + ] + + email = fields.Char( + 'Email', help="email to exclude from blacklist", + required=True) + comment = fields.Text( + 'Comment', + help="Reason wich this email is in the list", required=True) diff --git a/helpdesk_improvement/models/res_config.py b/helpdesk_improvement/models/res_config.py new file mode 100644 index 0000000000..7c62cce820 --- /dev/null +++ b/helpdesk_improvement/models/res_config.py @@ -0,0 +1,44 @@ +from odoo import fields, models, api + + +class HelpdeskConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + # Getter / Setter Section + @api.model + def get_values(self): + res = super().get_values() + ir_config_sudo = self.env['ir.config_parameter'].sudo() + number_of_minutes = ir_config_sudo.get_param( + 'helpdesk_improvement_number_of_minutes') + number_of_tickets = ir_config_sudo.get_param( + 'helpdesk_improvement_number_of_tickets') + res.update( + helpdesk_improvement_number_of_minutes=int( + number_of_minutes), + helpdesk_improvement_number_of_tickets=int( + number_of_tickets + ) + ) + return res + + @api.multi + def set_values(self): + super().set_values() + ir_config_sudo = self.env['ir.config_parameter'].sudo() + if self.helpdesk_improvement_number_of_minutes: + ir_config_sudo.set_param( + 'helpdesk_improvement_number_of_minutes', + self.helpdesk_improvement_number_of_minutes + ) + if self.helpdesk_improvement_number_of_tickets: + ir_config_sudo.set_param( + 'helpdesk_improvement_number_of_tickets', + self.helpdesk_improvement_number_of_tickets + ) + + helpdesk_improvement_number_of_tickets = fields.Integer( + string='Number of tickets.') + + helpdesk_improvement_number_of_minutes = fields.Integer( + string='Number of minutes.') diff --git a/helpdesk_improvement/readme/CONFIGURE.rst b/helpdesk_improvement/readme/CONFIGURE.rst new file mode 100644 index 0000000000..4c4391a66c --- /dev/null +++ b/helpdesk_improvement/readme/CONFIGURE.rst @@ -0,0 +1,14 @@ +To configure this module, you need to: +#. Create the range of emails per minute. + +------------------- +Settings +------------------- + +#. Go to *Helpdesk > Configuration > Settings* to edit the range. +#. Edit the range of the Blacklist configuration. +#. Set the number of emails and the minutes. + +.. figure:: ../static/description/Settings.png + :alt: Settings + :width: 600 px diff --git a/helpdesk_improvement/readme/CONTRIBUTORS.rst b/helpdesk_improvement/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..635f74f873 --- /dev/null +++ b/helpdesk_improvement/readme/CONTRIBUTORS.rst @@ -0,0 +1,23 @@ +* `Domatix `_: + + * Carlos Martínez + * Catalin Airimitoaie + +* `Adaptive City `_: + + * Aitor Bouzas + +* `SDi Soluciones, S.L. `_: + + * Oscar Soto + * Jorge Luis Quinteros + +* `C2i Change 2 improve `_: + + * Eduardo Magdalena + +* `Factor Libre `_: + + * María Alhambra + * Daniel Cano + * Adrián Cruz diff --git a/helpdesk_improvement/readme/DESCRIPTION.rst b/helpdesk_improvement/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..e3b0891bc9 --- /dev/null +++ b/helpdesk_improvement/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module adds a Blacklist and a Whitelist in Odoo. diff --git a/helpdesk_improvement/readme/USAGE.rst b/helpdesk_improvement/readme/USAGE.rst new file mode 100644 index 0000000000..31e3d73a94 --- /dev/null +++ b/helpdesk_improvement/readme/USAGE.rst @@ -0,0 +1,19 @@ +#. Go to *Helpdesk > BlackList* to see the Blacklist + +To create a new item in the Blacklist ... +#. Press the *Create* button +#. Add a email and a comment + +.. figure:: ../static/description/Blacklist.png + :alt: Create BlackList item + :width: 500 px + +#. Go to *Helpdesk > WhiteList* to see the Whitelist + +To create a new item in the Whitelist ... +#. Press the *Create* button +#. Add a email and a comment + +.. figure:: ../static/description/Whitelist.png + :alt: Create WhiteList item + :width: 500 px diff --git a/helpdesk_improvement/static/description/Blacklist.png b/helpdesk_improvement/static/description/Blacklist.png new file mode 100644 index 0000000000000000000000000000000000000000..a1d311c0c4e5a97a7eec77f169e4708f3bfdad9f GIT binary patch literal 7985 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 V@OH&Q<6*|`+_r&{Zaw_{zX6`-Sf>C0 literal 0 HcmV?d00001 diff --git a/helpdesk_improvement/static/description/Settings.png b/helpdesk_improvement/static/description/Settings.png new file mode 100644 index 0000000000000000000000000000000000000000..424ff95b80014885f79573c16eb6f9e1db42d832 GIT binary patch literal 34721 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 literal 0 HcmV?d00001 diff --git a/helpdesk_improvement/static/description/Whitelist.png b/helpdesk_improvement/static/description/Whitelist.png new file mode 100644 index 0000000000000000000000000000000000000000..70d52549c30b16a12f56ed9f6f96d84dc2204c0d GIT binary patch literal 7709 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 + + + + Configure Helpdesk + ir.actions.act_window + res.config.settings + form + inline + {'module' : 'helpdesk'} + + + + + diff --git a/helpdesk_improvement/views/helpdesk_improvement_view.xml b/helpdesk_improvement/views/helpdesk_improvement_view.xml new file mode 100644 index 0000000000..911a89addc --- /dev/null +++ b/helpdesk_improvement/views/helpdesk_improvement_view.xml @@ -0,0 +1,91 @@ + + + + + + Blacklist + helpdesk.ticket.blacklist.line + +
+ + + + +
+
+
+ + + Blacklist + helpdesk.ticket.blacklist.line + + + + + + + + + + BlackList + helpdesk.ticket.blacklist.line + form + tree,form + + +

+ Click to create a blacklist item. +

+ Helpdesk allow to have an email list in order to disable sending automatic messages. +

+
+
+ + + + + + WhiteList + helpdesk.ticket.whitelist.line + +
+ + + + +
+
+
+ + + Whitelist + helpdesk.ticket.whitelist.line + + + + + + + + + + WhiteList + helpdesk.ticket.whitelist.line + form + tree,form + + +

+ Click to create a whitelist item. +

+ Helpdesk allow to skip for this list the blacklist limitation. +

+
+
+ + +
diff --git a/helpdesk_improvement/views/res_config_view.xml b/helpdesk_improvement/views/res_config_view.xml new file mode 100644 index 0000000000..9f9aeda8d9 --- /dev/null +++ b/helpdesk_improvement/views/res_config_view.xml @@ -0,0 +1,32 @@ + + + + helpdesk_settings_form + res.config.settings + + + +
+

Helpdesk BlackList

+
+
+
+
+
+
+
+
+
+
+ +
From faebbc6892eae27ddeaf6c8b9d46653840f50ddc Mon Sep 17 00:00:00 2001 From: Maria Alhambra Date: Thu, 20 Jun 2019 10:37:05 +0200 Subject: [PATCH 2/4] [Update] helpdesk_improvement --- helpdesk_improvement/README.rst | 5 +++-- helpdesk_improvement/views/helpdesk_improvement_menu.xml | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/helpdesk_improvement/README.rst b/helpdesk_improvement/README.rst index 3a81b477a1..16fc4ff023 100644 --- a/helpdesk_improvement/README.rst +++ b/helpdesk_improvement/README.rst @@ -1,6 +1,6 @@ -======== +===================== Helpdesk Improvement -======== +===================== .. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! @@ -78,6 +78,7 @@ Contributors * María Alhambra * Daniel Cano * Adrián Cruz + Maintainers ~~~~~~~~~~~ diff --git a/helpdesk_improvement/views/helpdesk_improvement_menu.xml b/helpdesk_improvement/views/helpdesk_improvement_menu.xml index 6ed644b729..4ee3bc3a99 100644 --- a/helpdesk_improvement/views/helpdesk_improvement_menu.xml +++ b/helpdesk_improvement/views/helpdesk_improvement_menu.xml @@ -11,6 +11,7 @@ From b0b4c65683e4cfa4a0511c6015411a5362c5d4aa Mon Sep 17 00:00:00 2001 From: Maria Alhambra Date: Thu, 20 Jun 2019 11:27:56 +0200 Subject: [PATCH 3/4] Added translation and security in helpdesk_improvement --- helpdesk_improvement/i18n/es.po | 148 ++++++++++++++++++ .../security/ir.model.access.csv | 3 + 2 files changed, 151 insertions(+) create mode 100644 helpdesk_improvement/i18n/es.po create mode 100644 helpdesk_improvement/security/ir.model.access.csv diff --git a/helpdesk_improvement/i18n/es.po b/helpdesk_improvement/i18n/es.po new file mode 100644 index 0000000000..bd305f859d --- /dev/null +++ b/helpdesk_improvement/i18n/es.po @@ -0,0 +1,148 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_improvement +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-20 08:54+0000\n" +"PO-Revision-Date: 2019-06-20 11:06+0200\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"Language: es\n" +"X-Generator: Poedit 2.0.6\n" + +#. module: helpdesk_improvement +#: model:ir.actions.act_window,name:helpdesk_improvement.case_helpdesk_blacklist +#: model:ir.ui.menu,name:helpdesk_improvement.menu_help_blacklist +msgid "BlackList" +msgstr "BlackList" + +#. module: helpdesk_improvement +#: model:ir.ui.view,arch_db:helpdesk_improvement.res_config_settings_view_form_inherit_helpdesk +msgid "BlackList Configuration:" +msgstr "Configuración de la BlackList:" + +#. module: helpdesk_improvement +#: model:ir.ui.view,arch_db:helpdesk_improvement.helpdesk_form_view_blacklist +msgid "Blacklist Form" +msgstr "Blacklist Form" + +#. module: helpdesk_improvement +#: model:ir.ui.view,arch_db:helpdesk_improvement.helpdesk_tree_view_blacklist +msgid "Blacklist Tree" +msgstr "Blacklist Tree" + +#. module: helpdesk_improvement +#: model:ir.actions.act_window,help:helpdesk_improvement.case_helpdesk_blacklist +msgid "Click to create a blacklist item." +msgstr "Pulsa el botón para crear un elemento en la BlackList." + +#. module: helpdesk_improvement +#: model:ir.actions.act_window,help:helpdesk_improvement.case_helpdesk_whitelist +msgid "Click to create a whitelist item." +msgstr "Pulsa el botón para crear un elemento en la WhiteList." + +#. module: helpdesk_improvement +#: model:ir.actions.act_window,name:helpdesk_improvement.helpdesk_ticket_config_settings_action +msgid "Configure Helpdesk" +msgstr "Configuración de Helpdesk" + +#. module: helpdesk_improvement +#: model:ir.ui.view,arch_db:helpdesk_improvement.res_config_settings_view_form_inherit_helpdesk +msgid "Create BlackList item when" +msgstr "Crea un elemento en la BlackList cuando " + +#. module: helpdesk_improvement +#: model:ir.model,name:helpdesk_improvement.model_helpdesk_ticket_blacklist_line +msgid "Emails detected as machines" +msgstr "Mails detectados como máquinas" + +#. module: helpdesk_improvement +#: model:ir.model,name:helpdesk_improvement.model_helpdesk_ticket_whitelist_line +msgid "Emails excluded from blacklist" +msgstr "Mails excluidos para la creación automática de elementos para la BlackList" + +#. module: helpdesk_improvement +#: model:ir.ui.view,arch_db:helpdesk_improvement.res_config_settings_view_form_inherit_helpdesk +msgid "Helpdesk" +msgstr "Helpdesk" + +#. module: helpdesk_improvement +#: model:ir.ui.view,arch_db:helpdesk_improvement.res_config_settings_view_form_inherit_helpdesk +msgid "Helpdesk BlackList" +msgstr "Helpdesk BlackList" + +#. module: helpdesk_improvement +#: model:ir.ui.view,arch_db:helpdesk_improvement.crm_helpdesk_form_view_whitelist +msgid "Helpdesk Whitelist" +msgstr "Helpdesk Whitelist" + +#. module: helpdesk_improvement +#: model:ir.ui.view,arch_db:helpdesk_improvement.helpdesk_tree_view_whitelist +msgid "Helpdesk Whitelist Tree" +msgstr "Helpdesk Whitelist Tree" + +#. module: helpdesk_improvement +#: model:ir.actions.act_window,help:helpdesk_improvement.case_helpdesk_blacklist +msgid "Helpdesk allow to have an email list in order to disable sending automatic messages." +msgstr "El sistema de helpdesk permite tener una lista de direcciones de correo electronico con el fin de que se deshabilite para los tickets creados por ellos el envío de mails automáticos." + +#. module: helpdesk_improvement +#: model:ir.actions.act_window,help:helpdesk_improvement.case_helpdesk_whitelist +msgid "Helpdesk allow to skip for this list the blacklist limitation." +msgstr "El sistema de helpdesk permite establecer excepciones para evitar que el sistema cree elementos automaticamente en la BlackList." + +#. module: helpdesk_improvement +#: model:ir.model.fields,field_description:helpdesk_improvement.field_connector_config_settings_helpdesk_improvement_number_of_minutes +#: model:ir.model.fields,field_description:helpdesk_improvement.field_res_config_settings_helpdesk_improvement_number_of_minutes +msgid "Number of minutes." +msgstr "Número de minutos." + +#. module: helpdesk_improvement +#: model:ir.model.fields,field_description:helpdesk_improvement.field_connector_config_settings_helpdesk_improvement_number_of_tickets +#: model:ir.model.fields,field_description:helpdesk_improvement.field_res_config_settings_helpdesk_improvement_number_of_tickets +msgid "Number of tickets." +msgstr "Número de tickets creados." + +#. module: helpdesk_improvement +#: model:ir.ui.menu,name:helpdesk_improvement.helpdesk_ticket_config_settings_menu +msgid "Settings" +msgstr "Ajustes" + +#. module: helpdesk_improvement +#: code:addons/helpdesk_improvement/models/helpdesk_improvement.py:10 +#: code:addons/helpdesk_improvement/models/helpdesk_improvement.py:25 +#: code:addons/naturitas/OCA/h_fl/OCA-helpdesk/helpdesk_improvement/models/helpdesk_improvement.py:10 +#: code:addons/naturitas/OCA/h_fl/OCA-helpdesk/helpdesk_improvement/models/helpdesk_improvement.py:25 +#: sql_constraint:helpdesk.ticket.blacklist.line:0 +#: sql_constraint:helpdesk.ticket.whitelist.line:0 +#, python-format +msgid "The email must be unique!" +msgstr "El email debe ser único!" + +#. module: helpdesk_improvement +#: model:ir.actions.act_window,name:helpdesk_improvement.case_helpdesk_whitelist +#: model:ir.ui.menu,name:helpdesk_improvement.menu_help_whitelist +msgid "WhiteList" +msgstr "WhiteList" + +#. module: helpdesk_improvement +#: model:ir.ui.view,arch_db:helpdesk_improvement.res_config_settings_view_form_inherit_helpdesk +msgid "minutes." +msgstr " minutos." + +#. module: helpdesk_improvement +#: model:ir.model,name:helpdesk_improvement.model_res_config_settings +msgid "res.config.settings" +msgstr "res.config.settings" + +#. module: helpdesk_improvement +#: model:ir.ui.view,arch_db:helpdesk_improvement.res_config_settings_view_form_inherit_helpdesk +msgid "tickets are created over a period of" +msgstr " tickets sean creados en un periodo de tiempo de" diff --git a/helpdesk_improvement/security/ir.model.access.csv b/helpdesk_improvement/security/ir.model.access.csv new file mode 100644 index 0000000000..43253e1b05 --- /dev/null +++ b/helpdesk_improvement/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_helpdesk_ticket_blacklist_line,access_helpdesk_ticket_blacklist_line,model_helpdesk_ticket_blacklist_line,base.group_user,1,0,0,0 +access_helpdesk_ticket_whitelist_line,access_helpdesk_ticket_whitelist_line,model_helpdesk_ticket_whitelist_line,base.group_user,1,0,0,0 From d601b5b27c8a0671052d02c63b027c0c04d5f837 Mon Sep 17 00:00:00 2001 From: Maria Alhambra Date: Thu, 20 Jun 2019 11:42:41 +0200 Subject: [PATCH 4/4] Added security in helpdesk_improvement --- helpdesk_improvement/__manifest__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/helpdesk_improvement/__manifest__.py b/helpdesk_improvement/__manifest__.py index 55b9c7415c..17856466e6 100644 --- a/helpdesk_improvement/__manifest__.py +++ b/helpdesk_improvement/__manifest__.py @@ -21,6 +21,7 @@ ], 'data': [ 'views/res_config_view.xml', + 'security/ir.model.access.csv', 'views/helpdesk_improvement_menu.xml', 'views/helpdesk_improvement_view.xml' ],