diff --git a/js/legacy/utils/datatype.js b/js/legacy/utils/datatype.js index 49adfd28eb..36e8991b86 100644 --- a/js/legacy/utils/datatype.js +++ b/js/legacy/utils/datatype.js @@ -208,8 +208,18 @@ var rstrip = function(s, chars) { return s; } +function repl_all(s, s1, s2) { + var idx = s.indexOf(s1); + while (idx != -1){ + s = s.replace(s1, s2); + idx = s.indexOf(s1); + } + return s; +} function repl(s, dict) { - return sprintf(s, dict); + if(s==null)return ''; + for(key in dict) s = repl_all(s, '%('+key+')s', dict[key]); + return s; } ///// dict type diff --git a/js/legacy/widgets/form/form.js b/js/legacy/widgets/form/form.js index 90ad572483..da696ee72d 100644 --- a/js/legacy/widgets/form/form.js +++ b/js/legacy/widgets/form/form.js @@ -159,7 +159,12 @@ _f.Frm.prototype.setup_std_layout = function() { this.layout = new Layout(this.page_layout.body, '100%'); // sidebar - if(!this.in_dialog) { + if(this.in_dialog) { + // hide sidebar + $(this.page_layout.wrapper).removeClass('layout-wrapper-background'); + $(this.page_layout.main).removeClass('layout-main-section'); + $(this.page_layout.sidebar_area).toggle(false); + } else { this.setup_sidebar(); } diff --git a/py/core/doctype/profile/profile.txt b/py/core/doctype/profile/profile.txt index 3f117123e0..3c4ccf07e2 100644 --- a/py/core/doctype/profile/profile.txt +++ b/py/core/doctype/profile/profile.txt @@ -3,52 +3,54 @@ # These values are common in all dictionaries { - 'creation': '2009-05-12 11:19:11', + 'creation': '2011-08-25 17:35:27', 'docstatus': 0, - 'modified': '2011-08-25 14:02:26', - 'modified_by': 'Administrator', - 'owner': 'Administrator' + 'modified': '2012-02-29 17:09:18', + 'modified_by': u'Administrator', + 'owner': u'Administrator' }, # These values are common for all DocType { - '_last_update': '1311340897', + '_last_update': u'1323345145', 'allow_attach': 1, 'allow_copy': 0, 'allow_email': 0, 'allow_print': 0, - 'colour': 'White:FFF', + 'colour': u'White:FFF', + 'default_print_format': u'Standard', 'doctype': 'DocType', 'hide_heading': 0, 'hide_toolbar': 0, 'issingle': 0, 'istable': 0, 'max_attachments': 1, - 'module': 'Core', + 'module': u'Core', 'name': '__common__', - 'print_outline': 'Yes', + 'print_outline': u'Yes', 'read_only': 0, - 'search_fields': 'first_name, last_name', + 'search_fields': u'first_name, last_name', + 'section_style': u'Simple', 'show_in_menu': 0, - 'version': 32 + 'version': 33 }, # These values are common for all DocField { - 'doctype': 'DocField', + 'doctype': u'DocField', 'name': '__common__', - 'parent': 'Profile', - 'parentfield': 'fields', - 'parenttype': 'DocType' + 'parent': u'Profile', + 'parentfield': u'fields', + 'parenttype': u'DocType' }, # These values are common for all DocPerm { - 'doctype': 'DocPerm', + 'doctype': u'DocPerm', 'name': '__common__', - 'parent': 'Profile', - 'parentfield': 'permissions', - 'parenttype': 'DocType', + 'parent': u'Profile', + 'parentfield': u'permissions', + 'parenttype': u'DocType', 'read': 1, 'write': 1 }, @@ -56,94 +58,94 @@ # DocType, Profile { 'doctype': 'DocType', - 'name': 'Profile' + 'name': u'Profile' }, # DocPerm { 'cancel': 0, 'create': 1, - 'doctype': 'DocPerm', + 'doctype': u'DocPerm', 'execute': 0, 'permlevel': 0, - 'role': 'Administrator', + 'role': u'Administrator', 'submit': 0 }, # DocPerm { 'create': 1, - 'doctype': 'DocPerm', + 'doctype': u'DocPerm', 'permlevel': 0, - 'role': 'System Manager' + 'role': u'System Manager' }, # DocPerm { - 'doctype': 'DocPerm', + 'doctype': u'DocPerm', 'permlevel': 1, - 'role': 'Administrator' + 'role': u'Administrator' }, # DocPerm { - 'doctype': 'DocPerm', - 'match': 'owner', + 'doctype': u'DocPerm', + 'match': u'owner', 'permlevel': 0, - 'role': 'All' + 'role': u'All' }, # DocField { - 'default': '1', - 'doctype': 'DocField', - 'fieldname': 'enabled', - 'fieldtype': 'Check', - 'label': 'Enabled', - 'oldfieldname': 'enabled', - 'oldfieldtype': 'Check', + 'default': u'1', + 'doctype': u'DocField', + 'fieldname': u'enabled', + 'fieldtype': u'Check', + 'label': u'Enabled', + 'oldfieldname': u'enabled', + 'oldfieldtype': u'Check', 'permlevel': 1 }, # DocField { - 'doctype': 'DocField', - 'fieldname': 'password', - 'fieldtype': 'Password', - 'label': 'Password', - 'permlevel': 1, - 'hidden': 1 + 'doctype': u'DocField', + 'fieldname': u'password', + 'fieldtype': u'Password', + 'hidden': 1, + 'label': u'Password', + 'permlevel': 1 }, - + # DocField { - 'doctype': 'DocField', - 'fieldname': 'registered', - 'fieldtype': 'Check', - 'label': 'Registered', - 'permlevel': 0, - 'hidden': 1 + 'doctype': u'DocField', + 'fieldname': u'registered', + 'fieldtype': u'Check', + 'hidden': 1, + 'label': u'Registered', + 'permlevel': 0 }, # DocField { - 'doctype': 'DocField', - 'fieldname': 'unsubscribed', - 'fieldtype': 'Check', - 'label': 'Unsubscribed', - 'permlevel': 0, - 'hidden': 1 + 'doctype': u'DocField', + 'fieldname': u'unsubscribed', + 'fieldtype': u'Check', + 'hidden': 1, + 'label': u'Unsubscribed', + 'permlevel': 0 }, - + # DocField { - 'doctype': 'DocField', - 'fieldname': 'recent_documents', - 'fieldtype': 'Text', + 'doctype': u'DocField', + 'fieldname': u'recent_documents', + 'fieldtype': u'Text', 'hidden': 1, - 'label': 'Recent Documents', - 'oldfieldname': 'recent_documents', - 'oldfieldtype': 'Text', + 'label': u'Recent Documents', + 'oldfieldname': u'recent_documents', + 'oldfieldtype': u'Text', 'permlevel': 0, 'reqd': 0, 'search_index': 0 @@ -151,182 +153,179 @@ # DocField { - 'doctype': 'DocField', - 'fieldname': 'first_name', - 'fieldtype': 'Data', - 'label': 'First Name', - 'oldfieldname': 'first_name', - 'oldfieldtype': 'Data', + 'doctype': u'DocField', + 'fieldname': u'first_name', + 'fieldtype': u'Data', + 'label': u'First Name', + 'oldfieldname': u'first_name', + 'oldfieldtype': u'Data', 'permlevel': 0, 'reqd': 1 }, # DocField { - 'doctype': 'DocField', - 'fieldname': 'middle_name', - 'fieldtype': 'Data', - 'label': 'Middle Name (Optional)', - 'oldfieldname': 'middle_name', - 'oldfieldtype': 'Data', + 'doctype': u'DocField', + 'fieldname': u'middle_name', + 'fieldtype': u'Data', + 'label': u'Middle Name (Optional)', + 'oldfieldname': u'middle_name', + 'oldfieldtype': u'Data', 'permlevel': 0 }, # DocField { - 'doctype': 'DocField', - 'fieldname': 'last_name', - 'fieldtype': 'Data', - 'label': 'Last Name', - 'oldfieldname': 'last_name', - 'oldfieldtype': 'Data', + 'doctype': u'DocField', + 'fieldname': u'last_name', + 'fieldtype': u'Data', + 'label': u'Last Name', + 'oldfieldname': u'last_name', + 'oldfieldtype': u'Data', 'permlevel': 0 }, # DocField { - 'doctype': 'DocField', - 'fieldname': 'gender', - 'fieldtype': 'Select', - 'label': 'Gender', - 'oldfieldname': 'gender', - 'oldfieldtype': 'Select', - 'options': '\nMale\nFemale', + 'doctype': u'DocField', + 'fieldname': u'gender', + 'fieldtype': u'Select', + 'label': u'Gender', + 'oldfieldname': u'gender', + 'oldfieldtype': u'Select', + 'options': u'\nMale\nFemale', 'permlevel': 0, 'search_index': 0 }, # DocField { - 'doctype': 'DocField', - 'fieldtype': 'Column Break', - 'oldfieldtype': 'Column Break', + 'doctype': u'DocField', + 'fieldtype': u'Column Break', + 'oldfieldtype': u'Column Break', 'permlevel': 1, - 'width': '50%' + 'width': u'50%' }, # DocField { - 'doctype': 'DocField', - 'fieldname': 'email', - 'fieldtype': 'Data', + 'doctype': u'DocField', + 'fieldname': u'email', + 'fieldtype': u'Data', 'hidden': 0, - 'label': 'Email', - 'oldfieldname': 'email', - 'oldfieldtype': 'Data', + 'label': u'Email', + 'oldfieldname': u'email', + 'oldfieldtype': u'Data', 'permlevel': 0, 'reqd': 1, 'search_index': 0 }, - + # DocField { - 'doctype': 'DocField', - 'fieldname': 'bio', - 'fieldtype': 'Text', - 'label': 'Bio', - 'oldfieldname': 'bio', - 'oldfieldtype': 'Text', + 'doctype': u'DocField', + 'fieldname': u'bio', + 'fieldtype': u'Text', + 'hidden': 1, + 'label': u'Bio', + 'oldfieldname': u'bio', + 'oldfieldtype': u'Text', 'permlevel': 0, - 'search_index': 0, - 'hidden': 1 + 'search_index': 0 }, - # DocField { - 'doctype': 'DocField', - 'fieldname': 'interests', - 'fieldtype': 'Text', - 'label': 'Interests', - 'oldfieldname': 'interests', - 'oldfieldtype': 'Text', - 'permlevel': 0, - 'hidden': 1 + 'doctype': u'DocField', + 'fieldname': u'interests', + 'fieldtype': u'Text', + 'hidden': 1, + 'label': u'Interests', + 'oldfieldname': u'interests', + 'oldfieldtype': u'Text', + 'permlevel': 0 }, # DocField { - 'doctype': 'DocField', - 'fieldname': 'birth_date', - 'fieldtype': 'Date', - 'label': 'Birth Date', - 'oldfieldname': 'birth_date', - 'oldfieldtype': 'Date', + 'doctype': u'DocField', + 'fieldname': u'birth_date', + 'fieldtype': u'Date', + 'label': u'Birth Date', + 'oldfieldname': u'birth_date', + 'oldfieldtype': u'Date', 'permlevel': 0 }, - # DocField { - 'doctype': 'DocField', - 'fieldname': 'activities', - 'fieldtype': 'Text', - 'label': 'Activities', - 'oldfieldname': 'activities', - 'oldfieldtype': 'Text', - 'permlevel': 0, - 'hidden': 1 + 'doctype': u'DocField', + 'fieldname': u'activities', + 'fieldtype': u'Text', + 'hidden': 1, + 'label': u'Activities', + 'oldfieldname': u'activities', + 'oldfieldtype': u'Text', + 'permlevel': 0 }, # DocField { - 'doctype': 'DocField', - 'fieldname': 'messanger_status', - 'fieldtype': 'Data', - 'label': 'Messanger Status', - 'oldfieldname': 'messanger_status', - 'oldfieldtype': 'Data', + 'doctype': u'DocField', + 'fieldname': u'messanger_status', + 'fieldtype': u'Data', + 'label': u'Messanger Status', + 'oldfieldname': u'messanger_status', + 'oldfieldtype': u'Data', 'permlevel': 0, 'search_index': 0 }, # DocField { - 'doctype': 'DocField', - 'fieldname': 'user_type', - 'fieldtype': 'Select', - 'label': 'User Type', - 'oldfieldname': 'user_type', - 'oldfieldtype': 'Select', - 'options': '\nSystem User\nPartner', + 'doctype': u'DocField', + 'fieldname': u'user_type', + 'fieldtype': u'Select', + 'label': u'User Type', + 'oldfieldname': u'user_type', + 'oldfieldtype': u'Select', + 'options': u'\nSystem User\nPartner', 'permlevel': 0 }, - # DocField { - 'doctype': 'DocField', - 'fieldtype': 'Section Break', + 'doctype': u'DocField', + 'fieldtype': u'Section Break', 'hidden': 0, - 'oldfieldtype': 'Section Break', + 'oldfieldtype': u'Section Break', 'permlevel': 1, 'reqd': 0, 'search_index': 0 }, - + # DocField { - 'doctype': 'DocField', - 'fieldtype': 'Column Break', - 'label': 'Roles', - 'oldfieldtype': 'Column Break', + 'doctype': u'DocField', + 'fieldtype': u'Column Break', + 'label': u'Roles', + 'oldfieldtype': u'Column Break', 'permlevel': 1, - 'width': '50%' - }, + 'width': u'50%' + }, # DocField { - 'colour': 'White:FFF', - 'default': 'Simple', - 'doctype': 'DocField', - 'fieldname': 'userroles', - 'fieldtype': 'Table', + 'colour': u'White:FFF', + 'default': u'Simple', + 'doctype': u'DocField', + 'fieldname': u'userroles', + 'fieldtype': u'Table', 'hidden': 0, - 'label': 'User Roles', - 'oldfieldname': 'userroles', - 'oldfieldtype': 'Table', - 'options': 'UserRole', + 'label': u'User Roles', + 'oldfieldname': u'userroles', + 'oldfieldtype': u'Table', + 'options': u'UserRole', 'permlevel': 1, 'reqd': 0, 'search_index': 0 @@ -334,26 +333,26 @@ # DocField { - 'doctype': 'DocField', - 'fieldtype': 'Column Break', - 'label': 'System Defaults', - 'oldfieldtype': 'Column Break', + 'doctype': u'DocField', + 'fieldtype': u'Column Break', + 'label': u'System Defaults', + 'oldfieldtype': u'Column Break', 'permlevel': 1, - 'width': '50%' + 'width': u'50%' }, # DocField { - 'colour': 'White:FFF', - 'default': 'Simple', - 'doctype': 'DocField', - 'fieldname': 'defaults', - 'fieldtype': 'Table', + 'colour': u'White:FFF', + 'default': u'Simple', + 'doctype': u'DocField', + 'fieldname': u'defaults', + 'fieldtype': u'Table', 'hidden': 0, - 'label': 'Defaults', - 'oldfieldname': 'defaults', - 'oldfieldtype': 'Table', - 'options': 'DefaultValue', + 'label': u'Defaults', + 'oldfieldname': u'defaults', + 'oldfieldtype': u'Table', + 'options': u'DefaultValue', 'permlevel': 1, 'reqd': 0, 'search_index': 0 @@ -361,57 +360,58 @@ # DocField { - 'doctype': 'DocField', - 'fieldtype': 'Section Break', - 'label': 'Login Details', - 'oldfieldtype': 'Section Break', - 'permlevel': 0, + 'doctype': u'DocField', + 'fieldtype': u'Section Break', + 'label': u'Login Details', + 'oldfieldtype': u'Section Break', + 'permlevel': 0 }, # DocField { - 'doctype': 'DocField', - 'fieldname': 'login_before', - 'fieldtype': 'Int', - 'label': 'Login Before', + 'doctype': u'DocField', + 'fieldname': u'login_before', + 'fieldtype': u'Int', + 'label': u'Login Before', 'permlevel': 0 }, # DocField { - 'doctype': 'DocField', - 'fieldname': 'login_after', - 'fieldtype': 'Int', - 'label': 'Login After', + 'doctype': u'DocField', + 'fieldname': u'login_after', + 'fieldtype': u'Int', + 'label': u'Login After', 'permlevel': 0 }, # DocField { - 'doctype': 'DocField', - 'fieldname': 'restrict_ip', - 'fieldtype': 'Data', - 'label': 'Restrict IP', + 'doctype': u'DocField', + 'fieldname': u'restrict_ip', + 'fieldtype': u'Data', + 'label': u'Restrict IP', 'permlevel': 0 }, # DocField { - 'doctype': 'DocField', - 'fieldtype': 'Column Break', - 'oldfieldtype': 'Column Break', - 'width': '50%' + 'doctype': u'DocField', + 'fieldtype': u'Column Break', + 'oldfieldtype': u'Column Break', + 'permlevel': 0, + 'width': u'50%' }, # DocField { - 'doctype': 'DocField', - 'fieldname': 'last_login', - 'fieldtype': 'Read Only', + 'doctype': u'DocField', + 'fieldname': u'last_login', + 'fieldtype': u'Read Only', 'hidden': 0, - 'label': 'Last Login', - 'oldfieldname': 'last_login', - 'oldfieldtype': 'Read Only', + 'label': u'Last Login', + 'oldfieldname': u'last_login', + 'oldfieldtype': u'Read Only', 'permlevel': 0, 'reqd': 0, 'search_index': 0 @@ -419,24 +419,45 @@ # DocField { - 'doctype': 'DocField', - 'fieldname': 'last_ip', - 'fieldtype': 'Read Only', - 'label': 'Last IP', - 'oldfieldname': 'last_ip', - 'oldfieldtype': 'Read Only', + 'doctype': u'DocField', + 'fieldname': u'last_ip', + 'fieldtype': u'Read Only', + 'label': u'Last IP', + 'oldfieldname': u'last_ip', + 'oldfieldtype': u'Read Only', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': u'DocField', + 'fieldname': u'user_image', + 'fieldtype': u'Data', + 'hidden': 1, + 'label': u'User Image', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': u'DocField', + 'fieldname': u'background_image', + 'fieldtype': u'Data', + 'hidden': 1, + 'label': u'Background Image', 'permlevel': 0 }, # DocField { - 'doctype': 'DocField', - 'fieldname': 'file_list', - 'fieldtype': 'Text', + 'doctype': u'DocField', + 'fieldname': u'file_list', + 'fieldtype': u'Text', 'hidden': 1, - 'label': 'File List', - 'oldfieldname': 'file_list', - 'oldfieldtype': 'Text', + 'label': u'File List', + 'no_copy': 1, + 'oldfieldname': u'file_list', + 'oldfieldtype': u'Text', 'permlevel': 0 - } + } ] \ No newline at end of file diff --git a/py/webnotes/boot.py b/py/webnotes/boot.py index 7500eacb40..9c286bea8e 100644 --- a/py/webnotes/boot.py +++ b/py/webnotes/boot.py @@ -51,7 +51,7 @@ def get_bootinfo(): if webnotes.session['user'] != 'Guest': import webnotes.widgets.menus bootinfo['dt_labels'] = get_dt_labels() - bootinfo['user_fullnames'] = get_fullnames() + bootinfo['user_info'] = get_fullnames() # home page get_home_page(bootinfo, doclist) @@ -75,13 +75,13 @@ def get_bootinfo(): def get_fullnames(): """map of user fullnames""" import webnotes - ret = dict(webnotes.conn.sql("""select name, + ret = webnotes.conn.sql("""select name, concat(ifnull(first_name, ''), - if(ifnull(first_name, '')!='', ' ', ''), ifnull(last_name, '')) - from tabProfile where ifnull(enabled, 0)=1""")) - for key in ret: - if not ret[key]: - ret[key] = key + if(ifnull(first_name, '')!='', ' ', ''), ifnull(last_name, '')), user_image + from tabProfile where ifnull(enabled, 0)=1""") + d = {} + for r in ret: + d[r[0]]= {'fullname': r[1], 'image': r[2]} return ret diff --git a/py/webnotes/utils/file_manager.py b/py/webnotes/utils/file_manager.py index aefff114e1..594f7ab162 100644 --- a/py/webnotes/utils/file_manager.py +++ b/py/webnotes/utils/file_manager.py @@ -97,13 +97,10 @@ def remove_all(dt, dn): for afile in file_list.split('\n'): if afile: fname, fid = afile.split(',') - remove_file_list(dt, dn, fid) - delete_file(fid) + remove_file(dt, dn, fid) -def remove_file_list(dt, dn, fid): - """ - Remove fid from the give file_list - """ +def remove_file(dt, dn, fid): + """Remove fid from the give file_list""" # get the old file_list fl = webnotes.conn.get_value(dt, dn, 'file_list') or '' @@ -112,6 +109,9 @@ def remove_file_list(dt, dn, fid): for f in fl: if f.split(',')[1]!=fid: new_fl.append(f) + + # delete + delete_file(fid) # update the file_list webnotes.conn.set_value(dt, dn, 'file_list', '\n'.join(new_fl)) @@ -215,28 +215,18 @@ def write_file(fid, content): file.close() -# ------------------------------------------------------- def get_file_system_name(fname): # get system name from File Data table return webnotes.conn.sql("""select name, file_name from `tabFile Data` where name=%s or file_name=%s""", (fname, fname)) -# ------------------------------------------------------- -def delete_file(fname, verbose=0): +def delete_file(fid, verbose=0): + """delete file from file system""" import os - - for f in get_file_system_name(fname): - webnotes.conn.sql("delete from `tabFile Data` where name=%s", f[0]) - - # delete file - file_id = f[0].replace('/','-') - try: - os.remove(os.path.join(webnotes.get_files_path(), file_id)) - except OSError, e: - if e.args[0]!=2: - raise e - - if verbose: webnotes.msgprint('File Deleted') + webnotes.conn.sql("delete from `tabFile Data` where name=%s", fid) + path = os.path.join(webnotes.get_files_path(), fid.replace('/','-')) + if os.path.exists(path): + os.remove(path) # Get File # ------------------------------------------------------- @@ -258,26 +248,5 @@ def get_file(fname): return [file_name, content] -# Conversion Patch -# ------------------------------------------------------- - -def convert_to_files(verbose=0): - - # nfiles - fl = webnotes.conn.sql("select name from `tabFile Data`") - for f in fl: - # get the blob - blob = webnotes.conn.sql("select blob_content from `tabFile Data` where name=%s", f[0])[0][0] - - if blob: - - if hasattr(blob, 'tostring'): - blob = blob.tostring() - - # write the file - write_file(f[0], blob) - - if verbose: - webnotes.msgprint('%s updated' % f[0]) # ------------------------------------------------------- diff --git a/py/webnotes/widgets/form/utils.py b/py/webnotes/widgets/form/utils.py index a97f34a7f8..736cbef06d 100644 --- a/py/webnotes/widgets/form/utils.py +++ b/py/webnotes/widgets/form/utils.py @@ -28,10 +28,9 @@ def remove_attach(): import webnotes.utils.file_manager fid = webnotes.form.getvalue('fid') - webnotes.utils.file_manager.delete_file(fid, verbose=1) - + # remove from dt dn - return str(webnotes.utils.file_manager.remove_file_list(webnotes.form.getvalue('dt'), webnotes.form.getvalue('dn'), fid)) + return str(webnotes.utils.file_manager.remove_file(webnotes.form.getvalue('dt'), webnotes.form.getvalue('dn'), fid)) @webnotes.whitelist() def get_fields():