Added factory.js and minor fixes for loading Single DocTypes

This commit is contained in:
Anand Doshi 2014-09-12 14:17:48 +05:30
parent d6e1bb090d
commit 35fd8d99f7
4 changed files with 43 additions and 32 deletions

View file

@ -80,7 +80,12 @@ class Document(BaseDocument):
def load_from_db(self):
if not getattr(self, "_metaclass", False) and self.meta.issingle:
self.update(frappe.db.get_singles_dict(self.doctype))
single_doc = frappe.db.get_singles_dict(self.doctype)
if not single_doc:
single_doc = frappe.new_doc(self.doctype).as_dict()
single_doc["name"] = self.doctype
self.update(single_doc)
self.init_valid_columns()
self._fix_numeric_types()

View file

@ -107,6 +107,7 @@
"public/js/frappe/ui/tags.js",
"public/js/frappe/views/container.js",
"public/js/frappe/views/factory.js",
"public/js/frappe/views/pageview.js",
"public/js/frappe/views/doclistview.js",
"public/js/frappe/views/sidebar_stats.js",

View file

@ -73,34 +73,3 @@ frappe.views.Container = Class.extend({
return this.page;
}
});
frappe.views.Factory = Class.extend({
init: function(opts) {
$.extend(this, opts);
},
show: function() {
var page_name = frappe.get_route_str(),
me = this;
if(frappe.pages[page_name]) {
frappe.container.change_to(frappe.pages[page_name]);
} else {
var route = frappe.get_route();
if(route[1]) {
me.make(route);
} else {
frappe.show_not_found(route);
}
}
},
make_page: function(double_column) {
var page_name = frappe.get_route_str(),
page = frappe.container.add_page(page_name);
frappe.ui.make_app_page({
parent: page,
single_column: !double_column
});
frappe.container.change_to(page_name);
return page;
}
})

View file

@ -0,0 +1,36 @@
// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
// MIT License. See license.txt
frappe.provide('frappe.pages');
frappe.provide('frappe.views');
frappe.views.Factory = Class.extend({
init: function(opts) {
$.extend(this, opts);
},
show: function() {
var page_name = frappe.get_route_str(),
me = this;
if(frappe.pages[page_name] && page_name.indexOf("Form/")===-1) {
frappe.container.change_to(frappe.pages[page_name]);
} else {
var route = frappe.get_route();
if(route[1]) {
me.make(route);
} else {
frappe.show_not_found(route);
}
}
},
make_page: function(double_column) {
var page_name = frappe.get_route_str(),
page = frappe.container.add_page(page_name);
frappe.ui.make_app_page({
parent: page,
single_column: !double_column
});
frappe.container.change_to(page_name);
return page;
}
});