diff --git a/crm/api/doc.py b/crm/api/doc.py index f8e20b85..0c535e99 100644 --- a/crm/api/doc.py +++ b/crm/api/doc.py @@ -534,8 +534,10 @@ def get_assigned_users(doctype, name, default_assigned_to=None): @frappe.whitelist() -def get_fields(doctype: str): +def get_fields(doctype: str, allow_all_fieldtypes: bool = False): not_allowed_fieldtypes = list(frappe.model.no_value_fields) + ["Read Only"] + if allow_all_fieldtypes: + not_allowed_fieldtypes = [] fields = frappe.get_meta(doctype).fields _fields = [] @@ -553,6 +555,7 @@ def get_fields(doctype: str): "type": field.fieldtype, "value": field.fieldname, "options": field.options, + "mandatory": field.reqd, }) return _fields \ No newline at end of file diff --git a/crm/api/session.py b/crm/api/session.py index 3902ff7f..2e2b9375 100644 --- a/crm/api/session.py +++ b/crm/api/session.py @@ -5,7 +5,7 @@ import frappe def get_users(): users = frappe.qb.get_query( "User", - fields=["name", "email", "enabled", "user_image", "full_name", "user_type"], + fields=["name", "email", "enabled", "user_image", "first_name", "last_name", "full_name", "user_type"], order_by="full_name asc", distinct=True, ).run(as_dict=1) diff --git a/crm/api/whatsapp.py b/crm/api/whatsapp.py index d871fc90..6bbc2424 100644 --- a/crm/api/whatsapp.py +++ b/crm/api/whatsapp.py @@ -96,6 +96,12 @@ def is_whatsapp_enabled(): return False return frappe.get_cached_value("WhatsApp Settings", "WhatsApp Settings", "enabled") +@frappe.whitelist() +def is_whatsapp_installed(): + if not frappe.db.exists("DocType", "WhatsApp Settings"): + return False + return True + @frappe.whitelist() def get_whatsapp_messages(reference_doctype, reference_name): diff --git a/crm/fcrm/doctype/twilio_settings/twilio_settings.json b/crm/fcrm/doctype/twilio_settings/twilio_settings.json index 9e20d1a9..24567b4a 100644 --- a/crm/fcrm/doctype/twilio_settings/twilio_settings.json +++ b/crm/fcrm/doctype/twilio_settings/twilio_settings.json @@ -7,17 +7,17 @@ "editable_grid": 1, "engine": "InnoDB", "field_order": [ + "section_break_ssqj", + "enabled", + "column_break_avmt", + "record_calls", "section_break_malx", "account_sid", "api_key", "api_secret", "column_break_idds", "auth_token", - "twiml_sid", - "section_break_ssqj", - "enabled", - "column_break_avmt", - "record_calls" + "twiml_sid" ], "fields": [ { @@ -84,7 +84,7 @@ "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2024-01-13 14:24:16.726645", + "modified": "2024-06-11 17:42:38.256260", "modified_by": "Administrator", "module": "FCRM", "name": "Twilio Settings", diff --git a/frappe-ui b/frappe-ui index 1eead791..0c0212cc 160000 --- a/frappe-ui +++ b/frappe-ui @@ -1 +1 @@ -Subproject commit 1eead791a7d5ed06363e0d04de9b1f5e15853b37 +Subproject commit 0c0212cc5bbac151cffc6dc73dfbdf7b69d45ec2 diff --git a/frontend/src/components/Settings/ProfileImageEditor.vue b/frontend/src/components/Settings/ProfileImageEditor.vue new file mode 100644 index 00000000..00071c6a --- /dev/null +++ b/frontend/src/components/Settings/ProfileImageEditor.vue @@ -0,0 +1,64 @@ + + setUserImage(file.file_url)" + :validateFile="validateFile" + > + + + + + + {{ + uploading + ? `Uploading ${progress}%` + : profile.user_image + ? 'Change Image' + : 'Upload Image' + }} + + + + + + + + + Remove + + + + + + + diff --git a/frontend/src/components/Settings/ProfileSettings.vue b/frontend/src/components/Settings/ProfileSettings.vue new file mode 100644 index 00000000..a2ef0974 --- /dev/null +++ b/frontend/src/components/Settings/ProfileSettings.vue @@ -0,0 +1,100 @@ + + + + + + {{ profile.full_name }} + {{ profile.email }} + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/components/Settings/SettingsModal.vue b/frontend/src/components/Settings/SettingsModal.vue new file mode 100644 index 00000000..821294ec --- /dev/null +++ b/frontend/src/components/Settings/SettingsModal.vue @@ -0,0 +1,93 @@ + + + + + + + {{ __('Settings') }} + + + + + + {{ __('Integrations') }} + + + + + + + + + + + + + diff --git a/frontend/src/components/Settings/SettingsPage.vue b/frontend/src/components/Settings/SettingsPage.vue new file mode 100644 index 00000000..f7eff59e --- /dev/null +++ b/frontend/src/components/Settings/SettingsPage.vue @@ -0,0 +1,97 @@ + + + + {{ __(doctype) }} + + + + + + + + + + + + + + diff --git a/frontend/src/components/Settings/TwilioSettings.vue b/frontend/src/components/Settings/TwilioSettings.vue new file mode 100644 index 00000000..5672da6f --- /dev/null +++ b/frontend/src/components/Settings/TwilioSettings.vue @@ -0,0 +1,6 @@ + + + + diff --git a/frontend/src/components/Settings/WhatsAppSettings.vue b/frontend/src/components/Settings/WhatsAppSettings.vue new file mode 100644 index 00000000..027b1b91 --- /dev/null +++ b/frontend/src/components/Settings/WhatsAppSettings.vue @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/frontend/src/components/UserDropdown.vue b/frontend/src/components/UserDropdown.vue index d07130d6..969cbbfd 100644 --- a/frontend/src/components/UserDropdown.vue +++ b/frontend/src/components/UserDropdown.vue @@ -1,5 +1,5 @@ - + +