Skip to content

Commit 36acfbe

Browse files
Merge pull request #9 from Escodoo/14.0-mig-project_sla
[14.0][MIG] project_sla: Migration to 14.0
2 parents 9f82227 + 2dad7a3 commit 36acfbe

24 files changed

+1372
-0
lines changed

project_sla/README.rst

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
===========
2+
Project SLA
3+
===========
4+
5+
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6+
!! This file is generated by oca-gen-addon-readme !!
7+
!! changes will be overwritten. !!
8+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
9+
10+
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
11+
:target: https://odoo-community.org/page/development-status
12+
:alt: Beta
13+
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
14+
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
15+
:alt: License: AGPL-3
16+
.. |badge3| image:: https://img.shields.io/badge/github-Escodoo%2Fproject--addons-lightgray.png?logo=github
17+
:target: https://github.com/Escodoo/project-addons/tree/12.0/project_sla
18+
:alt: Escodoo/project-addons
19+
20+
|badge1| |badge2| |badge3|
21+
22+
The Project SLA module is a feature of Odoo that allows defining Service Level Agreements (SLAs) for opportunities (tasks) generated by the Project module. The feature offers the possibility to configure multiple priority levels and set up rules for each of them. Rules can be configured based on different fields, such as project, partner, tags and task priority.
23+
24+
**Table of contents**
25+
26+
.. contents::
27+
:local:
28+
29+
Usage
30+
=====
31+
32+
To start using the Project SLA module, it is necessary to configure the projects to use SLAs and define a calendar for the rules to be applied. Once the project is configured, the user can create a new SLA by navigating to the "Project" application and selecting "SLAs" from the configuration menu. From there, the user can create a new SLA and configure the rules based on the fields mentioned above.
33+
34+
After creating the SLAs, create a new task and wait for the scheduled action responsible for synchronizing the SLA lines to be executed or force its execution through the technical menu where the scheduled actions are located.
35+
36+
Bug Tracker
37+
===========
38+
39+
Bugs are tracked on `GitHub Issues <https://github.com/Escodoo/project-addons/issues>`_.
40+
In case of trouble, please check there if your issue has already been reported.
41+
If you spotted it first, help us smashing it by providing a detailed and welcomed
42+
`feedback <https://github.com/Escodoo/project-addons/issues/new?body=module:%20project_sla%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
43+
44+
Do not contact contributors directly about support or help with technical issues.
45+
46+
Credits
47+
=======
48+
49+
Authors
50+
~~~~~~~
51+
52+
* Escodoo
53+
54+
Contributors
55+
~~~~~~~~~~~~
56+
57+
* `Escodoo <https://www.escodoo.com.br>`_:
58+
59+
* Marcel Savegnago <marcel.savegnago@escodoo.com.br>
60+
61+
Maintainers
62+
~~~~~~~~~~~
63+
64+
This module is maintained by the Escodoo.
65+
66+
.. |maintainer-Escodoo| image:: https://github.com/Escodoo.png?size=80px
67+
:target: https://github.com/Escodoo
68+
:alt: Escodoo
69+
70+
|maintainer-Escodoo|
71+
72+
We at Escodoo are exclusively dedicated to deploying the Odoo Platform and are
73+
focused on providing solutions that make our customers more competitive, lowering
74+
costs, making technology more accessible and ensuring it is used strategically to
75+
add even more value to the business.
76+
77+
This module is part of the `Escodoo/project-addons <https://github.com/Escodoo/project-addons/tree/12.0/project_sla>`_ project on GitHub.
78+
79+
You are welcome to contribute.

project_sla/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import models

project_sla/__manifest__.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Copyright 2023 - TODAY, Escodoo
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
{
5+
"name": "Project SLA",
6+
"summary": """
7+
Project SLA""",
8+
"version": "14.0.1.0.0",
9+
"license": "AGPL-3",
10+
"author": "Escodoo",
11+
"website": "https://github.com/Escodoo/project-addons",
12+
"depends": ["project"],
13+
"data": [
14+
"views/project_task.xml",
15+
"views/project_sla.xml",
16+
"views/project_sla_line.xml",
17+
"views/project_project.xml",
18+
"security/ir.model.access.csv",
19+
"data/ir_cron_data.xml",
20+
],
21+
"demo": [],
22+
}

project_sla/data/ir_cron_data.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding='UTF-8' ?>
2+
<odoo noupdate="1">
3+
<record model="ir.cron" id="project_sla_cron_alert">
4+
<field name="name">Sync All Project SLA Lines</field>
5+
<field name="model_id" ref="model_project_task" />
6+
<field name="state">code</field>
7+
<field name="code">model.cron_sync_all_sla_lines()</field>
8+
<field name="user_id" ref="base.user_root" />
9+
<field name="interval_number">5</field>
10+
<field name="interval_type">minutes</field>
11+
<field name="numbercall">-1</field>
12+
<field eval="False" name="doall" />
13+
</record>
14+
</odoo>

