diff --git a/quality_control/security/quality_control_security.xml b/quality_control/security/quality_control_security.xml index 4b53f673e..9fa32a2c0 100644 --- a/quality_control/security/quality_control_security.xml +++ b/quality_control/security/quality_control_security.xml @@ -20,7 +20,7 @@ Manager - + diff --git a/quality_control_team/README.rst b/quality_control_team/README.rst new file mode 100644 index 000000000..bfa87343f --- /dev/null +++ b/quality_control_team/README.rst @@ -0,0 +1,93 @@ +==================== +Quality Control Team +==================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png + :target: https://odoo-community.org/page/development-status + :alt: Mature +.. |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-OCA%2Fmanufacture-lightgray.png?logo=github + :target: https://github.com/OCA/manufacture/tree/12.0/quality_control_team + :alt: OCA/manufacture +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/manufacture-12-0/manufacture-12-0-quality_control_team + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/129/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends the functionality of Quality Control app to support the +use of Quality control teams and to allow you to manage different team flows. + +This module by itself does not provide any functionality to QC teams. It +provides the teams basic configuration and a dashboard to be used by other +modules. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To configure this module, you need to: + +#. Go to *Quality Control > Configuration > Quality Control Teams*. + +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 +~~~~~~~ + +* Eficent + +Contributors +~~~~~~~~~~~~ + +* Lois Rilo + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +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. + +.. |maintainer-lreficent| image:: https://github.com/lreficent.png?size=40px + :target: https://github.com/lreficent + :alt: lreficent + +Current `maintainer `__: + +|maintainer-lreficent| + +This module is part of the `OCA/manufacture `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/quality_control_team/__init__.py b/quality_control_team/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/quality_control_team/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/quality_control_team/__manifest__.py b/quality_control_team/__manifest__.py new file mode 100644 index 000000000..6f7059285 --- /dev/null +++ b/quality_control_team/__manifest__.py @@ -0,0 +1,25 @@ +# Copyright 2017 Eficent Business and IT Consulting Services S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Quality Control Team", + "summary": "Adds quality control teams to handle different quality " + "control workflows", + "version": "12.0.1.1.0", + "development_status": "Mature", + "category": "Quality Control", + "website": "https://odoo-community.org/", + "author": "Eficent, Odoo Community Association (OCA)", + "maintainers": ["lreficent"], + "license": "AGPL-3", + "application": False, + "installable": True, + "depends": [ + "quality_control", + ], + "data": [ + "security/ir.model.access.csv", + "views/qc_team_view.xml", + "views/qc_team_dashboard.xml", + "data/quality_control_team_data.xml", + ], +} diff --git a/quality_control_team/data/quality_control_team_data.xml b/quality_control_team/data/quality_control_team_data.xml new file mode 100644 index 000000000..f3f4a7524 --- /dev/null +++ b/quality_control_team/data/quality_control_team_data.xml @@ -0,0 +1,14 @@ + + + + + + + + Main QC Team + + + + + diff --git a/quality_control_team/i18n/de.po b/quality_control_team/i18n/de.po new file mode 100644 index 000000000..71c149452 --- /dev/null +++ b/quality_control_team/i18n/de.po @@ -0,0 +1,201 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * quality_control_team +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2018-12-13 11:58+0000\n" +"Last-Translator: Maria Sparenberg \n" +"Language-Team: none\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.3\n" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team_active +msgid "Active" +msgstr "Aktiv" + +#. module: quality_control_team +#: model:ir.actions.act_window,help:quality_control_team.qc_team_config_action +msgid "Click here to define a new quality control team." +msgstr "Klicken Sie hier, um ein neues Qualitätskontroll-Team zu definieren." + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team_color +msgid "Color Index" +msgstr "Farbindex" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team_company_id +#: model:ir.ui.view,arch_db:quality_control_team.qc_team_view_form +msgid "Company" +msgstr "Unternehmen" + +#. module: quality_control_team +#: model:ir.model,name:quality_control_team.model_res_partner +msgid "Contact" +msgstr "Kontakt" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team_create_uid +msgid "Created by" +msgstr "Erstellt von" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team_create_date +msgid "Created on" +msgstr "Erstellt am" + +#. module: quality_control_team +#: model:ir.actions.act_window,name:quality_control_team.qc_team_dashboard_act +#: model:ir.ui.menu,name:quality_control_team.menu_qc_team_act +msgid "Dashboard" +msgstr "Dashboard" + +#. module: quality_control_team +#: model:ir.actions.act_window,help:quality_control_team.qc_team_dashboard_act +msgid "Define a new quality control teams going to Configuration >\n" +" Quality Control Teams." +msgstr "" +"Definieren Sie neue Qualitätskontroll-Teams Konfiguration >\n" +" Qualitätskontroll-Teams." + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team_display_name +msgid "Display Name" +msgstr "Anzeigename" + +#. module: quality_control_team +#: model:ir.ui.view,arch_db:quality_control_team.qc_team_view_form +msgid "Follow this QC team to automatically track the events associated to users of this team." +msgstr "" +"Folgen Sie diesem Qualitätskontroll-Team, um automatisch alle Ereignisse " +"nachzuverfolgen, die mit einem Mitglied dieses Teams assoziiert sind." + +#. module: quality_control_team +#: model:ir.ui.view,arch_db:quality_control_team.qc_team_search +msgid "Group By..." +msgstr "Gruppiere nach..." + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team_id +msgid "ID" +msgstr "ID" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team___last_update +msgid "Last Modified on" +msgstr "Zuletzt geändert am" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team_write_uid +msgid "Last Updated by" +msgstr "Zuletzt aktualisiert von" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team_write_date +msgid "Last Updated on" +msgstr "Zuletzt aktualisiert am" + +#. module: quality_control_team +#: model:ir.ui.view,arch_db:quality_control_team.qc_team_view_kanban +msgid "More " +msgstr "Mehr " + +#. module: quality_control_team +#: model:ir.ui.view,arch_db:quality_control_team.qc_team_view_form +msgid "More Info" +msgstr "Weitere Informationen" + +#. module: quality_control_team +#: model:ir.ui.view,arch_db:quality_control_team.qc_team_search +msgid "My Teams" +msgstr "Meine Teams" + +#. module: quality_control_team +#: model:ir.ui.view,arch_db:quality_control_team.qc_team_search +msgid "QC teams Search" +msgstr "Qualitätskontroll-Teams Suche" + +#. module: quality_control_team +#: model:ir.model,name:quality_control_team.model_qc_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team_name +#: model:ir.model.fields,field_description:quality_control_team.field_res_partner_qc_team_id +#: model:ir.model.fields,field_description:quality_control_team.field_res_users_qc_team_id +#: model:ir.ui.view,arch_db:quality_control_team.qc_team_view_form +#: model:ir.ui.view,arch_db:quality_control_team.qc_team_view_tree +msgid "Quality Control Team" +msgstr "Qualitätskontroll-Team" + +#. module: quality_control_team +#: model:ir.ui.view,arch_db:quality_control_team.qc_team_view_form +msgid "Quality Control Team name..." +msgstr "Qualtitätskontroll-Teamname..." + +#. module: quality_control_team +#: model:ir.actions.act_window,name:quality_control_team.qc_team_config_action +#: model:ir.ui.menu,name:quality_control_team.qc_team_config_menu +msgid "Quality Control Teams" +msgstr "Qualitätskontroll-Teams" + +#. module: quality_control_team +#: model:ir.ui.view,arch_db:quality_control_team.qc_team_view_form +msgid "Quality Control team" +msgstr "Qualitätskontroll-Team" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team_reply_to +msgid "Reply-To" +msgstr "Antworten-an" + +#. module: quality_control_team +#: model:ir.ui.view,arch_db:quality_control_team.qc_team_view_kanban +msgid "Settings" +msgstr "Einstellungen" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team_user_id +#: model:ir.ui.view,arch_db:quality_control_team.qc_team_search +msgid "Team Leader" +msgstr "Teamleiter" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team_member_ids +#: model:ir.ui.view,arch_db:quality_control_team.qc_team_view_form +msgid "Team Members" +msgstr "Teammitglieder" + +#. module: quality_control_team +#: model:ir.model.fields,help:quality_control_team.field_qc_team_color +msgid "The color of the team" +msgstr "Farbe des Teams" + +#. module: quality_control_team +#: model:ir.model.fields,help:quality_control_team.field_qc_team_reply_to +msgid "The email address put in the 'Reply-To' of all emails sent by Odoo about cases in this QC team" +msgstr "" +"Dies ist die Email-Adresse, die in das 'Antworten-an' von allen Emails " +"eingefügt wird, die die Fälle dieses Teams betreffen und von Odoo versendet " +"werden" + +#. module: quality_control_team +#: model:ir.actions.act_window,help:quality_control_team.qc_team_config_action +msgid "Use quality control team to organize your different\n" +" departments into separate teams. Each team will work in\n" +" its own list of processes, stages..." +msgstr "" +"Verwenden Sie Qualitätskontroll-Teams, um Ihre unterschiedlichen Abteilungen " +"in getrennten Teams zu organisieren. \n" +" Jedes Team wird in eigenen Prozesslisten, Stufen etc. " +"arbeiten." + +#. module: quality_control_team +#: model:ir.model,name:quality_control_team.model_res_users +msgid "Users" +msgstr "Benutzer" diff --git a/quality_control_team/i18n/quality_control_team.pot b/quality_control_team/i18n/quality_control_team.pot new file mode 100644 index 000000000..a7b2537ac --- /dev/null +++ b/quality_control_team/i18n/quality_control_team.pot @@ -0,0 +1,293 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * quality_control_team +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \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: quality_control_team +#: model_terms:ir.ui.view,arch_db:quality_control_team.qc_team_view_kanban +msgid "" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__active +msgid "Active" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: quality_control_team +#: model_terms:ir.actions.act_window,help:quality_control_team.qc_team_config_action +msgid "Click here to define a new quality control team." +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__color +msgid "Color Index" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__company_id +#: model_terms:ir.ui.view,arch_db:quality_control_team.qc_team_view_form +msgid "Company" +msgstr "" + +#. module: quality_control_team +#: model:ir.model,name:quality_control_team.model_res_partner +msgid "Contact" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__create_uid +msgid "Created by" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__create_date +msgid "Created on" +msgstr "" + +#. module: quality_control_team +#: model:ir.actions.act_window,name:quality_control_team.qc_team_dashboard_act +#: model:ir.ui.menu,name:quality_control_team.menu_qc_team_act +msgid "Dashboard" +msgstr "" + +#. module: quality_control_team +#: model_terms:ir.actions.act_window,help:quality_control_team.qc_team_dashboard_act +msgid "Define a new quality control teams going to Configuration >\n" +" Quality Control Teams." +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__display_name +msgid "Display Name" +msgstr "" + +#. module: quality_control_team +#: model_terms:ir.ui.view,arch_db:quality_control_team.qc_team_view_form +msgid "Follow this QC team to automatically track the events associated to users of this team." +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__message_channel_ids +msgid "Followers (Channels)" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: quality_control_team +#: model_terms:ir.ui.view,arch_db:quality_control_team.qc_team_search +msgid "Group By..." +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__id +msgid "ID" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,help:quality_control_team.field_qc_team__message_unread +msgid "If checked new messages require your attention." +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,help:quality_control_team.field_qc_team__message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,help:quality_control_team.field_qc_team__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team____last_update +msgid "Last Modified on" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__write_date +msgid "Last Updated on" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__message_main_attachment_id +msgid "Main Attachment" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__message_ids +msgid "Messages" +msgstr "" + +#. module: quality_control_team +#: model_terms:ir.ui.view,arch_db:quality_control_team.qc_team_view_form +msgid "More Info" +msgstr "" + +#. module: quality_control_team +#: model_terms:ir.ui.view,arch_db:quality_control_team.qc_team_search +msgid "My Teams" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__message_has_error_counter +msgid "Number of error" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,help:quality_control_team.field_qc_team__message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,help:quality_control_team.field_qc_team__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,help:quality_control_team.field_qc_team__message_unread_counter +msgid "Number of unread messages" +msgstr "" + +#. module: quality_control_team +#: model_terms:ir.ui.view,arch_db:quality_control_team.qc_team_search +msgid "QC teams Search" +msgstr "" + +#. module: quality_control_team +#: model:ir.model,name:quality_control_team.model_qc_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__name +#: model:ir.model.fields,field_description:quality_control_team.field_res_partner__qc_team_id +#: model:ir.model.fields,field_description:quality_control_team.field_res_users__qc_team_id +#: model_terms:ir.ui.view,arch_db:quality_control_team.qc_team_view_form +#: model_terms:ir.ui.view,arch_db:quality_control_team.qc_team_view_tree +msgid "Quality Control Team" +msgstr "" + +#. module: quality_control_team +#: model_terms:ir.ui.view,arch_db:quality_control_team.qc_team_view_form +msgid "Quality Control Team name..." +msgstr "" + +#. module: quality_control_team +#: model:ir.actions.act_window,name:quality_control_team.qc_team_config_action +#: model:ir.ui.menu,name:quality_control_team.qc_team_config_menu +msgid "Quality Control Teams" +msgstr "" + +#. module: quality_control_team +#: model_terms:ir.ui.view,arch_db:quality_control_team.qc_team_view_form +msgid "Quality Control team" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__reply_to +msgid "Reply-To" +msgstr "" + +#. module: quality_control_team +#: model_terms:ir.ui.view,arch_db:quality_control_team.qc_team_view_kanban +msgid "Settings" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__user_id +#: model_terms:ir.ui.view,arch_db:quality_control_team.qc_team_search +msgid "Team Leader" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__member_ids +#: model_terms:ir.ui.view,arch_db:quality_control_team.qc_team_view_form +msgid "Team Members" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,help:quality_control_team.field_qc_team__color +msgid "The color of the team" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,help:quality_control_team.field_qc_team__reply_to +msgid "The email address put in the 'Reply-To' of all emails sent by Odoo about cases in this QC team" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__message_unread +msgid "Unread Messages" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__message_unread_counter +msgid "Unread Messages Counter" +msgstr "" + +#. module: quality_control_team +#: model_terms:ir.actions.act_window,help:quality_control_team.qc_team_config_action +msgid "Use quality control team to organize your different\n" +" departments into separate teams. Each team will work in\n" +" its own list of processes, stages..." +msgstr "" + +#. module: quality_control_team +#: model:ir.model,name:quality_control_team.model_res_users +msgid "Users" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,field_description:quality_control_team.field_qc_team__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: quality_control_team +#: model:ir.model.fields,help:quality_control_team.field_qc_team__website_message_ids +msgid "Website communication history" +msgstr "" + diff --git a/quality_control_team/models/__init__.py b/quality_control_team/models/__init__.py new file mode 100644 index 000000000..b38c7a594 --- /dev/null +++ b/quality_control_team/models/__init__.py @@ -0,0 +1,3 @@ +from . import qc_team +from . import res_partner +from . import res_user diff --git a/quality_control_team/models/qc_team.py b/quality_control_team/models/qc_team.py new file mode 100644 index 000000000..18eb16303 --- /dev/null +++ b/quality_control_team/models/qc_team.py @@ -0,0 +1,60 @@ +# Copyright 2017 Eficent Business and IT Consulting Services S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class QualityControlTeam(models.Model): + _name = "qc.team" + _inherit = ['mail.thread'] + _description = "Quality Control Team" + _order = "name" + + @api.model + def _get_default_qc_team_id(self, user_id=None): + if not user_id: + user_id = self.env.uid + qc_team_id = None + if 'default_qc_team_id' in self.env.context: + qc_team_id = self.env['qc.team'].browse( + self.env.context.get('default_qc_team_id')) + if not qc_team_id or not qc_team_id.exists(): + company_id = self.sudo(user_id).company_id.id + qc_team_id = self.env['qc.team'].sudo().search([ + '|', + ('user_id', '=', user_id), + ('member_ids', '=', user_id), + '|', + ('company_id', '=', False), + ('company_id', 'child_of', [company_id]) + ], limit=1) + if not qc_team_id: + default_team_id = self.env.ref( + 'quality_control_team.qc_team_main', raise_if_not_found=False) + if default_team_id: + qc_team_id = default_team_id + return qc_team_id + + name = fields.Char( + string='Quality Control Team', required=True) + active = fields.Boolean(default=True) + company_id = fields.Many2one( + comodel_name='res.company', string='Company', + default=lambda self: self.env['res.company']._company_default_get( + 'qc.team')) + user_id = fields.Many2one( + comodel_name='res.users', string='Team Leader') + member_ids = fields.One2many( + comodel_name='res.users', inverse_name='qc_team_id', + string='Team Members') + reply_to = fields.Char( + string='Reply-To', + help="The email address put in the 'Reply-To' of all emails sent by " + "Odoo about cases in this QC team") + color = fields.Integer(string='Color Index', help="The color of the team") + + @api.model + def create(self, values): + return super( + QualityControlTeam, + self.with_context(mail_create_nosubscribe=True)).create(values) diff --git a/quality_control_team/models/res_partner.py b/quality_control_team/models/res_partner.py new file mode 100644 index 000000000..2a2a7969f --- /dev/null +++ b/quality_control_team/models/res_partner.py @@ -0,0 +1,11 @@ +# Copyright 2017 Eficent Business and IT Consulting Services S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ResPartner(models.Model): + _inherit = 'res.partner' + + qc_team_id = fields.Many2one( + comodel_name='qc.team', string='Quality Control Team') diff --git a/quality_control_team/models/res_user.py b/quality_control_team/models/res_user.py new file mode 100644 index 000000000..1066a0e35 --- /dev/null +++ b/quality_control_team/models/res_user.py @@ -0,0 +1,11 @@ +# Copyright 2017 Eficent Business and IT Consulting Services S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ResUsers(models.Model): + _inherit = 'res.users' + + qc_team_id = fields.Many2one( + comodel_name='qc.team', string='Quality Control Team') diff --git a/quality_control_team/readme/CONFIGURE.rst b/quality_control_team/readme/CONFIGURE.rst new file mode 100644 index 000000000..34d00755a --- /dev/null +++ b/quality_control_team/readme/CONFIGURE.rst @@ -0,0 +1,3 @@ +To configure this module, you need to: + +#. Go to *Quality Control > Configuration > Quality Control Teams*. diff --git a/quality_control_team/readme/CONTRIBUTORS.rst b/quality_control_team/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..4b574636c --- /dev/null +++ b/quality_control_team/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Lois Rilo diff --git a/quality_control_team/readme/DESCRIPTION.rst b/quality_control_team/readme/DESCRIPTION.rst new file mode 100644 index 000000000..25f72d893 --- /dev/null +++ b/quality_control_team/readme/DESCRIPTION.rst @@ -0,0 +1,6 @@ +This module extends the functionality of Quality Control app to support the +use of Quality control teams and to allow you to manage different team flows. + +This module by itself does not provide any functionality to QC teams. It +provides the teams basic configuration and a dashboard to be used by other +modules. diff --git a/quality_control_team/security/ir.model.access.csv b/quality_control_team/security/ir.model.access.csv new file mode 100644 index 000000000..5e04d8322 --- /dev/null +++ b/quality_control_team/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_user_qc_team,qc.team.user,quality_control_team.model_qc_team,quality_control.group_quality_control_user,1,0,0,0 +access_manager_qc_team,qc.team.manager,quality_control_team.model_qc_team,quality_control.group_quality_control_manager,1,1,1,1 diff --git a/quality_control_team/static/description/icon.png b/quality_control_team/static/description/icon.png new file mode 100644 index 000000000..c169a7609 Binary files /dev/null and b/quality_control_team/static/description/icon.png differ diff --git a/quality_control_team/static/description/icon.svg b/quality_control_team/static/description/icon.svg new file mode 100644 index 000000000..333fc05ff --- /dev/null +++ b/quality_control_team/static/description/icon.svg @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/quality_control_team/static/description/index.html b/quality_control_team/static/description/index.html new file mode 100644 index 000000000..1da91b9aa --- /dev/null +++ b/quality_control_team/static/description/index.html @@ -0,0 +1,433 @@ + + + + + + +Quality Control Team + + + +
+

