odoo-addon-helpdesk-mgmt-fieldservice 16.0.1.1.0__py3-none-any.whl → 18.0.1.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odoo/addons/helpdesk_mgmt_fieldservice/README.rst +30 -20
- odoo/addons/helpdesk_mgmt_fieldservice/__manifest__.py +1 -1
- odoo/addons/helpdesk_mgmt_fieldservice/i18n/helpdesk_mgmt_fieldservice.pot +2 -39
- odoo/addons/helpdesk_mgmt_fieldservice/i18n/it.po +7 -7
- odoo/addons/helpdesk_mgmt_fieldservice/models/__init__.py +0 -3
- odoo/addons/helpdesk_mgmt_fieldservice/models/fsm_location.py +28 -18
- odoo/addons/helpdesk_mgmt_fieldservice/models/fsm_order.py +0 -15
- odoo/addons/helpdesk_mgmt_fieldservice/models/helpdesk_ticket.py +28 -33
- odoo/addons/helpdesk_mgmt_fieldservice/readme/CONTRIBUTORS.md +6 -0
- odoo/addons/helpdesk_mgmt_fieldservice/readme/{DESCRIPTION.rst → DESCRIPTION.md} +2 -1
- odoo/addons/helpdesk_mgmt_fieldservice/readme/HISTORY.md +3 -0
- odoo/addons/helpdesk_mgmt_fieldservice/readme/{INSTALL.rst → INSTALL.md} +1 -1
- odoo/addons/helpdesk_mgmt_fieldservice/readme/ROADMAP.md +1 -0
- odoo/addons/helpdesk_mgmt_fieldservice/readme/USAGE.md +6 -0
- odoo/addons/helpdesk_mgmt_fieldservice/static/description/index.html +28 -20
- odoo/addons/helpdesk_mgmt_fieldservice/tests/test_helpdesk_ticket_fsm_order.py +51 -26
- odoo/addons/helpdesk_mgmt_fieldservice/views/fsm_location_views.xml +0 -17
- odoo/addons/helpdesk_mgmt_fieldservice/views/fsm_order_views.xml +0 -4
- odoo/addons/helpdesk_mgmt_fieldservice/views/helpdesk_ticket_views.xml +19 -72
- odoo/addons/helpdesk_mgmt_fieldservice/wizards/fsm_order_close_wizard.xml +23 -23
- {odoo_addon_helpdesk_mgmt_fieldservice-16.0.1.1.0.dist-info → odoo_addon_helpdesk_mgmt_fieldservice-18.0.1.1.1.dist-info}/METADATA +38 -27
- odoo_addon_helpdesk_mgmt_fieldservice-18.0.1.1.1.dist-info/RECORD +37 -0
- {odoo_addon_helpdesk_mgmt_fieldservice-16.0.1.1.0.dist-info → odoo_addon_helpdesk_mgmt_fieldservice-18.0.1.1.1.dist-info}/WHEEL +1 -1
- odoo_addon_helpdesk_mgmt_fieldservice-18.0.1.1.1.dist-info/top_level.txt +1 -0
- odoo/addons/helpdesk_mgmt_fieldservice/models/res_partner.py +0 -19
- odoo/addons/helpdesk_mgmt_fieldservice/readme/CONTRIBUTORS.rst +0 -4
- odoo/addons/helpdesk_mgmt_fieldservice/readme/HISTORY.rst +0 -3
- odoo/addons/helpdesk_mgmt_fieldservice/readme/ROADMAP.rst +0 -0
- odoo/addons/helpdesk_mgmt_fieldservice/readme/USAGE.rst +0 -5
- odoo_addon_helpdesk_mgmt_fieldservice-16.0.1.1.0.dist-info/RECORD +0 -38
- odoo_addon_helpdesk_mgmt_fieldservice-16.0.1.1.0.dist-info/top_level.txt +0 -1
- /odoo/addons/helpdesk_mgmt_fieldservice/readme/{CONFIGURE.rst → CONFIGURE.md} +0 -0
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
# Copyright 2022 Camptocamp SA
|
|
2
2
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
3
3
|
|
|
4
|
+
from markupsafe import Markup
|
|
5
|
+
|
|
4
6
|
from odoo.exceptions import ValidationError
|
|
5
|
-
from odoo.tests
|
|
7
|
+
from odoo.tests import Form, TransactionCase
|
|
8
|
+
|
|
9
|
+
from odoo.addons.base.tests.common import DISABLED_MAIL_CONTEXT
|
|
6
10
|
|
|
7
11
|
|
|
8
12
|
class TestHelpdeskTicketFSMOrder(TransactionCase):
|
|
9
13
|
@classmethod
|
|
10
14
|
def setUpClass(cls):
|
|
11
15
|
super().setUpClass()
|
|
12
|
-
cls.
|
|
13
|
-
cls.FsmOrder = cls.env["fsm.order"]
|
|
14
|
-
cls.FsmStage = cls.env["fsm.stage"]
|
|
16
|
+
cls.env = cls.env(context=dict(cls.env.context, **DISABLED_MAIL_CONTEXT))
|
|
15
17
|
cls.partner = cls.env["res.partner"].create({"name": "Partner 1"})
|
|
16
18
|
cls.user_demo = cls.env.ref("base.user_demo")
|
|
17
|
-
cls.HelpdeskTicketTeam = cls.env["helpdesk.ticket.team"]
|
|
18
19
|
cls.fsm_team = cls.env["fsm.team"].create({"name": "FSM Team"})
|
|
19
20
|
cls.fsm_stage_new = cls.env.ref("fieldservice.fsm_stage_new")
|
|
20
21
|
cls.fsm_stage_cancelled = cls.env.ref("fieldservice.fsm_stage_cancelled")
|
|
21
|
-
cls.MailAlias = cls.env["mail.alias"]
|
|
22
22
|
cls.stage_closed = cls.env.ref("helpdesk_mgmt.helpdesk_ticket_stage_done")
|
|
23
23
|
cls.stage_completed = cls.env.ref("fieldservice.fsm_stage_completed")
|
|
24
24
|
cls.test_location = cls.env.ref("fieldservice.test_location")
|
|
25
25
|
cls.partner.service_location_id = cls.test_location
|
|
26
|
-
cls.mail_alias_id = cls.
|
|
26
|
+
cls.mail_alias_id = cls.env["mail.alias"].create(
|
|
27
27
|
{
|
|
28
28
|
"alias_name": "Test Mail Alias",
|
|
29
29
|
"alias_model_id": cls.env["ir.model"]
|
|
@@ -31,11 +31,11 @@ class TestHelpdeskTicketFSMOrder(TransactionCase):
|
|
|
31
31
|
.id,
|
|
32
32
|
}
|
|
33
33
|
)
|
|
34
|
-
cls.team_id = cls.
|
|
34
|
+
cls.team_id = cls.env["helpdesk.ticket.team"].create(
|
|
35
35
|
{"name": "Team 1", "alias_id": cls.mail_alias_id.id}
|
|
36
36
|
)
|
|
37
37
|
|
|
38
|
-
cls.ticket_1 = cls.
|
|
38
|
+
cls.ticket_1 = cls.env["helpdesk.ticket"].create(
|
|
39
39
|
{
|
|
40
40
|
"name": "Test 1",
|
|
41
41
|
"description": "Ticket test",
|
|
@@ -44,7 +44,7 @@ class TestHelpdeskTicketFSMOrder(TransactionCase):
|
|
|
44
44
|
"fsm_location_id": cls.test_location.id,
|
|
45
45
|
}
|
|
46
46
|
)
|
|
47
|
-
cls.ticket_2 = cls.
|
|
47
|
+
cls.ticket_2 = cls.env["helpdesk.ticket"].create(
|
|
48
48
|
{
|
|
49
49
|
"name": "Test 2",
|
|
50
50
|
"description": "Ticket test",
|
|
@@ -53,14 +53,14 @@ class TestHelpdeskTicketFSMOrder(TransactionCase):
|
|
|
53
53
|
"fsm_location_id": cls.test_location.id,
|
|
54
54
|
}
|
|
55
55
|
)
|
|
56
|
-
cls.fsm_order_no_ticket = cls.
|
|
56
|
+
cls.fsm_order_no_ticket = cls.env["fsm.order"].create(
|
|
57
57
|
{
|
|
58
58
|
"name": "No ticket order",
|
|
59
59
|
"location_id": cls.test_location.id,
|
|
60
60
|
"team_id": cls.fsm_team.id,
|
|
61
61
|
}
|
|
62
62
|
)
|
|
63
|
-
cls.fsm_stage_closed = cls.
|
|
63
|
+
cls.fsm_stage_closed = cls.env["fsm.stage"].create(
|
|
64
64
|
{
|
|
65
65
|
"name": "Custom Closing Stage",
|
|
66
66
|
"stage_type": "order",
|
|
@@ -88,6 +88,7 @@ class TestHelpdeskTicketFSMOrder(TransactionCase):
|
|
|
88
88
|
"ticket_id": self.ticket_1.id,
|
|
89
89
|
"priority": self.ticket_1.priority,
|
|
90
90
|
"location_id": self.test_location.id,
|
|
91
|
+
"description": self.ticket_1.description,
|
|
91
92
|
}
|
|
92
93
|
for _ in range(5)
|
|
93
94
|
],
|
|
@@ -98,28 +99,25 @@ class TestHelpdeskTicketFSMOrder(TransactionCase):
|
|
|
98
99
|
self.assertEqual(
|
|
99
100
|
action_view_ticket["context"],
|
|
100
101
|
{
|
|
101
|
-
"
|
|
102
|
+
"search_default_open": 1,
|
|
102
103
|
"default_fsm_location_id": self.test_location.id,
|
|
104
|
+
"default_partner_id": self.test_location.partner_id.id,
|
|
103
105
|
},
|
|
104
106
|
)
|
|
105
107
|
self.ticket_2.fsm_location_id = False
|
|
106
108
|
action_view_ticket = self.test_location.action_view_ticket()
|
|
107
|
-
self.assertEqual(
|
|
108
|
-
action_view_ticket["views"],
|
|
109
|
-
[(self.env.ref("helpdesk_mgmt.ticket_view_form").id, "form")],
|
|
110
|
-
)
|
|
109
|
+
self.assertEqual(action_view_ticket["views"], [(False, "form")])
|
|
111
110
|
self.assertEqual(action_view_ticket["res_id"], self.ticket_1.id)
|
|
112
111
|
# checking action_complete on fsm.order with ticket
|
|
113
112
|
resolution = "High resolution"
|
|
114
113
|
for idx, order in enumerate(fsm_orders[:-1]):
|
|
115
|
-
order.resolution = resolution + "
|
|
114
|
+
order.resolution = resolution + f" {str(idx + 1)}"
|
|
116
115
|
order.action_complete()
|
|
117
116
|
self.assertRecordValues(
|
|
118
117
|
fsm_orders[:-1],
|
|
119
118
|
[
|
|
120
119
|
{
|
|
121
120
|
"stage_id": self.stage_completed.id,
|
|
122
|
-
"is_button": False,
|
|
123
121
|
}
|
|
124
122
|
for _ in range(4)
|
|
125
123
|
],
|
|
@@ -135,22 +133,49 @@ class TestHelpdeskTicketFSMOrder(TransactionCase):
|
|
|
135
133
|
{
|
|
136
134
|
"default_ticket_id": self.ticket_1.id,
|
|
137
135
|
"default_team_id": self.team_id.id,
|
|
138
|
-
"default_resolution": "Just another resolution",
|
|
136
|
+
"default_resolution": Markup("<p>Just another resolution</p>"),
|
|
139
137
|
},
|
|
140
138
|
)
|
|
141
139
|
fsm_order_close_wizard = self.env["fsm.order.close.wizard"].with_context(
|
|
142
140
|
**action_complete_last_order["context"]
|
|
143
141
|
)
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
close_wizard_form.action_close_ticket()
|
|
142
|
+
with Form(fsm_order_close_wizard) as wizard:
|
|
143
|
+
wizard.stage_id = self.stage_closed
|
|
144
|
+
wizard.record.action_close_ticket()
|
|
148
145
|
self.assertEqual(self.ticket_1.stage_id.name, self.stage_closed.name)
|
|
149
|
-
self.assertEqual(self.ticket_1.resolution, "Just another resolution")
|
|
146
|
+
self.assertEqual(self.ticket_1.resolution, "<p>Just another resolution</p>")
|
|
150
147
|
# check action_complete on fsm.order no ticket
|
|
151
148
|
self.fsm_order_no_ticket.action_complete()
|
|
152
149
|
self.assertEqual(self.fsm_order_no_ticket.stage_id, self.stage_completed)
|
|
153
|
-
|
|
150
|
+
|
|
151
|
+
def test_recompute_location_if_partner_with_default_location_is_set(self):
|
|
152
|
+
other_location = self.env.ref("fieldservice.location_1")
|
|
153
|
+
other_partner = other_location.partner_id
|
|
154
|
+
other_partner.service_location_id = other_location
|
|
155
|
+
self.ticket_1.partner_id = other_location.partner_id
|
|
156
|
+
self.assertEqual(self.ticket_1.fsm_location_id, other_location)
|
|
157
|
+
|
|
158
|
+
def test_recompute_location_if_commercial_partner_with_default_location_is_set(
|
|
159
|
+
self,
|
|
160
|
+
):
|
|
161
|
+
other_location = self.env.ref("fieldservice.location_1")
|
|
162
|
+
other_partner = other_location.partner_id
|
|
163
|
+
other_partner.service_location_id = other_location
|
|
164
|
+
other_contact = self.env["res.partner"].create(
|
|
165
|
+
{
|
|
166
|
+
"name": "Other Contact",
|
|
167
|
+
"parent_id": other_partner.id,
|
|
168
|
+
}
|
|
169
|
+
)
|
|
170
|
+
self.ticket_1.partner_id = other_contact
|
|
171
|
+
self.assertEqual(self.ticket_1.fsm_location_id, other_location)
|
|
172
|
+
|
|
173
|
+
def test_keep_location_if_partner_without_default_location_is_set(self):
|
|
174
|
+
other_location = self.env.ref("fieldservice.location_1")
|
|
175
|
+
other_partner = other_location.partner_id
|
|
176
|
+
other_partner.service_location_id = False
|
|
177
|
+
self.ticket_1.partner_id = other_location.partner_id
|
|
178
|
+
self.assertEqual(self.ticket_1.fsm_location_id, self.test_location)
|
|
154
179
|
|
|
155
180
|
def test_can_close_ticket_if_no_fsm_order(self):
|
|
156
181
|
self.ticket_1.stage_id = self.stage_closed
|
|
@@ -1,22 +1,6 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
2
2
|
<odoo>
|
|
3
|
-
|
|
4
|
-
<record id="action_fsm_location_ticket" model="ir.actions.act_window">
|
|
5
|
-
<field name="name">Helpdesk Tickets</field>
|
|
6
|
-
<field name="type">ir.actions.act_window</field>
|
|
7
|
-
<field name="res_model">helpdesk.ticket</field>
|
|
8
|
-
<field name="view_mode">tree,form</field>
|
|
9
|
-
<field name="domain">[('fsm_location_id', '=', active_id)]</field>
|
|
10
|
-
<field name="help" type="html">
|
|
11
|
-
<p class="oe_view_nocontent_create">
|
|
12
|
-
Create Helpdesk Tickets
|
|
13
|
-
</p>
|
|
14
|
-
</field>
|
|
15
|
-
</record>
|
|
16
|
-
|
|
17
|
-
<!-- FieldService Location Form View -->
|
|
18
3
|
<record id="view_fsm_location_ticket_form" model="ir.ui.view">
|
|
19
|
-
<field name="name">view.fsm.location.ticket.form</field>
|
|
20
4
|
<field name="model">fsm.location</field>
|
|
21
5
|
<field name="inherit_id" ref="fieldservice.fsm_location_form_view" />
|
|
22
6
|
<field name="arch" type="xml">
|
|
@@ -32,5 +16,4 @@
|
|
|
32
16
|
</div>
|
|
33
17
|
</field>
|
|
34
18
|
</record>
|
|
35
|
-
|
|
36
19
|
</odoo>
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
2
2
|
<odoo>
|
|
3
|
-
|
|
4
|
-
<!-- FieldService Order Form View -->
|
|
5
3
|
<record id="view_fsm_order_ticket_form" model="ir.ui.view">
|
|
6
|
-
<field name="name">view.fsm.order.ticket.form</field>
|
|
7
4
|
<field name="model">fsm.order</field>
|
|
8
5
|
<field name="inherit_id" ref="fieldservice.fsm_order_form" />
|
|
9
6
|
<field name="arch" type="xml">
|
|
@@ -12,5 +9,4 @@
|
|
|
12
9
|
</field>
|
|
13
10
|
</field>
|
|
14
11
|
</record>
|
|
15
|
-
|
|
16
12
|
</odoo>
|
|
@@ -2,63 +2,35 @@
|
|
|
2
2
|
<!-- Copyright 2019 Open Source Integrators
|
|
3
3
|
Copyright 2020 - TODAY, Marcel Savegnago - Escodoo
|
|
4
4
|
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -->
|
|
5
|
-
<!-- pylint:disable=dangerous-view-replace-wo-priority -->
|
|
6
5
|
<odoo>
|
|
7
|
-
<!-- Helpdesk Ticket Form View -->
|
|
8
6
|
<record id="helpdesk_ticket_view_service_request_form" model="ir.ui.view">
|
|
9
|
-
<field name="name">helpdesk.ticket.service.request.form</field>
|
|
10
7
|
<field name="model">helpdesk.ticket</field>
|
|
11
8
|
<field name="inherit_id" ref="helpdesk_mgmt.ticket_view_form" />
|
|
12
9
|
<field name="arch" type="xml">
|
|
13
10
|
<page name="other_info" position="after">
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
<page string="Service Orders">
|
|
12
|
+
<button
|
|
16
13
|
name="action_create_order"
|
|
17
14
|
string="Create FSM Order"
|
|
18
15
|
type="object"
|
|
19
16
|
class="btn btn-primary mb8"
|
|
20
17
|
/>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
/>
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
/>
|
|
34
|
-
<field
|
|
35
|
-
name="scheduled_date_end"
|
|
36
|
-
style="pointer-events:none;"
|
|
37
|
-
/>
|
|
38
|
-
<field
|
|
39
|
-
name="scheduled_duration"
|
|
40
|
-
style="pointer-events:none;"
|
|
41
|
-
/>
|
|
42
|
-
<button
|
|
43
|
-
name="action_view_order"
|
|
44
|
-
string="Open"
|
|
45
|
-
type="object"
|
|
46
|
-
class="helpdesk_column"
|
|
47
|
-
/>
|
|
48
|
-
</tree>
|
|
49
|
-
</field>
|
|
50
|
-
</page>
|
|
18
|
+
<field name="fsm_order_ids">
|
|
19
|
+
<list create="false" editable="top" open_form_view="True">
|
|
20
|
+
<field name="name" readonly="True" />
|
|
21
|
+
<field name="location_id" readonly="True" />
|
|
22
|
+
<field name="stage_id" readonly="True" />
|
|
23
|
+
<field name="person_id" />
|
|
24
|
+
<field name="scheduled_date_start" readonly="True" />
|
|
25
|
+
<field name="scheduled_date_end" readonly="True" />
|
|
26
|
+
<field name="scheduled_duration" readonly="True" />
|
|
27
|
+
</list>
|
|
28
|
+
</field>
|
|
29
|
+
</page>
|
|
51
30
|
</page>
|
|
52
|
-
<field name="partner_id" position="
|
|
53
|
-
<field name="partner_domain" invisible="1" />
|
|
54
|
-
<field name="all_partners" invisible="1" />
|
|
31
|
+
<field name="partner_id" position="after">
|
|
55
32
|
<field name="fsm_location_id" />
|
|
56
33
|
</field>
|
|
57
|
-
<field name="partner_id" position="attributes">
|
|
58
|
-
<attribute
|
|
59
|
-
name="domain"
|
|
60
|
-
>['|', ('service_location_id', '=', partner_domain), (all_partners, '=', True)]</attribute>
|
|
61
|
-
</field>
|
|
62
34
|
</field>
|
|
63
35
|
</record>
|
|
64
36
|
|
|
@@ -70,7 +42,7 @@
|
|
|
70
42
|
<filter name="open" position="after">
|
|
71
43
|
<filter
|
|
72
44
|
string="Closed FSM Orders"
|
|
73
|
-
domain="[('stage_id.closed', '=', False), ('fsm_order_ids', '
|
|
45
|
+
domain="[('stage_id.closed', '=', False), ('fsm_order_ids', 'any', [('stage_id.is_closed', '=', False)])]"
|
|
74
46
|
name="closed_fsm_order"
|
|
75
47
|
/>
|
|
76
48
|
</filter>
|
|
@@ -86,11 +58,8 @@
|
|
|
86
58
|
<field name="partner_name" position="attributes">
|
|
87
59
|
<attribute name="invisible">1</attribute>
|
|
88
60
|
</field>
|
|
89
|
-
<field name="partner_email" position="
|
|
90
|
-
<
|
|
91
|
-
name="partner_email"
|
|
92
|
-
attrs="{'invisible': [('partner_id','=',False)]}"
|
|
93
|
-
/>
|
|
61
|
+
<field name="partner_email" position="attributes">
|
|
62
|
+
<attribute name="invisible">not partner_id</attribute>
|
|
94
63
|
</field>
|
|
95
64
|
<field name="description" position="replace">
|
|
96
65
|
<group string="Description" name="description_grp">
|
|
@@ -104,7 +73,7 @@
|
|
|
104
73
|
</record>
|
|
105
74
|
|
|
106
75
|
<record id="helpdesk_ticket_tree_view_location" model="ir.ui.view">
|
|
107
|
-
<field name="name">helpdesk.ticket.
|
|
76
|
+
<field name="name">helpdesk.ticket.list.location</field>
|
|
108
77
|
<field name="model">helpdesk.ticket</field>
|
|
109
78
|
<field name="inherit_id" ref="helpdesk_mgmt.ticket_view_tree" />
|
|
110
79
|
<field name="arch" type="xml">
|
|
@@ -124,26 +93,4 @@
|
|
|
124
93
|
</field>
|
|
125
94
|
</field>
|
|
126
95
|
</record>
|
|
127
|
-
|
|
128
|
-
<menuitem
|
|
129
|
-
id="menu_helpdesk_op"
|
|
130
|
-
name="Operations"
|
|
131
|
-
parent="helpdesk_mgmt.helpdesk_ticket_main_menu"
|
|
132
|
-
sequence="10"
|
|
133
|
-
/>
|
|
134
|
-
|
|
135
|
-
<menuitem
|
|
136
|
-
id="menu_helpdesk_fsm_order"
|
|
137
|
-
name="Service Orders"
|
|
138
|
-
action="fieldservice.action_fsm_dash_order"
|
|
139
|
-
parent="menu_helpdesk_op"
|
|
140
|
-
sequence="20"
|
|
141
|
-
/>
|
|
142
|
-
|
|
143
|
-
<menuitem
|
|
144
|
-
id="helpdesk_mgmt.helpdesk_ticket_menu"
|
|
145
|
-
name="All Tickets"
|
|
146
|
-
parent="menu_helpdesk_op"
|
|
147
|
-
/>
|
|
148
|
-
|
|
149
96
|
</odoo>
|
|
@@ -3,41 +3,41 @@
|
|
|
3
3
|
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -->
|
|
4
4
|
<odoo>
|
|
5
5
|
<record id="fsm_order_close_wizard_view_form" model="ir.ui.view">
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
<field name="name">fsm.order.close.wizard.form</field>
|
|
7
|
+
<field name="model">fsm.order.close.wizard</field>
|
|
8
|
+
<field name="arch" type="xml">
|
|
9
|
+
<form>
|
|
10
|
+
<div>
|
|
11
11
|
There is an open Ticket, would you like to update the related ticket?
|
|
12
12
|
</div>
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
<!-- <field name="stage_id"-->
|
|
17
|
-
<!-- string="Ticket Stage"-->
|
|
18
|
-
<!-- required="1"-->
|
|
19
|
-
<!-- domain="[('team_ids', '=', team_id)]"-->
|
|
20
|
-
<!-- options="{'no_create': True, 'no_open': True, 'no_create_edit': True}"/>-->
|
|
21
|
-
|
|
13
|
+
<group>
|
|
14
|
+
<field name="team_id" invisible="1" />
|
|
15
|
+
<field name="ticket_id" invisible="1" />
|
|
16
|
+
<!-- <field name="stage_id"-->
|
|
17
|
+
<!-- string="Ticket Stage"-->
|
|
18
|
+
<!-- required="1"-->
|
|
19
|
+
<!-- domain="[('team_ids', '=', team_id)]"-->
|
|
20
|
+
<!-- options="{'no_create': True, 'no_open': True, 'no_create_edit': True}"/>-->
|
|
21
|
+
<field
|
|
22
22
|
name="stage_id"
|
|
23
23
|
string="Ticket Stage"
|
|
24
24
|
required="1"
|
|
25
25
|
options="{'no_create': True, 'no_open': True, 'no_create_edit': True}"
|
|
26
26
|
/>
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
</group>
|
|
28
|
+
<group>
|
|
29
|
+
<field name="resolution" string="Ticket Resolution" required="1" />
|
|
30
|
+
</group>
|
|
31
|
+
<footer>
|
|
32
|
+
<button
|
|
33
33
|
string="Close Ticket"
|
|
34
34
|
name="action_close_ticket"
|
|
35
35
|
type="object"
|
|
36
36
|
class="oe_highlight"
|
|
37
37
|
/>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
<button string="Cancel" class="btn-default" special="cancel" />
|
|
39
|
+
</footer>
|
|
40
|
+
</form>
|
|
41
41
|
</field>
|
|
42
42
|
</record>
|
|
43
43
|
</odoo>
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: odoo-addon-helpdesk_mgmt_fieldservice
|
|
3
|
-
Version:
|
|
3
|
+
Version: 18.0.1.1.1
|
|
4
|
+
Requires-Python: >=3.10
|
|
5
|
+
Requires-Dist: odoo-addon-fieldservice==18.0.*
|
|
6
|
+
Requires-Dist: odoo-addon-helpdesk_mgmt==18.0.*
|
|
7
|
+
Requires-Dist: odoo==18.0.*
|
|
4
8
|
Summary: Create service orders from a ticket
|
|
5
9
|
Home-page: https://github.com/OCA/helpdesk
|
|
10
|
+
License: AGPL-3
|
|
6
11
|
Author: Open Source Integrators, Escodoo, Odoo Community Association (OCA)
|
|
7
12
|
Author-email: support@odoo-community.org
|
|
8
|
-
License: AGPL-3
|
|
9
13
|
Classifier: Programming Language :: Python
|
|
10
14
|
Classifier: Framework :: Odoo
|
|
11
|
-
Classifier: Framework :: Odoo ::
|
|
15
|
+
Classifier: Framework :: Odoo :: 18.0
|
|
12
16
|
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
|
|
13
|
-
|
|
14
|
-
Requires-Dist: odoo-addon-fieldservice<16.1dev,>=16.0dev
|
|
15
|
-
Requires-Dist: odoo-addon-helpdesk-mgmt<16.1dev,>=16.0dev
|
|
16
|
-
Requires-Dist: odoo<16.1dev,>=16.0a
|
|
17
|
+
Description-Content-Type: text/x-rst
|
|
17
18
|
|
|
18
19
|
.. image:: https://odoo-community.org/readme-banner-image
|
|
19
20
|
:target: https://odoo-community.org/get-involved?utm_source=readme
|
|
@@ -28,7 +29,7 @@ Helpdesk Mgmt Fieldservice
|
|
|
28
29
|
!! This file is generated by oca-gen-addon-readme !!
|
|
29
30
|
!! changes will be overwritten. !!
|
|
30
31
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
31
|
-
!! source digest: sha256:
|
|
32
|
+
!! source digest: sha256:041e7dac489cc997db4823a8a824b64038532caeb114a49493f75ccfd48b57d7
|
|
32
33
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
33
34
|
|
|
34
35
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -38,18 +39,19 @@ Helpdesk Mgmt Fieldservice
|
|
|
38
39
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
|
39
40
|
:alt: License: AGPL-3
|
|
40
41
|
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhelpdesk-lightgray.png?logo=github
|
|
41
|
-
:target: https://github.com/OCA/helpdesk/tree/
|
|
42
|
+
:target: https://github.com/OCA/helpdesk/tree/18.0/helpdesk_mgmt_fieldservice
|
|
42
43
|
:alt: OCA/helpdesk
|
|
43
44
|
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
|
44
|
-
:target: https://translation.odoo-community.org/projects/helpdesk-
|
|
45
|
+
:target: https://translation.odoo-community.org/projects/helpdesk-18-0/helpdesk-18-0-helpdesk_mgmt_fieldservice
|
|
45
46
|
:alt: Translate me on Weblate
|
|
46
47
|
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
|
|
47
|
-
:target: https://runboat.odoo-community.org/builds?repo=OCA/helpdesk&target_branch=
|
|
48
|
+
:target: https://runboat.odoo-community.org/builds?repo=OCA/helpdesk&target_branch=18.0
|
|
48
49
|
:alt: Try me on Runboat
|
|
49
50
|
|
|
50
51
|
|badge1| |badge2| |badge3| |badge4| |badge5|
|
|
51
52
|
|
|
52
|
-
This module allows the helpdesk user to track the status of related
|
|
53
|
+
This module allows the helpdesk user to track the status of related
|
|
54
|
+
service orders.
|
|
53
55
|
|
|
54
56
|
**Table of contents**
|
|
55
57
|
|
|
@@ -61,7 +63,7 @@ Installation
|
|
|
61
63
|
|
|
62
64
|
To install this module, you need to:
|
|
63
65
|
|
|
64
|
-
|
|
66
|
+
- Install helpdesk_mgmt_fieldservice
|
|
65
67
|
|
|
66
68
|
Configuration
|
|
67
69
|
=============
|
|
@@ -71,18 +73,25 @@ There is no need to do anything to configure this module
|
|
|
71
73
|
Usage
|
|
72
74
|
=====
|
|
73
75
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
76
|
+
- Go to Helpdesk
|
|
77
|
+
- Create or select a ticket
|
|
78
|
+
- In the "Service Orders" tab, you can create service orders for the FSM
|
|
79
|
+
team
|
|
77
80
|
|
|
78
81
|
To close a ticket, all the related service orders must be closed.
|
|
79
82
|
|
|
83
|
+
Known issues / Roadmap
|
|
84
|
+
======================
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
80
88
|
Changelog
|
|
81
89
|
=========
|
|
82
90
|
|
|
83
91
|
12.0.1.0.0 (2016-06-19)
|
|
84
|
-
|
|
85
|
-
|
|
92
|
+
-----------------------
|
|
93
|
+
|
|
94
|
+
- [ADD] Add this module OCA/helpdesk project
|
|
86
95
|
|
|
87
96
|
Bug Tracker
|
|
88
97
|
===========
|
|
@@ -90,7 +99,7 @@ Bug Tracker
|
|
|
90
99
|
Bugs are tracked on `GitHub Issues <https://github.com/OCA/helpdesk/issues>`_.
|
|
91
100
|
In case of trouble, please check there if your issue has already been reported.
|
|
92
101
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
|
93
|
-
`feedback <https://github.com/OCA/helpdesk/issues/new?body=module:%20helpdesk_mgmt_fieldservice%0Aversion:%
|
|
102
|
+
`feedback <https://github.com/OCA/helpdesk/issues/new?body=module:%20helpdesk_mgmt_fieldservice%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
|
94
103
|
|
|
95
104
|
Do not contact contributors directly about support or help with technical issues.
|
|
96
105
|
|
|
@@ -98,21 +107,23 @@ Credits
|
|
|
98
107
|
=======
|
|
99
108
|
|
|
100
109
|
Authors
|
|
101
|
-
|
|
110
|
+
-------
|
|
102
111
|
|
|
103
112
|
* Open Source Integrators
|
|
104
113
|
* Escodoo
|
|
105
114
|
|
|
106
115
|
Contributors
|
|
107
|
-
|
|
116
|
+
------------
|
|
108
117
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
118
|
+
- Bhavesh Odedra <bodedra@opensourceintegrators.com>
|
|
119
|
+
- Open Source Integrators <contact@opensourceintegrators.com>
|
|
120
|
+
- Serpent Consulting Services Pvt. Ltd. <support@serpentcs.com>
|
|
121
|
+
- Marcel Savegnago <marcel.savegnago@escodoo.com.br>
|
|
122
|
+
- Italo Lopes <italo.lopes@camptocamp.com>
|
|
123
|
+
- Iván Todorovich <ivan.todorovich@camptocamp.com>
|
|
113
124
|
|
|
114
125
|
Maintainers
|
|
115
|
-
|
|
126
|
+
-----------
|
|
116
127
|
|
|
117
128
|
This module is maintained by the OCA.
|
|
118
129
|
|
|
@@ -124,6 +135,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
|
|
|
124
135
|
mission is to support the collaborative development of Odoo features and
|
|
125
136
|
promote its widespread use.
|
|
126
137
|
|
|
127
|
-
This module is part of the `OCA/helpdesk <https://github.com/OCA/helpdesk/tree/
|
|
138
|
+
This module is part of the `OCA/helpdesk <https://github.com/OCA/helpdesk/tree/18.0/helpdesk_mgmt_fieldservice>`_ project on GitHub.
|
|
128
139
|
|
|
129
140
|
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
odoo/addons/helpdesk_mgmt_fieldservice/README.rst,sha256=9hiZuLEHZRpSDK0lVQ-k5f95ae7kqb03_62DdSazpsc,3909
|
|
2
|
+
odoo/addons/helpdesk_mgmt_fieldservice/__init__.py,sha256=0XNpxETgFdVxFDEw03O8oL3NtTSk3we-HEZW2sPKzIU,43
|
|
3
|
+
odoo/addons/helpdesk_mgmt_fieldservice/__manifest__.py,sha256=DY5KLineifkMgPfs9yMi5KPzaDUkEQFdeVtG7xwilPo,895
|
|
4
|
+
odoo/addons/helpdesk_mgmt_fieldservice/i18n/ca.po,sha256=kzB-_20VUWYBdsRR4G5vjYtifQBpQEE7ghvl3AtCMc0,7923
|
|
5
|
+
odoo/addons/helpdesk_mgmt_fieldservice/i18n/es.po,sha256=ac5yBKpl8CGGi33IbFuwo_QkR1Ao8AQWid89binsOkQ,8779
|
|
6
|
+
odoo/addons/helpdesk_mgmt_fieldservice/i18n/es_AR.po,sha256=rO8KSTMhvU9-87Iy7hCWbHVBG_yP_I8hVRxRO_0VQJI,8751
|
|
7
|
+
odoo/addons/helpdesk_mgmt_fieldservice/i18n/fr.po,sha256=w9SL9y7yaayhk_PyLSMQs0UgfKwmybvPSSxaVGb-T7s,8696
|
|
8
|
+
odoo/addons/helpdesk_mgmt_fieldservice/i18n/helpdesk_mgmt_fieldservice.pot,sha256=eMafgYi8hdnaw7SA_LMI71Y9j4uCeQderBDg_nGKTJg,5614
|
|
9
|
+
odoo/addons/helpdesk_mgmt_fieldservice/i18n/it.po,sha256=EdBYul1AvRG4oqc8j9bDLLYIy2YUUGSPhitkiJFYGEM,8708
|
|
10
|
+
odoo/addons/helpdesk_mgmt_fieldservice/i18n/pt_BR.po,sha256=SjO4gtJtIpjIUnNdtPWYlEM8qmvANRC3oWMiyMr8FRg,9158
|
|
11
|
+
odoo/addons/helpdesk_mgmt_fieldservice/models/__init__.py,sha256=c4_ZBjOrYOZkINLS8EmGXEMZHc54BTS8JrM0kblGSJs,81
|
|
12
|
+
odoo/addons/helpdesk_mgmt_fieldservice/models/fsm_location.py,sha256=T0GoF4uM8krKVcwD9Tgoe21cmXD1UtI3_kezukA4Hh0,1519
|
|
13
|
+
odoo/addons/helpdesk_mgmt_fieldservice/models/fsm_order.py,sha256=c8_VVmxZltcF03t7eASYQE-M_fOTDlwak3VfF8U-UNM,1075
|
|
14
|
+
odoo/addons/helpdesk_mgmt_fieldservice/models/helpdesk_ticket.py,sha256=vfI5sZQBOTZ8sE8YCxV1aeXs1q4-K5zhYFpqEJKerNs,2783
|
|
15
|
+
odoo/addons/helpdesk_mgmt_fieldservice/readme/CONFIGURE.md,sha256=MDrS966unSotK21RPuvV78MEmx9hRDXDiui18h0QYxE,57
|
|
16
|
+
odoo/addons/helpdesk_mgmt_fieldservice/readme/CONTRIBUTORS.md,sha256=hpH6mna2H7_Esb2Q7WWU_nnChra8fdsiiNJfuZDDwGI,351
|
|
17
|
+
odoo/addons/helpdesk_mgmt_fieldservice/readme/DESCRIPTION.md,sha256=f-09IOi4ExE25GjOTiizuze0n9jsljg9bxEcM-ibKp0,84
|
|
18
|
+
odoo/addons/helpdesk_mgmt_fieldservice/readme/HISTORY.md,sha256=Pjq29mD2otFPlPjc5tBdF1Pf-Ir26XfPKDspsv9S9BU,75
|
|
19
|
+
odoo/addons/helpdesk_mgmt_fieldservice/readme/INSTALL.md,sha256=EthfiMau53_4tXzSwDhX9q7Phlu60R5QvcdpwtZimvs,75
|
|
20
|
+
odoo/addons/helpdesk_mgmt_fieldservice/readme/ROADMAP.md,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
21
|
+
odoo/addons/helpdesk_mgmt_fieldservice/readme/USAGE.md,sha256=Ufq_luY47G2-BlS3IntJwLdRuBkH8DYRgeMjD09CBiw,192
|
|
22
|
+
odoo/addons/helpdesk_mgmt_fieldservice/security/ir.model.access.csv,sha256=AOdQrESLWXEzqr9XEcpKuT7NT0Rfx2Iya_HeLZiGxsY,310
|
|
23
|
+
odoo/addons/helpdesk_mgmt_fieldservice/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
|
|
24
|
+
odoo/addons/helpdesk_mgmt_fieldservice/static/description/index.html,sha256=SzHQ4FibwjUSgin91KTFhSTFONvilD7cqx7nRjvGE14,15009
|
|
25
|
+
odoo/addons/helpdesk_mgmt_fieldservice/static/src/scss/helpdesk_column.scss,sha256=PHtE649jwW9qPAfle2dbx8f_ObCDGYxH4r7QeLRXkdc,138
|
|
26
|
+
odoo/addons/helpdesk_mgmt_fieldservice/tests/__init__.py,sha256=OZFpIAn9kJgQWPofSeeSJwz4s-nwwSwHLOggRoMcm6g,45
|
|
27
|
+
odoo/addons/helpdesk_mgmt_fieldservice/tests/test_helpdesk_ticket_fsm_order.py,sha256=iNQ6_0hvtL7IcZRVH1elQjEeex1pUvVxQkAoFMW1FKI,8350
|
|
28
|
+
odoo/addons/helpdesk_mgmt_fieldservice/views/fsm_location_views.xml,sha256=XkFqTKcMcZN4gE_Dd15KyyyYPtkv7VxlbENLrzxq9fA,718
|
|
29
|
+
odoo/addons/helpdesk_mgmt_fieldservice/views/fsm_order_views.xml,sha256=a27GLOjsfaZSPQ4aZLcx5ccJapZYuNTLA1q4sf2oDWI,425
|
|
30
|
+
odoo/addons/helpdesk_mgmt_fieldservice/views/helpdesk_ticket_views.xml,sha256=aRcnun1QlcDX0fYUrzAPZo4jGnyXoXmIvCm60NyLYPU,4375
|
|
31
|
+
odoo/addons/helpdesk_mgmt_fieldservice/wizards/__init__.py,sha256=FW1RxzPSkWR7bKfoQw2gWIpCjhiHkYNMo2CVglpiSxs,136
|
|
32
|
+
odoo/addons/helpdesk_mgmt_fieldservice/wizards/fsm_order_close_wizard.py,sha256=oMC3utzBotrYk_ckK9rtNuiCtIeGwjUD2-4i9XuQ99c,937
|
|
33
|
+
odoo/addons/helpdesk_mgmt_fieldservice/wizards/fsm_order_close_wizard.xml,sha256=5yJWawtj2o2UuFVIKF05JeGLGYjcQnD62iJWaaVAyFE,1973
|
|
34
|
+
odoo_addon_helpdesk_mgmt_fieldservice-18.0.1.1.1.dist-info/METADATA,sha256=UcDW9u_iDsWUorGtIRyYyXzSN1wUFmAJUhG5bRX7T9A,4587
|
|
35
|
+
odoo_addon_helpdesk_mgmt_fieldservice-18.0.1.1.1.dist-info/WHEEL,sha256=ZhOvUsYhy81Dx67gN3TV0RchQWBIIzutDZaJODDg2Vo,81
|
|
36
|
+
odoo_addon_helpdesk_mgmt_fieldservice-18.0.1.1.1.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
|
37
|
+
odoo_addon_helpdesk_mgmt_fieldservice-18.0.1.1.1.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
odoo
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
from odoo import models
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ResPartner(models.Model):
|
|
5
|
-
_inherit = "res.partner"
|
|
6
|
-
|
|
7
|
-
def action_view_helpdesk_tickets(self):
|
|
8
|
-
if self.env.user.has_group(
|
|
9
|
-
"fieldservice.group_fsm_user_own"
|
|
10
|
-
) and self.env.user.has_group("helpdesk_mgmt.group_helpdesk_user_own"):
|
|
11
|
-
context = dict(self.env.context)
|
|
12
|
-
context.pop("search_default_open", None)
|
|
13
|
-
self = self.with_context(
|
|
14
|
-
context,
|
|
15
|
-
default_partner_id=self.id,
|
|
16
|
-
default_fsm_location_id=self.service_location_id.id,
|
|
17
|
-
)
|
|
18
|
-
return super(ResPartner, self).action_view_helpdesk_tickets()
|
|
19
|
-
return super().action_view_helpdesk_tickets()
|