Redesigned templates. Now all templates must be inside templates/pages templates/generators

This commit is contained in:
Rushabh Mehta 2013-12-25 15:18:48 +05:30
parent e9e427d54b
commit 87eed83ff3
77 changed files with 116 additions and 104 deletions

View file

@ -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()

View file

@ -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)
}
}
})

View file

@ -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) {

View file

@ -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);

View file

@ -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"));

View file

@ -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;
};

View file

@ -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

View file

@ -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"""

View file

@ -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>

View file

@ -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 %}

View file

@ -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");
});
}

View file

@ -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")

View file

@ -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) {

View file

@ -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})

View file

@ -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>

View file

@ -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 %}

View file

@ -2,7 +2,7 @@
{% block javascript %}
<script>
{% include "website/doctype/contact_us_settings/templates/includes/contact.js" %}
{% include "templates/includes/contact.js" %}
</script>
{% endblock %}

View file

@ -5,7 +5,7 @@
{% block javascript %}
<script>
{% include "website/templates/includes/login.js" %}
{% include "templates/includes/login.js" %}
</script>
{% endblock %}

View file

@ -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 %}

View file

@ -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)

View file

@ -1 +0,0 @@
from __future__ import unicode_literals

View file

@ -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._