diff --git a/crm/fcrm/doctype/fcrm_settings/fcrm_settings.json b/crm/fcrm/doctype/fcrm_settings/fcrm_settings.json index 0a902c99..f445541d 100644 --- a/crm/fcrm/doctype/fcrm_settings/fcrm_settings.json +++ b/crm/fcrm/doctype/fcrm_settings/fcrm_settings.json @@ -12,9 +12,7 @@ "brand_logo", "favicon", "dropdown_items_tab", - "dropdown_items", - "calling_tab", - "default_calling_medium" + "dropdown_items" ], "fields": [ { @@ -58,23 +56,12 @@ "fieldname": "favicon", "fieldtype": "Attach", "label": "Favicon" - }, - { - "fieldname": "calling_tab", - "fieldtype": "Tab Break", - "label": "Calling" - }, - { - "fieldname": "default_calling_medium", - "fieldtype": "Select", - "label": "Default calling medium", - "options": "\nTwilio\nExotel" } ], "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2025-01-15 17:40:32.784762", + "modified": "2025-01-19 14:23:05.981355", "modified_by": "Administrator", "module": "FCRM", "name": "FCRM Settings", diff --git a/crm/integrations/api.py b/crm/integrations/api.py index 145bf03a..f2f55443 100644 --- a/crm/integrations/api.py +++ b/crm/integrations/api.py @@ -9,18 +9,40 @@ from crm.utils import are_same_phone_number, parse_phone_number def is_call_integration_enabled(): twilio_enabled = frappe.db.get_single_value("Twilio Settings", "enabled") exotel_enabled = frappe.db.get_single_value("CRM Exotel Settings", "enabled") - default_calling_medium = frappe.db.get_single_value("FCRM Settings", "default_calling_medium") return { "twilio_enabled": twilio_enabled, "exotel_enabled": exotel_enabled, - "default_calling_medium": default_calling_medium, + "default_calling_medium": get_user_default_calling_medium(), } +def get_user_default_calling_medium(): + if not frappe.db.exists("CRM Telephony Agent", frappe.session.user): + return None + + default_medium = frappe.db.get_value("CRM Telephony Agent", frappe.session.user, "default_medium") + + if not default_medium: + return None + + return default_medium + + @frappe.whitelist() def set_default_calling_medium(medium): - return frappe.db.set_value("FCRM Settings", "FCRM Settings", "default_calling_medium", medium) + if not frappe.db.exists("CRM Telephony Agent", frappe.session.user): + frappe.get_doc( + { + "doctype": "CRM Telephony Agent", + "agent": frappe.session.user, + "default_medium": medium, + } + ).insert(ignore_permissions=True) + else: + frappe.db.set_value("CRM Telephony Agent", frappe.session.user, "default_medium", medium) + + return get_user_default_calling_medium() @frappe.whitelist()