project_sla/i18n/project_sla.pot

Lines changed: 249 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,249 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * project_sla
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 12.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"Last-Translator: <>\n"
10+
"Language-Team: \n"
11+
"MIME-Version: 1.0\n"
12+
"Content-Type: text/plain; charset=UTF-8\n"
13+
"Content-Transfer-Encoding: \n"
14+
"Plural-Forms: \n"
15+
16+
#. module: project_sla
17+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__active
18+
msgid "Active"
19+
msgstr ""
20+
21+
#. module: project_sla
22+
#: model_terms:ir.ui.view,arch_db:project_sla.view_project_sla_form
23+
msgid "Apply on"
24+
msgstr ""
25+
26+
#. module: project_sla
27+
#: model:ir.model.fields,field_description:project_sla.field_project_task__sla_ids
28+
msgid "Computed SLAs"
29+
msgstr ""
30+
31+
#. module: project_sla
32+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__create_uid
33+
#: model:ir.model.fields,field_description:project_sla.field_project_sla_line__create_uid
34+
msgid "Created by"
35+
msgstr ""
36+
37+
#. module: project_sla
38+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__create_date
39+
#: model:ir.model.fields,field_description:project_sla.field_project_sla_line__create_date
40+
msgid "Created on"
41+
msgstr ""
42+
43+
#. module: project_sla
44+
#: model:ir.model.fields,field_description:project_sla.field_project_sla_line__deadline
45+
msgid "Deadline"
46+
msgstr ""
47+
48+
#. module: project_sla
49+
#: model_terms:ir.ui.view,arch_db:project_sla.view_project_sla_form
50+
msgid "Description of the policy..."
51+
msgstr ""
52+
53+
#. module: project_sla
54+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__display_name
55+
#: model:ir.model.fields,field_description:project_sla.field_project_sla_line__display_name
56+
msgid "Display Name"
57+
msgstr ""
58+
59+
#. module: project_sla
60+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__duration
61+
msgid "Duration (hours)"
62+
msgstr ""
63+
64+
#. module: project_sla
65+
#: model:ir.model.fields,field_description:project_sla.field_project_task__sla_deadline
66+
msgid "Highest SLA Deadline"
67+
msgstr ""
68+
69+
#. module: project_sla
70+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__id
71+
#: model:ir.model.fields,field_description:project_sla.field_project_sla_line__id
72+
msgid "ID"
73+
msgstr ""
74+
75+
#. module: project_sla
76+
#: model:ir.model.fields,field_description:project_sla.field_project_sla____last_update
77+
#: model:ir.model.fields,field_description:project_sla.field_project_sla_line____last_update
78+
msgid "Last Modified on"
79+
msgstr ""
80+
81+
#. module: project_sla
82+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__write_uid
83+
#: model:ir.model.fields,field_description:project_sla.field_project_sla_line__write_uid
84+
msgid "Last Updated by"
85+
msgstr ""
86+
87+
#. module: project_sla
88+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__write_date
89+
#: model:ir.model.fields,field_description:project_sla.field_project_sla_line__write_date
90+
msgid "Last Updated on"
91+
msgstr ""
92+
93+
#. module: project_sla
94+
#: selection:project.sla,priority:0
95+
msgid "Low"
96+
msgstr ""
97+
98+
#. module: project_sla
99+
#: selection:project.sla.line,status:0
100+
msgid "Met"
101+
msgstr ""
102+
103+
#. module: project_sla
104+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__name
105+
msgid "Name"
106+
msgstr ""
107+
108+
#. module: project_sla
109+
#: selection:project.sla,priority:0
110+
msgid "Normal"
111+
msgstr ""
112+
113+
#. module: project_sla
114+
#: selection:project.sla.line,status:0
115+
msgid "Not Met"
116+
msgstr ""
117+
118+
#. module: project_sla
119+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__partner_ids
120+
msgid "Partners"
121+
msgstr ""
122+
123+
#. module: project_sla
124+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__priority
125+
msgid "Priority"
126+
msgstr ""
127+
128+
#. module: project_sla
129+
#: model:ir.model,name:project_sla.model_project_project
130+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__project_id
131+
msgid "Project"
132+
msgstr ""
133+
134+
#. module: project_sla
135+
#: model:ir.model.fields,field_description:project_sla.field_project_sla_line__reached_date
136+
msgid "Reached Date"
137+
msgstr ""
138+
139+
#. module: project_sla
140+
#: model:ir.model,name:project_sla.model_project_sla
141+
#: model:ir.model.fields,field_description:project_sla.field_project_sla_line__sla_id
142+
#: model_terms:ir.ui.view,arch_db:project_sla.view_project_sla_form
143+
msgid "SLA"
144+
msgstr ""
145+
146+
#. module: project_sla
147+
#: model_terms:ir.ui.view,arch_db:project_sla.view_project_sla_form
148+
msgid "SLA Description"
149+
msgstr ""
150+
151+
#. module: project_sla
152+
#: model:ir.model,name:project_sla.model_project_sla_line
153+
msgid "SLA Line"
154+
msgstr ""
155+
156+
#. module: project_sla
157+
#: model:ir.actions.act_window,name:project_sla.action_project_sla_line_tree
158+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__sla_line_ids
159+
#: model:ir.model.fields,field_description:project_sla.field_project_task__sla_line_ids
160+
#: model_terms:ir.ui.view,arch_db:project_sla.view_project_sla_line_tree
161+
msgid "SLA Lines"
162+
msgstr ""
163+
164+
#. module: project_sla
165+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__description
166+
msgid "SLA Policy Description"
167+
msgstr ""
168+
169+
#. module: project_sla
170+
#: model_terms:ir.ui.view,arch_db:project_sla.project_task_form_view
171+
msgid "SLA Status"
172+
msgstr ""
173+
174+
#. module: project_sla
175+
#: model:ir.ui.menu,name:project_sla.menu_project_sla_line_list
176+
msgid "SLA lines"
177+
msgstr ""
178+
179+
#. module: project_sla
180+
#: model:ir.actions.act_window,name:project_sla.action_project_sla_tree
181+
#: model:ir.ui.menu,name:project_sla.menu_project_sla_list
182+
#: model_terms:ir.ui.view,arch_db:project_sla.view_project_sla_tree
183+
msgid "SLAs"
184+
msgstr ""
185+
186+
#. module: project_sla
187+
#: model:ir.model.fields,field_description:project_sla.field_project_sla_line__status
188+
msgid "Status"
189+
msgstr ""
190+
191+
#. module: project_sla
192+
#: model:ir.actions.server,name:project_sla.project_sla_cron_alert_ir_actions_server
193+
#: model:ir.cron,cron_name:project_sla.project_sla_cron_alert
194+
#: model:ir.cron,name:project_sla.project_sla_cron_alert
195+
msgid "Sync All Project SLA Lines"
196+
msgstr ""
197+
198+
#. module: project_sla
199+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__tag_ids
200+
msgid "Tags"
201+
msgstr ""
202+
203+
#. module: project_sla
204+
#: model_terms:ir.ui.view,arch_db:project_sla.view_project_sla_form
205+
msgid "Target"
206+
msgstr ""
207+
208+
#. module: project_sla
209+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__target_stage_id
210+
#: model:ir.model.fields,field_description:project_sla.field_project_sla_line__sla_target_stage_id
211+
msgid "Target Stage"
212+
msgstr ""
213+
214+
#. module: project_sla
215+
#: model:ir.model,name:project_sla.model_project_task
216+
#: model:ir.model.fields,field_description:project_sla.field_project_sla_line__task_id
217+
msgid "Task"
218+
msgstr ""
219+
220+
#. module: project_sla
221+
#: model:ir.model.fields,field_description:project_sla.field_project_sla__task_ids
222+
msgid "Tasks"
223+
msgstr ""
224+
225+
#. module: project_sla
226+
#: sql_constraint:project.sla:0
227+
msgid "The duration of an SLA must be positive."
228+
msgstr ""
229+
230+
#. module: project_sla
231+
#: model:ir.model.fields,help:project_sla.field_project_project__resource_calendar_id
232+
msgid "Timetable working hours to adjust the gantt diagram report"
233+
msgstr ""
234+
235+
#. module: project_sla
236+
#: model:ir.model.fields,field_description:project_sla.field_project_project__use_sla
237+
msgid "Use SLA"
238+
msgstr ""
239+
240+
#. module: project_sla
241+
#: model:ir.model.fields,field_description:project_sla.field_project_project__resource_calendar_id
242+
msgid "Working Hours"
243+
msgstr ""
244+
245+
#. module: project_sla
246+
#: model_terms:ir.ui.view,arch_db:project_sla.view_project_sla_form
247+
msgid "e.g. Close urgent tasks within 8 hours"
248+
msgstr ""
249+

project_sla/models/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from . import project_project
2+
from . import project_sla
3+
from . import project_task
4+
from . import project_sla_line
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Copyright 2023 - TODAY, Marcel Savegnago <marcel.savegnago@escodoo.com.br>
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
from odoo import fields, models
5+
6+
7+
class ProjectProject(models.Model):
8+
_inherit = "project.project"
9+
10+
use_sla = fields.Boolean(string="Use SLA")
11+
resource_calendar_id = fields.Many2one(
12+
"resource.calendar",
13+
"Working Hours",
14+
default=lambda self: self.env.user.company_id.resource_calendar_id,
15+
)

0 commit comments

Comments
 (0)