diff --git a/py/core/doctype/customize_form/customize_form.js b/py/core/doctype/customize_form/customize_form.js index 5cd43a1ae6..c2fcbc3f36 100644 --- a/py/core/doctype/customize_form/customize_form.js +++ b/py/core/doctype/customize_form/customize_form.js @@ -33,9 +33,10 @@ cur_frm.cscript.onload = function(doc, dt, dn) { cur_frm.cscript.refresh = function(doc, dt, dn) { //console.log(p) - $(cur_frm.frm_head.timestamp_area).toggle(false); - $(cur_frm.frm_head.page_head.buttons.Save).toggle(false); - $(cur_frm.page_layout.footer).toggle(false); + //$(cur_frm.frm_head.timestamp_area).toggle(false); + //$(cur_frm.frm_head.page_head.buttons.Save).toggle(false); + //$(cur_frm.page_layout.footer).toggle(false); + cur_frm.frm_head.appframe.clear_buttons(); cur_frm.add_custom_button('Update', function() { if(cur_frm.fields_dict['doc_type'].value) { @@ -43,17 +44,17 @@ cur_frm.cscript.refresh = function(doc, dt, dn) { if(r.exc) { msgprint(r.exc); } else { - wn.ui.toolbar.clear_cache(); if(r.server_messages) { cur_frm.cscript.doc_type(doc, doc.doctype, doc.name); } - cur_frm.frm_head.status_area.innerHTML = - 'Saved'; + this.$w.find('.label-area').html(repl('\ + %(lab_status)s', { + lab_status: 'Saved', + lab_class: 'label-success' + })); } }); } },1); - $(cur_frm.frm_head.page_head.buttons.Update).addClass('btn-info'); + //$(cur_frm.frm_head.page_head.buttons.Update).addClass('btn-info'); cur_frm.add_custom_button('Refresh Form', function() { cur_frm.cscript.doc_type(doc, dt, dn); @@ -65,10 +66,10 @@ cur_frm.cscript.refresh = function(doc, dt, dn) { }, 1); if(!doc.doc_type) { - var page_head = cur_frm.frm_head.page_head; - page_head.buttons['Update'].disabled = true; - page_head.buttons['Refresh Form'].disabled = true; - page_head.buttons['Reset to defaults'].disabled = true; + var frm_head = cur_frm.frm_head.appframe; + $(frm_head.buttons['Update']).attr('disabled', true); + $(frm_head.buttons['Refresh Form']).attr('disabled', true); + $(frm_head.buttons['Reset to defaults']).attr('disabled', true); } cur_frm.cscript.hide_allow_attach(doc, dt, dn); @@ -119,7 +120,6 @@ cur_frm.confirm = function(msg, doc, dt, dn) { 'Saved'; - wn.ui.toolbar.clear_cache(); } }); }); diff --git a/py/webnotes/install_lib/install.py b/py/webnotes/install_lib/install.py index 77f8a21f3d..092a4808b9 100755 --- a/py/webnotes/install_lib/install.py +++ b/py/webnotes/install_lib/install.py @@ -79,9 +79,9 @@ class Installer: # fresh app if 'Framework.sql' in source_path: - from webnotes.model.sync import sync_core_doctypes - print "Building tables from core module..." - sync_core_doctypes() + from webnotes.model.sync import sync_install + print "Building tables from all module..." + sync_install() # framework cleanups self.framework_cleanups(target) @@ -94,7 +94,6 @@ class Installer: import webnotes self.create_sessions_table() self.create_scheduler_log() - self.create_doctype_cache() self.create_session_cache() self.create_cache_item() @@ -127,15 +126,6 @@ class Installer: error text ) engine=MyISAM""") - def create_doctype_cache(self): - import webnotes - self.dbman.drop_table('__DocTypeCache') - webnotes.conn.sql("""create table `__DocTypeCache` ( - name VARCHAR(120), - modified DATETIME, - content TEXT, - server_code_compiled TEXT)""") - def create_session_cache(self): import webnotes self.dbman.drop_table('__SessionCache') diff --git a/py/webnotes/model/sync.py b/py/webnotes/model/sync.py index f7ffadf554..1702b95fcc 100644 --- a/py/webnotes/model/sync.py +++ b/py/webnotes/model/sync.py @@ -5,19 +5,26 @@ import webnotes def sync_all(force=0): - sync_core_doctypes(force) - sync_modules(force) - webnotes.conn.sql("DELETE FROM __CacheItem") + modules = [] + modules += sync_core_doctypes(force) + modules += sync_modules(force) + try: + webnotes.conn.begin() + webnotes.conn.sql("DELETE FROM __CacheItem") + webnotes.conn.commit() + except Exception, e: + if e[0]!=1146: raise e + return modules def sync_core_doctypes(force=0): import os import core # doctypes - walk_and_sync(os.path.abspath(os.path.dirname(core.__file__)), force) + return walk_and_sync(os.path.abspath(os.path.dirname(core.__file__)), force) def sync_modules(force=0): import conf - walk_and_sync(conf.modules_path, force) + return walk_and_sync(conf.modules_path, force) def walk_and_sync(start_path, force=0): """walk and sync all doctypes and pages""" @@ -46,9 +53,7 @@ def walk_and_sync(start_path, force=0): reload_doc(module_name, 'page', name) print module_name + ' | ' + doctype + ' | ' + name - # load install docs - load_install_docs(modules) - + return modules # docname in small letters with underscores @@ -124,6 +129,13 @@ def save_perms_if_none_exist(doclist): if d.get('doctype') != 'DocPerm': continue Document(fielddata=d).save(1, check_links=0, ignore_fields=1) +def sync_install(force=1): + # sync all doctypes + modules = sync_all(force) + + # load install docs + load_install_docs(modules) + def load_install_docs(modules): import os if isinstance(modules, basestring): modules = [modules] diff --git a/py/webnotes/widgets/form/load.py b/py/webnotes/widgets/form/load.py index 77737200a2..a2ae4c9168 100644 --- a/py/webnotes/widgets/form/load.py +++ b/py/webnotes/widgets/form/load.py @@ -130,4 +130,4 @@ def get_search_criteria(dt): for sc in sc_list: if sc[0]: dl += webnotes.model.doc.get('Search Criteria', sc[0]) - return dl \ No newline at end of file + return dl