Skip to content

Commit

Permalink
connector_jira_servicedesk: Add servicedesk_issue_url
Browse files Browse the repository at this point in the history
  • Loading branch information
grindtildeath authored and gurneyalex committed Aug 28, 2020
1 parent 8394bcf commit bc4ff92
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
from . import common
from . import importer
47 changes: 47 additions & 0 deletions connector_jira_servicedesk/models/account_analytic_line/common.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Copyright 2020 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
from odoo import api, fields, models


class JiraAccountAnalyticLine(models.Model):
_inherit = 'jira.account.analytic.line'

jira_servicedesk_issue_url = fields.Char(
string='Original JIRA issue Link',
compute='_compute_jira_servicedesk_issue_url',
)

@api.depends('jira_issue_key')
def _compute_jira_servicedesk_issue_url(self):
"""Compute the external URL to JIRA service desk."""
for record in self:
jira_project = fields.first(self.project_id.jira_bind_ids)
if jira_project and record.jira_issue_key:
record.jira_servicedesk_issue_url = jira_project.\
make_servicedesk_issue_url(
record.jira_issue_key
)


class AccountAnalyticLine(models.Model):
_inherit = 'account.analytic.line'

jira_servicedesk_issue_url = fields.Char(
string='Original JIRA service desk issue Link',
compute='_compute_jira_servicedesk_issue_url',
readonly=True,
)

@api.depends(
'jira_bind_ids.jira_servicedesk_issue_url',
)
def _compute_jira_servicedesk_issue_url(self):
"""Compute the service desk references to JIRA.
We assume that we have only one external record for a line
"""
for record in self:
if not record.jira_bind_ids:
continue
main_binding = record.jira_bind_ids[0]
record.jira_servicedesk_issue_url = main_binding.jira_servicedesk_issue_url
15 changes: 15 additions & 0 deletions connector_jira_servicedesk/models/project_project/common.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Copyright 2019 Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
import urllib.parse

from odoo import _, api, exceptions, fields, models

Expand All @@ -26,6 +27,11 @@ class JiraProjectBaseFields(models.AbstractModel):
class JiraProjectProject(models.Model):
_inherit = "jira.project.project"

servicedesk_customer_portal_number = fields.Integer(
string="Service desk customer portal ID",
help="This number is used to compute servicedesk URL on analytic lines",
)

@api.model
def _selection_project_type(self):
selection = super()._selection_project_type()
Expand Down Expand Up @@ -72,3 +78,12 @@ def _constrains_jira_uniq(self):
)
% (other.display_name)
)

@api.multi
def make_servicedesk_issue_url(self, jira_issue_id):
return urllib.parse.urljoin(
self.backend_id.uri,
"/service_desk/customer/portal/{}/{}".format(
self.servicedesk_customer_portal_number, jira_issue_id
),
)
12 changes: 12 additions & 0 deletions connector_jira_servicedesk/views/project_project_views.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@
options="{'no_create': True}"
/>
</field>
<field name="project_type" position="after">
<field
name="servicedesk_customer_portal_number"
attrs="{'invisible': [('project_type', '!=', 'service_desk')]}"
/>
</field>
</field>
</record>
<record id="view_jira_project_project_tree" model="ir.ui.view">
Expand All @@ -22,6 +28,12 @@
<field name="external_id" position="after">
<field name="organization_ids" />
</field>
<field name="project_type" position="after">
<field
name="servicedesk_customer_portal_number"
attrs="{'invisible': [('project_type', '!=', 'service_desk')]}"
/>
</field>
</field>
</record>
</odoo>

0 comments on commit bc4ff92

Please sign in to comment.