Browse Source

fixes in website

version-14
Anand Doshi 10 years ago
parent
commit
8603b11d63
9 changed files with 72 additions and 32 deletions
  1. +10
    -3
      frappe/__init__.py
  2. +8
    -3
      frappe/frappeclient.py
  3. +0
    -6
      frappe/public/css/website.css
  4. +3
    -8
      frappe/public/less/website.less
  5. +9
    -6
      frappe/templates/includes/list/list.js
  6. +8
    -0
      frappe/templates/pages/list.py
  7. +2
    -5
      frappe/utils/jinja.py
  8. +2
    -1
      frappe/website/context.py
  9. +30
    -0
      frappe/website/js/website.js

+ 10
- 3
frappe/__init__.py View File

@@ -569,14 +569,21 @@ def get_all_apps(with_frappe=False, with_internal_apps=True, sites_path=None):
if with_internal_apps: if with_internal_apps:
apps.extend(get_file_items(os.path.join(local.site_path, "apps.txt"))) apps.extend(get_file_items(os.path.join(local.site_path, "apps.txt")))
if with_frappe: if with_frappe:
if "frappe" in apps:
apps.remove("frappe")
apps.insert(0, 'frappe') apps.insert(0, 'frappe')
return apps return apps


def get_installed_apps():
def get_installed_apps(sort=False):
"""Get list of installed apps in current site.""" """Get list of installed apps in current site."""
if getattr(flags, "in_install_db", True): if getattr(flags, "in_install_db", True):
return [] return []

installed = json.loads(db.get_global("installed_apps") or "[]") installed = json.loads(db.get_global("installed_apps") or "[]")

if sort:
installed = [app for app in get_all_apps(True) if app in installed]

return installed return installed


@whitelist() @whitelist()
@@ -715,8 +722,8 @@ def call(fn, *args, **kwargs):
fnargs, varargs, varkw, defaults = inspect.getargspec(fn) fnargs, varargs, varkw, defaults = inspect.getargspec(fn)


newargs = {} newargs = {}
for a in fnargs:
if a in kwargs:
for a in kwargs:
if (a in fnargs) or varkw:
newargs[a] = kwargs.get(a) newargs[a] = kwargs.get(a)


if "flags" in newargs: if "flags" in newargs:


+ 8
- 3
frappe/frappeclient.py View File

@@ -164,9 +164,14 @@ class FrappeClient(object):
new_doc = frappe.get_doc(doc) new_doc = frappe.get_doc(doc)
new_doc.insert() new_doc.insert()


if doctype != "Comment" and not meta.istable:
self.migrate_doctype("Comment", {"comment_doctype": doctype, "comment_docname": doc["name"]},
update={"comment_docname": new_doc.name}, verbose=0)
if not meta.istable:
if doctype != "Comment":
self.migrate_doctype("Comment", {"comment_doctype": doctype, "comment_docname": doc["name"]},
update={"comment_docname": new_doc.name}, verbose=0)

if doctype != "File Data":
self.migrate_doctype("File Data", {"attached_to_doctype": doctype,
"attached_to_name": doc["name"]}, update={"attached_to_name": new_doc.name}, verbose=0)


def migrate_single(self, doctype): def migrate_single(self, doctype):
doc = self.get_doc(doctype, doctype) doc = self.get_doc(doctype, doctype)


+ 0
- 6
frappe/public/css/website.css View File

@@ -521,9 +521,6 @@ a.active {
pointer-events: none; pointer-events: none;
cursor: default; cursor: default;
} }
:target {
background-color: #ffa;
}
.page-breadcrumbs .breadcrumb { .page-breadcrumbs .breadcrumb {
padding: 0px; padding: 0px;
background-color: transparent; background-color: transparent;
@@ -547,9 +544,6 @@ a.active {
.docs-attr-desc { .docs-attr-desc {
padding-left: 30px; padding-left: 30px;
} }
.page-content {
min-height: 400px;
}
@media (max-width: 767px) { @media (max-width: 767px) {
.page-content { .page-content {
min-height: 200px; min-height: 200px;


+ 3
- 8
frappe/public/less/website.less View File

@@ -278,9 +278,9 @@ a.active {
cursor: default; cursor: default;
} }


:target {
background-color: #ffa;
}
// :target {
// background-color: #ffa;
// }


.page-breadcrumbs .breadcrumb { .page-breadcrumbs .breadcrumb {
padding: 0px; padding: 0px;
@@ -311,11 +311,6 @@ a.active {
padding-left: 30px; padding-left: 30px;
} }



.page-content {
min-height: 400px;
}

@media (max-width: 767px) { @media (max-width: 767px) {
.page-content { .page-content {
min-height: 200px; min-height: 200px;


+ 9
- 6
frappe/templates/includes/list/list.js View File

@@ -3,13 +3,16 @@ frappe.ready(function() {
var result_wrapper = $(".website-list .result"); var result_wrapper = $(".website-list .result");


$(".website-list .btn-more").on("click", function() { $(".website-list .btn-more").on("click", function() {
var data = $.extend(get_query_params(), {
doctype: "{{ doctype }}",
txt: "{{ txt or '' }}",
limit_start: next_start,
pathname: location.pathname
});

return $.ajax({ return $.ajax({
url:"/api/method/frappe.templates.pages.list.get", url:"/api/method/frappe.templates.pages.list.get",
data: {
doctype: "{{ doctype }}",
txt: "{{ txt or '' }}",
limit_start: next_start
},
data: data,
statusCode: { statusCode: {
200: function(data) { 200: function(data) {
var data = data.message; var data = data.message;
@@ -28,4 +31,4 @@ frappe.ready(function() {
$(".website-list .more-block").addClass("hide"); $(".website-list .more-block").addClass("hide");
} }
}; };
})
});

+ 8
- 0
frappe/templates/pages/list.py View File

@@ -5,6 +5,7 @@ from __future__ import unicode_literals
import frappe import frappe
from frappe.model.base_document import get_controller from frappe.model.base_document import get_controller
from frappe.utils import cint from frappe.utils import cint
from frappe.website.render import resolve_path


no_cache = 1 no_cache = 1
no_sitemap = 1 no_sitemap = 1
@@ -30,7 +31,14 @@ def get(doctype, txt=None, limit_start=0, **kwargs):
limit_start = cint(limit_start) limit_start = cint(limit_start)
limit_page_length = 20 limit_page_length = 20
next_start = limit_start + limit_page_length next_start = limit_start + limit_page_length

filters = frappe._dict(kwargs) filters = frappe._dict(kwargs)
if filters.pathname:
# resolve additional filters from path
resolve_path(filters.pathname)
for key, val in frappe.local.form_dict.items():
if not (key in ("doctype", "txt", "limit_start") and key in filters):
filters[key] = val


controller = get_controller(doctype) controller = get_controller(doctype)
meta = frappe.get_meta(doctype) meta = frappe.get_meta(doctype)


+ 2
- 5
frappe/utils/jinja.py View File

@@ -91,11 +91,8 @@ def get_jloader():
if not frappe.local.jloader: if not frappe.local.jloader:
from jinja2 import ChoiceLoader, PackageLoader, PrefixLoader from jinja2 import ChoiceLoader, PackageLoader, PrefixLoader


apps = frappe.get_installed_apps()

# put frappe at the end
apps.remove("frappe")
apps.append("frappe")
apps = frappe.get_installed_apps(sort=True)
apps.reverse()


frappe.local.jloader = ChoiceLoader( frappe.local.jloader = ChoiceLoader(
# search for something like app/templates/... # search for something like app/templates/...


+ 2
- 1
frappe/website/context.py View File

@@ -42,6 +42,8 @@ def build_context(context):
"""get_context method of doc or module is supposed to render content templates and push it into context""" """get_context method of doc or module is supposed to render content templates and push it into context"""
context = frappe._dict(context) context = frappe._dict(context)
context.update(get_website_settings()) context.update(get_website_settings())
context.update(frappe.get_hooks("website_context") or {})
context.update(frappe.local.conf.get("website_context") or {})


# provide doc # provide doc
if context.doc: if context.doc:
@@ -75,7 +77,6 @@ def build_context(context):
context.children = module.get_children(context) context.children = module.get_children(context)


add_metatags(context) add_metatags(context)
context.update(frappe.get_hooks("website_context") or {})


# determine templates to be used # determine templates to be used
if not context.base_template_path: if not context.base_template_path:


+ 30
- 0
frappe/website/js/website.js View File

@@ -459,6 +459,36 @@ function get_url_arg(name) {
return decodeURIComponent(results[1]); return decodeURIComponent(results[1]);
} }


function get_query_params() {
var query_params = {};
var query_string = location.search.substring(1);
var query_list = query_string.split("&");
for (var i=0, l=query_list.length; i < l; i++ ){
var pair = query_list[i].split("=");
var key = pair[0];
if (!key) {
continue;
}

var value = pair[1];
if (typeof value === "string") {
value = decodeURIComponent(value);
}

if (key in query_params) {
if (typeof query_params[key] === undefined) {
query_params[key] = [];
} else if (typeof query_params[key] === "string") {
query_params[key] = [query_params[key]];
}
query_params[key].push(value);
} else {
query_params[key] = value;
}
}
return query_params;
}

function make_query_string(obj) { function make_query_string(obj) {
var query_params = []; var query_params = [];
$.each(obj, function(k, v) { query_params.push(encodeURIComponent(k) + "=" + encodeURIComponent(v)); }); $.each(obj, function(k, v) { query_params.push(encodeURIComponent(k) + "=" + encodeURIComponent(v)); });


Loading…
Cancel
Save