Merge branch 'develop' into fix_indentation

This commit is contained in:
sahil28297 2019-09-17 17:08:16 +05:30 committed by GitHub
commit c1930fa64d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 593 additions and 1607 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,6 @@
import frappe
import requests
from frappe import _
# api/method/erpnext.erpnext_integrations.exotel_integration.handle_incoming_call
# api/method/erpnext.erpnext_integrations.exotel_integration.handle_end_call
@ -7,19 +8,24 @@ import requests
@frappe.whitelist(allow_guest=True)
def handle_incoming_call(**kwargs):
exotel_settings = get_exotel_settings()
if not exotel_settings.enabled: return
try:
exotel_settings = get_exotel_settings()
if not exotel_settings.enabled: return
call_payload = kwargs
status = call_payload.get('Status')
if status == 'free':
return
call_payload = kwargs
status = call_payload.get('Status')
if status == 'free':
return
call_log = get_call_log(call_payload)
if not call_log:
create_call_log(call_payload)
else:
update_call_log(call_payload, call_log=call_log)
call_log = get_call_log(call_payload)
if not call_log:
create_call_log(call_payload)
else:
update_call_log(call_payload, call_log=call_log)
except Exception as e:
frappe.db.rollback()
frappe.log_error(title=_('Error in Exotel incoming call'))
frappe.db.commit()
@frappe.whitelist(allow_guest=True)
def handle_end_call(**kwargs):
@ -101,4 +107,4 @@ def get_exotel_endpoint(action):
api_token=settings.api_token,
sid=settings.account_sid,
action=action
)
)

View File

@ -635,3 +635,4 @@ erpnext.patches.v12_0.remove_bank_remittance_custom_fields
erpnext.patches.v12_0.generate_leave_ledger_entries
erpnext.patches.v12_0.move_credit_limit_to_customer_credit_limit
erpnext.patches.v12_0.add_variant_of_in_item_attribute_table
erpnext.patches.v12_0.create_default_energy_point_rules

View File

@ -0,0 +1,6 @@
import frappe
from erpnext.setup.install import create_default_energy_point_rules
def execute():
frappe.reload_doc('social', 'doctype', 'energy_point_rule')
create_default_energy_point_rules()

View File

