mirror of
https://github.com/frappe/erpnext.git
synced 2026-09-20 03:47:11 +00:00
Merge branch 'develop' of https://github.com/frappe/erpnext into custom_append_to
This commit is contained in:
66
erpnext/support/desk_page/support/support.json
Normal file
66
erpnext/support/desk_page/support/support.json
Normal file
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"cards": [
|
||||
{
|
||||
"links": "[\n {\n \"description\": \"Service Level.\",\n \"label\": \"Service Level\",\n \"name\": \"Service Level\",\n \"type\": \"doctype\"\n },\n {\n \"description\": \"Service Level Agreement.\",\n \"label\": \"Service Level Agreement\",\n \"name\": \"Service Level Agreement\",\n \"type\": \"doctype\"\n }\n]",
|
||||
"title": "Service Level Agreement"
|
||||
},
|
||||
{
|
||||
"links": "[\n {\n \"label\": \"Maintenance Schedule\",\n \"name\": \"Maintenance Schedule\",\n \"type\": \"doctype\"\n },\n {\n \"label\": \"Maintenance Visit\",\n \"name\": \"Maintenance Visit\",\n \"type\": \"doctype\"\n }\n]",
|
||||
"title": "Maintenance"
|
||||
},
|
||||
{
|
||||
"links": "[\n {\n \"description\": \"Support queries from customers.\",\n \"label\": \"Issue\",\n \"name\": \"Issue\",\n \"onboard\": 1,\n \"type\": \"doctype\"\n },\n {\n \"description\": \"Issue Type.\",\n \"label\": \"Issue Type\",\n \"name\": \"Issue Type\",\n \"type\": \"doctype\"\n },\n {\n \"description\": \"Issue Priority.\",\n \"label\": \"Issue Priority\",\n \"name\": \"Issue Priority\",\n \"type\": \"doctype\"\n }\n]",
|
||||
"title": "Issues"
|
||||
},
|
||||
{
|
||||
"links": "[\n {\n \"description\": \"Warranty Claim against Serial No.\",\n \"label\": \"Warranty Claim\",\n \"name\": \"Warranty Claim\",\n \"type\": \"doctype\"\n },\n {\n \"description\": \"Single unit of an Item.\",\n \"label\": \"Serial No\",\n \"name\": \"Serial No\",\n \"type\": \"doctype\"\n }\n]",
|
||||
"title": "Warranty"
|
||||
},
|
||||
{
|
||||
"icon": "fa fa-list",
|
||||
"links": "[\n {\n \"label\": \"Support Settings\",\n \"name\": \"Support Settings\",\n \"type\": \"doctype\"\n }\n]",
|
||||
"title": "Settings"
|
||||
},
|
||||
{
|
||||
"icon": "fa fa-list",
|
||||
"links": "[\n {\n \"dependencies\": [\n \"Issue\"\n ],\n \"doctype\": \"Issue\",\n \"is_query_report\": true,\n \"label\": \"Minutes to First Response for Issues\",\n \"name\": \"Minutes to First Response for Issues\",\n \"type\": \"report\"\n }\n]",
|
||||
"title": "Reports"
|
||||
}
|
||||
],
|
||||
"category": "Modules",
|
||||
"charts": [],
|
||||
"creation": "2020-03-02 15:48:23.224699",
|
||||
"developer_mode_only": 0,
|
||||
"disable_user_customization": 0,
|
||||
"docstatus": 0,
|
||||
"doctype": "Desk Page",
|
||||
"extends_another_page": 0,
|
||||
"icon": "",
|
||||
"idx": 0,
|
||||
"is_standard": 1,
|
||||
"label": "Support",
|
||||
"modified": "2020-03-12 16:30:39.482621",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Support",
|
||||
"name": "Support",
|
||||
"owner": "Administrator",
|
||||
"pin_to_bottom": 0,
|
||||
"pin_to_top": 0,
|
||||
"shortcuts": [
|
||||
{
|
||||
"is_query_report": 0,
|
||||
"link_to": "Issue",
|
||||
"type": "DocType"
|
||||
},
|
||||
{
|
||||
"is_query_report": 0,
|
||||
"link_to": "Service Level",
|
||||
"type": "DocType"
|
||||
},
|
||||
{
|
||||
"is_query_report": 0,
|
||||
"link_to": "Maintenance Visit",
|
||||
"type": "DocType"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -121,6 +121,7 @@
|
||||
"default": "Medium",
|
||||
"fieldname": "priority",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Priority",
|
||||
"options": "Issue Priority"
|
||||
@@ -366,7 +367,7 @@
|
||||
"icon": "fa fa-ticket",
|
||||
"idx": 7,
|
||||
"links": [],
|
||||
"modified": "2020-01-13 16:20:30.392712",
|
||||
"modified": "2020-03-13 02:19:49.477928",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Support",
|
||||
"name": "Issue",
|
||||
@@ -388,10 +389,10 @@
|
||||
"search_fields": "status,customer,subject,raised_by",
|
||||
"sender_field": "raised_by",
|
||||
"sort_field": "modified",
|
||||
"sort_order": "ASC",
|
||||
"sort_order": "DESC",
|
||||
"subject_field": "subject",
|
||||
"timeline_field": "customer",
|
||||
"title_field": "subject",
|
||||
"track_changes": 1,
|
||||
"track_seen": 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,11 +164,11 @@ class Issue(Document):
|
||||
|
||||
if not service_level_agreement:
|
||||
if frappe.db.get_value("Issue", self.name, "service_level_agreement"):
|
||||
frappe.throw(_("Couldn't Set Service Level Agreement {0}.".format(self.service_level_agreement)))
|
||||
frappe.throw(_("Couldn't Set Service Level Agreement {0}.").format(self.service_level_agreement))
|
||||
return
|
||||
|
||||
if (service_level_agreement.customer and self.customer) and not (service_level_agreement.customer == self.customer):
|
||||
frappe.throw(_("This Service Level Agreement is specific to Customer {0}".format(service_level_agreement.customer)))
|
||||
frappe.throw(_("This Service Level Agreement is specific to Customer {0}").format(service_level_agreement.customer))
|
||||
|
||||
self.service_level_agreement = service_level_agreement.name
|
||||
self.priority = service_level_agreement.default_priority if not priority else priority
|
||||
@@ -235,7 +235,7 @@ def get_expected_time_for(parameter, service_level, start_date_time):
|
||||
allotted_days = service_level.get("resolution_time")
|
||||
time_period = service_level.get("resolution_time_period")
|
||||
else:
|
||||
frappe.throw(_("{0} parameter is invalid".format(parameter)))
|
||||
frappe.throw(_("{0} parameter is invalid").format(parameter))
|
||||
|
||||
allotted_hours = 0
|
||||
if time_period == 'Hour':
|
||||
|
||||
@@ -22,7 +22,7 @@ class ServiceLevel(Document):
|
||||
for priority in self.priorities:
|
||||
# Check if response and resolution time is set for every priority
|
||||
if not (priority.response_time or priority.resolution_time):
|
||||
frappe.throw(_("Set Response Time and Resolution for Priority {0} at index {1}.".format(priority.priority, priority.idx)))
|
||||
frappe.throw(_("Set Response Time and Resolution for Priority {0} at index {1}.").format(priority.priority, priority.idx))
|
||||
|
||||
priorities.append(priority.priority)
|
||||
|
||||
@@ -44,12 +44,12 @@ class ServiceLevel(Document):
|
||||
resolution = priority.resolution_time * 7
|
||||
|
||||
if response > resolution:
|
||||
frappe.throw(_("Response Time for {0} at index {1} can't be greater than Resolution Time.".format(priority.priority, priority.idx)))
|
||||
frappe.throw(_("Response Time for {0} at index {1} can't be greater than Resolution Time.").format(priority.priority, priority.idx))
|
||||
|
||||
# Check if repeated priority
|
||||
if not len(set(priorities)) == len(priorities):
|
||||
repeated_priority = get_repeated(priorities)
|
||||
frappe.throw(_("Priority {0} has been repeated.".format(repeated_priority)))
|
||||
frappe.throw(_("Priority {0} has been repeated.").format(repeated_priority))
|
||||
|
||||
# Check if repeated default priority
|
||||
if not len(set(default_priority)) == len(default_priority):
|
||||
@@ -81,7 +81,7 @@ class ServiceLevel(Document):
|
||||
# Check for repeated workday
|
||||
if not len(set(support_days)) == len(support_days):
|
||||
repeated_days = get_repeated(support_days)
|
||||
frappe.throw(_("Workday {0} has been repeated.".format(repeated_days)))
|
||||
frappe.throw(_("Workday {0} has been repeated.").format(repeated_days))
|
||||
|
||||
def get_repeated(values):
|
||||
unique_list = []
|
||||
|
||||
Reference in New Issue
Block a user