Quality Control Team

+ + +

Mature License: AGPL-3 OCA/manufacture Translate me on Weblate Try me on Runbot

+

This module extends the functionality of Quality Control app to support the +use of Quality control teams and to allow you to manage different team flows.

+

This module by itself does not provide any functionality to QC teams. It +provides the teams basic configuration and a dashboard to be used by other +modules.

+

Table of contents

+ +
+

Configuration

+

To configure this module, you need to:

+
    +
  1. Go to Quality Control > Configuration > Quality Control Teams.
  2. +
+
+
+

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

+
    +
  • Eficent
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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.

+

Current maintainer:

+

lreficent

+

This module is part of the OCA/manufacture project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/quality_control_team/tests/__init__.py b/quality_control_team/tests/__init__.py new file mode 100644 index 000000000..846d5571c --- /dev/null +++ b/quality_control_team/tests/__init__.py @@ -0,0 +1 @@ +from . import test_quality_control_team diff --git a/quality_control_team/tests/test_quality_control_team.py b/quality_control_team/tests/test_quality_control_team.py new file mode 100644 index 000000000..77de167c4 --- /dev/null +++ b/quality_control_team/tests/test_quality_control_team.py @@ -0,0 +1,35 @@ +# Copyright 2017 Eficent Business and IT Consulting Services S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.tests.common import TransactionCase + + +class TestQualityControlTeam(TransactionCase): + + def setUp(self): + super(TestQualityControlTeam, self).setUp() + self.qc_team_obj = self.env['qc.team'] + self.main_qc_team = self.env.ref('quality_control_team.qc_team_main') + self.other_company = self.env['res.company'].create({ + 'name': 'other company', + }) + self.user_test = self.env['res.users'].create({ + 'name': 'Test User', + 'login': 'testuser', + 'company_id': self.other_company.id, + 'company_ids': [(4, self.other_company.id)], + }) + + def test_default_qc_team(self): + """Test that the QC team is defaulted correctly.""" + team = self.qc_team_obj._get_default_qc_team_id( + user_id=self.user_test.id) + self.assertEqual(team, self.main_qc_team) + test_team = self.qc_team_obj.create({ + 'name': 'Test Team', + 'user_id': self.user_test.id, + 'company_id': self.other_company.id, + }) + team = self.qc_team_obj._get_default_qc_team_id( + user_id=self.user_test.id) + self.assertEqual(team, test_team) diff --git a/quality_control_team/views/qc_team_dashboard.xml b/quality_control_team/views/qc_team_dashboard.xml new file mode 100644 index 000000000..6025a2d7f --- /dev/null +++ b/quality_control_team/views/qc_team_dashboard.xml @@ -0,0 +1,82 @@ + + + + + + qc.team.dashboard + qc.team + + + + + + + + +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ + +
+ + + + + + + + Case Teams - Search + qc.team + + + + + + + + + + + + + + Dashboard + qc.team + form + kanban,form + {'search_default_personal':1} + +

Define a new quality control teams going to Configuration > + Quality Control Teams. +

+
+
+ + + + diff --git a/quality_control_team/views/qc_team_view.xml b/quality_control_team/views/qc_team_view.xml new file mode 100644 index 000000000..be01284db --- /dev/null +++ b/quality_control_team/views/qc_team_view.xml @@ -0,0 +1,107 @@ + + + + + + qc.team.form + qc.team + +
+ +
+ +
+
+