diff --git a/build.json b/build.json
index 17d38b31410..635e73d9dc4 100644
--- a/build.json
+++ b/build.json
@@ -37,7 +37,6 @@
{
"css/all-web.css": [
"lib/css/legacy/body.css",
- "lib/css/legacy/menus.css",
"lib/css/legacy/messages.css",
"lib/css/legacy/dialog.css",
"lib/css/bootstrap/headings.css",
@@ -53,7 +52,6 @@
{
"css/all-app.css": [
"lib/css/legacy/body.css",
- "lib/css/legacy/menus.css",
"lib/css/legacy/messages.css",
"lib/css/legacy/forms.css",
"lib/css/legacy/grid.css",
diff --git a/css/all-app.css b/css/all-app.css
index b49caedee90..f3a07ec9da2 100644
--- a/css/all-app.css
+++ b/css/all-app.css
@@ -230,59 +230,16 @@ div.std-footer-item {
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
-/*
- * lib/css/legacy/menus.css
- */
-/******** Menus - menu.js ************/
-
-ul.menu_toolbar {
- z-index: 30;
- padding: 0px;
- margin: 0px;
- margin-top: 1px;
+.avatar-small {
+ display: inline-block;
+ min-width: 29px;
+}
+.avatar-small img {
+ height: 24px;
+ margin-bottom: -7px;
+ max-width: 24px;
}
-ul.menu_toolbar li {
- list-style: none;
- margin: 0px;
- float: left;
-}
-
-.top_menu {
- margin: 0px;
- padding: 4px;
- cursor: pointer;
- color: #FFF;
- margin-right: 8px;
-}
-
-.top_menu_mo {
- background-color: #000;
-
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
-}
-
-div.menu_toolbar_dropdown {
- position: absolute;
- margin-top: 4px;
- margin-left: 8px;
- width: 140px;
- background-color: #FFF;
- color: #000;
- display: none;
- border: 2px solid #333;
- z-index: 31;
- overflow-y: auto;
- overflow-x: hidden;
-}
-
-div.dd_item {
- cursor: pointer;
- padding: 4px;
- background-color: #FFF;
-}
-div.dd_item_mo { background-color: #FE8; }
/*
* lib/css/legacy/messages.css
*/
@@ -2812,7 +2769,7 @@ body {
}
.erpnext-footer {
- margin: 3px auto;
+ margin: 11px auto;
text-align: center;
}
diff --git a/css/all-web.css b/css/all-web.css
index bebfe9a3347..967c32b65c1 100644
--- a/css/all-web.css
+++ b/css/all-web.css
@@ -230,59 +230,16 @@ div.std-footer-item {
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
-/*
- * lib/css/legacy/menus.css
- */
-/******** Menus - menu.js ************/
-
-ul.menu_toolbar {
- z-index: 30;
- padding: 0px;
- margin: 0px;
- margin-top: 1px;
+.avatar-small {
+ display: inline-block;
+ min-width: 29px;
+}
+.avatar-small img {
+ height: 24px;
+ margin-bottom: -7px;
+ max-width: 24px;
}
-ul.menu_toolbar li {
- list-style: none;
- margin: 0px;
- float: left;
-}
-
-.top_menu {
- margin: 0px;
- padding: 4px;
- cursor: pointer;
- color: #FFF;
- margin-right: 8px;
-}
-
-.top_menu_mo {
- background-color: #000;
-
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
-}
-
-div.menu_toolbar_dropdown {
- position: absolute;
- margin-top: 4px;
- margin-left: 8px;
- width: 140px;
- background-color: #FFF;
- color: #000;
- display: none;
- border: 2px solid #333;
- z-index: 31;
- overflow-y: auto;
- overflow-x: hidden;
-}
-
-div.dd_item {
- cursor: pointer;
- padding: 4px;
- background-color: #FFF;
-}
-div.dd_item_mo { background-color: #FE8; }
/*
* lib/css/legacy/messages.css
*/
@@ -1620,7 +1577,7 @@ body {
}
.erpnext-footer {
- margin: 3px auto;
+ margin: 11px auto;
text-align: center;
}
diff --git a/erpnext/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt b/erpnext/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt
index c628e83013b..510e92206f5 100644
--- a/erpnext/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt
+++ b/erpnext/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt
@@ -3,26 +3,26 @@
# These values are common in all dictionaries
{
- 'creation': '2011-12-21 11:02:04',
+ 'creation': '2012-01-13 11:41:18',
'docstatus': 0,
- 'modified': '2012-01-06 14:17:57',
- 'modified_by': 'Administrator',
- 'owner': 'Administrator'
+ 'modified': '2012-03-01 13:36:06',
+ 'modified_by': u'Administrator',
+ 'owner': u'Administrator'
},
# These values are common for all Print Format
{
- 'doc_type': 'Receivable Voucher',
+ 'doc_type': u'Receivable Voucher',
'doctype': 'Print Format',
- 'html': '\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n\t\n\t\n
\n\n\t\n\t\n
\n',
- 'module': 'Accounts',
+ 'html': u'\n\n\n\n\n\n\n\n\n\n\n\n\t\n\t\n
\n\n\t\n\t\n
\n\n\t\n\t\n
\n',
+ 'module': u'Accounts',
'name': '__common__',
- 'standard': 'Yes'
+ 'standard': u'Yes'
},
# Print Format, Sales Invoice Classic
{
'doctype': 'Print Format',
- 'name': 'Sales Invoice Classic'
+ 'name': u'Sales Invoice Classic'
}
]
\ No newline at end of file
diff --git a/erpnext/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt b/erpnext/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt
index 0b4c15c7473..3c44fc7eca6 100644
--- a/erpnext/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt
+++ b/erpnext/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt
@@ -3,26 +3,26 @@
# These values are common in all dictionaries
{
- 'creation': '2011-12-21 11:02:04',
+ 'creation': '2012-01-13 11:41:18',
'docstatus': 0,
- 'modified': '2012-01-06 14:18:11',
- 'modified_by': 'Administrator',
- 'owner': 'Administrator'
+ 'modified': '2012-03-01 13:36:24',
+ 'modified_by': u'Administrator',
+ 'owner': u'Administrator'
},
# These values are common for all Print Format
{
- 'doc_type': 'Receivable Voucher',
+ 'doc_type': u'Receivable Voucher',
'doctype': 'Print Format',
- 'html': '\n\n\n\n\n\n\n\n\n\n\n\n\t\n\t\n
\n\n\t\n\t\n
\n\n\t\n\t\n
\n',
- 'module': 'Accounts',
+ 'html': u'\n\n\n\n\n\n\n\n\n\n\n\n\t\n\t\n
\n\n\t\n\t\n
\n\n\t\n\t\n
\n',
+ 'module': u'Accounts',
'name': '__common__',
- 'standard': 'Yes'
+ 'standard': u'Yes'
},
# Print Format, Sales Invoice Modern
{
'doctype': 'Print Format',
- 'name': 'Sales Invoice Modern'
+ 'name': u'Sales Invoice Modern'
}
]
\ No newline at end of file
diff --git a/erpnext/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt b/erpnext/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt
index dc85a5f0788..b91f5cd9a6c 100644
--- a/erpnext/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt
+++ b/erpnext/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt
@@ -3,26 +3,26 @@
# These values are common in all dictionaries
{
- 'creation': '2011-12-21 11:02:04',
+ 'creation': '2012-01-13 11:41:18',
'docstatus': 0,
- 'modified': '2012-01-06 14:18:25',
- 'modified_by': 'Administrator',
- 'owner': 'Administrator'
+ 'modified': '2012-03-01 13:36:52',
+ 'modified_by': u'Administrator',
+ 'owner': u'Administrator'
},
# These values are common for all Print Format
{
- 'doc_type': 'Receivable Voucher',
+ 'doc_type': u'Receivable Voucher',
'doctype': 'Print Format',
- 'html': '\n\n\n\n\n\n\n\n\n\n\n\n\t\n\t\n
\n\n\t\n\t\n
\n\n\t\n\t\n
\n',
- 'module': 'Accounts',
+ 'html': u'\n\n\n\n\n\n\n\n\n\n\n\n\t\n\t\n
\n\n\t\n\t\n
\n\n\t\n\t\n
\n',
+ 'module': u'Accounts',
'name': '__common__',
- 'standard': 'Yes'
+ 'standard': u'Yes'
},
# Print Format, Sales Invoice Spartan
{
'doctype': 'Print Format',
- 'name': 'Sales Invoice Spartan'
+ 'name': u'Sales Invoice Spartan'
}
]
\ No newline at end of file
diff --git a/erpnext/home/page/activity/activity.js b/erpnext/home/page/activity/activity.js
index d8e22ce8096..9a323d3ec11 100644
--- a/erpnext/home/page/activity/activity.js
+++ b/erpnext/home/page/activity/activity.js
@@ -15,8 +15,7 @@ erpnext.ActivityFeed = Class.extend({
this.scrub_data(data);
this.add_date_separator(row, data);
$(row).append(sprintf('\
-
s)
\
+
s)
\
%(feed_type)s\
%(link)s %(subject)s
%(by)s ', data));
},
diff --git a/erpnext/home/page/attributions/__init__.py b/erpnext/home/page/attributions/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/erpnext/home/page/attributions/attributions.css b/erpnext/home/page/attributions/attributions.css
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/erpnext/home/page/attributions/attributions.html b/erpnext/home/page/attributions/attributions.html
new file mode 100644
index 00000000000..72703c85e62
--- /dev/null
+++ b/erpnext/home/page/attributions/attributions.html
@@ -0,0 +1,91 @@
+
+
×
+
Attributions
+
+
Source Code:
+ https://github.com/webnotes/erpnext
+
Website:
+ https://erpnext.com
+
+
ERPNext is an Open Source project and is possible because of the work of
+ thousands of software developers, companies and designers who have contributed their
+ work to the community. We have tried to list as many projects as possible that are
+ used by ERPNext, but this list may not be exhaustive.
+
+
+
Server
+
+ - Linux (GNU)
+ - Apache HTTPD server (web server)
+ - MySQL (database, Percona build)
+ - Git (source code control via Github)
+
+
+
Programming Languages & Libraries
+
+ - Python
+
+ - Python-MySQL
+ - pytz (timezones)
+ - jinja2 (templating)
+ - markdown2 (markdown parser)
+ - jsmin (javascript minifier)
+
+ - Javascript
+
+ - JQuery
+ - JQuery UI (datepicker, sortable)
+ - TinyMCE - text editor
+ - Twitter Bootstrap
+ - jQPlot - graphs
+ - JSON2 - JSON builder, parser
+ - JSColor - color picker
+ - sprintf - string formatting
+ - historyjs - AJAX history
+
+
+
+
CSS Frameworks
+
+
+
Icons
+
+ - The Noun Project
+ - Glyphicons
+
+
+
Web Frameworks
+
+
+
Web Browsers
+
+ - Mozilla Firefox
+
+ - Apple Safari
+ - Google Chorme
+
+
+
ERPNext License
+
ERPNext - Open Source, web based ERP
+
Copyright © 2008 onwards, Web Notes Technologies Pvt Ltd, India
+
+
This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+
This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+
For complete license see http://www.gnu.org/licenses/
+
+
For more information please write to us at support@erpnext.com
+
\ No newline at end of file
diff --git a/erpnext/home/page/attributions/attributions.js b/erpnext/home/page/attributions/attributions.js
new file mode 100644
index 00000000000..fc567844311
--- /dev/null
+++ b/erpnext/home/page/attributions/attributions.js
@@ -0,0 +1 @@
+wn.pages['attributions'].onload = function(wrapper) { }
\ No newline at end of file
diff --git a/erpnext/home/page/attributions/attributions.py b/erpnext/home/page/attributions/attributions.py
new file mode 100644
index 00000000000..f807eb0a4d4
--- /dev/null
+++ b/erpnext/home/page/attributions/attributions.py
@@ -0,0 +1 @@
+import webnotes
\ No newline at end of file
diff --git a/erpnext/home/page/attributions/attributions.txt b/erpnext/home/page/attributions/attributions.txt
new file mode 100644
index 00000000000..a15adb97b79
--- /dev/null
+++ b/erpnext/home/page/attributions/attributions.txt
@@ -0,0 +1,28 @@
+# Page, attributions
+[
+
+ # These values are common in all dictionaries
+ {
+ 'creation': '2012-03-01 12:30:42',
+ 'docstatus': 0,
+ 'modified': '2012-03-01 12:30:42',
+ 'modified_by': u'Administrator',
+ 'owner': u'Administrator'
+ },
+
+ # These values are common for all Page
+ {
+ 'doctype': 'Page',
+ 'module': u'Home',
+ 'name': '__common__',
+ 'page_name': u'attributions',
+ 'standard': u'Yes',
+ 'title': u'Attributions'
+ },
+
+ # Page, attributions
+ {
+ 'doctype': 'Page',
+ 'name': u'attributions'
+ }
+]
\ No newline at end of file
diff --git a/erpnext/patches/jan_mar_2012/add_roles_to_admin.py b/erpnext/patches/jan_mar_2012/add_roles_to_admin.py
new file mode 100644
index 00000000000..402675ae2cd
--- /dev/null
+++ b/erpnext/patches/jan_mar_2012/add_roles_to_admin.py
@@ -0,0 +1,10 @@
+def execute():
+ """
+ Adds various roles to Administrator. This patch is for making master db
+ ready for on premise installation
+ """
+ import webnotes
+ from webnotes.model.code import get_obj
+ from webnotes.model.doc import Document
+ sc = get_obj('Setup Control', 'Setup Control')
+ sc.add_roles(Document('Profile', 'Administrator'))
diff --git a/erpnext/patches/jan_mar_2012/label_cleanup.py b/erpnext/patches/jan_mar_2012/label_cleanup.py
index a6aae9ad555..93536fa2b90 100644
--- a/erpnext/patches/jan_mar_2012/label_cleanup.py
+++ b/erpnext/patches/jan_mar_2012/label_cleanup.py
@@ -40,3 +40,8 @@ def execute():
delete_doc('DocType', 'Update Delivery Date Detail')
+ # Reload print formats
+ reload_doc('accounts', 'Print Format', 'Sales Invoice Classic')
+ reload_doc('accounts', 'Print Format', 'Sales Invoice Modern')
+ reload_doc('accounts', 'Print Format', 'Sales Invoice Spartan')
+
diff --git a/erpnext/patches/jan_mar_2012/navupdate.py b/erpnext/patches/jan_mar_2012/navupdate.py
index 8f5250ef9e9..1cfa879ad36 100644
--- a/erpnext/patches/jan_mar_2012/navupdate.py
+++ b/erpnext/patches/jan_mar_2012/navupdate.py
@@ -35,6 +35,7 @@ def execute():
reload_doc('setup', 'page', 'modules_setup')
reload_doc('utilities', 'page', 'users')
reload_doc('home', 'page', 'activity')
+ reload_doc('home', 'page', 'attributions')
reload_doc('core', 'doctype', 'profile')
# update user_image in profile
diff --git a/erpnext/patches/jan_mar_2012/website/file_data_rename.py b/erpnext/patches/jan_mar_2012/website/file_data_rename.py
index 481a530aeb4..dc4110bbc5c 100644
--- a/erpnext/patches/jan_mar_2012/website/file_data_rename.py
+++ b/erpnext/patches/jan_mar_2012/website/file_data_rename.py
@@ -69,3 +69,12 @@ def replace_file_list_column_entries():
if file_list and "/" in file_list:
webnotes.conn.sql("UPDATE `%s` SET file_list='%s' WHERE name='%s'" \
% (tab, file_list.replace('/', '-'), name))
+
+ singles = webnotes.conn.sql("""SELECT doctype, value FROM `tabSingles`
+ WHERE field='file_list'""")
+ for doctype, file_list in singles:
+ if file_list and "/" in file_list:
+ webnotes.conn.sql("""UPDATE `tabSingles` SET value='%s'
+ WHERE doctype='%s' AND field='file_list'"""
+ % (file_list.replace('/', '-'), doctype))
+
diff --git a/erpnext/patches/patch_list.py b/erpnext/patches/patch_list.py
index 6c66f75c52d..021cf0042bf 100644
--- a/erpnext/patches/patch_list.py
+++ b/erpnext/patches/patch_list.py
@@ -157,4 +157,14 @@ patch_list = [
'patch_file': 'navupdate',
'description': 'New Navigation Pages'
},
+ {
+ 'patch_module': 'patches.jan_mar_2012',
+ 'patch_file': 'label_cleanup',
+ 'description': 'Remove extra fields and new dynamic labels'
+ },
+ {
+ 'patch_module': 'patches.jan_mar_2012',
+ 'patch_file': 'add_roles_to_admin',
+ 'description': 'Add Roles to Administrator'
+ },
]
diff --git a/erpnext/patches/print_formats/SalesInvoiceClassic.html b/erpnext/patches/print_formats/SalesInvoiceClassic.html
index 78cb8155ff9..d40f80152b4 100644
--- a/erpnext/patches/print_formats/SalesInvoiceClassic.html
+++ b/erpnext/patches/print_formats/SalesInvoiceClassic.html
@@ -200,7 +200,7 @@
| Invoice Date |
- |
+ |
| Due Date |
diff --git a/erpnext/patches/print_formats/SalesInvoiceModern.html b/erpnext/patches/print_formats/SalesInvoiceModern.html
index cef84ac6a20..ac664234956 100644
--- a/erpnext/patches/print_formats/SalesInvoiceModern.html
+++ b/erpnext/patches/print_formats/SalesInvoiceModern.html
@@ -227,7 +227,7 @@
| Invoice Date |
- |
+ |
| Due Date |
diff --git a/erpnext/patches/print_formats/SalesInvoiceSpartan.html b/erpnext/patches/print_formats/SalesInvoiceSpartan.html
index 7d13674f9a5..81e1c380fe3 100644
--- a/erpnext/patches/print_formats/SalesInvoiceSpartan.html
+++ b/erpnext/patches/print_formats/SalesInvoiceSpartan.html
@@ -222,7 +222,7 @@
| Invoice Date |
- |
+ |
| Due Date |
diff --git a/erpnext/startup/js/modules.js b/erpnext/startup/js/modules.js
index add068c75f9..d43b0210b35 100644
--- a/erpnext/startup/js/modules.js
+++ b/erpnext/startup/js/modules.js
@@ -32,7 +32,7 @@ erpnext.module_page.hide_links = function(wrapper) {
$(wrapper).find('[href*="List/"]').each(function() {
var href = $(this).attr('href');
var dt = href.split('/')[1];
- if(wn.boot.profile.can_read.indexOf(get_label_doctype(dt))==-1) {
+ if(wn.boot.profile.all_read.indexOf(get_label_doctype(dt))==-1) {
var txt = $(this).text();
$(this).parent().css('color', '#999').html(txt);
}
@@ -41,7 +41,7 @@ erpnext.module_page.hide_links = function(wrapper) {
// reports
$(wrapper).find('[data-doctype]').each(function() {
var dt = $(this).attr('data-doctype');
- if(wn.boot.profile.can_read.indexOf(dt)==-1) {
+ if(wn.boot.profile.all_read.indexOf(dt)==-1) {
var txt = $(this).text();
$(this).parent().css('color', '#999').html(txt);
}
@@ -51,7 +51,7 @@ erpnext.module_page.hide_links = function(wrapper) {
$(wrapper).find('[href*="Form/"]').each(function() {
var href = $(this).attr('href');
var dt = href.split('/')[1];
- if(wn.boot.profile.can_read.indexOf(get_label_doctype(dt))==-1) {
+ if(wn.boot.profile.all_read.indexOf(get_label_doctype(dt))==-1) {
var txt = $(this).text();
$(this).parent().css('color', '#999').html(txt);
}
diff --git a/erpnext/startup/startup.css b/erpnext/startup/startup.css
index ae0ef606f17..1ce026449b5 100644
--- a/erpnext/startup/startup.css
+++ b/erpnext/startup/startup.css
@@ -16,7 +16,7 @@ body {
}
.erpnext-footer {
- margin: 3px auto;
+ margin: 11px auto;
text-align: center;
}
diff --git a/erpnext/startup/startup.js b/erpnext/startup/startup.js
index 9a281e25e83..568714561d8 100644
--- a/erpnext/startup/startup.js
+++ b/erpnext/startup/startup.js
@@ -62,7 +62,7 @@ erpnext.startup.start = function() {
} else {
// always allow apps
wn.boot.profile.allow_modules = wn.boot.profile.allow_modules.concat(
- ['To Do', 'Knowledge Base', 'Calendar', 'Activity'])
+ ['To Do', 'Knowledge Base', 'Calendar', 'Activity', 'Messages'])
// setup toolbar
erpnext.toolbar.setup();
@@ -73,7 +73,7 @@ erpnext.startup.start = function() {
// border to the body
// ------------------
$('footer').html('');
+ ERPNext | Attributions and License');
// complete registration
if(in_list(user_roles,'System Manager') && (wn.boot.setup_complete=='No')) {
diff --git a/erpnext/utilities/page/messages/messages.py b/erpnext/utilities/page/messages/messages.py
index 8e92ff9ec94..b28299164c2 100644
--- a/erpnext/utilities/page/messages/messages.py
+++ b/erpnext/utilities/page/messages/messages.py
@@ -48,7 +48,8 @@ def get_list(arg=None):
@webnotes.whitelist()
def get_active_users(arg=None):
return webnotes.conn.sql("""select name from tabProfile
- where enabled=1 and
+ where ifnull(enabled,0)=1 and
+ docstatus < 2 and
name not in ('Administrator', 'Guest')
order by first_name""", as_dict=1)
diff --git a/js/all-app.js b/js/all-app.js
index 3c65618e1a1..6ecae7c972d 100644
--- a/js/all-app.js
+++ b/js/all-app.js
@@ -1717,7 +1717,7 @@ f.hide_save=function(){$dh(me.page_layout.footer.save_area);}}
_f.Frm.prototype.setup_fields_std=function(){var fl=fields_list[this.doctype];fl.sort(function(a,b){return a.idx-b.idx});if(fl[0]&&fl[0].fieldtype!="Section Break"||get_url_arg('embed')){this.layout.addrow();if(fl[0].fieldtype!="Column Break"){var c=this.layout.addcell();$y(c.wrapper,{padding:'8px'});}}
var sec;for(var i=0;i | |