This commit is contained in:
parent
485acc5878
commit
08647cc032
3 changed files with 26 additions and 28 deletions
|
|
@ -305,7 +305,7 @@ def reset_perms(doctype):
|
|||
def generate_hash(txt=None):
|
||||
"""Generates random hash for session id"""
|
||||
import hashlib, time
|
||||
return hashlib.sha224((txt or "") + str(time.time())).hexdigest()
|
||||
return hashlib.sha224((txt or "") + repr(time.time())).hexdigest()
|
||||
|
||||
def reset_metadata_version():
|
||||
v = generate_hash()
|
||||
|
|
|
|||
|
|
@ -275,7 +275,7 @@ class Document(BaseDocument):
|
|||
if not self.has_permission("submit"):
|
||||
raise frappe.PermissionError
|
||||
else:
|
||||
raise frappe.DocstatusTransitionError
|
||||
raise frappe.DocstatusTransitionError("Cannot change docstatus from 0 to 2")
|
||||
|
||||
elif docstatus==1:
|
||||
if self.docstatus==1:
|
||||
|
|
@ -288,7 +288,7 @@ class Document(BaseDocument):
|
|||
if not self.has_permission("cancel"):
|
||||
raise frappe.PermissionError
|
||||
else:
|
||||
raise frappe.DocstatusTransitionError
|
||||
raise frappe.DocstatusTransitionError("Cannot change docstatus from 1 to 0")
|
||||
|
||||
elif docstatus==2:
|
||||
raise frappe.ValidationError
|
||||
|
|
@ -351,6 +351,7 @@ class Document(BaseDocument):
|
|||
"""run standard triggers, plus those in frappe"""
|
||||
if hasattr(self, method):
|
||||
fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
|
||||
fn.__name__ = method.encode("utf-8")
|
||||
return Document.hook(fn)(self, *args, **kwargs)
|
||||
|
||||
def submit(self):
|
||||
|
|
@ -412,7 +413,7 @@ class Document(BaseDocument):
|
|||
method = f.__name__
|
||||
for handler in frappe.get_hooks("doc_event:" + self.doctype + ":" + method) \
|
||||
+ frappe.get_hooks("doc_event:*:" + method):
|
||||
hooks.append(frappe.getattr(handler))
|
||||
hooks.append(frappe.get_attr(handler))
|
||||
|
||||
composed = compose(f, *hooks)
|
||||
return composed(self, method, *args, **kwargs)
|
||||
|
|
|
|||
|
|
@ -10,9 +10,6 @@ from frappe.utils import now
|
|||
|
||||
from frappe.website.doctype.website_route.website_route import add_to_sitemap, update_sitemap, remove_sitemap
|
||||
|
||||
def call_website_generator(doc, method, *args, **kwargs):
|
||||
getattr(WebsiteGenerator(doc), method)(*args, **kwargs)
|
||||
|
||||
class WebsiteGenerator(DocListController):
|
||||
def autoname(self):
|
||||
self.name = self.get_page_name()
|
||||
|
|
@ -26,7 +23,7 @@ class WebsiteGenerator(DocListController):
|
|||
self.set(self.website_template.page_name_field, page_name)
|
||||
else:
|
||||
frappe.db.set(self, self.website_template.page_name_field, page_name)
|
||||
|
||||
|
||||
return page_name
|
||||
|
||||
def get_parent_website_route(self):
|
||||
|
|
@ -34,51 +31,51 @@ class WebsiteGenerator(DocListController):
|
|||
|
||||
def setup_generator(self):
|
||||
if not hasattr(self, "website_template"):
|
||||
self.website_template = frappe.db.get_values("Website Template",
|
||||
self.website_template = frappe.db.get_values("Website Template",
|
||||
{"ref_doctype": self.doctype}, "*")[0]
|
||||
|
||||
def on_update(self):
|
||||
self.update_sitemap()
|
||||
if getattr(self, "save_versions", False):
|
||||
frappe.add_version(self)
|
||||
|
||||
|
||||
def after_rename(self, olddn, newdn, merge):
|
||||
frappe.db.sql("""update `tabWebsite Route`
|
||||
set docname=%s where ref_doctype=%s and docname=%s""", (newdn, self.doctype, olddn))
|
||||
|
||||
|
||||
if merge:
|
||||
self.setup_generator()
|
||||
remove_sitemap(ref_doctype=self.doctype, docname=olddn)
|
||||
|
||||
|
||||
def on_trash(self):
|
||||
self.setup_generator()
|
||||
remove_sitemap(ref_doctype=self.doctype, docname=self.name)
|
||||
|
||||
|
||||
def update_sitemap(self):
|
||||
self.setup_generator()
|
||||
|
||||
|
||||
if self.website_template.condition_field and \
|
||||
not self.get(self.website_template.condition_field):
|
||||
# condition field failed, remove and return!
|
||||
remove_sitemap(ref_doctype=self.doctype, docname=self.name)
|
||||
return
|
||||
|
||||
|
||||
self.add_or_update_sitemap()
|
||||
|
||||
|
||||
def add_or_update_sitemap(self):
|
||||
page_name = self.get_page_name()
|
||||
|
||||
|
||||
existing_site_map = frappe.db.get_value("Website Route", {"ref_doctype": self.doctype,
|
||||
"docname": self.name})
|
||||
|
||||
|
||||
if self.modified:
|
||||
lastmod = frappe.utils.get_datetime(self.modified).strftime("%Y-%m-%d")
|
||||
else:
|
||||
lastmod = now()
|
||||
|
||||
|
||||
opts = frappe._dict({
|
||||
"page_or_generator": "Generator",
|
||||
"ref_doctype":self.doctype,
|
||||
"ref_doctype":self.doctype,
|
||||
"idx": self.idx,
|
||||
"docname": self.name,
|
||||
"page_name": page_name,
|
||||
|
|
@ -90,35 +87,35 @@ class WebsiteGenerator(DocListController):
|
|||
})
|
||||
|
||||
self.update_permissions(opts)
|
||||
|
||||
|
||||
if existing_site_map:
|
||||
idx = update_sitemap(existing_site_map, opts)
|
||||
else:
|
||||
idx = add_to_sitemap(opts)
|
||||
|
||||
if idx!=None and self.idx != idx:
|
||||
frappe.db.set(self, "idx", idx)
|
||||
|
||||
frappe.db.set(self, "idx", idx)
|
||||
|
||||
def update_permissions(self, opts):
|
||||
if self.meta.get_field("public_read"):
|
||||
opts.public_read = self.public_read
|
||||
opts.public_write = self.public_write
|
||||
else:
|
||||
opts.public_read = 1
|
||||
|
||||
|
||||
def get_page_name(self):
|
||||
page_name = self._get_page_name()
|
||||
if not page_name:
|
||||
page_name = self.set_page_name()
|
||||
|
||||
|
||||
return self._get_page_name()
|
||||
|
||||
|
||||
def _get_page_name(self):
|
||||
self.setup_generator()
|
||||
if self.meta.get_field(self.website_template.page_name_field):
|
||||
return self.get(self.website_template.page_name_field)
|
||||
else:
|
||||
return cleanup_page_name(self.get_page_title())
|
||||
|
||||
|
||||
def get_page_title(self):
|
||||
return self.title or (self.name.replace("-", " ").replace("_", " ").title())
|
||||
return self.get("title") or (self.name.replace("-", " ").replace("_", " ").title())
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue