From 58048a73cc39ed2e3346051a703453c36d361423 Mon Sep 17 00:00:00 2001 From: brian10048 Date: Wed, 17 Jul 2019 22:23:30 -0400 Subject: [PATCH] [IMP] agreement_serviceprofile: add stage - Add stage_type to agreement.stage - Track stage of service profile - Add Kanban view for service profiles to the dashboard - Add product_id field to service profile [UPD] Update agreement_serviceprofile.pot [UPD] README.rst Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: contract-12.0/contract-12.0-agreement_serviceprofile Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-agreement_serviceprofile/ --- agreement_serviceprofile/README.rst | 1 + agreement_serviceprofile/__manifest__.py | 1 + .../data/serviceprofile_stage.xml | 41 +++++++++++++++++ .../i18n/agreement_serviceprofile.pot | 24 ++++++++++ agreement_serviceprofile/i18n/en_US.po | 24 ++++++++++ agreement_serviceprofile/i18n/fr.po | 28 +++++++++++ agreement_serviceprofile/models/__init__.py | 1 + .../models/agreement_serviceprofile.py | 17 ++++++- .../models/agreement_stage.py | 12 +++++ .../readme/CONTRIBUTORS.rst | 1 + .../static/description/index.html | 1 + .../views/agreement_serviceprofile.xml | 46 ++++++++++++++++++- 12 files changed, 195 insertions(+), 2 deletions(-) create mode 100644 agreement_serviceprofile/data/serviceprofile_stage.xml create mode 100644 agreement_serviceprofile/models/agreement_stage.py diff --git a/agreement_serviceprofile/README.rst b/agreement_serviceprofile/README.rst index d77abf28f..9d5884874 100644 --- a/agreement_serviceprofile/README.rst +++ b/agreement_serviceprofile/README.rst @@ -64,6 +64,7 @@ Contributors * Maxime Chambreuil * Sandip Mangukiya * Serpent Consulting Services Pvt. Ltd. +* Brian McMaster Maintainers ~~~~~~~~~~~ diff --git a/agreement_serviceprofile/__manifest__.py b/agreement_serviceprofile/__manifest__.py index 58748f122..4e104fd55 100644 --- a/agreement_serviceprofile/__manifest__.py +++ b/agreement_serviceprofile/__manifest__.py @@ -13,6 +13,7 @@ 'license': 'AGPL-3', 'depends': ['agreement_legal'], 'data': [ + 'data/serviceprofile_stage.xml', 'security/ir.model.access.csv', 'views/agreement_serviceprofile.xml', 'views/agreement.xml' diff --git a/agreement_serviceprofile/data/serviceprofile_stage.xml b/agreement_serviceprofile/data/serviceprofile_stage.xml new file mode 100644 index 000000000..584c47e5d --- /dev/null +++ b/agreement_serviceprofile/data/serviceprofile_stage.xml @@ -0,0 +1,41 @@ + + + + + Draft + 10 + serviceprofile + + + + In Progress + 20 + serviceprofile + + + + Suspended + 30 + serviceprofile + + + + To Renew + 40 + serviceprofile + + + + Closed + 50 + serviceprofile + + + + Cancelled + 60 + True + serviceprofile + + + diff --git a/agreement_serviceprofile/i18n/agreement_serviceprofile.pot b/agreement_serviceprofile/i18n/agreement_serviceprofile.pot index bb4fde1ee..8f61bafbc 100644 --- a/agreement_serviceprofile/i18n/agreement_serviceprofile.pot +++ b/agreement_serviceprofile/i18n/agreement_serviceprofile.pot @@ -24,6 +24,7 @@ msgid "Add Notes Here..." msgstr "" #. module: agreement_serviceprofile +#: selection:agreement.stage,stage_type:0 #: model:ir.model,name:agreement_serviceprofile.model_agreement #: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement_serviceprofile__agreement_id #: model_terms:ir.ui.view,arch_db:agreement_serviceprofile.agreement_serviceprofile_search @@ -35,6 +36,11 @@ msgstr "" msgid "Agreement Service Profiles" msgstr "" +#. module: agreement_serviceprofile +#: model:ir.model,name:agreement_serviceprofile.model_agreement_stage +msgid "Agreement Stages" +msgstr "" + #. module: agreement_serviceprofile #: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement_serviceprofile__create_uid msgid "Created by" @@ -87,16 +93,34 @@ msgid "Notes" msgstr "" #. module: agreement_serviceprofile +#: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement_serviceprofile__product_id +msgid "Service" +msgstr "" + +#. module: agreement_serviceprofile +#: selection:agreement.stage,stage_type:0 #: model_terms:ir.ui.view,arch_db:agreement_serviceprofile.agreement_serviceprofile_form msgid "Service Profile" msgstr "" #. module: agreement_serviceprofile #: model:ir.actions.act_window,name:agreement_serviceprofile.agreement_serviceprofile_action +#: model:ir.actions.act_window,name:agreement_serviceprofile.agreement_serviceprofile_dashboard #: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement__serviceprofile_ids #: model:ir.ui.menu,name:agreement_serviceprofile.agreement_serviceprofiles +#: model:ir.ui.menu,name:agreement_serviceprofile.dashboard_serviceprofiles #: model_terms:ir.ui.view,arch_db:agreement_serviceprofile.agreement_fsm_order_form_view #: model_terms:ir.ui.view,arch_db:agreement_serviceprofile.agreement_serviceprofile_tree msgid "Service Profiles" msgstr "" +#. module: agreement_serviceprofile +#: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement_serviceprofile__stage_id +msgid "Stage" +msgstr "" + +#. module: agreement_serviceprofile +#: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement_stage__stage_type +msgid "Type" +msgstr "" + diff --git a/agreement_serviceprofile/i18n/en_US.po b/agreement_serviceprofile/i18n/en_US.po index 44d1775d4..2eb7c2828 100644 --- a/agreement_serviceprofile/i18n/en_US.po +++ b/agreement_serviceprofile/i18n/en_US.po @@ -27,6 +27,7 @@ msgid "Add Notes Here..." msgstr "" #. module: agreement_serviceprofile +#: selection:agreement.stage,stage_type:0 #: model:ir.model,name:agreement_serviceprofile.model_agreement #: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement_serviceprofile__agreement_id #: model_terms:ir.ui.view,arch_db:agreement_serviceprofile.agreement_serviceprofile_search @@ -38,6 +39,11 @@ msgstr "" msgid "Agreement Service Profiles" msgstr "" +#. module: agreement_serviceprofile +#: model:ir.model,name:agreement_serviceprofile.model_agreement_stage +msgid "Agreement Stages" +msgstr "" + #. module: agreement_serviceprofile #: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement_serviceprofile__create_uid msgid "Created by" @@ -92,15 +98,33 @@ msgid "Notes" msgstr "" #. module: agreement_serviceprofile +#: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement_serviceprofile__product_id +msgid "Service" +msgstr "" + +#. module: agreement_serviceprofile +#: selection:agreement.stage,stage_type:0 #: model_terms:ir.ui.view,arch_db:agreement_serviceprofile.agreement_serviceprofile_form msgid "Service Profile" msgstr "" #. module: agreement_serviceprofile #: model:ir.actions.act_window,name:agreement_serviceprofile.agreement_serviceprofile_action +#: model:ir.actions.act_window,name:agreement_serviceprofile.agreement_serviceprofile_dashboard #: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement__serviceprofile_ids #: model:ir.ui.menu,name:agreement_serviceprofile.agreement_serviceprofiles +#: model:ir.ui.menu,name:agreement_serviceprofile.dashboard_serviceprofiles #: model_terms:ir.ui.view,arch_db:agreement_serviceprofile.agreement_fsm_order_form_view #: model_terms:ir.ui.view,arch_db:agreement_serviceprofile.agreement_serviceprofile_tree msgid "Service Profiles" msgstr "" + +#. module: agreement_serviceprofile +#: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement_serviceprofile__stage_id +msgid "Stage" +msgstr "" + +#. module: agreement_serviceprofile +#: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement_stage__stage_type +msgid "Type" +msgstr "" diff --git a/agreement_serviceprofile/i18n/fr.po b/agreement_serviceprofile/i18n/fr.po index 9419345ad..91d6f7d28 100644 --- a/agreement_serviceprofile/i18n/fr.po +++ b/agreement_serviceprofile/i18n/fr.po @@ -27,6 +27,7 @@ msgid "Add Notes Here..." msgstr "" #. module: agreement_serviceprofile +#: selection:agreement.stage,stage_type:0 #: model:ir.model,name:agreement_serviceprofile.model_agreement #: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement_serviceprofile__agreement_id #: model_terms:ir.ui.view,arch_db:agreement_serviceprofile.agreement_serviceprofile_search @@ -38,6 +39,13 @@ msgstr "Accord" msgid "Agreement Service Profiles" msgstr "Accord Profils de service" +#. module: agreement_serviceprofile +#: model:ir.model,name:agreement_serviceprofile.model_agreement_stage +#, fuzzy +#| msgid "Agreement" +msgid "Agreement Stages" +msgstr "Accord" + #. module: agreement_serviceprofile #: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement_serviceprofile__create_uid msgid "Created by" @@ -94,15 +102,35 @@ msgid "Notes" msgstr "" #. module: agreement_serviceprofile +#: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement_serviceprofile__product_id +#, fuzzy +#| msgid "Service Profile" +msgid "Service" +msgstr "Profil de service" + +#. module: agreement_serviceprofile +#: selection:agreement.stage,stage_type:0 #: model_terms:ir.ui.view,arch_db:agreement_serviceprofile.agreement_serviceprofile_form msgid "Service Profile" msgstr "Profil de service" #. module: agreement_serviceprofile #: model:ir.actions.act_window,name:agreement_serviceprofile.agreement_serviceprofile_action +#: model:ir.actions.act_window,name:agreement_serviceprofile.agreement_serviceprofile_dashboard #: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement__serviceprofile_ids #: model:ir.ui.menu,name:agreement_serviceprofile.agreement_serviceprofiles +#: model:ir.ui.menu,name:agreement_serviceprofile.dashboard_serviceprofiles #: model_terms:ir.ui.view,arch_db:agreement_serviceprofile.agreement_fsm_order_form_view #: model_terms:ir.ui.view,arch_db:agreement_serviceprofile.agreement_serviceprofile_tree msgid "Service Profiles" msgstr "Profils de service" + +#. module: agreement_serviceprofile +#: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement_serviceprofile__stage_id +msgid "Stage" +msgstr "" + +#. module: agreement_serviceprofile +#: model:ir.model.fields,field_description:agreement_serviceprofile.field_agreement_stage__stage_type +msgid "Type" +msgstr "" diff --git a/agreement_serviceprofile/models/__init__.py b/agreement_serviceprofile/models/__init__.py index a0e6354ce..b0ff00e00 100644 --- a/agreement_serviceprofile/models/__init__.py +++ b/agreement_serviceprofile/models/__init__.py @@ -1,2 +1,3 @@ from . import agreement_serviceprofile from . import agreement +from . import agreement_stage diff --git a/agreement_serviceprofile/models/agreement_serviceprofile.py b/agreement_serviceprofile/models/agreement_serviceprofile.py index a645b5eec..3ec22e8d5 100644 --- a/agreement_serviceprofile/models/agreement_serviceprofile.py +++ b/agreement_serviceprofile/models/agreement_serviceprofile.py @@ -2,14 +2,20 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo import fields, models +from odoo import fields, models, api class AgreementServiceProfile(models.Model): _name = 'agreement.serviceprofile' _description = 'Agreement Service Profiles' + def _default_stage_id(self): + return self.env.ref('agreement_serviceprofile.servpro_stage_draft') + name = fields.Char(string="Name", required=True) + stage_id = fields.Many2one('agreement.stage', string="Stage", + default=_default_stage_id, copy=False, + group_expand='_read_group_stage_ids',) agreement_id = fields.Many2one('agreement', string="Agreement", ondelete="cascade") active = fields.Boolean(string="Active", @@ -19,3 +25,12 @@ class AgreementServiceProfile(models.Model): " without removing it.") notes = fields.Text(string="Notes") + product_id = fields.Many2one('product.template', 'Service', + domain="[('type', '=', 'service')]") + + # Used for Kanban grouped_by view + @api.model + def _read_group_stage_ids(self, stages, domain, order): + stage_ids = self.env["agreement.stage"].search( + [('stage_type', '=', 'serviceprofile')]) + return stage_ids diff --git a/agreement_serviceprofile/models/agreement_stage.py b/agreement_serviceprofile/models/agreement_stage.py new file mode 100644 index 000000000..cf578022c --- /dev/null +++ b/agreement_serviceprofile/models/agreement_stage.py @@ -0,0 +1,12 @@ +# Copyright (C) 2019 - TODAY, Brian McMaster +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class AgreementStage(models.Model): + _inherit = 'agreement.stage' + + stage_type = fields.Selection( + selection_add=[('serviceprofile', 'Service Profile')] + ) diff --git a/agreement_serviceprofile/readme/CONTRIBUTORS.rst b/agreement_serviceprofile/readme/CONTRIBUTORS.rst index 1869cddb6..4f31127a0 100644 --- a/agreement_serviceprofile/readme/CONTRIBUTORS.rst +++ b/agreement_serviceprofile/readme/CONTRIBUTORS.rst @@ -4,3 +4,4 @@ * Maxime Chambreuil * Sandip Mangukiya * Serpent Consulting Services Pvt. Ltd. +* Brian McMaster diff --git a/agreement_serviceprofile/static/description/index.html b/agreement_serviceprofile/static/description/index.html index b1dcbc818..e0a3d9b08 100644 --- a/agreement_serviceprofile/static/description/index.html +++ b/agreement_serviceprofile/static/description/index.html @@ -412,6 +412,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
  • Maxime Chambreuil <mchambreuil@opensourceintegrators.com>
  • Sandip Mangukiya <smangukiya@opensourceintegrators.com>
  • Serpent Consulting Services Pvt. Ltd. <support@serpentcs.com>
  • +
  • Brian McMaster <brian@mcmpest.com>
  • diff --git a/agreement_serviceprofile/views/agreement_serviceprofile.xml b/agreement_serviceprofile/views/agreement_serviceprofile.xml index f8c1571f0..e227240eb 100644 --- a/agreement_serviceprofile/views/agreement_serviceprofile.xml +++ b/agreement_serviceprofile/views/agreement_serviceprofile.xml @@ -9,6 +9,7 @@ + @@ -20,6 +21,12 @@ agreement.serviceprofile
    +
    + +