refactor: move pause SLA configuration to SLA DocType
diff --git a/erpnext/patches/v13_0/update_sla_enhancements.py b/erpnext/patches/v13_0/update_sla_enhancements.py
index 884d01b..2356fb2 100644
--- a/erpnext/patches/v13_0/update_sla_enhancements.py
+++ b/erpnext/patches/v13_0/update_sla_enhancements.py
@@ -4,7 +4,6 @@
from __future__ import unicode_literals
import frappe
-from erpnext.setup.install import add_sla_hold_statuses_to_support_settings
def execute():
# add holiday list and employee group fields in SLA
@@ -79,9 +78,6 @@
frappe.delete_doc('DocType', 'Service Level')
- # add SLA hold statuses to Support Settings
- add_sla_hold_statuses_to_support_settings()
-
def convert_to_seconds(value, unit):
seconds = 0
diff --git a/erpnext/setup/install.py b/erpnext/setup/install.py
index 90e5f5a..74ff0ec 100644
--- a/erpnext/setup/install.py
+++ b/erpnext/setup/install.py
@@ -25,7 +25,6 @@
create_default_success_action()
create_default_energy_point_rules()
add_company_to_session_defaults()
- add_sla_hold_statuses_to_support_settings()
frappe.db.commit()
@@ -107,12 +106,3 @@
})
settings.save()
-def add_sla_hold_statuses_to_support_settings():
- settings = frappe.get_single("Support Settings")
- settings.append("pause_sla_on_status", {
- "status": "Replied"
- })
- settings.append("pause_sla_on_status", {
- "status": "Hold"
- })
- settings.save()
diff --git a/erpnext/support/doctype/issue/issue.js b/erpnext/support/doctype/issue/issue.js
index 32a7773..e7e5bd3 100644
--- a/erpnext/support/doctype/issue/issue.js
+++ b/erpnext/support/doctype/issue/issue.js
@@ -43,11 +43,11 @@
frappe.call({
'method': 'frappe.client.get',
args: {
- doctype: 'Support Settings',
- name: 'Support Settings'
+ doctype: 'Service Level Agreement',
+ name: frm.doc.service_level_agreement
},
callback: function(data) {
- let statuses = data.message.pause_sla_on_status;
+ let statuses = data.message.pause_sla_on;
const hold_statuses = [];
$.each(statuses, (_i, entry) => {
hold_statuses.push(entry.status);
diff --git a/erpnext/support/doctype/issue/issue.py b/erpnext/support/doctype/issue/issue.py
index 146eb5a..4003047 100644
--- a/erpnext/support/doctype/issue/issue.py
+++ b/erpnext/support/doctype/issue/issue.py
@@ -78,9 +78,10 @@
self.handle_hold_time(status)
def handle_hold_time(self, status):
- if frappe.db.get_single_value("Support Settings", "track_service_level_agreement"):
+ if self.service_level_agreement:
# set response and resolution variance as None as the issue is on Hold for status as Replied
- pause_sla_on = frappe.db.get_all("Pause SLA On Status", fields=["status"])
+ pause_sla_on = frappe.db.get_all("Pause SLA On Status", fields=["status"],
+ filters={"parent": self.service_level_agreement})
hold_statuses = [entry.status for entry in pause_sla_on]
if self.status in hold_statuses and status not in hold_statuses:
diff --git a/erpnext/support/doctype/issue/test_issue.py b/erpnext/support/doctype/issue/test_issue.py
index 93a6005..a004843 100644
--- a/erpnext/support/doctype/issue/test_issue.py
+++ b/erpnext/support/doctype/issue/test_issue.py
@@ -5,7 +5,6 @@
import frappe
import unittest
from erpnext.support.doctype.service_level_agreement.test_service_level_agreement import create_service_level_agreements_for_issues
-from erpnext.setup.install import add_sla_hold_statuses_to_support_settings
from frappe.utils import now_datetime, get_datetime
import datetime
from datetime import timedelta
@@ -101,7 +100,6 @@
self.assertEqual(issue.user_resolution_time, 1200)
def test_hold_time_on_replied(self):
- add_sla_hold_statuses_to_support_settings()
creation = datetime.datetime(2020, 3, 4, 4, 0)
issue = make_issue(creation, index=1)
diff --git a/erpnext/support/doctype/service_level_agreement/service_level_agreement.js b/erpnext/support/doctype/service_level_agreement/service_level_agreement.js
index 7aeaae4..5346195 100644
--- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.js
+++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.js
@@ -2,5 +2,15 @@
// For license information, please see license.txt
frappe.ui.form.on('Service Level Agreement', {
+ setup: function(frm) {
+ let allow_statuses = [];
+ const exclude_statuses = ['Open', 'Closed', 'Resolved'];
-});
+ frappe.model.with_doctype('Issue', () => {
+ let statuses = frappe.meta.get_docfield('Issue', 'status', frm.doc.name).options;
+ statuses = statuses.split('\n');
+ allow_statuses = statuses.filter((status) => !exclude_statuses.includes(status));
+ frappe.meta.get_docfield('Pause SLA On Status', 'status', frm.doc.name).options = [''].concat(allow_statuses);
+ });
+ }
+});
\ No newline at end of file
diff --git a/erpnext/support/doctype/service_level_agreement/service_level_agreement.json b/erpnext/support/doctype/service_level_agreement/service_level_agreement.json
index ede5f98..e65169c 100644
--- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.json
+++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.json
@@ -23,6 +23,8 @@
"active",
"column_break_7",
"end_date",
+ "section_break_18",
+ "pause_sla_on",
"response_and_resolution_time_section",
"priorities",
"support_and_resolution_section_break",
@@ -160,10 +162,25 @@
"read_only": 1,
"show_days": 1,
"show_seconds": 1
+ },
+ {
+ "fieldname": "section_break_18",
+ "fieldtype": "Section Break",
+ "hide_border": 1,
+ "show_days": 1,
+ "show_seconds": 1
+ },
+ {
+ "fieldname": "pause_sla_on",
+ "fieldtype": "Table",
+ "label": "Pause SLA On",
+ "options": "Pause SLA On Status",
+ "show_days": 1,
+ "show_seconds": 1
}
],
"links": [],
- "modified": "2020-05-26 16:02:59.859980",
+ "modified": "2020-06-05 17:51:15.050785",
"modified_by": "Administrator",
"module": "Support",
"name": "Service Level Agreement",
diff --git a/erpnext/support/doctype/service_level_agreement/test_service_level_agreement.py b/erpnext/support/doctype/service_level_agreement/test_service_level_agreement.py
index 26740ed..0746a9c 100644
--- a/erpnext/support/doctype/service_level_agreement/test_service_level_agreement.py
+++ b/erpnext/support/doctype/service_level_agreement/test_service_level_agreement.py
@@ -115,6 +115,11 @@
"resolution_time_period": "Hour",
}
],
+ "pause_sla_on": [
+ {
+ "status": "Replied"
+ }
+ ],
"support_and_resolution": [
{
"workday": "Monday",
diff --git a/erpnext/support/doctype/support_settings/support_settings.js b/erpnext/support/doctype/support_settings/support_settings.js
index 33ddf0b..78adca8 100644
--- a/erpnext/support/doctype/support_settings/support_settings.js
+++ b/erpnext/support/doctype/support_settings/support_settings.js
@@ -2,15 +2,7 @@
// For license information, please see license.txt
frappe.ui.form.on('Support Settings', {
- setup: function(frm) {
- let allow_statuses = [];
- const exclude_statuses = ['Open', 'Closed', 'Resolved'];
-
- frappe.model.with_doctype('Issue', () => {
- let statuses = frappe.meta.get_docfield('Issue', 'status', frm.doc.name).options;
- statuses = statuses.split('\n');
- allow_statuses = statuses.filter((status) => !exclude_statuses.includes(status));
- frappe.meta.get_docfield('Pause SLA On Status', 'status', frm.doc.name).options = [''].concat(allow_statuses);
- });
+ refresh: function(frm) {
+ //
}
});
diff --git a/erpnext/support/doctype/support_settings/support_settings.json b/erpnext/support/doctype/support_settings/support_settings.json
index da4b607..1c1b0c3 100644
--- a/erpnext/support/doctype/support_settings/support_settings.json
+++ b/erpnext/support/doctype/support_settings/support_settings.json
@@ -10,7 +10,6 @@
"allow_resetting_service_level_agreement",
"issues_sb",
"close_issue_after_days",
- "pause_sla_on_status",
"portal_sb",
"get_started_sections",
"show_latest_forum_posts",
@@ -128,20 +127,11 @@
"fieldname": "allow_resetting_service_level_agreement",
"fieldtype": "Check",
"label": "Allow Resetting Service Level Agreement"
- },
- {
- "depends_on": "eval:doc.track_service_level_agreement;",
- "fieldname": "pause_sla_on_status",
- "fieldtype": "Table",
- "label": "Pause SLA On",
- "options": "Pause SLA On Status",
- "show_days": 1,
- "show_seconds": 1
}
],
"issingle": 1,
"links": [],
- "modified": "2020-06-05 16:35:13.905096",
+ "modified": "2020-06-05 17:56:17.491684",
"modified_by": "Administrator",
"module": "Support",
"name": "Support Settings",