From ec1f2fbfcfb1582440a377fc90739bd61d077aef Mon Sep 17 00:00:00 2001 From: Pratik Vyas Date: Tue, 18 Feb 2014 16:55:09 +0530 Subject: [PATCH 1/4] fix site arg handling --- frappe/__init__.py | 7 ++++--- frappe/cli.py | 31 ++++++++++++++----------------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/frappe/__init__.py b/frappe/__init__.py index 856123a9f2..2ca2367d99 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -402,9 +402,10 @@ def get_pymodule_path(modulename, *joins): def get_module_list(app_name): return get_file_items(os.path.join(os.path.dirname(get_module(app_name).__file__), "modules.txt")) -def get_all_apps(with_frappe=False): - apps = get_file_items(os.path.join(local.sites_path, "apps.txt")) \ - + get_file_items(os.path.join(local.site_path, "apps.txt")) +def get_all_apps(with_frappe=False, with_internal_apps=True): + apps = get_file_items(os.path.join(local.sites_path, "apps.txt")) + if with_internal_apps: + apps.extend(get_file_items(os.path.join(local.site_path, "apps.txt"))) if with_frappe: apps.insert(0, 'frappe') return apps diff --git a/frappe/cli.py b/frappe/cli.py index 79e95711d0..c7e016ed89 100755 --- a/frappe/cli.py +++ b/frappe/cli.py @@ -8,7 +8,14 @@ import sys, os import frappe -site_arg_optional = [] +site_arg_optional = ['serve'] + +def get_site(parsed_args): + if not parsed_args.get("site") and os.path.exists(os.path.join(parsed_args["sites_path"], "currentsite.txt")): + with open(os.path.join(parsed_args["sites_path"], "currentsite.txt"), "r") as sitefile: + parsed_args["site"] = sitefile.read().strip() + return parsed_args["site"] + return parsed_args.get("site") def main(): parsed_args = frappe._dict(vars(setup_parser())) @@ -28,21 +35,11 @@ def main(): frappe.init(site, sites_path=sites_path) run(fn, args) else: - if not fn in site_arg_optional: - if not parsed_args.get("site") and os.path.exists(os.path.join(sites_path, "currentsite.txt")): - with open(os.path.join(sites_path, "currentsite.txt"), "r") as sitefile: - parsed_args["site"] = sitefile.read().strip() - - site = parsed_args.get("site") - - if not site: - print "Site argument required" - exit(1) - - if fn != 'install' and not os.path.exists(os.path.join(parsed_args["sites_path"], site)): - print "Did not find folder '{}'. Are you in sites folder?".format(parsed_args.get("site")) - exit(1) - + site = get_site(parsed_args) + if fn not in site_arg_optional and not site: + print 'site argument required' + exit(1) + elif site: frappe.init(site, sites_path=sites_path) run(fn, parsed_args) else: @@ -639,7 +636,7 @@ def run_tests(app=None, module=None, doctype=None, verbose=False): exit(1) @cmd -def serve(port=8000, profile=False, sites_path='.'): +def serve(port=8000, profile=False, sites_path='.', site=None): import frappe.app frappe.app.serve(port=port, profile=profile, site=frappe.local.site, sites_path=sites_path) From a2edeff319cb72d354e5f57d4045a082ec814d7b Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Tue, 18 Feb 2014 18:43:40 +0530 Subject: [PATCH 2/4] website updates --- frappe/model/bean.py | 5 +- frappe/patches/4_0/set_website_sitemap_idx.py | 14 +++ frappe/public/js/frappe/ui/tree.js | 45 +++++--- frappe/templates/generators/blog_post.py | 2 + .../doctype/blog_category/blog_category.txt | 5 +- .../website_sitemap/website_sitemap.py | 40 ++++--- .../website_sitemap/website_sitemap.txt | 4 +- .../website_sitemap_config.py | 23 +++- .../website_sitemap_config.txt | 16 ++- .../page/sitemap_browser/sitemap_browser.js | 103 ++++++------------ .../page/sitemap_browser/sitemap_browser.py | 3 +- 11 files changed, 150 insertions(+), 110 deletions(-) create mode 100644 frappe/patches/4_0/set_website_sitemap_idx.py diff --git a/frappe/model/bean.py b/frappe/model/bean.py index 06a31aceb9..ee21b91959 100644 --- a/frappe/model/bean.py +++ b/frappe/model/bean.py @@ -292,10 +292,7 @@ class Bean: def has_permission(self, permtype): 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): if ignore_permissions: self.ignore_permissions = ignore_permissions diff --git a/frappe/patches/4_0/set_website_sitemap_idx.py b/frappe/patches/4_0/set_website_sitemap_idx.py new file mode 100644 index 0000000000..315dba76ec --- /dev/null +++ b/frappe/patches/4_0/set_website_sitemap_idx.py @@ -0,0 +1,14 @@ +import frappe + +def execute(): + frappe.conn.sql("""update `tabWebsite Sitemap` set idx=null""") + # frappe.conn.sql("""update `tabWeb Page` set idx=null""") + # frappe.conn.sql("""update `tabBlog Post` set idx=null""") + # frappe.conn.sql("""update `tabBlog Category` set idx=null""") + # frappe.conn.sql("""update `tabWebsite Group` set idx=null""") + # frappe.conn.sql("""delete from `tabTable of Contents`""") + + for doctype in ["Blog Category", "Blog Post", "Web Page", "Website Group"]: + for name in frappe.conn.get_values("Website Sitemap", {"ref_doctype":doctype}, "docname"): + frappe.bean(doctype, name[0]).save() + \ No newline at end of file diff --git a/frappe/public/js/frappe/ui/tree.js b/frappe/public/js/frappe/ui/tree.js index cbe51f85de..93874b9cb9 100644 --- a/frappe/public/js/frappe/ui/tree.js +++ b/frappe/public/js/frappe/ui/tree.js @@ -26,6 +26,7 @@ frappe.ui.Tree = Class.extend({ .tree li { list-style: none; }\ .tree ul { margin-top: 2px; }\ .tree-link { cursor: pointer; }\ + .tree-hover { background-color: #eee; min-height: 20px; border: 1px solid #ddd; }\ ") } }) @@ -52,7 +53,24 @@ frappe.ui.TreeNode = Class.extend({ .data('label', this.label) .data('node', this) .appendTo(this.parent); - + + this.$ul = $('