fix: use actual fieldtype names

This commit is contained in:
Shariq Ansari 2025-01-02 18:52:11 +05:30
parent 7c81607877
commit 319d4ff5ac
3 changed files with 39 additions and 42 deletions

View File

@ -616,11 +616,12 @@ def get_sidebar_fields(doctype, name):
def get_field_obj(field): def get_field_obj(field):
obj = { obj = {
"label": field.label, "label": field.label,
"type": get_type(field), "type": field.fieldtype,
"name": field.fieldname, "name": field.fieldname,
"hidden": field.hidden, "hidden": field.hidden,
"reqd": field.reqd, "reqd": field.reqd,
"read_only": field.read_only, "read_only": field.read_only,
"options": field.options,
"all_properties": field, "all_properties": field,
} }
@ -628,7 +629,6 @@ def get_field_obj(field):
if field.fieldtype == "Link": if field.fieldtype == "Link":
obj["placeholder"] = field.get("placeholder") or "Select " + field.label + "..." obj["placeholder"] = field.get("placeholder") or "Select " + field.label + "..."
obj["doctype"] = field.options
elif field.fieldtype == "Select" and field.options: elif field.fieldtype == "Select" and field.options:
obj["placeholder"] = field.get("placeholder") or "Select " + field.label + "..." obj["placeholder"] = field.get("placeholder") or "Select " + field.label + "..."
obj["options"] = [{"label": option, "value": option} for option in field.options.split("\n")] obj["options"] = [{"label": option, "value": option} for option in field.options.split("\n")]
@ -639,22 +639,6 @@ def get_field_obj(field):
return obj return obj
def get_type(field):
if field.fieldtype == "Data" and field.options == "Phone":
return "phone"
elif field.fieldtype == "Data" and field.options == "Email":
return "email"
elif field.fieldtype == "Check":
return "checkbox"
elif field.fieldtype == "Int":
return "number"
elif field.fieldtype in ["Small Text", "Text", "Long Text"]:
return "textarea"
elif field.read_only:
return "read_only"
return field.fieldtype.lower()
def get_assigned_users(doctype, name, default_assigned_to=None): def get_assigned_users(doctype, name, default_assigned_to=None):
assigned_users = frappe.get_all( assigned_users = frappe.get_all(
"ToDo", "ToDo",

View File

@ -79,7 +79,7 @@
<div <div
v-if=" v-if="
field.read_only && field.read_only &&
!['checkbox', 'dropdown'].includes(field.type) !['Check', 'Dropdown'].includes(field.type)
" "
class="flex h-7 cursor-pointer items-center px-2 py-1 text-ink-gray-5" class="flex h-7 cursor-pointer items-center px-2 py-1 text-ink-gray-5"
> >
@ -87,7 +87,7 @@
<div>{{ data[field.name] }}</div> <div>{{ data[field.name] }}</div>
</Tooltip> </Tooltip>
</div> </div>
<div v-else-if="field.type === 'dropdown'"> <div v-else-if="field.type === 'Dropdown'">
<NestedPopover> <NestedPopover>
<template #target="{ open }"> <template #target="{ open }">
<Button <Button
@ -149,9 +149,9 @@
</NestedPopover> </NestedPopover>
</div> </div>
<FormControl <FormControl
v-else-if="field.type == 'checkbox'" v-else-if="field.type == 'Check'"
class="form-control" class="form-control"
:type="field.type" type="checkbox"
v-model="data[field.name]" v-model="data[field.name]"
@change.stop=" @change.stop="
emit('update', field.name, $event.target.checked) emit('update', field.name, $event.target.checked)
@ -161,14 +161,14 @@
<FormControl <FormControl
v-else-if=" v-else-if="
[ [
'email', 'Small Text',
'number', 'Text',
'password', 'Long Text',
'textarea', 'Code',
].includes(field.type) ].includes(field.type)
" "
class="form-control" class="form-control"
:type="field.type" type="textarea"
:value="data[field.name]" :value="data[field.name]"
:placeholder="field.placeholder" :placeholder="field.placeholder"
:debounce="500" :debounce="500"
@ -177,7 +177,7 @@
" "
/> />
<FormControl <FormControl
v-else-if="field.type === 'select'" v-else-if="field.type === 'Select'"
class="form-control cursor-pointer [&_select]:cursor-pointer truncate" class="form-control cursor-pointer [&_select]:cursor-pointer truncate"
type="select" type="select"
v-model="data[field.name]" v-model="data[field.name]"
@ -188,9 +188,7 @@
" "
/> />
<Link <Link
v-else-if=" v-else-if="field.type === 'User'"
['lead_owner', 'deal_owner'].includes(field.name)
"
class="form-control" class="form-control"
:value=" :value="
data[field.name] && data[field.name] &&
@ -225,17 +223,17 @@
</template> </template>
</Link> </Link>
<Link <Link
v-else-if="field.type === 'link'" v-else-if="field.type === 'Link'"
class="form-control select-text" class="form-control select-text"
:value="data[field.name]" :value="data[field.name]"
:doctype="field.doctype" :doctype="field.options"
:filters="field.filters" :filters="field.filters"
:placeholder="field.placeholder" :placeholder="field.placeholder"
@change="(data) => emit('update', field.name, data)" @change="(data) => emit('update', field.name, data)"
:onCreate="field.create" :onCreate="field.create"
/> />
<div <div
v-else-if="field.type === 'datetime'" v-else-if="field.type === 'Datetime'"
class="form-control" class="form-control"
> >
<DateTimePicker <DateTimePicker
@ -250,7 +248,7 @@
/> />
</div> </div>
<div <div
v-else-if="field.type === 'date'" v-else-if="field.type === 'Date'"
class="form-control" class="form-control"
> >
<DatePicker <DatePicker
@ -263,7 +261,7 @@
/> />
</div> </div>
<FormControl <FormControl
v-else-if="field.type === 'percent'" v-else-if="field.type === 'Percent'"
class="form-control" class="form-control"
type="text" type="text"
:value="getFormattedPercent(field.name, data)" :value="getFormattedPercent(field.name, data)"
@ -274,7 +272,18 @@
" "
/> />
<FormControl <FormControl
v-else-if="field.type === 'float'" v-else-if="field.type === 'Int'"
class="form-control"
type="number"
v-model="data[field.name]"
:placeholder="field.placeholder"
:debounce="500"
@change.stop="
emit('update', field.name, $event.target.value)
"
/>
<FormControl
v-else-if="field.type === 'Float'"
class="form-control" class="form-control"
type="text" type="text"
:value="getFormattedFloat(field.name, data)" :value="getFormattedFloat(field.name, data)"
@ -285,7 +294,7 @@
" "
/> />
<FormControl <FormControl
v-else-if="field.type === 'currency'" v-else-if="field.type === 'Currency'"
class="form-control" class="form-control"
type="text" type="text"
:value="getFormattedCurrency(field.name, data)" :value="getFormattedCurrency(field.name, data)"
@ -310,7 +319,7 @@
<div class="ml-1"> <div class="ml-1">
<ArrowUpRightIcon <ArrowUpRightIcon
v-if=" v-if="
field.type === 'link' && field.type === 'Link' &&
field.link && field.link &&
data[field.name] data[field.name]
" "
@ -319,7 +328,7 @@
/> />
<EditIcon <EditIcon
v-if=" v-if="
field.type === 'link' && field.type === 'Link' &&
field.edit && field.edit &&
data[field.name] data[field.name]
" "
@ -394,6 +403,10 @@ const _sections = computed(() => {
if (section.columns?.length) { if (section.columns?.length) {
section.columns[0].fields = section.columns[0].fields.map((field) => { section.columns[0].fields = section.columns[0].fields.map((field) => {
let df = field?.all_properties || {} let df = field?.all_properties || {}
if (field.type === 'Link' && df.options === 'User') {
field.options = df.options
field.type = 'User'
}
let _field = { let _field = {
...field, ...field,
depends_on: df.depends_on, depends_on: df.depends_on,

View File

@ -351,7 +351,7 @@ function getParsedSections(_sections) {
return { return {
...field, ...field,
read_only: false, read_only: false,
type: 'dropdown', type: 'Dropdown',
options: options:
contact.data?.email_ids?.map((email) => { contact.data?.email_ids?.map((email) => {
return { return {
@ -408,7 +408,7 @@ function getParsedSections(_sections) {
return { return {
...field, ...field,
read_only: false, read_only: false,
type: 'dropdown', type: 'Dropdown',
options: options:
contact.data?.phone_nos?.map((phone) => { contact.data?.phone_nos?.map((phone) => {
return { return {