Przeglądaj źródła

more fixes

version-14
Rushabh Mehta 11 lat temu
rodzic
commit
438efbd965
5 zmienionych plików z 42 dodań i 13 usunięć
  1. +3
    -0
      frappe/model/bean.py
  2. +1
    -1
      frappe/public/js/frappe/form/control.js
  3. +25
    -8
      frappe/website/doctype/website_sitemap/website_sitemap.py
  4. +7
    -2
      frappe/website/doctype/website_sitemap_config/website_sitemap_config.py
  5. +6
    -2
      frappe/website/website_generator.py

+ 3
- 0
frappe/model/bean.py Wyświetl plik

@@ -293,6 +293,9 @@ class Bean:
def has_permission(self, permtype): def has_permission(self, permtype):
return frappe.has_permission(self.doc.doctype, permtype, self.doc) return frappe.has_permission(self.doc.doctype, permtype, self.doc)
def update_value(self, field, value):
frappe.conn.set(self.doc, field, value)
def save(self, check_links=1, ignore_permissions=None): def save(self, check_links=1, ignore_permissions=None):
if ignore_permissions: if ignore_permissions:
self.ignore_permissions = ignore_permissions self.ignore_permissions = ignore_permissions


+ 1
- 1
frappe/public/js/frappe/form/control.js Wyświetl plik

@@ -879,7 +879,7 @@ frappe.ui.form.ControlLink = frappe.ui.form.ControlData.extend({
me.$input.trigger("change"); me.$input.trigger("change");
} }
} }
}).data('uiAutocomplete')._renderItem = function(ul, d) {
}).data('ui-autocomplete')._renderItem = function(ul, d) {
var html = ""; var html = "";
if(keys(d).length > 1) { if(keys(d).length > 1) {
d.info = $.map(d, function(val, key) { return ["value", "label"].indexOf(key)!==-1 ? null : val }).join(", ") || ""; d.info = $.map(d, function(val, key) { return ["value", "label"].indexOf(key)!==-1 ? null : val }).join(", ") || "";


+ 25
- 8
frappe/website/doctype/website_sitemap/website_sitemap.py Wyświetl plik

@@ -6,7 +6,7 @@ import frappe
from frappe import _ from frappe import _
from frappe.utils.nestedset import DocTypeNestedSet from frappe.utils.nestedset import DocTypeNestedSet


sitemap_fields = ("page_name", "ref_doctype", "docname", "page_or_generator",
sitemap_fields = ("page_name", "ref_doctype", "docname", "page_or_generator", "idx",
"lastmod", "parent_website_sitemap", "public_read", "public_write", "page_title") "lastmod", "parent_website_sitemap", "public_read", "public_write", "page_title")


class DocType(DocTypeNestedSet): class DocType(DocTypeNestedSet):
@@ -18,22 +18,35 @@ class DocType(DocTypeNestedSet):
self.doc.name = self.get_url() self.doc.name = self.get_url()


def get_url(self): def get_url(self):
parent_website_sitemap = self.get_parent_website_sitemap()
url = self.doc.page_name url = self.doc.page_name
if parent_website_sitemap:
url = parent_website_sitemap + "/" + url
if self.doc.parent_website_sitemap:
url = self.doc.parent_website_sitemap + "/" + url
return url return url
def get_parent_website_sitemap(self):
return self.doc.parent_website_sitemap
def validate(self): def validate(self):
if self.get_url() != self.doc.name: if self.get_url() != self.doc.name:
self.rename() self.rename()
self.check_if_page_name_is_unique() self.check_if_page_name_is_unique()
self.make_private_if_parent_is_private() self.make_private_if_parent_is_private()
self.set_idx()
def set_idx(self):
if self.doc.idx==None:
self.doc.idx = int(frappe.conn.sql("""select max(idx) from `tabWebsite Sitemap`
where parent_website_sitemap=%s and name!=%s""", (self.doc.parent_website_sitemap,
self.doc.name))[0][0] or 0) + 1
else:
if self.doc.idx != 0:
if not frappe.conn.get_value("Website Sitemap", {
"idx": self.doc.idx -1,
"parent_website_sitemap":self.doc.parent_website_sitemap
}):
frappe.throw("{}: {}".format(
_("Sitemap Ordering Error. Index missing"), self.doc.idx-1))
def rename(self): def rename(self):
from frappe.website.render import clear_cache from frappe.website.render import clear_cache
self.old_name = self.doc.name self.old_name = self.doc.name
@@ -107,6 +120,8 @@ def add_to_sitemap(options):


bean.insert(ignore_permissions=True) bean.insert(ignore_permissions=True)
return bean.doc.idx
def update_sitemap(website_sitemap, options): def update_sitemap(website_sitemap, options):
bean = frappe.bean("Website Sitemap", website_sitemap) bean = frappe.bean("Website Sitemap", website_sitemap)
@@ -118,6 +133,8 @@ def update_sitemap(website_sitemap, options):
bean.doc.website_sitemap_config = options.link_name bean.doc.website_sitemap_config = options.link_name
bean.save(ignore_permissions=True) bean.save(ignore_permissions=True)

return bean.doc.idx
def remove_sitemap(page_name=None, ref_doctype=None, docname=None): def remove_sitemap(page_name=None, ref_doctype=None, docname=None):
if page_name: if page_name:


+ 7
- 2
frappe/website/doctype/website_sitemap_config/website_sitemap_config.py Wyświetl plik

@@ -33,8 +33,13 @@ class DocType:
if self.doc.condition_field: if self.doc.condition_field:
condition = " where ifnull(%s, 0)=1" % self.doc.condition_field condition = " where ifnull(%s, 0)=1" % self.doc.condition_field
for name in frappe.conn.sql_list("""select name from `tab%s` %s""" \
% (self.doc.ref_doctype, condition)):
for name in frappe.conn.sql_list("""select name from `tab{doctype}`
{condition} order by {sort_field} {sort_order}""".format(
doctype = self.doc.ref_doctype,
condition = condition,
sort_field = self.doc.sort_field or "name",
sort_order = self.doc.sort_order or "asc"
)):
frappe.bean(self.doc.ref_doctype, name).run_method("on_update") frappe.bean(self.doc.ref_doctype, name).run_method("on_update")
def rebuild_website_sitemap_config(): def rebuild_website_sitemap_config():


+ 6
- 2
frappe/website/website_generator.py Wyświetl plik

@@ -66,6 +66,7 @@ class WebsiteGenerator(DocListController):
opts = frappe._dict({ opts = frappe._dict({
"page_or_generator": "Generator", "page_or_generator": "Generator",
"ref_doctype":self.doc.doctype, "ref_doctype":self.doc.doctype,
"idx": self.doc.idx,
"docname": self.doc.name, "docname": self.doc.name,
"page_name": page_name, "page_name": page_name,
"link_name": self._website_config.name, "link_name": self._website_config.name,
@@ -78,9 +79,12 @@ class WebsiteGenerator(DocListController):
self.update_permissions(opts) self.update_permissions(opts)
if existing_site_map: if existing_site_map:
update_sitemap(existing_site_map, opts)
idx = update_sitemap(existing_site_map, opts)
else: else:
add_to_sitemap(opts)
idx = add_to_sitemap(opts)
if idx and self.doc.idx != idx:
self.update_value("idx", idx)
def update_permissions(self, opts): def update_permissions(self, opts):
if self.meta.get_field("public_read"): if self.meta.get_field("public_read"):


Ładowanie…
Anuluj
Zapisz