@ -1,381 +1,391 @@
{
"allow_import": 1,
"autoname": "TASK-.YYYY.-.#####",
"creation": "2013-01-29 19:25:50",
"doctype": "DocType",
"document_type": "Setup",
"field_order": [
"subject",
"project",
"issue",
"type",
"is_group",
"column_break0",
"status",
"priority",
"task_weight",
"color",
"parent_task",
"sb_timeline",
"exp_start_date",
"expected_time",
"column_break_11",
"exp_end_date",
"progress",
"is_milestone",
"sb_details",
"description",
"sb_depends_on",
"depends_on",
"depends_on_tasks",
"sb_actual",
"act_start_date",
"actual_time",
"column_break_15",
"act_end_date",
"sb_costing",
"total_costing_amount",
"total_expense_claim",
"column_break_20",
"total_billing_amount",
"sb_more_info",
"review_date",
"closing_date",
"column_break_22",
"department",
"company",
"lft",
"rgt",
"old_parent"
],
"fields": [
{
"fieldname": "subject",
"fieldtype": "Data",
"in_global_search": 1,
"label": "Subject",
"reqd": 1,
"search_index": 1,
"in_standard_filter": 1
},
{
"bold": 1,
"fieldname": "project",
"fieldtype": "Link",
"in_global_search": 1,
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Project",
"oldfieldname": "project",
"oldfieldtype": "Link",
"options": "Project",
"remember_last_selected_value": 1,
"search_index": 1
},
{
"fieldname": "issue",
"fieldtype": "Link",
"label": "Issue",
"options": "Issue"
},
{
"fieldname": "type",
"fieldtype": "Link",
"label": "Type",
"options": "Task Type"
},
{
"bold": 1,
"default": "0",
"fieldname": "is_group",
"fieldtype": "Check",
"in_list_view": 1,
"label": "Is Group"
},
{
"fieldname": "column_break0",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"print_width": "50%",
"width": "50%"
},
{
"bold": 1,
"fieldname": "status",
"fieldtype": "Select",
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Status",
"no_copy": 1,
"oldfieldname": "status",
"oldfieldtype": "Select",
"options": "Open\nWorking\nPending Review\nOverdue\nCompleted\nCancelled"
},
{
"fieldname": "priority",
"fieldtype": "Select",
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Priority",
"oldfieldname": "priority",
"oldfieldtype": "Select",
"options": "Low\nMedium\nHigh\nUrgent",
"search_index": 1
},
{
"fieldname": "color",
"fieldtype": "Color",
"label": "Color"
},
{
"bold": 1,
"fieldname": "parent_task",
"fieldtype": "Link",
"ignore_user_permissions": 1,
"label": "Parent Task",
"options": "Task",
"search_index": 1
},
{
"collapsible": 1,
"collapsible_depends_on": "eval:doc.__islocal",
"fieldname": "sb_timeline",
"fieldtype": "Section Break",
"label": "Timeline"
},
{
"fieldname": "exp_start_date",
"fieldtype": "Date",
"label": "Expected Start Date",
"oldfieldname": "exp_start_date",
"oldfieldtype": "Date"
},
{
"default": "0",
"fieldname": "expected_time",
"fieldtype": "Float",
"label": "Expected Time (in hours)",
"oldfieldname": "exp_total_hrs",
"oldfieldtype": "Data"
},
{
"fetch_from": "type.weight",
"fieldname": "task_weight",
"fieldtype": "Float",
"label": "Weight"
},
{
"fieldname": "column_break_11",
"fieldtype": "Column Break"
},
{
"bold": 1,
"fieldname": "exp_end_date",
"fieldtype": "Date",
"label": "Expected End Date",
"oldfieldname": "exp_end_date",
"oldfieldtype": "Date",
"search_index": 1
},
{
"fieldname": "progress",
"fieldtype": "Percent",
"label": "% Progress"
},
{
"fieldname": "is_milestone",
"fieldtype": "Check",
"in_list_view": 1,
"label": "Is Milestone"
},
{
"fieldname": "sb_details",
"fieldtype": "Section Break",
"label": "Details",
"oldfieldtype": "Section Break"
},
{
"fieldname": "description",
"fieldtype": "Text Editor",
"in_preview": 1,
"label": "Task Description",
"oldfieldname": "description",
"oldfieldtype": "Text Editor",
"print_width": "300px",
"width": "300px"
},
{
"fieldname": "sb_depends_on",
"fieldtype": "Section Break",
"label": "Dependencies",
"oldfieldtype": "Section Break"
},
{
"fieldname": "depends_on",
"fieldtype": "Table",
"label": "Dependent Tasks",
"options": "Task Depends On"
},
{
"fieldname": "depends_on_tasks",
"fieldtype": "Code",
"hidden": 1,
"label": "Depends on Tasks",
"read_only": 1
},
{
"fieldname": "sb_actual",
"fieldtype": "Section Break",
"oldfieldtype": "Column Break",
"print_width": "50%",
"width": "50%"
},
{
"fieldname": "act_start_date",
"fieldtype": "Date",
"label": "Actual Start Date (via Time Sheet)",
"oldfieldname": "act_start_date",
"oldfieldtype": "Date",
"read_only": 1
},
{
"fieldname": "actual_time",
"fieldtype": "Float",
"label": "Actual Time (in hours)",
"read_only": 1
},
{
"fieldname": "column_break_15",
"fieldtype": "Column Break"
},
{
"fieldname": "act_end_date",
"fieldtype": "Date",
"label": "Actual End Date (via Time Sheet)",
"oldfieldname": "act_end_date",
"oldfieldtype": "Date",
"read_only": 1
},
{
"collapsible": 1,
"fieldname": "sb_costing",
"fieldtype": "Section Break",
"label": "Costing"
},
{
"fieldname": "total_costing_amount",
"fieldtype": "Currency",
"label": "Total Costing Amount (via Time Sheet)",
"oldfieldname": "actual_budget",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"read_only": 1
},
{
"fieldname": "total_expense_claim",
"fieldtype": "Currency",
"label": "Total Expense Claim (via Expense Claim)",
"options": "Company:company:default_currency",
"read_only": 1
},
{
"fieldname": "column_break_20",
"fieldtype": "Column Break"
},
{
"fieldname": "total_billing_amount",
"fieldtype": "Currency",
"label": "Total Billing Amount (via Time Sheet)",
"read_only": 1
},
{
"collapsible": 1,
"fieldname": "sb_more_info",
"fieldtype": "Section Break",
"label": "More Info"
},
{
"depends_on": "eval:doc.status == \"Closed\" || doc.status == \"Pending Review\"",
"fieldname": "review_date",
"fieldtype": "Date",
"label": "Review Date",
"oldfieldname": "review_date",
"oldfieldtype": "Date"
},
{
"depends_on": "eval:doc.status == \"Closed\"",
"fieldname": "closing_date",
"fieldtype": "Date",
"label": "Closing Date",
"oldfieldname": "closing_date",
"oldfieldtype": "Date"
},
{
"fieldname": "column_break_22",
"fieldtype": "Column Break"
},
{
"fieldname": "department",
"fieldtype": "Link",
"label": "Department",
"options": "Department"
},
{
"fieldname": "company",
"fieldtype": "Link",
"label": "Company",
"options": "Company",
"remember_last_selected_value": 1
},
{
"fieldname": "lft",
"fieldtype": "Int",
"hidden": 1,
"label": "lft",
"read_only": 1
},
{
"fieldname": "rgt",
"fieldtype": "Int",
"hidden": 1,
"label": "rgt",
"read_only": 1
},
{
"fieldname": "old_parent",
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 1,
"label": "Old Parent",
"read_only": 1
}
],
"icon": "fa fa-check",
"idx": 1,
"max_attachments": 5,
"modified": "2019-06-19 09:51:15.599416",
"modified_by": "Administrator",
"module": "Projects",
"name": "Task",
"owner": "Administrator",
"permissions": [
{
"create": 1,
"delete": 1,
"email": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Projects User",
"share": 1,
"write": 1
}
],
"search_fields": "subject",
"show_name_in_global_search": 1,
"show_preview_popup": 1,
"sort_order": "DESC",
"timeline_field": "project",
"title_field": "subject",
"track_seen": 1
}
"allow_import": 1,
"autoname": "TASK-.YYYY.-.#####",
"creation": "2013-01-29 19:25:50",
"doctype": "DocType",
"document_type": "Setup",
"engine": "InnoDB",
"field_order": [
"subject",
"project",
"issue",
"type",
"is_group",
"column_break0",
"status",
"priority",
"task_weight",
"completed_by",
"color",
"parent_task",
"sb_timeline",
"exp_start_date",
"expected_time",
"column_break_11",
"exp_end_date",
"progress",
"is_milestone",
"sb_details",
"description",
"sb_depends_on",
"depends_on",
"depends_on_tasks",
"sb_actual",
"act_start_date",
"actual_time",
"column_break_15",
"act_end_date",
"sb_costing",
"total_costing_amount",
"total_expense_claim",
"column_break_20",
"total_billing_amount",
"sb_more_info",
"review_date",
"closing_date",
"column_break_22",
"department",
"company",
"lft",
"rgt",
"old_parent"
],
"fields": [
{
"fieldname": "subject",
"fieldtype": "Data",
"in_global_search": 1,
"in_standard_filter": 1,
"label": "Subject",
"reqd": 1,
"search_index": 1
},
{
"bold": 1,
"fieldname": "project",
"fieldtype": "Link",
"in_global_search": 1,
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Project",
"oldfieldname": "project",
"oldfieldtype": "Link",
"options": "Project",
"remember_last_selected_value": 1,
"search_index": 1
},
{
"fieldname": "issue",
"fieldtype": "Link",
"label": "Issue",
"options": "Issue"
},
{
"fieldname": "type",
"fieldtype": "Link",
"label": "Type",
"options": "Task Type"
},
{
"bold": 1,
"default": "0",
"fieldname": "is_group",
"fieldtype": "Check",
"in_list_view": 1,
"label": "Is Group"
},
{
"fieldname": "column_break0",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"print_width": "50%",
"width": "50%"
},
{
"bold": 1,
"fieldname": "status",
"fieldtype": "Select",
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Status",
"no_copy": 1,
"oldfieldname": "status",
"oldfieldtype": "Select",
"options": "Open\nWorking\nPending Review\nOverdue\nCompleted\nCancelled"
},
{
"fieldname": "priority",
"fieldtype": "Select",
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Priority",
"oldfieldname": "priority",
"oldfieldtype": "Select",
"options": "Low\nMedium\nHigh\nUrgent",
"search_index": 1
},
{
"fieldname": "color",
"fieldtype": "Color",
"label": "Color"
},
{
"bold": 1,
"fieldname": "parent_task",
"fieldtype": "Link",
"ignore_user_permissions": 1,
"label": "Parent Task",
"options": "Task",
"search_index": 1
},
{
"collapsible": 1,
"collapsible_depends_on": "eval:doc.__islocal",
"fieldname": "sb_timeline",
"fieldtype": "Section Break",
"label": "Timeline"
},
{
"fieldname": "exp_start_date",
"fieldtype": "Date",
"label": "Expected Start Date",
"oldfieldname": "exp_start_date",
"oldfieldtype": "Date"
},
{
"default": "0",
"fieldname": "expected_time",
"fieldtype": "Float",
"label": "Expected Time (in hours)",
"oldfieldname": "exp_total_hrs",
"oldfieldtype": "Data"
},
{
"fetch_from": "type.weight",
"fieldname": "task_weight",
"fieldtype": "Float",
"label": "Weight"
},
{
"fieldname": "column_break_11",
"fieldtype": "Column Break"
},
{
"bold": 1,
"fieldname": "exp_end_date",
"fieldtype": "Date",
"label": "Expected End Date",
"oldfieldname": "exp_end_date",
"oldfieldtype": "Date",
"search_index": 1
},
{
"fieldname": "progress",
"fieldtype": "Percent",
"label": "% Progress"
},
{
"default": "0",
"fieldname": "is_milestone",
"fieldtype": "Check",
"in_list_view": 1,
"label": "Is Milestone"
},
{
"fieldname": "sb_details",
"fieldtype": "Section Break",
"label": "Details",
"oldfieldtype": "Section Break"
},
{
"fieldname": "description",
"fieldtype": "Text Editor",
"in_preview": 1,
"label": "Task Description",
"oldfieldname": "description",
"oldfieldtype": "Text Editor",
"print_width": "300px",
"width": "300px"
},
{
"fieldname": "sb_depends_on",
"fieldtype": "Section Break",
"label": "Dependencies",
"oldfieldtype": "Section Break"
},
{
"fieldname": "depends_on",
"fieldtype": "Table",
"label": "Dependent Tasks",
"options": "Task Depends On"
},
{
"fieldname": "depends_on_tasks",
"fieldtype": "Code",
"hidden": 1,
"label": "Depends on Tasks",
"read_only": 1
},
{
"fieldname": "sb_actual",
"fieldtype": "Section Break",
"oldfieldtype": "Column Break",
"print_width": "50%",
"width": "50%"
},
{
"fieldname": "act_start_date",
"fieldtype": "Date",
"label": "Actual Start Date (via Time Sheet)",
"oldfieldname": "act_start_date",
"oldfieldtype": "Date",
"read_only": 1
},
{
"fieldname": "actual_time",
"fieldtype": "Float",
"label": "Actual Time (in hours)",
"read_only": 1
},
{
"fieldname": "column_break_15",
"fieldtype": "Column Break"
},
{
"fieldname": "act_end_date",
"fieldtype": "Date",
"label": "Actual End Date (via Time Sheet)",
"oldfieldname": "act_end_date",
"oldfieldtype": "Date",
"read_only": 1
},
{
"collapsible": 1,
"fieldname": "sb_costing",
"fieldtype": "Section Break",
"label": "Costing"
},
{
"fieldname": "total_costing_amount",
"fieldtype": "Currency",
"label": "Total Costing Amount (via Time Sheet)",
"oldfieldname": "actual_budget",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"read_only": 1
},
{
"fieldname": "total_expense_claim",
"fieldtype": "Currency",
"label": "Total Expense Claim (via Expense Claim)",
"options": "Company:company:default_currency",
"read_only": 1
},
{
"fieldname": "column_break_20",
"fieldtype": "Column Break"
},
{
"fieldname": "total_billing_amount",
"fieldtype": "Currency",
"label": "Total Billing Amount (via Time Sheet)",
"read_only": 1
},
{
"collapsible": 1,
"fieldname": "sb_more_info",
"fieldtype": "Section Break",
"label": "More Info"
},
{
"depends_on": "eval:doc.status == \"Closed\" || doc.status == \"Pending Review\"",
"fieldname": "review_date",
"fieldtype": "Date",
"label": "Review Date",
"oldfieldname": "review_date",
"oldfieldtype": "Date"
},
{
"depends_on": "eval:doc.status == \"Closed\"",
"fieldname": "closing_date",
"fieldtype": "Date",
"label": "Closing Date",
"oldfieldname": "closing_date",
"oldfieldtype": "Date"
},
{
"fieldname": "column_break_22",
"fieldtype": "Column Break"
},
{
"fieldname": "department",
"fieldtype": "Link",
"label": "Department",
"options": "Department"
},
{
"fieldname": "company",
"fieldtype": "Link",
"label": "Company",
"options": "Company",
"remember_last_selected_value": 1
},
{
"fieldname": "lft",
"fieldtype": "Int",
"hidden": 1,
"label": "lft",
"read_only": 1
},
{
"fieldname": "rgt",
"fieldtype": "Int",
"hidden": 1,
"label": "rgt",
"read_only": 1
},
{
"fieldname": "old_parent",
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 1,
"label": "Old Parent",
"read_only": 1
},
{
"fieldname": "completed_by",
"fieldtype": "Link",
"label": "Completed By",
"options": "User"
}
],
"icon": "fa fa-check",
"idx": 1,
"max_attachments": 5,
"modified": "2019-09-10 13:46:24.631754",
"modified_by": "Administrator",
"module": "Projects",
"name": "Task",
"owner": "Administrator",
"permissions": [
{
"create": 1,
"delete": 1,
"email": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Projects User",
"share": 1,
"write": 1
}
],
"search_fields": "subject",
"show_name_in_global_search": 1,
"show_preview_popup": 1,
"sort_field": "modified",
"sort_order": "DESC",
"timeline_field": "project",
"title_field": "subject",
"track_seen": 1
}

View File

@ -0,0 +1,58 @@
from __future__ import unicode_literals
from frappe import _
doctype_rule_map = {
'Item': {
'points': 5,
'for_doc_event': 'New'
},
'Customer': {
'points': 5,
'for_doc_event': 'New'
},
'Supplier': {
'points': 5,
'for_doc_event': 'New'
},
'Lead': {
'points': 2,
'for_doc_event': 'New'
},
'Opportunity': {
'points': 10,
'for_doc_event': 'Custom',
'condition': 'doc.status=="Converted"',
'rule_name': _('On Converting Opportunity'),
'user_field': 'converted_by'
},
'Sales Order': {
'points': 10,
'for_doc_event': 'Submit',
'rule_name': _('On Sales Order Submission'),
'user_field': 'modified_by'
},
'Purchase Order': {
'points': 10,
'for_doc_event': 'Submit',
'rule_name': _('On Purchase Order Submission'),
'user_field': 'modified_by'
},
'Task': {
'points': 5,
'condition': 'doc.status == "Completed"',
'rule_name': _('On Task Completion'),
'user_field': 'completed_by'
}
}
def get_default_energy_point_rules():
return [{
'doctype': 'Energy Point Rule',
'reference_doctype': doctype,
'for_doc_event': rule.get('for_doc_event') or 'Custom',
'condition': rule.get('condition'),
'rule_name': rule.get('rule_name') or _('On {0} Creation').format(doctype),
'points': rule.get('points'),
'user_field': rule.get('user_field') or 'owner'
} for doctype, rule in doctype_rule_map.items()]

View File

@ -2,26 +2,26 @@ from __future__ import unicode_literals
from frappe import _
doctype_list = [
'Purchase Receipt',
'Purchase Invoice',
'Quotation',
'Sales Order',
'Delivery Note',
'Sales Invoice'
'Purchase Receipt',
'Purchase Invoice',
'Quotation',
'Sales Order',
'Delivery Note',
'Sales Invoice'
]
def get_message(doctype):
return _("{0} has been submitted successfully".format(_(doctype)))
return _("{0} has been submitted successfully").format(_(doctype))
def get_first_success_message(doctype):
return _("{0} has been submitted successfully".format(_(doctype)))
return get_message(doctype)
def get_default_success_action():
return [{
'doctype': 'Success Action',
'ref_doctype': doctype,
'message': get_message(doctype),
'first_success_message': get_first_success_message(doctype),
'next_actions': 'new\nprint\nemail'
} for doctype in doctype_list]
return [{
'doctype': 'Success Action',
'ref_doctype': doctype,
'message': get_message(doctype),
'first_success_message': get_first_success_message(doctype),
'next_actions': 'new\nprint\nemail'
} for doctype in doctype_list]

View File

@ -9,6 +9,7 @@ from .default_success_action import get_default_success_action
from frappe import _
from frappe.desk.page.setup_wizard.setup_wizard import add_all_roles_to
from frappe.custom.doctype.custom_field.custom_field import create_custom_field
from erpnext.setup.default_energy_point_rules import get_default_energy_point_rules
default_mail_footer = """<div style="padding: 7px; text-align: right; color: #888"><small>Sent via
<a style="color: #888" href="http://erpnext.org">ERPNext</a></div>"""
@ -22,6 +23,7 @@ def after_install():
add_all_roles_to("Administrator")
create_default_cash_flow_mapper_templates()
create_default_success_action()
create_default_energy_point_rules()
add_company_to_session_defaults()
frappe.db.commit()
@ -86,6 +88,17 @@ def create_default_success_action():
doc = frappe.get_doc(success_action)
doc.insert(ignore_permissions=True)
def create_default_energy_point_rules():
for rule in get_default_energy_point_rules():
# check if any rule for ref. doctype exists
rule_exists = frappe.db.exists('Energy Point Rule', {
'reference_doctype': rule.get('reference_doctype')
})
if rule_exists: continue
doc = frappe.get_doc(rule)
doc.insert(ignore_permissions=True)
def add_company_to_session_defaults():
settings = frappe.get_single("Session Default Settings")
settings.append("session_defaults", {