diff --git a/core/page/data_import_tool/data_import_tool.py b/core/page/data_import_tool/data_import_tool.py
index 8c8de8f254..52a5a8803f 100644
--- a/core/page/data_import_tool/data_import_tool.py
+++ b/core/page/data_import_tool/data_import_tool.py
@@ -330,7 +330,7 @@ def upload():
return [d]
def main_doc_empty(row):
- return not (row and len(row) > 2 and (row[1] or row[2]))
+ return not (row and ((len(row) > 1 and row[1]) or (len(row) > 2 and row[2])))
# extra input params
import json
diff --git a/core/page/desktop/desktop.js b/core/page/desktop/desktop.js
index 313d658052..8800e3881a 100644
--- a/core/page/desktop/desktop.js
+++ b/core/page/desktop/desktop.js
@@ -75,10 +75,13 @@ wn.core.pages.desktop.show_pending_notifications = function() {
var sum = 0;
if(module_doctypes) {
- $.each(module_doctypes, function(j, doctype) {
- sum += (wn.boot.notification_info.open_count_doctype[doctype] || 0);
- });
- } else if(wn.boot.notification_info.open_count_module[module]!=null) {
+ if(wn.boot.notification_info.open_count_doctype) {
+ $.each(module_doctypes, function(j, doctype) {
+ sum += (wn.boot.notification_info.open_count_doctype[doctype] || 0);
+ });
+ }
+ } else if(wn.boot.notification_info.open_count_module
+ && wn.boot.notification_info.open_count_module[module]!=null) {
sum = wn.boot.notification_info.open_count_module[module];
}
var notifier = $("#module-count-" + wn.modules[module]._link);
diff --git a/core/page/finder/finder.js b/core/page/finder/finder.js
index 2861e5d2d8..9a7d3c9662 100644
--- a/core/page/finder/finder.js
+++ b/core/page/finder/finder.js
@@ -35,10 +35,19 @@ wn.pages['finder'].onload = function(wrapper) {
var $list = get_col(6, "file", wn._("Documents"), "info");
var $doctype_label = $list.find(".col-heading")
+
+ var $list_link = $list.find(".panel-heading .pull-right")
+ .append('')
+ .find(".list-link")
+ .click(function() { wn.set_route("List", doctype); })
+ .toggle(false);
+
var $new_link = $list.find(".panel-heading .pull-right")
- .html('')
+ .append(' ')
+ .find(".new-link")
.click(function() { new_doc(doctype); })
.toggle(false);
+
$list = $list.find(".list-group");
var reset_module = function() {
@@ -52,6 +61,7 @@ wn.pages['finder'].onload = function(wrapper) {
var reset_doctype = function() {
$list.empty();
$new_link.toggle(false);
+ $list_link.toggle(false);
$doctype_label.html(wn._("Documents"));
$('
'+
wn._("Select Document Type")+'
').appendTo($list);
@@ -103,6 +113,7 @@ wn.pages['finder'].onload = function(wrapper) {
// new link
$new_link.toggle(!!wn.model.can_create(doctype));
+ $list_link.toggle(!!wn.model.can_read(doctype));
render_list();
})
diff --git a/public/html/web.py b/public/html/web.py
index 81b0edeb83..9552f78777 100755
--- a/public/html/web.py
+++ b/public/html/web.py
@@ -23,14 +23,15 @@ import conf
session_stopped = """
- Session Stopped
+ %(title)s
-
%(app_name)s: Upgrading...
+
%(app_name)s: %(title)s
We will be back in a few moments.
+
"""
@@ -48,12 +49,20 @@ def respond():
except webnotes.SessionStopped:
print "Content-type: text/html"
print
- print session_stopped % {"app_name": webnotes.get_config().app_name}
+ print session_stopped % {
+ "app_name": webnotes.get_config().app_name,
+ "trace": webnotes.getTraceback(),
+ "title": "Upgrading..."
+ }
except MySQLdb.ProgrammingError, e:
if e.args[0]==1146:
print "Content-type: text/html"
print
- print session_stopped % {"app_name": webnotes.get_config().app_name}
+ print session_stopped % {
+ "app_name": webnotes.get_config().app_name,
+ "trace": webnotes.getTraceback(),
+ "title": "Installing..."
+ }
else:
raise e
diff --git a/public/js/wn/model/meta.js b/public/js/wn/model/meta.js
index ce3c472ad2..d51775ed60 100644
--- a/public/js/wn/model/meta.js
+++ b/public/js/wn/model/meta.js
@@ -32,7 +32,7 @@ $.extend(wn.meta, {
if(!c[doctype][docname])
c[doctype][docname] = {};
- $.each(wn.meta.docfield_list[doctype], function(i, df) {
+ $.each(wn.meta.docfield_list[doctype] || [], function(i, df) {
c[doctype][docname][df.fieldname || df.label] = copy_dict(df);
})
},
diff --git a/webnotes/install_lib/install.py b/webnotes/install_lib/install.py
index a788941418..a594f03c6c 100755
--- a/webnotes/install_lib/install.py
+++ b/webnotes/install_lib/install.py
@@ -109,6 +109,8 @@ class Installer:
{'doctype':'Role', 'role_name': 'All', 'name': 'All'},
{'doctype':'Role', 'role_name': 'System Manager', 'name': 'System Manager'},
{'doctype':'Role', 'role_name': 'Report Manager', 'name': 'Report Manager'},
+ {'doctype':'Role', 'role_name': 'Website Manager', 'name': 'Website Manager'},
+ {'doctype':'Role', 'role_name': 'Blogger', 'name': 'Blogger'},
{'doctype':'Role', 'role_name': 'Guest', 'name': 'Guest'},
# profiles
@@ -130,14 +132,6 @@ class Installer:
doc.insert()
webnotes.conn.commit()
- # from webnotes.modules.import_file import import_files
- #
- # import_files([
- # ["core", "doctype", "docperm"],
- # ["core", "doctype", "docfield"],
- # ["core", "doctype", "doctype"],
- # ])
-
def set_all_patches_as_completed(self):
try:
from patches.patch_list import patch_list
diff --git a/webnotes/translate.py b/webnotes/translate.py
index e563ff265b..860eac48ba 100644
--- a/webnotes/translate.py
+++ b/webnotes/translate.py
@@ -45,13 +45,20 @@ def translate(lang=None):
os.remove('_lang_tmp.csv')
def get_all_languages():
- return [f[:-4] for f in os.listdir("app/translations") if f.endswith(".csv")]
+ try:
+ return [f[:-4] for f in os.listdir("app/translations") if f.endswith(".csv")]
+ except OSError, e:
+ if e.args[0]==2:
+ return []
+ else:
+ raise e
def get_lang_dict():
languages_path = os.path.join(get_base_path(), "app", "translations", "languages.json")
if os.path.exists(languages_path):
with open(languages_path, "r") as langfile:
return json.loads(langfile.read())
+ else: return {}
def update_translations():
"""