Ejemplo n.º 1
0
def handle_html(data):
    from html2text import HTML2Text

    # return if no html tags found
    data = frappe.as_unicode(data)

    if "<" not in data or ">" not in data:
        return data

    h = unescape_html(data or "")

    obj = HTML2Text()
    obj.ignore_links = True
    obj.body_width = 0

    try:
        value = obj.handle(h)
    except Exception:
        # unable to parse html, send it raw
        return data

    value = ", ".join(value.split("  \n"))
    value = " ".join(value.split("\n"))
    value = ", ".join(value.split("# "))

    return value
Ejemplo n.º 2
0
def get_formatted_value(value, field):
	"""
	Prepare field from raw data
	:param value:
	:param field:
	:return:
	"""

	if getattr(field, 'fieldtype', None) in ["Text", "Text Editor"]:
		value = unescape_html(frappe.safe_decode(value))
		value = (re.subn(r'<[\s]*(script|style).*?</\1>(?s)', '', text_type(value))[0])
		value = ' '.join(value.split())
	return field.label + " : " + strip_html_tags(text_type(value))
Ejemplo n.º 3
0
    def set_fetch_from_value(self, doctype, df, values):
        fetch_from_fieldname = df.fetch_from.split('.')[-1]
        value = values[fetch_from_fieldname]
        if df.fieldtype == 'Small Text' or df.fieldtype == 'Text' or df.fieldtype == 'Data':
            if fetch_from_fieldname in default_fields:
                from frappe.model.meta import get_default_df
                fetch_from_df = get_default_df(fetch_from_fieldname)
            else:
                fetch_from_df = frappe.get_meta(doctype).get_field(
                    fetch_from_fieldname)

            fetch_from_ft = fetch_from_df.get('fieldtype')
            if fetch_from_ft == 'Text Editor' and value:
                value = unescape_html(strip_html(value))
        setattr(self, df.fieldname, value)
Ejemplo n.º 4
0
	def set_fetch_from_value(self, doctype, df, values):
		fetch_from_fieldname = df.fetch_from.split('.')[-1]
		value = values[fetch_from_fieldname]
		if df.fieldtype in ['Small Text', 'Text', 'Data']:
			if fetch_from_fieldname in default_fields:
				from frappe.model.meta import get_default_df
				fetch_from_df = get_default_df(fetch_from_fieldname)
			else:
				fetch_from_df = frappe.get_meta(doctype).get_field(fetch_from_fieldname)

			if not fetch_from_df:
				frappe.throw(
					_('Please check the value of "Fetch From" set for field {0}').format(frappe.bold(df.label)),
					title = _('Wrong Fetch From value')
				)

			fetch_from_ft = fetch_from_df.get('fieldtype')
			if fetch_from_ft == 'Text Editor' and value:
				value = unescape_html(strip_html(value))
		setattr(self, df.fieldname, value)