Merge branch 'master' of github.com:webnotes/erpnext

This commit is contained in:
Anand Doshi 2012-12-24 18:08:16 +05:30
commit a0713196d2
22 changed files with 172 additions and 145 deletions

View File

@ -22,7 +22,8 @@
pscript['onload_Accounts Browser'] = function(wrapper){
wrapper.appframe = new wn.ui.AppFrame($(wrapper).find('.appframe-area'));
wrapper.appframe.add_module_tab("Accounts");
wrapper.appframe.add_home_breadcrumb()
wrapper.appframe.add_module_breadcrumb("Accounts")
if (wn.boot.profile.can_create.indexOf("Company") !== -1) {
wrapper.appframe.add_button('New Company', function() { newdoc('Company'); },

View File

@ -24,7 +24,9 @@ wn.pages['financial-analytics'].onload = function(wrapper) {
});
erpnext.trial_balance = new erpnext.FinancialAnalytics(wrapper, 'Financial Analytics');
wrapper.appframe.add_module_tab("Accounts");
wrapper.appframe.add_home_breadcrumb()
wrapper.appframe.add_module_breadcrumb("Accounts")
wrapper.appframe.add_breadcrumb("icon-bar-chart")
}
erpnext.FinancialAnalytics = erpnext.AccountTreeGrid.extend({

View File

@ -23,7 +23,9 @@ wn.pages['general-ledger'].onload = function(wrapper) {
erpnext.general_ledger = new erpnext.GeneralLedger(wrapper);
wrapper.appframe.add_module_tab("Accounts");
wrapper.appframe.add_home_breadcrumb()
wrapper.appframe.add_module_breadcrumb("Accounts")
wrapper.appframe.add_breadcrumb("icon-bar-chart")
}

View File

@ -56,5 +56,7 @@ wn.pages['trial-balance'].onload = function(wrapper) {
})
erpnext.trial_balance = new TrialBalance(wrapper, 'Trial Balance');
wrapper.appframe.add_module_tab("Accounts");
wrapper.appframe.add_home_breadcrumb()
wrapper.appframe.add_module_breadcrumb("Accounts")
wrapper.appframe.add_breadcrumb("icon-bar-chart")
}

View File

@ -23,7 +23,9 @@ wn.pages['purchase-analytics'].onload = function(wrapper) {
new erpnext.PurchaseAnalytics(wrapper);
wrapper.appframe.add_module_tab("Buying");
wrapper.appframe.add_home_breadcrumb()
wrapper.appframe.add_module_breadcrumb("Buying")
wrapper.appframe.add_breadcrumb("icon-bar-chart")
}
erpnext.PurchaseAnalytics = wn.views.TreeGridReport.extend({

View File

@ -0,0 +1,6 @@
.layout-attributions table {
width: 70%;
}
.layout-attributions td:first-child {
width: 30%;
}

View File

@ -1,83 +1,99 @@
<div class="layout-wrapper">
<a class="close" onclick="window.history.back();">&times;</a>
<h1>Attributions</h1>
<div class="layout-wrapper layout-wrapper-appframe layout-attributions">
<div class="layout-appframe"></div>
<div class="layout-main">
<h3>ERPNext is made using these Awesome Open Source Projects <i class="icon-heart" style="color: red"></i></h3>
<hr>
<p><b>Source Code:</b> <a href="https://github.com/webnotes/erpnext">
https://github.com/webnotes/erpnext</a></p>
<p><b>Website:</b> <a href="https://erpnext.com">
https://erpnext.com</a></p>
<table class="table table-bordered table-striped">
<tbody>
<tr>
<td><a href="https://github.com/webnotes/wnframework">wnframework</a></td>
<td>The full stack Python + Javascript web application framework on which ERPNext is built.</td>
</tr>
<tr>
<td><a href="https://github.com/webnotes/erpnext">ERPNext</a></td>
<td>Web based, Open Source ERP.</td>
</tr>
<tr>
<td><a href="http://en.wikipedia.org/wiki/Linux">Linux Operating System</a></td>
<td>The operating system that brought a revolution in Open Source software.</td>
</tr>
<tr>
<td><a href="http://www.mysql.com/">MySQL Database</a></td>
<td>The world's most popular Open Source Database.</td>
</tr>
<tr>
<td><a href="http://httpd.apache.org">Apache HTTPD web server</a></td>
<td>The Number One HTTP Server On The Internet.</td>
</tr>
<tr>
<td><a href="http://python.org/">Python Programming Language</a></td>
<td>The "batteries included" language that lets you write elegant code, quickly.<br><br>Python Libraries:
<ul>
<li>MySQLdb
<li>pytz
<li>jinja2
<li>markdown2
<li>dateutil
<li>termcolor
<li>python-memcached
</ul>
</td>
</tr>
<tr>
<td><a href="http://git-scm.com/">Git - Source Code Management</a></td>
<td>Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.<br><br>
Kindly hosted on the web by <a href="https://github.com">GitHub</a>: The service that makes it easier for individuals and teams to write better code, faster. </td>
</tr>
<tr>
<td><a href="http://jquery.com/">JQuery Javascript Libary</a></td>
<td>The write less, do more Javascript Library.</td>
</tr>
<tr>
<td><a href="http://jqueryui.com/">JQuery UI - User Interface Library</a></td>
<td>A curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.</td>
</tr>
<tr>
<td><a href="http://twitter.github.com/bootstrap/index.html">Bootstrap CSS Framework</a></td>
<td>Sleek, intuitive, and powerful front-end framework for faster and easier web development.</td>
</tr>
<tr>
<td><a href="http://fortawesome.github.com/Font-Awesome/">Font Awesome - Icons</a></td>
<td>The iconic font designed for use with Twitter Bootstrap.</td>
</tr>
<tr>
<td><a href="http://www.tinymce.com/">TinyMCE Rich Text Editor</a></td>
<td>TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under LGPL by Moxiecode Systems AB.</td>
</tr>
<tr>
<td><a href="https://github.com/mleibman/SlickGrid">SlickGrid</a></td>
<td>A lightning fast JavaScript grid/spreadsheet.</td>
</tr>
<tr>
<td><a href="http://www.flotcharts.org/">Flot Charting Library</a></td>
<td>Attractive JavaScript plotting for jQuery.</td>
</tr>
<tr>
<td><a href="http://ace.ajax.org/">Ace Code Editor</a></td>
<td>High Performance Code Editor for the web.</td>
</tr>
<tr>
<td><a href="http://taitems.github.com/jQuery.Gantt/">JQuery.Gantt - Gantt Charts</a></td>
<td>Draw Gantt charts with the famous jQuery ease of development.</td>
</tr>
<tr>
<td><a href="http://jscolor.com/">JSColor - Color Picker</a></td>
<td>HTML/Javascript Color Picker.</td>
</tr>
<tr>
<td><a href="https://github.com/dcneiner/Downloadify">Downloadify - Flash Download Widget</a></td>
<td>A tiny javascript + Flash library that enables the creation and download of text files without server interaction.</td>
</tr>
</tbody>
</table>
<hr>
<p class="help">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.</p>
<h4>Server</h4>
<ul>
<li>Linux (GNU)</li>
<li>Apache HTTPD server (web server)</li>
<li>MySQL (database, Percona build)</li>
<li>Git (source code control via Github)</li>
</ul>
<h4>Programming Languages & Libraries</h4>
<ul>
<li><a href="http://python.org">Python</a></li>
<ul>
<li>Python-MySQL</li>
<li>pytz (timezones)</li>
<li>jinja2 (templating)</li>
<li>markdown2 (markdown parser)</li>
<li>jsmin (javascript minifier)</li>
</ul>
<li>Javascript</li>
<ul>
<li>JQuery</li>
<li>JQuery UI (datepicker, sortable)</li>
<li>TinyMCE - text editor</li>
<li>Twitter Bootstrap</li>
<li>Ace - code editor</li>
<li>Slick Grid - report grid</li>
<li>jQPlot - graphs</li>
<li><a href="http://taitems.github.com/jQuery.Gantt/" target="_blank">
JQuery.Gantt</a> - Gantt Chart</li>
<li>JSON2 - JSON builder, parser</li>
<li>JSColor - color picker</li>
<li><a href="https://github.com/dcneiner/Downloadify" target="_blank">
Downloadify</a> - Export CSV files from the browser</li>
<li><a href="https://github.com/harvesthq/chosen" target="_blank">
Chosen</a> - a searchable select dropdown</li>
</ul>
</ul>
<h4>CSS Frameworks</h4>
<ul>
<li>Twitter Bootstrap</li>
</ul>
<h4>Icons</h4>
<ul>
<li>The Noun Project</li>
<li>Font Awesome: http://fortawesome.github.com/Font-Awesome</li>
</ul>
<h4>Web Frameworks</h4>
<ul>
<li>wnframework</li>
</ul>
<h4>Web Browsers</h4>
<ul>
<li>Mozilla Firefox</li>
<ul>
<li>Firebug (debugger)</li>
</ul>
<li>Apple Safari</li>
<li>Google Chorme</li>
</ul>
<hr>
<h2>ERPNext License</h2>
<h3>ERPNext License: GNU/General Public License</h3>
<div class="well">
<p><b>ERPNext - Open Source, web based ERP</b></p>
<p>Copyright &copy; 2008 onwards, Web Notes Technologies Pvt Ltd, India</p>
@ -92,6 +108,9 @@
GNU General Public License for more details.</p>
<p>For complete license see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a></p>
</div>
<p class="alert">Note: A link to this page must be easily accessible and all other ERPNext branding must remain as it is.</p>
<hr>
<p>For more information please write to us at support@erpnext.com</p>
</div>
</div>

View File

@ -1 +1,4 @@
wn.pages['attributions'].onload = function(wrapper) { }
wn.pages['attributions'].onload = function(wrapper) {
wrapper.appframe = new wn.ui.AppFrame($(wrapper).find(".layout-appframe"),
"Attributions");
}

View File

@ -32,7 +32,7 @@ erpnext.desktop.render = function() {
}
// modules
var modules_list = wn.user.get_default("_desktop_items") || wn.boot.modules_list;
var modules_list = wn.user.get_desktop_items();
$.each(modules_list, function(i, m) {
if(!in_list(['Setup', 'Core'], m) && wn.boot.profile.allow_modules.indexOf(m)!=-1)
add_icon(m);
@ -75,11 +75,11 @@ erpnext.desktop.show_pending_notifications = function() {
}
add_circle('module-icon-messages', 'unread_messages', 'Unread Messages');
add_circle('module-icon-support', 'open_support_tickets', 'Open Support Tickets');
add_circle('module-icon-support-home', 'open_support_tickets', 'Open Support Tickets');
add_circle('module-icon-todo', 'things_todo', 'Things To Do');
add_circle('module-icon-calendar', 'todays_events', 'Todays Events');
add_circle('module-icon-project', 'open_tasks', 'Open Tasks');
add_circle('module-icon-kb', 'unanswered_questions', 'Unanswered Questions');
add_circle('module-icon-projects-home', 'open_tasks', 'Open Tasks');
add_circle('module-icon-questions', 'unanswered_questions', 'Unanswered Questions');
erpnext.update_messages();

View File

@ -1,7 +1,7 @@
erpnext.updates = [
["21st December 2012", [
"Manufacturing: For Material Transfer against Production Order, \
fetch quantity pending to be transferred for each item."
fetch quantity pending to be transferred for each item.",
"Desktop: New Icons and now sortable by dragging."
]],
["20th December 2012", [

View File

@ -2,9 +2,9 @@
{
"owner": "ashwini@webnotestech.com",
"docstatus": 0,
"creation": "2012-07-03 13:30:41",
"creation": "2012-12-14 14:27:05",
"modified_by": "Administrator",
"modified": "2012-12-13 14:23:24"
"modified": "2012-12-23 09:42:45"
},
{
"is_submittable": 1,
@ -134,7 +134,7 @@
"doctype": "DocField",
"label": "Fiscal Year",
"oldfieldname": "fiscal_year",
"options": "\n2012\n2013",
"options": "link:Fiscal Year",
"fieldname": "fiscal_year",
"fieldtype": "Select",
"reqd": 1,
@ -146,7 +146,7 @@
"doctype": "DocField",
"label": "Company",
"oldfieldname": "company",
"options": "\nAlpha\nBeta\nDemo Company",
"options": "link:Company",
"fieldname": "company",
"fieldtype": "Select",
"reqd": 1,
@ -174,6 +174,10 @@
"fieldtype": "Link",
"permlevel": 1
},
{
"role": "System Manager",
"doctype": "DocPerm"
},
{
"role": "HR User",
"doctype": "DocPerm"
@ -181,9 +185,5 @@
{
"role": "HR Manager",
"doctype": "DocPerm"
},
{
"role": "System Manager",
"doctype": "DocPerm"
}
]

View File

@ -24,8 +24,6 @@ from webnotes import msgprint
sql = webnotes.conn.sql
class DocType:
def __init__(self,doc,doclist=[]):
self.doc = doc
@ -37,7 +35,6 @@ class DocType:
ret = {'customer': cust and cust[0][0] or '', 'customer_name': cust and cust[0][1] or ''}
return ret
# TODO: Remove these? as the field customer doesn't exists
def get_customer_details(self):
cust = sql("select customer_name from `tabCustomer` where name=%s", self.doc.customer)
if cust:

View File

@ -2,27 +2,18 @@
{
"owner": "Administrator",
"docstatus": 0,
"creation": "2012-09-18 11:05:48",
"creation": "2012-10-29 14:30:00",
"modified_by": "Administrator",
"modified": "2012-10-29 14:24:55"
"modified": "2012-12-24 10:46:06"
},
{
"section_style": "Tray",
"allow_attach": 1,
"tag_fields": "status",
"module": "Projects",
"server_code_error": " ",
"allow_trash": 1,
"doctype": "DocType",
"document_type": "Master",
"subject": "%(subject)s",
"autoname": "TASK.#####",
"name": "__common__",
"colour": "White:FFF",
"_last_update": "1324880734",
"show_in_menu": 0,
"allow_attach": 1,
"doctype": "DocType",
"module": "Projects",
"max_attachments": 5,
"version": 1
"document_type": "Master",
"name": "__common__"
},
{
"name": "__common__",
@ -74,13 +65,13 @@
"reqd": 0
},
{
"search_index": 1,
"oldfieldtype": "Date",
"doctype": "DocField",
"label": "Expected End Date",
"oldfieldname": "exp_end_date",
"fieldname": "exp_end_date",
"fieldtype": "Date",
"oldfieldtype": "Date",
"search_index": 1,
"reqd": 0,
"in_filter": 1
},
@ -93,11 +84,9 @@
},
{
"oldfieldtype": "Link",
"colour": "White:FFF",
"doctype": "DocField",
"label": "Project",
"oldfieldname": "project",
"trigger": "Client",
"fieldname": "project",
"fieldtype": "Link",
"options": "Project"
@ -105,23 +94,21 @@
{
"no_copy": 1,
"oldfieldtype": "Select",
"colour": "White:FFF",
"doctype": "DocField",
"label": "Status",
"oldfieldname": "status",
"trigger": "Client",
"fieldname": "status",
"fieldtype": "Select",
"options": "Open\nWorking\nPending Review\nClosed\nCancelled"
},
{
"search_index": 1,
"oldfieldtype": "Select",
"doctype": "DocField",
"label": "Priority",
"oldfieldname": "priority",
"fieldname": "priority",
"fieldtype": "Select",
"oldfieldtype": "Select",
"search_index": 1,
"reqd": 0,
"options": "Low\nMedium\nHigh\nUrgent",
"in_filter": 1
@ -217,13 +204,12 @@
},
{
"doctype": "DocField",
"label": "More Details",
"fieldname": "more_details",
"fieldtype": "Section Break",
"label": "More Details"
"fieldtype": "Section Break"
},
{
"oldfieldtype": "Date",
"colour": "White:FFF",
"doctype": "DocField",
"label": "Review Date",
"oldfieldname": "review_date",
@ -234,7 +220,6 @@
},
{
"oldfieldtype": "Date",
"colour": "White:FFF",
"doctype": "DocField",
"label": "Closing Date",
"oldfieldname": "closing_date",
@ -260,7 +245,7 @@
"permlevel": 0
},
{
"permlevel": 1,
"doctype": "DocPerm"
"doctype": "DocPerm",
"permlevel": 1
}
]

View File

@ -54,16 +54,11 @@ erpnext.toolbar.add_modules = function() {
</ul>\
</li>').prependTo('.navbar .nav:first');
// if no modules list then show all
if(wn.boot.modules_list && typeof(wn.boot.modules_list) == 'string') {
wn.boot.modules_list = JSON.parse(wn.boot.modules_list);
}
else
wn.boot.modules_list = keys(wn.modules).sort();
var modules_list = wn.user.get_desktop_items();
// add to dropdown
for(var i in wn.boot.modules_list) {
var m = wn.boot.modules_list[i]
for(var i in modules_list) {
var m = modules_list[i]
if(m!='Setup' && wn.boot.profile.allow_modules.indexOf(m)!=-1 && wn.modules[m]) {
args = {

View File

@ -22,7 +22,9 @@ wn.pages['sales-analytics'].onload = function(wrapper) {
});
new erpnext.SalesAnalytics(wrapper);
wrapper.appframe.add_module_tab("Selling");
wrapper.appframe.add_home_breadcrumb()
wrapper.appframe.add_module_breadcrumb("Selling")
wrapper.appframe.add_breadcrumb("icon-bar-chart")
}
erpnext.SalesAnalytics = wn.views.TreeGridReport.extend({

View File

@ -16,7 +16,8 @@
pscript['onload_Sales Browser'] = function(wrapper){
wrapper.appframe = new wn.ui.AppFrame($(wrapper).find('.appframe-area'));
wrapper.appframe.add_module_tab("Selling");
wrapper.appframe.add_home_breadcrumb()
wrapper.appframe.add_module_breadcrumb("Selling")
wrapper.appframe.add_button('Refresh', function() {
wrapper.make_tree();

View File

@ -24,7 +24,9 @@ wn.pages['stock-ageing'].onload = function(wrapper) {
new erpnext.StockAgeing(wrapper);
wrapper.appframe.add_module_tab("Stock");
wrapper.appframe.add_home_breadcrumb()
wrapper.appframe.add_module_breadcrumb("Stock")
wrapper.appframe.add_breadcrumb("icon-bar-chart")
}
wn.require("app/js/stock_grid_report.js");

View File

@ -23,7 +23,9 @@ wn.pages['stock-analytics'].onload = function(wrapper) {
new erpnext.StockAnalytics(wrapper);
wrapper.appframe.add_module_tab("Stock");
wrapper.appframe.add_home_breadcrumb()
wrapper.appframe.add_module_breadcrumb("Stock")
wrapper.appframe.add_breadcrumb("icon-bar-chart")
}
wn.require("app/js/stock_grid_report.js");

View File

@ -23,7 +23,9 @@ wn.pages['stock-ledger'].onload = function(wrapper) {
new erpnext.StockLedger(wrapper);
wrapper.appframe.add_module_tab("Stock");
wrapper.appframe.add_home_breadcrumb()
wrapper.appframe.add_module_breadcrumb("Stock")
wrapper.appframe.add_breadcrumb("icon-bar-chart")
}
wn.require("app/js/stock_grid_report.js");

View File

@ -6,7 +6,9 @@ div#body_div {
padding: 0px;
min-height: 400px;
margin: 40px auto;
box-shadow: 1px 1px 3px 3px #ccc;
box-shadow: 1px 1px 3px 3px #bbb;
border-radius: 5px;
overflow: hidden;
}
.navbar-inner {
@ -23,6 +25,7 @@ p, li {
box-shadow: none;
-webkit-box-shadow: none;
-moz-box-shadow: none;
border-radius: 0px 0px 5px 5px;
}
.layout-main {

View File

@ -10,6 +10,7 @@
box-shadow: 1px 1px 3px 3px #ccc;
font-size: 12px;
min-height: 100px;
border-radius: 5px;
}
#login_wrapper h3 {

View File

@ -210,7 +210,7 @@ def get_outer_env():
from `tabWebsite Product Category` t1, `tabItem Group` t2
where t1.item_group = t2.name
and ifnull(t2.show_in_website,0)=1 order by t1.idx""", as_dict=1)
products_item = filter(lambda d: d.url.split(".")[0]=="products", top_items)[0]
products_item = filter(lambda d: d.url and d.url.split(".")[0]=="products", top_items)[0]
products_item.child_items = products
return {