Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[17.0] [ADD] fieldservice_agreement_serviceprofile #1267

Open
wants to merge 2 commits into
base: 17.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 107 additions & 0 deletions fieldservice_agreement_serviceprofile/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
==========================================
Field Service - Agreements Service Profile
==========================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:816250d8ffb8cfea7c4b4b6dba339375ea9264b6ff922a6c0d346939ffe04116
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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-OCA%2Ffield--service-lightgray.png?logo=github
:target: https://github.com/OCA/field-service/tree/17.0/fieldservice_agreement_serviceprofile
:alt: OCA/field-service
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/field-service-17-0/field-service-17-0-fieldservice_agreement_serviceprofile
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/field-service&target_branch=17.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

Glue module for Field Service Agreement and Service Profile

**Table of contents**

.. contents::
:local:

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/field-service/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/field-service/issues/new?body=module:%20fieldservice_agreement_serviceprofile%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Open Source Integrators

Contributors
------------

- Bhavesh Odedra <[email protected]>
- Sandip Mangukiya <[email protected]>
- Serpent Consulting Services Pvt. Ltd. <[email protected]>
- Patrick Wilson <[email protected]>
- Italo LOPES <[email protected]>

Other credits
-------------

The development of this module has been financially supported by:

- Open Source Integrators

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-max3903| image:: https://github.com/max3903.png?size=40px
:target: https://github.com/max3903
:alt: max3903
.. |maintainer-bodedra| image:: https://github.com/bodedra.png?size=40px
:target: https://github.com/bodedra
:alt: bodedra
.. |maintainer-smangukiya| image:: https://github.com/smangukiya.png?size=40px
:target: https://github.com/smangukiya
:alt: smangukiya
.. |maintainer-osi-scampbell| image:: https://github.com/osi-scampbell.png?size=40px
:target: https://github.com/osi-scampbell
:alt: osi-scampbell
.. |maintainer-patrickrwilson| image:: https://github.com/patrickrwilson.png?size=40px
:target: https://github.com/patrickrwilson
:alt: patrickrwilson

Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-max3903| |maintainer-bodedra| |maintainer-smangukiya| |maintainer-osi-scampbell| |maintainer-patrickrwilson|

