Redesigned templates. Now all templates must be inside templates/pages templates/generators
This commit is contained in:
parent
e9e427d54b
commit
87eed83ff3
77 changed files with 116 additions and 104 deletions
|
|
@ -102,6 +102,7 @@ def init(site, sites_path=None):
|
|||
local.rollback_observers = []
|
||||
local.module_app = None
|
||||
local.app_modules = None
|
||||
local.user = None
|
||||
|
||||
setup_module_map()
|
||||
|
||||
|
|
@ -263,8 +264,10 @@ def clear_cache(user=None, doctype=None):
|
|||
|
||||
def get_roles(username=None):
|
||||
import webnotes.profile
|
||||
if not username or username==session.user:
|
||||
return user.get_roles()
|
||||
if not local.session:
|
||||
return ["Guest"]
|
||||
elif not username or username==local.session.user:
|
||||
return local.user.get_roles()
|
||||
else:
|
||||
return webnotes.profile.Profile(username).get_roles()
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ wn.pages['applications'].onload = function(wrapper) {
|
|||
if(!r.exc) {
|
||||
msgprint("<i class='icon-ok'></i> Installed");
|
||||
msgprint("Refreshing...");
|
||||
setTimeout(2000, window.location.reload)
|
||||
setTimeout(window.location.reload, 2000)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -432,7 +432,7 @@ _f.Frm.prototype.refresh_field = function(fname) {
|
|||
}
|
||||
|
||||
_f.Frm.prototype.refresh_fields = function() {
|
||||
this.layout.refresh();
|
||||
this.layout.refresh(this.doc);
|
||||
this.layout.primary_button = $(this.wrapper).find(".btn-primary");
|
||||
|
||||
// cleanup activities after refresh
|
||||
|
|
@ -634,7 +634,7 @@ _f.Frm.prototype.save = function(save_action, callback, btn, on_error) {
|
|||
$(document.activeElement).blur();
|
||||
|
||||
// let any pending js process finish
|
||||
setTimeout(10, this._save(save_action, callback, btn, on_error));
|
||||
setTimeout(100, this._save(save_action, callback, btn, on_error));
|
||||
}
|
||||
|
||||
_f.Frm.prototype._save = function(save_action, callback, btn, on_error) {
|
||||
|
|
|
|||
|
|
@ -187,7 +187,7 @@ wn.ui.form.ControlInput = wn.ui.form.Control.extend({
|
|||
if(me.doctype && me.docname) {
|
||||
me.value = wn.model.get_value(me.doctype, me.docname, me.df.fieldname);
|
||||
}
|
||||
|
||||
|
||||
if(me.disp_status=="Write") {
|
||||
me.disp_area && $(me.disp_area).toggle(false);
|
||||
$(me.input_area).toggle(true);
|
||||
|
|
|
|||
|
|
@ -229,9 +229,7 @@ wn.ui.form.GridRow = Class.extend({
|
|||
|
||||
// refersh form fields
|
||||
if(this.show) {
|
||||
$.each(this.fields, function(i, f) {
|
||||
f.refresh();
|
||||
});
|
||||
this.layout.refresh(this.doc);
|
||||
}
|
||||
},
|
||||
make_static_display: function() {
|
||||
|
|
@ -400,54 +398,67 @@ wn.ui.form.GridRow = Class.extend({
|
|||
this.make_form();
|
||||
this.form_area.empty();
|
||||
|
||||
var me = this,
|
||||
make_row = function(label) {
|
||||
if(label)
|
||||
$('<div><h4 style="margin-bottom: 0px;"><b>'+ label +'</b></h4>\
|
||||
<hr style="margin-top: 10px;"></div>')
|
||||
.appendTo(me.form_area);
|
||||
|
||||
var row = $('<div class="row">')
|
||||
.appendTo(me.form_area);
|
||||
|
||||
var col_spans = 6;
|
||||
if(row.parents(".form-column:first").hasClass("col-md-6"))
|
||||
col_spans = 12;
|
||||
|
||||
var col1 = $('<div class="col-md-'+col_spans+'"></div>').appendTo(row),
|
||||
col2 = $('<div class="col-md-'+col_spans+'"></div>').appendTo(row);
|
||||
|
||||
return [col1, col2];
|
||||
},
|
||||
cols = make_row(),
|
||||
cnt = 0;
|
||||
|
||||
$.each(me.docfields, function(ci, df) {
|
||||
if(!df.hidden) {
|
||||
if(df.fieldtype=="Section Break") {
|
||||
cols = make_row(df.label);
|
||||
cnt = 0;
|
||||
return;
|
||||
}
|
||||
var fieldwrapper = $('<div>')
|
||||
.appendTo(cols[cnt % 2])
|
||||
var fieldobj = make_field(df, me.parent_df.options,
|
||||
fieldwrapper.get(0), me.frm);
|
||||
fieldobj.docname = me.doc.name;
|
||||
fieldobj.refresh();
|
||||
fieldobj.input &&
|
||||
$(fieldobj.input).css({"max-height": "100px"});
|
||||
|
||||
// set field properties
|
||||
// used for setting custom get queries in links
|
||||
if(me.grid.fieldinfo[df.fieldname])
|
||||
$.extend(fieldobj, me.grid.fieldinfo[df.fieldname]);
|
||||
|
||||
me.fields.push(fieldobj);
|
||||
me.fields_dict[df.fieldname] = fieldobj;
|
||||
cnt++;
|
||||
}
|
||||
this.layout = new wn.ui.form.Layout({
|
||||
fields: this.docfields,
|
||||
body: this.form_area,
|
||||
no_submit_on_enter: true,
|
||||
frm: this.frm,
|
||||
});
|
||||
this.layout.make();
|
||||
this.layout.refresh(this.doc)
|
||||
|
||||
this.fields = this.layout.fields;
|
||||
this.fields_dict = this.layout.fields_dict;
|
||||
|
||||
|
||||
// var me = this,
|
||||
// make_row = function(label) {
|
||||
// if(label)
|
||||
// $('<div><h4 style="margin-bottom: 0px;"><b>'+ label +'</b></h4>\
|
||||
// <hr style="margin-top: 10px;"></div>')
|
||||
// .appendTo(me.form_area);
|
||||
//
|
||||
// var row = $('<div class="row">')
|
||||
// .appendTo(me.form_area);
|
||||
//
|
||||
// var col_spans = 6;
|
||||
// if(row.parents(".form-column:first").hasClass("col-md-6"))
|
||||
// col_spans = 12;
|
||||
//
|
||||
// var col1 = $('<div class="col-md-'+col_spans+'"></div>').appendTo(row),
|
||||
// col2 = $('<div class="col-md-'+col_spans+'"></div>').appendTo(row);
|
||||
//
|
||||
// return [col1, col2];
|
||||
// },
|
||||
// cols = make_row(),
|
||||
// cnt = 0;
|
||||
//
|
||||
// $.each(me.docfields, function(ci, df) {
|
||||
// if(!df.hidden) {
|
||||
// if(df.fieldtype=="Section Break") {
|
||||
// cols = make_row(df.label);
|
||||
// cnt = 0;
|
||||
// return;
|
||||
// }
|
||||
// var fieldwrapper = $('<div>')
|
||||
// .appendTo(cols[cnt % 2])
|
||||
// var fieldobj = make_field(df, me.parent_df.options,
|
||||
// fieldwrapper.get(0), me.frm);
|
||||
// fieldobj.docname = me.doc.name;
|
||||
// fieldobj.refresh();
|
||||
// fieldobj.input &&
|
||||
// $(fieldobj.input).css({"max-height": "100px"});
|
||||
//
|
||||
// // set field properties
|
||||
// // used for setting custom get queries in links
|
||||
// if(me.grid.fieldinfo[df.fieldname])
|
||||
// $.extend(fieldobj, me.grid.fieldinfo[df.fieldname]);
|
||||
//
|
||||
// me.fields.push(fieldobj);
|
||||
// me.fields_dict[df.fieldname] = fieldobj;
|
||||
// cnt++;
|
||||
// }
|
||||
// });
|
||||
|
||||
this.toggle_add_delete_button_display(this.wrapper.find(".panel:first"));
|
||||
|
||||
|
|
|
|||
|
|
@ -36,13 +36,15 @@ wn.ui.form.Layout = Class.extend({
|
|||
this.wrapper.toggle(true);
|
||||
}
|
||||
},
|
||||
refresh: function() {
|
||||
refresh: function(doc) {
|
||||
var me = this;
|
||||
if(doc) this.doc = doc;
|
||||
$.each(this.fields_list, function(i, fieldobj) {
|
||||
if(me.frm) {
|
||||
fieldobj.docname = me.frm.docname;
|
||||
fieldobj.df = wn.meta.get_docfield(me.frm.doctype,
|
||||
fieldobj.df.fieldname, me.frm.docname);
|
||||
if(me.doc) {
|
||||
fieldobj.doctype = me.doc.doctype;
|
||||
fieldobj.docname = me.doc.name;
|
||||
fieldobj.df = wn.meta.get_docfield(me.doc.doctype,
|
||||
fieldobj.df.fieldname, me.doc.name);
|
||||
// on form change, permissions can change
|
||||
fieldobj.perm = me.frm.perm;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -184,10 +184,10 @@ $.extend(wn.model, {
|
|||
/* help: Set a value locally (if changed) and execute triggers */
|
||||
if(!name) name = doctype;
|
||||
var doc = locals[doctype] && locals[doctype][name] || null;
|
||||
|
||||
if(doc && doc[fieldname] !== value) {
|
||||
doc[fieldname] = value;
|
||||
// trigger this after an interval since this will stop propogation
|
||||
setTimeout(10, function() { wn.model.trigger(fieldname, value, doc); });
|
||||
wn.model.trigger(fieldname, value, doc);
|
||||
return true;
|
||||
} else {
|
||||
// execute link triggers (want to reselect to execute triggers)
|
||||
|
|
@ -206,7 +206,7 @@ $.extend(wn.model, {
|
|||
raise "CustomerAgeError";
|
||||
}
|
||||
}) */
|
||||
|
||||
console.log([doctype, fieldname])
|
||||
wn.provide("wn.model.events." + doctype);
|
||||
if(!wn.model.events[doctype][fieldname]) {
|
||||
wn.model.events[doctype][fieldname] = [];
|
||||
|
|
@ -215,12 +215,13 @@ $.extend(wn.model, {
|
|||
},
|
||||
|
||||
trigger: function(fieldname, value, doc) {
|
||||
|
||||
var run = function(events, event_doc) {
|
||||
$.each(events || [], function(i, fn) {
|
||||
fn && fn(fieldname, value, event_doc || doc);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
if(wn.model.events[doc.doctype]) {
|
||||
|
||||
// field-level
|
||||
|
|
|
|||
|
|
@ -151,8 +151,8 @@ class Session:
|
|||
else:
|
||||
self.start_as_guest()
|
||||
|
||||
webnotes.local.lang = webnotes.cache().get_value("lang:" + data.user,
|
||||
lambda: webnotes.translate.get_user_lang(data.user))
|
||||
webnotes.local.lang = webnotes.cache().get_value("lang:" + self.data.user,
|
||||
lambda: webnotes.translate.get_user_lang(self.data.user))
|
||||
|
||||
def get_session_record(self):
|
||||
"""get session record, or return the standard Guest Record"""
|
||||
|
|
|
|||
|
|
@ -27,10 +27,10 @@
|
|||
</head>
|
||||
<body>
|
||||
{% block banner %}{{ banner_html or "" }}{% endblock %}
|
||||
{% block navbar %}{% include "website/templates/includes/navbar.html" %}{% endblock %}
|
||||
{% block navbar %}{% include "templates/includes/navbar.html" %}{% endblock %}
|
||||
<div class="page-container" id="page-{{ name }}">
|
||||
{% block content %}{% endblock %}
|
||||
</div>
|
||||
{% block footer %}{% include "website/templates/includes/footer.html" %}{% endblock %}
|
||||
{% block footer %}{% include "templates/includes/footer.html" %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -15,21 +15,21 @@
|
|||
<!-- end blog content -->
|
||||
{% if blogger_info %}
|
||||
<hr />
|
||||
{% include "website/doctype/blog_post/templates/includes/blogger.html" %}
|
||||
{% include "templates/includes/blogger.html" %}
|
||||
{% endif %}
|
||||
<hr>
|
||||
<h3>Comments</h3>
|
||||
{% include 'website/templates/includes/comments.html' %}
|
||||
{% include 'templates/includes/comments.html' %}
|
||||
</div>
|
||||
<script>
|
||||
$(function() {
|
||||
if(window.logged_in && getCookie("system_user")==="yes") {
|
||||
wn.has_permission("Blog Post", "{{ name }}", "write", function(r) {
|
||||
wn.require("js/wn/website/editable.js");
|
||||
wn.require("assets/webnotes/js/wn/website/editable.js");
|
||||
wn.make_editable($('[itemprop="articleBody"]'), "Blog Post", "{{ name }}", "content");
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{% include 'website/doctype/blog_post/templates/includes/blog_footer.html' %}
|
||||
{% include 'templates/includes/blog_footer.html' %}
|
||||
{% endblock %}
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
{%- endif %}
|
||||
{%- endblock %}
|
||||
|
||||
{% include "website/doctype/website_slideshow/templates/includes/slideshow.html" %}
|
||||
{% include "templates/includes/slideshow.html" %}
|
||||
<div class="web-page-content" id="{{ name }}">
|
||||
{{ main_section or "" }}
|
||||
</div>
|
||||
|
|
@ -50,7 +50,7 @@
|
|||
{% if enable_comments -%}
|
||||
<hr>
|
||||
<h3>Discuss</h3>
|
||||
{% include 'website/templates/includes/comments.html' %}
|
||||
{% include 'templates/includes/comments.html' %}
|
||||
{%- endif %}
|
||||
{%- endblock %}
|
||||
</div>
|
||||
|
|
@ -58,7 +58,7 @@
|
|||
$(function() {
|
||||
if(window.logged_in && getCookie("system_user")==="yes") {
|
||||
wn.has_permission("Web Page", "{{ name }}", "write", function(r) {
|
||||
wn.require("js/wn/website/editable.js");
|
||||
wn.require("assets/webnotes/js/wn/website/editable.js");
|
||||
wn.make_editable($(".web-page-content"), "Web Page", "{{ name }}", "main_section");
|
||||
});
|
||||
}
|
||||
|
|
@ -28,7 +28,7 @@ var blog = {
|
|||
method: "GET",
|
||||
url: "/",
|
||||
data: {
|
||||
cmd: "website.doctype.blog_post.blog_post.get_blog_list",
|
||||
cmd: "webnotes.website.doctype.blog_post.blog_post.get_blog_list",
|
||||
start: blog.start,
|
||||
by: get_url_arg("by"),
|
||||
category: get_url_arg("category")
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
<div itemscope itemtype="http://schema.org/UserComments" id="comment-list">
|
||||
{% for comment in comment_list %}
|
||||
{% include "website/templates/includes/comment.html" %}
|
||||
{% include "templates/includes/comment.html" %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
|
|
@ -65,7 +65,7 @@ $(document).ready(function() {
|
|||
wn.call({
|
||||
btn: this,
|
||||
type: "POST",
|
||||
method: "website.templates.includes.comments.add_comment",
|
||||
method: "webnotes.templates.includes.comments.add_comment",
|
||||
args: args,
|
||||
callback: function(r) {
|
||||
if(r.exc) {
|
||||
|
|
@ -52,7 +52,7 @@ def add_comment(args=None):
|
|||
message='%(comment)s<p>By %(comment_by_fullname)s</p>' % args,
|
||||
ref_doctype=comment.doc.comment_doctype, ref_docname=comment.doc.comment_docname)
|
||||
|
||||
template = webnotes.get_template("lib/website/templates/includes/comment.html")
|
||||
template = webnotes.get_template("templates/includes/comment.html")
|
||||
|
||||
return template.render({"comment": comment.doc.fields})
|
||||
|
||||
|
|
@ -44,7 +44,7 @@
|
|||
{# powered #}
|
||||
<p class="text-right footer-powered">
|
||||
{% block powered %}
|
||||
<a href="http://getwebnotes.org" style="color: #aaa">Built on Web Notes</a>
|
||||
{% include "templates/includes/footer_powered.html" %}
|
||||
{% endblock %}
|
||||
</p>
|
||||
</div>
|
||||
|
|
@ -52,6 +52,6 @@
|
|||
</div>
|
||||
</section>
|
||||
<section>
|
||||
{% block extension %}{% endblock %}
|
||||
{% block extension %}{% include "templates/includes/footer_extension.html" %}{% endblock %}
|
||||
</section>
|
||||
</footer>
|
||||
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
{% block javascript %}
|
||||
<script>
|
||||
{% include "website/doctype/blog_post/templates/includes/blog.js" %}
|
||||
{% include "templates/includes/blog.js" %}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block css %}
|
||||
<style>
|
||||
{% include "website/doctype/blog_post/templates/includes/blog.css" %}
|
||||
{% include "templates/includes/blog.css" %}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
|
|
@ -33,5 +33,5 @@
|
|||
style="display:none;">More...</button>
|
||||
</div>
|
||||
</div>
|
||||
{% include 'website/doctype/blog_post/templates/includes/blog_footer.html' %}
|
||||
{% include 'templates/includes/blog_footer.html' %}
|
||||
{% endblock %}
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
{% block javascript %}
|
||||
<script>
|
||||
{% include "website/doctype/contact_us_settings/templates/includes/contact.js" %}
|
||||
{% include "templates/includes/contact.js" %}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
{% block javascript %}
|
||||
<script>
|
||||
{% include "website/templates/includes/login.js" %}
|
||||
{% include "templates/includes/login.js" %}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
|
|
@ -10,9 +10,9 @@
|
|||
{% endif %}
|
||||
<hr>
|
||||
{% for blogger_info in bloggers %}
|
||||
{% include "website/doctype/blog_post/templates/includes/blogger.html" %}
|
||||
{% include "templates/includes/blogger.html" %}
|
||||
{% if not loop.last %}<hr>{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% include 'website/doctype/blog_post/templates/includes/blog_footer.html' %}
|
||||
{% include 'templates/includes/blog_footer.html' %}
|
||||
{% endblock %}
|
||||
|
|
@ -39,21 +39,16 @@ def rebuild_website_sitemap_config():
|
|||
def build_website_sitemap_config(app):
|
||||
config = {"pages": {}, "generators":{}}
|
||||
basepath = webnotes.get_pymodule_path(app)
|
||||
for path, folders, files in os.walk(basepath, followlinks=True):
|
||||
for dontwalk in ('locale', 'public', '.git', app+".egg-info"):
|
||||
if dontwalk in folders:
|
||||
folders.remove(dontwalk)
|
||||
|
||||
if os.path.basename(path)=="pages" and os.path.basename(os.path.dirname(path))=="templates":
|
||||
for fname in files:
|
||||
|
||||
# pages
|
||||
for config_type in ("pages", "generators"):
|
||||
path = os.path.join(basepath, "templates", config_type)
|
||||
if os.path.exists(path):
|
||||
for fname in os.listdir(path):
|
||||
fname = webnotes.utils.cstr(fname)
|
||||
if fname.split(".")[-1] in ("html", "xml", "js", "css"):
|
||||
name = add_website_sitemap_config("Page", app, path, fname, basepath)
|
||||
|
||||
if os.path.basename(path)=="generators" and os.path.basename(os.path.dirname(path))=="templates":
|
||||
for fname in files:
|
||||
if fname.endswith(".html"):
|
||||
name = add_website_sitemap_config("Generator", app, path, fname, basepath)
|
||||
name = add_website_sitemap_config("Page" if config_type=="pages" else "Generator",
|
||||
app, path, fname, basepath)
|
||||
|
||||
webnotes.conn.commit()
|
||||
|
||||
|
|
@ -73,6 +68,7 @@ def add_website_sitemap_config(page_or_generator, app, path, fname, basepath):
|
|||
wsc.controller = app + "." + os.path.relpath(controller_path[:-3], basepath).replace(os.path.sep, ".")
|
||||
|
||||
if wsc.controller:
|
||||
# verbose print wsc.controller
|
||||
module = webnotes.get_module(wsc.controller)
|
||||
wsc.no_cache = getattr(module, "no_cache", 0)
|
||||
wsc.no_sitemap = wsc.no_cache or getattr(module, "no_sitemap", 0)
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
from __future__ import unicode_literals
|
||||
|
|
@ -105,7 +105,7 @@ def build_page(page_name):
|
|||
context.update(get_website_settings())
|
||||
|
||||
jenv = webnotes.get_jenv()
|
||||
context["base_template"] = jenv.get_template("portal/templates/base.html")
|
||||
context["base_template"] = jenv.get_template("templates/base.html")
|
||||
|
||||
template_name = page_options['template_path']
|
||||
context["_"] = webnotes._
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue