diff --git a/crm/api/session.py b/crm/api/session.py
index ccaab666..758c53b6 100644
--- a/crm/api/session.py
+++ b/crm/api/session.py
@@ -39,7 +39,7 @@ def get_organizations():
organizations = frappe.qb.get_query(
"CRM Organization",
- fields=['name', 'organization_logo', 'website'],
+ fields=['name', 'organization_name', 'organization_logo', 'website'],
order_by="name asc",
distinct=True,
).run(as_dict=1)
diff --git a/frontend/src/components/Modals/OrganizationModal.vue b/frontend/src/components/Modals/OrganizationModal.vue
index 66f395e1..7aa80fe8 100644
--- a/frontend/src/components/Modals/OrganizationModal.vue
+++ b/frontend/src/components/Modals/OrganizationModal.vue
@@ -8,7 +8,8 @@
{
label: editMode ? 'Update' : 'Create',
variant: 'solid',
- onClick: ({ close }) => updateOrganization(close),
+ onClick: ({ close }) =>
+ editMode ? updateOrganization(close) : callInsertDoc(close),
},
],
}"
@@ -20,7 +21,7 @@
@@ -47,6 +48,13 @@ const props = defineProps({
type: Object,
default: {},
},
+ options: {
+ type: Object,
+ default: {
+ redirect: true,
+ afterInsert: () => {},
+ },
+ },
})
const show = defineModel()
@@ -73,19 +81,14 @@ async function updateOrganization(close) {
return
}
- if (editMode.value) {
- let name
- if (nameChanged) {
- name = await callRenameDoc()
- }
- if (otherFieldChanged) {
- name = await callSetValue(values)
- }
- handleOrganizationUpdate(name)
- } else {
- await callInsertDoc()
+ let name
+ if (nameChanged) {
+ name = await callRenameDoc()
}
- close()
+ if (otherFieldChanged) {
+ name = await callSetValue(values)
+ }
+ handleOrganizationUpdate({ name }, close)
}
async function callRenameDoc() {
@@ -106,25 +109,27 @@ async function callSetValue(values) {
return d.name
}
-async function callInsertDoc() {
- const d = await call('frappe.client.insert', {
+async function callInsertDoc(close) {
+ const doc = await call('frappe.client.insert', {
doc: {
doctype: 'CRM Organization',
- organization_name: _organization.value.name,
+ organization_name: _organization.value.organization_name,
website: _organization.value.website,
},
})
- d.name && handleOrganizationUpdate()
+ doc.name && handleOrganizationUpdate(doc, close)
}
-function handleOrganizationUpdate(name) {
- organizations.value.reload()
- if (name) {
+function handleOrganizationUpdate(doc, close) {
+ organizations.value?.reload()
+ if (doc.name && props.options.redirect) {
router.push({
name: 'Organization',
- params: { organizationId: name },
+ params: { organizationId: doc.name },
})
}
+ close && close()
+ props.options.afterInsert && props.options.afterInsert(doc)
}
watch(
diff --git a/frontend/src/pages/Lead.vue b/frontend/src/pages/Lead.vue
index 69c0a68e..d8759212 100644
--- a/frontend/src/pages/Lead.vue
+++ b/frontend/src/pages/Lead.vue
@@ -8,7 +8,7 @@
type="autocomplete"
:options="activeAgents"
:value="getUser(lead.data.lead_owner).full_name"
- @change="(option) => updateAssignedAgent(option.email)"
+ @change="(option) => updateField('lead_owner', option.email)"
placeholder="Lead owner"
>
@@ -197,21 +197,37 @@
"
:debounce="500"
/>
- field.change(e)"
:placeholder="field.placeholder"
class="form-control"
- />
+ >
+
+
+
+
+
+
updateAssignedAgent(option.email)"
+ @change="
+ (option) => updateField('lead_owner', option.email)
+ "
class="form-control"
:placeholder="field.placeholder"
>
@@ -305,6 +321,14 @@
+