浏览代码

Merge pull request #1101 from anandpdoshi/anand-may-8

Extract images from children and page-body min-height
version-14
Anand Doshi 10 年前
父节点
当前提交
ea97b1e484
共有 5 个文件被更改,包括 19 次插入10 次删除
  1. +6
    -0
      frappe/model/base_document.py
  2. +6
    -8
      frappe/model/document.py
  3. +1
    -0
      frappe/public/css/page.css
  4. +1
    -0
      frappe/public/less/page.less
  5. +5
    -2
      frappe/utils/file_manager.py

+ 6
- 0
frappe/model/base_document.py 查看文件

@@ -541,6 +541,12 @@ class BaseDocument(object):


return val return val


def _extract_images_from_text_editor(self):
from frappe.utils.file_manager import extract_images_from_html
if self.doctype != "DocType":
for df in self.meta.get("fields", {"fieldtype":"Text Editor"}):
extract_images_from_html(self, df.fieldname)

def _filter(data, filters, limit=None): def _filter(data, filters, limit=None):
"""pass filters as: """pass filters as:
{"key": "val", "key": ["!=", "val"], {"key": "val", "key": ["!=", "val"],


+ 6
- 8
frappe/model/document.py 查看文件

@@ -299,11 +299,15 @@ class Document(BaseDocument):
self._validate_links() self._validate_links()
self._validate_selects() self._validate_selects()
self._validate_constants() self._validate_constants()
self._extract_images_from_text_editor()


for d in self.get_all_children():
children = self.get_all_children()
for d in children:
d._validate_selects() d._validate_selects()
d._validate_constants() d._validate_constants()

# extract images after validations to save processing if some validation error is raised
self._extract_images_from_text_editor()
for d in children:
d._extract_images_from_text_editor() d._extract_images_from_text_editor()


def validate_higher_perm_levels(self): def validate_higher_perm_levels(self):
@@ -488,12 +492,6 @@ class Document(BaseDocument):
ret.extend(value) ret.extend(value)
return ret return ret


def _extract_images_from_text_editor(self):
from frappe.utils.file_manager import extract_images_from_html
if self.doctype != "DocType":
for df in self.meta.get("fields", {"fieldtype":"Text Editor"}):
extract_images_from_html(self, df.fieldname)

def run_method(self, method, *args, **kwargs): def run_method(self, method, *args, **kwargs):
"""run standard triggers, plus those in hooks""" """run standard triggers, plus those in hooks"""
if "flags" in kwargs: if "flags" in kwargs:


+ 1
- 0
frappe/public/css/page.css 查看文件

@@ -20,6 +20,7 @@
} }
.page-body { .page-body {
overflow-x: hidden; overflow-x: hidden;
min-height: calc(60vh);
} }
.page-title h6 { .page-title h6 {
margin-top: -8px; margin-top: -8px;


+ 1
- 0
frappe/public/less/page.less 查看文件

@@ -26,6 +26,7 @@


.page-body { .page-body {
overflow-x: hidden; overflow-x: hidden;
min-height: calc(100vh - 40px);
} }


.page-title { .page-title {


+ 5
- 2
frappe/utils/file_manager.py 查看文件

@@ -98,15 +98,18 @@ def extract_images_from_html(doc, fieldname):
mtype = headers.split(";")[0] mtype = headers.split(";")[0]
filename = get_random_filename(content_type=mtype) filename = get_random_filename(content_type=mtype)


doctype = doc.parenttype if doc.parent else doc.doctype
name = doc.parent or doc.name

# TODO fix this # TODO fix this
file_url = save_file(filename, content, doc.doctype, doc.name, decode=True).get("file_url")
file_url = save_file(filename, content, doctype, name, decode=True).get("file_url")
if not frappe.flags.has_dataurl: if not frappe.flags.has_dataurl:
frappe.flags.has_dataurl = True frappe.flags.has_dataurl = True


return '<img src="{file_url}"'.format(file_url=file_url) return '<img src="{file_url}"'.format(file_url=file_url)


if content: if content:
content = re.sub('<img\s*src=\s*["\'](?=data:)(.*?)["\']', _save_file, content)
content = re.sub('<img[^>]*src\s*=\s*["\'](?=data:)(.*?)["\']', _save_file, content)
if frappe.flags.has_dataurl: if frappe.flags.has_dataurl:
doc.set(fieldname, content) doc.set(fieldname, content)




正在加载...
取消
保存