This module is part of the `OCA/field-service <https://github.com/OCA/field-service/tree/17.0/fieldservice_agreement_serviceprofile>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
4 changes: 4 additions & 0 deletions fieldservice_agreement_serviceprofile/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from . import models
30 changes: 30 additions & 0 deletions fieldservice_agreement_serviceprofile/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "Field Service - Agreements Service Profile",
"summary": "Manage Field Service agreements and contracts",
"author": "Open Source Integrators, " "Odoo Community Association (OCA)",
"website": "https://github.com/OCA/field-service",
"category": "Field Service",
"license": "AGPL-3",
"version": "17.0.1.0.0",
"depends": [
"agreement_serviceprofile",
"fieldservice_agreement",
],
"data": [
"views/fsm_order_view.xml",
"views/fsm_equipment_view.xml",
"views/fsm_location.xml",
],
"installable": True,
"development_status": "Beta",
"maintainers": [
"max3903",
"bodedra",
"smangukiya",
"osi-scampbell",
"patrickrwilson",
],
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fieldservice_agreement_serviceprofile
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.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: fieldservice_agreement_serviceprofile
#: model:ir.model.fields,field_description:fieldservice_agreement_serviceprofile.field_fsm_equipment__serviceprofile_id
#: model:ir.model.fields,field_description:fieldservice_agreement_serviceprofile.field_fsm_order__serviceprofile_id
#: model_terms:ir.ui.view,arch_db:fieldservice_agreement_serviceprofile.fsm_equipment_search_view_agreement
#: model_terms:ir.ui.view,arch_db:fieldservice_agreement_serviceprofile.search_fsm_order_filter_agreement
msgid "Service Profile"
msgstr ""

#. module: fieldservice_agreement_serviceprofile
#: model:ir.model.fields,field_description:fieldservice_agreement_serviceprofile.field_fsm_location__serviceprofile_ids
#: model_terms:ir.ui.view,arch_db:fieldservice_agreement_serviceprofile.fsm_location_agreement_serviceprofile
msgid "Service Profiles"
msgstr ""
5 changes: 5 additions & 0 deletions fieldservice_agreement_serviceprofile/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from . import fsm_equipment
from . import fsm_location
from . import fsm_order
10 changes: 10 additions & 0 deletions fieldservice_agreement_serviceprofile/models/fsm_equipment.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import fields, models


class FSMEquipment(models.Model):
_inherit = "fsm.equipment"

serviceprofile_id = fields.Many2one("agreement.serviceprofile", "Service Profile")
49 changes: 49 additions & 0 deletions fieldservice_agreement_serviceprofile/models/fsm_location.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

import itertools

from odoo import fields, models


class FSMLocation(models.Model):
_inherit = "fsm.location"

serviceprofile_ids = fields.Many2many(
"agreement.serviceprofile",
string="Service Profiles",
compute="_compute_serviceprofile_ids",
)

def _compute_serviceprofile_ids(self):
if not self.ids:
self.serviceprofile_ids = False
return
agreements_by_location = dict(

Check warning on line 22 in fieldservice_agreement_serviceprofile/models/fsm_location.py

View check run for this annotation

Codecov / codecov/patch

fieldservice_agreement_serviceprofile/models/fsm_location.py#L20-L22

Added lines #L20 - L22 were not covered by tests
self.env["agreement"]._read_group(
[("fsm_location_id", "in", self.ids)],
["fsm_location_id"],
["id:recordset"],
)
)
serviceprofiles_by_agreement = dict(

Check warning on line 29 in fieldservice_agreement_serviceprofile/models/fsm_location.py

View check run for this annotation

Codecov / codecov/patch

fieldservice_agreement_serviceprofile/models/fsm_location.py#L29

Added line #L29 was not covered by tests
self.env["agreement.serviceprofile"]._read_group(
[("agreement_id.fsm_location_id", "in", self.ids)],
["agreement_id"],
["id:recordset"],
)
)
serviceprofiles_by_location = {

Check warning on line 36 in fieldservice_agreement_serviceprofile/models/fsm_location.py

View check run for this annotation

Codecov / codecov/patch

fieldservice_agreement_serviceprofile/models/fsm_location.py#L36

Added line #L36 was not covered by tests
location: self.env["agreement.serviceprofile"].browse(
set(
itertools.chain.from_iterable(
serviceprofiles_by_agreement[agreement].ids
for agreement in agreements
if agreement in serviceprofiles_by_agreement
)
)
)
for location, agreements in agreements_by_location.items()
}
for rec in self:
rec.serviceprofile_ids = serviceprofiles_by_location.get(rec)

Check warning on line 49 in fieldservice_agreement_serviceprofile/models/fsm_location.py

View check run for this annotation

Codecov / codecov/patch

fieldservice_agreement_serviceprofile/models/fsm_location.py#L49

Added line #L49 was not covered by tests
10 changes: 10 additions & 0 deletions fieldservice_agreement_serviceprofile/models/fsm_order.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import fields, models


class FSMOrder(models.Model):
_inherit = "fsm.order"

serviceprofile_id = fields.Many2one("agreement.serviceprofile", "Service Profile")
3 changes: 3 additions & 0 deletions fieldservice_agreement_serviceprofile/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
5 changes: 5 additions & 0 deletions fieldservice_agreement_serviceprofile/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- Bhavesh Odedra \<<[email protected]>\>
- Sandip Mangukiya \<<[email protected]>\>
- Serpent Consulting Services Pvt. Ltd. \<<[email protected]>\>
- Patrick Wilson \<<[email protected]>\>
- Italo LOPES \<<[email protected]>\>
3 changes: 3 additions & 0 deletions fieldservice_agreement_serviceprofile/readme/CREDITS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
The development of this module has been financially supported by:

- Open Source Integrators
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Glue module for Field Service Agreement and Service Profile
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading