# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# License: MIT. See LICENSE
import datetime
import re
from dateutil.parser import ParserError
import frappe
from frappe.model.meta import get_field_currency, get_field_precision
from frappe.utils import (
cint,
cstr,
flt,
fmt_money,
format_datetime,
format_duration,
format_time,
format_timedelta,
formatdate,
)
BLOCK_TAGS_PATTERN = re.compile(r"(
")
elif df.get("fieldtype") == "Markdown Editor":
return frappe.utils.markdown(value)
elif df.get("fieldtype") == "Table MultiSelect":
values = []
meta = frappe.get_meta(df.options)
link_field = next(df for df in meta.fields if df.fieldtype == "Link")
for v in value:
v.update({"__link_titles": doc.get("__link_titles")})
formatted_value = frappe.format_value(v.get(link_field.fieldname, ""), link_field, v)
values.append(formatted_value)
return ", ".join(values)
elif df.get("fieldtype") == "Duration":
hide_days = df.hide_days
return format_duration(value, hide_days)
elif df.get("fieldtype") == "Text Editor":
return f"