mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
[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/
This commit is contained in:
committed by
Patrick Wilson
parent
7149c46060
commit
58048a73cc
@@ -64,6 +64,7 @@ Contributors
|
||||
* Maxime Chambreuil <mchambreuil@opensourceintegrators.com>
|
||||
* Sandip Mangukiya <smangukiya@opensourceintegrators.com>
|
||||
* Serpent Consulting Services Pvt. Ltd. <support@serpentcs.com>
|
||||
* Brian McMaster <brian@mcmpest.com>
|
||||
|
||||
Maintainers
|
||||
~~~~~~~~~~~
|
||||
|
||||
@@ -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'
|
||||
|
||||
41
agreement_serviceprofile/data/serviceprofile_stage.xml
Normal file
41
agreement_serviceprofile/data/serviceprofile_stage.xml
Normal file
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo noupdate="1">
|
||||
|
||||
<record id="servpro_stage_draft" model="agreement.stage">
|
||||
<field name="name">Draft</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="stage_type">serviceprofile</field>
|
||||
</record>
|
||||
|
||||
<record id="servpro_stage_progress" model="agreement.stage">
|
||||
<field name="name">In Progress</field>
|
||||
<field name="sequence">20</field>
|
||||
<field name="stage_type">serviceprofile</field>
|
||||
</record>
|
||||
|
||||
<record id="servpro_stage_suspend" model="agreement.stage">
|
||||
<field name="name">Suspended</field>
|
||||
<field name="sequence">30</field>
|
||||
<field name="stage_type">serviceprofile</field>
|
||||
</record>
|
||||
|
||||
<record id="servpro_stage_renew" model="agreement.stage">
|
||||
<field name="name">To Renew</field>
|
||||
<field name="sequence">40</field>
|
||||
<field name="stage_type">serviceprofile</field>
|
||||
</record>
|
||||
|
||||
<record id="servpro_stage_close" model="agreement.stage">
|
||||
<field name="name">Closed</field>
|
||||
<field name="sequence">50</field>
|
||||
<field name="stage_type">serviceprofile</field>
|
||||
</record>
|
||||
|
||||
<record id="servpro_stage_cancel" model="agreement.stage">
|
||||
<field name="name">Cancelled</field>
|
||||
<field name="sequence">60</field>
|
||||
<field name="fold">True</field>
|
||||
<field name="stage_type">serviceprofile</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
@@ -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 ""
|
||||
|
||||
|
||||
@@ -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 ""
|
||||
|
||||
@@ -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 ""
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
from . import agreement_serviceprofile
|
||||
from . import agreement
|
||||
from . import agreement_stage
|
||||
|
||||
@@ -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
|
||||
|
||||
12
agreement_serviceprofile/models/agreement_stage.py
Normal file
12
agreement_serviceprofile/models/agreement_stage.py
Normal file
@@ -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')]
|
||||
)
|
||||
@@ -4,3 +4,4 @@
|
||||
* Maxime Chambreuil <mchambreuil@opensourceintegrators.com>
|
||||
* Sandip Mangukiya <smangukiya@opensourceintegrators.com>
|
||||
* Serpent Consulting Services Pvt. Ltd. <support@serpentcs.com>
|
||||
* Brian McMaster <brian@mcmpest.com>
|
||||
|
||||
@@ -412,6 +412,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
|
||||
<li>Maxime Chambreuil <<a class="reference external" href="mailto:mchambreuil@opensourceintegrators.com">mchambreuil@opensourceintegrators.com</a>></li>
|
||||
<li>Sandip Mangukiya <<a class="reference external" href="mailto:smangukiya@opensourceintegrators.com">smangukiya@opensourceintegrators.com</a>></li>
|
||||
<li>Serpent Consulting Services Pvt. Ltd. <<a class="reference external" href="mailto:support@serpentcs.com">support@serpentcs.com</a>></li>
|
||||
<li>Brian McMaster <<a class="reference external" href="mailto:brian@mcmpest.com">brian@mcmpest.com</a>></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="maintainers">
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
<tree string="Service Profiles" default_order='agreement_id'>
|
||||
<field name="name"/>
|
||||
<field name="agreement_id"/>
|
||||
<field name="product_id"/>
|
||||
<field name="active" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -20,6 +21,12 @@
|
||||
<field name="model">agreement.serviceprofile</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Service Profile">
|
||||
<header>
|
||||
<field name="stage_id" widget="statusbar"
|
||||
clickable="True"
|
||||
options="{'fold_field': 'fold'}"
|
||||
domain="[('stage_type', '=', 'serviceprofile')]"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button name="toggle_active" type="object"
|
||||
@@ -38,7 +45,9 @@
|
||||
<group>
|
||||
<field name="agreement_id"/>
|
||||
</group>
|
||||
<group></group>
|
||||
<group>
|
||||
<field name="product_id"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="Notes">
|
||||
<field name="notes" nolabel="1" widget="html"/>
|
||||
@@ -48,6 +57,28 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Agreement Service Profile Kanban View -->
|
||||
<record id="agreement_serviceprofile_kanban" model="ir.ui.view">
|
||||
<field name="name">Agreement Service Profile Kanban</field>
|
||||
<field name="model">agreement.serviceprofile</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban default_group_by="stage_id">
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_content">
|
||||
<div>
|
||||
<strong class="o_kanban_record_title">
|
||||
<field name="name"/>
|
||||
</strong>
|
||||
</div>
|
||||
<div class="oe_clear"/>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Agreement Service Profile Search View -->
|
||||
<record id="agreement_serviceprofile_search" model="ir.ui.view">
|
||||
<field name="name">Agreement Service Profile Search</field>
|
||||
@@ -68,6 +99,12 @@
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<record id="agreement_serviceprofile_dashboard" model="ir.actions.act_window">
|
||||
<field name="name">Service Profiles</field>
|
||||
<field name="res_model">agreement.serviceprofile</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
name="Service Profiles"
|
||||
id="agreement_serviceprofiles"
|
||||
@@ -75,4 +112,11 @@
|
||||
sequence="50"
|
||||
action="agreement_serviceprofile_action"/>
|
||||
|
||||
<menuitem
|
||||
name="Service Profiles"
|
||||
id="dashboard_serviceprofiles"
|
||||
parent="agreement_legal.agreement_dashboard"
|
||||
sequence="20"
|
||||
action="agreement_serviceprofile_dashboard"/>
|
||||
|
||||
</odoo>
|
||||
|
||||
Reference in New Issue
Block a user