refactor: SLA form fields

This commit is contained in:
Saqib Ansari 2021-11-26 15:49:17 +05:30
parent c46c8dd6c5
commit 210f593a49
2 changed files with 56 additions and 36 deletions

View File

@ -22,10 +22,41 @@ frappe.ui.form.on('Service Level Agreement', {
refresh: function(frm) {
frm.trigger('fetch_status_fields');
frm.trigger('toggle_resolution_fields');
frm.trigger('default_service_level_agreement');
frm.trigger('entity');
},
default_service_level_agreement: function(frm) {
const field = frm.get_field('default_service_level_agreement');
if (frm.doc.default_service_level_agreement) {
field.set_description(__('SLA will be applied on every {0}', [frm.doc.document_type]));
} else {
field.set_description(__('Enable to apply SLA on every {0}', [frm.doc.document_type]));
}
},
document_type: function(frm) {
frm.trigger('fetch_status_fields');
frm.trigger('default_service_level_agreement');
},
entity_type: function(frm) {
frm.set_value('entity', undefined);
},
entity: function(frm) {
const field = frm.get_field('entity');
if (frm.doc.entity) {
const and_descendants = frm.doc.entity_type != 'Customer' ? __(' or its descendants') : '';
field.set_description(
__('SLA will be applied if {1} is set as {2}{3}', [
frm.doc.document_type, frm.doc.entity_type,
frm.doc.entity, and_descendants
])
);
} else {
field.set_description('');
}
},
fetch_status_fields: function(frm) {

View File

@ -6,22 +6,17 @@
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"enabled",
"section_break_2",
"document_type",
"default_service_level_agreement",
"default_priority",
"column_break_2",
"service_level",
"holiday_list",
"entity_section",
"entity_type",
"column_break_10",
"entity",
"enabled",
"filters_section",
"condition",
"default_service_level_agreement",
"entity_type",
"entity",
"column_break_15",
"condition_description",
"condition",
"agreement_details_section",
"start_date",
"column_break_7",
@ -31,8 +26,10 @@
"priorities",
"status_details",
"sla_fulfilled_on",
"column_break_22",
"pause_sla_on",
"support_and_resolution_section_break",
"holiday_list",
"support_and_resolution"
],
"fields": [
@ -42,7 +39,8 @@
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Service Level Name",
"reqd": 1
"reqd": 1,
"set_only_once": 1
},
{
"fieldname": "holiday_list",
@ -56,10 +54,10 @@
"fieldtype": "Column Break"
},
{
"depends_on": "eval: !doc.default_service_level_agreement",
"depends_on": "eval: doc.document_type",
"fieldname": "agreement_details_section",
"fieldtype": "Section Break",
"label": "Agreement Details"
"label": "Valid From"
},
{
"fieldname": "start_date",
@ -72,7 +70,6 @@
"fieldtype": "Column Break"
},
{
"depends_on": "eval: !doc.default_service_level_agreement",
"fieldname": "end_date",
"fieldtype": "Date",
"label": "End Date"
@ -80,7 +77,7 @@
{
"fieldname": "response_and_resolution_time_section",
"fieldtype": "Section Break",
"label": "Response and Resolution Time"
"label": "Response and Resolution"
},
{
"fieldname": "support_and_resolution_section_break",
@ -90,6 +87,7 @@
{
"fieldname": "support_and_resolution",
"fieldtype": "Table",
"label": "Working Hours",
"options": "Service Day",
"reqd": 1
},
@ -101,10 +99,7 @@
"reqd": 1
},
{
"fieldname": "column_break_10",
"fieldtype": "Column Break"
},
{
"depends_on": "eval: !doc.default_service_level_agreement",
"fieldname": "entity",
"fieldtype": "Dynamic Link",
"in_list_view": 1,
@ -114,22 +109,12 @@
},
{
"depends_on": "eval: !doc.default_service_level_agreement",
"fieldname": "entity_section",
"fieldtype": "Section Break",
"label": "Entity"
},
{
"fieldname": "entity_type",
"fieldtype": "Select",
"in_standard_filter": 1,
"label": "Entity Type",
"options": "\nCustomer\nCustomer Group\nTerritory"
},
{
"fieldname": "section_break_2",
"fieldtype": "Section Break",
"hide_border": 1
},
{
"default": "0",
"fieldname": "default_service_level_agreement",
@ -152,7 +137,7 @@
{
"fieldname": "document_type",
"fieldtype": "Link",
"label": "Document Type",
"label": "Apply On",
"options": "DocType",
"reqd": 1,
"set_only_once": 1
@ -164,6 +149,7 @@
"label": "Enabled"
},
{
"depends_on": "document_type",
"fieldname": "status_details",
"fieldtype": "Section Break",
"label": "Status Details"
@ -182,28 +168,31 @@
"label": "Apply SLA for Resolution Time"
},
{
"depends_on": "document_type",
"fieldname": "filters_section",
"fieldtype": "Section Break",
"label": "Assignment Condition"
"label": "Assignment Conditions"
},
{
"fieldname": "column_break_15",
"fieldtype": "Column Break"
},
{
"depends_on": "eval: !doc.default_service_level_agreement",
"description": "Simple Python Expression, Example: doc.status == 'Open' and doc.issue_type == 'Bug'",
"fieldname": "condition",
"fieldtype": "Code",
"label": "Condition",
"options": "Python"
"max_height": "7rem",
"options": "PythonExpression"
},
{
"fieldname": "condition_description",
"fieldtype": "HTML",
"options": "<p><strong>Condition Examples:</strong></p>\n<pre>doc.status==\"Open\"<br>doc.due_date==nowdate()<br>doc.total &gt; 40000\n</pre>"
"fieldname": "column_break_22",
"fieldtype": "Column Break"
}
],
"links": [],
"modified": "2021-10-02 11:32:55.556024",
"modified": "2021-11-26 15:45:33.289911",
"modified_by": "Administrator",
"module": "Support",
"name": "Service Level Agreement",