Merge branch 'develop' of github.com:frappe/erpnext into develop
This commit is contained in:
commit
6dad4e9e89
@ -30,6 +30,15 @@ data = [
|
||||
"name": "Supplier",
|
||||
"description": _("Supplier database.")
|
||||
},
|
||||
{
|
||||
"type": "page",
|
||||
"name": "Accounts Browser",
|
||||
"icon": "icon-sitemap",
|
||||
"label": _("Chart of Accounts"),
|
||||
"route": "Accounts Browser/Account",
|
||||
"description": _("Tree of finanial accounts."),
|
||||
"doctype": "Account",
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -1,36 +1,41 @@
|
||||
{
|
||||
"autoname": "hash",
|
||||
"creation": "2012-07-03 13:29:42.000000",
|
||||
"creation": "2012-07-03 13:29:42",
|
||||
"docstatus": 0,
|
||||
"doctype": "DocType",
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "feed_type",
|
||||
"fieldtype": "Select",
|
||||
"in_list_view": 1,
|
||||
"label": "Feed Type",
|
||||
"permlevel": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "doc_type",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Doc Type",
|
||||
"permlevel": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "doc_name",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Doc Name",
|
||||
"permlevel": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "subject",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Subject",
|
||||
"permlevel": 0
|
||||
},
|
||||
{
|
||||
"fieldname": "color",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Color",
|
||||
"permlevel": 0
|
||||
},
|
||||
@ -43,7 +48,7 @@
|
||||
],
|
||||
"icon": "icon-rss",
|
||||
"idx": 1,
|
||||
"modified": "2013-12-20 19:24:05.000000",
|
||||
"modified": "2014-05-02 08:27:23.936733",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Home",
|
||||
"name": "Feed",
|
||||
@ -56,6 +61,11 @@
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "System Manager"
|
||||
},
|
||||
{
|
||||
"permlevel": 0,
|
||||
"read": 1,
|
||||
"role": "All"
|
||||
}
|
||||
]
|
||||
}
|
@ -3,7 +3,7 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
|
||||
import frappe.defaults
|
||||
from frappe.model.document import Document
|
||||
|
||||
class Feed(Document):
|
||||
@ -15,3 +15,30 @@ def on_doctype_update():
|
||||
frappe.db.commit()
|
||||
frappe.db.sql("""alter table `tabFeed`
|
||||
add index feed_doctype_docname_index(doc_type, doc_name)""")
|
||||
|
||||
def get_permission_query_conditions():
|
||||
restrictions = frappe.defaults.get_restrictions()
|
||||
can_read = frappe.user.get_can_read()
|
||||
|
||||
can_read_doctypes = ['"{}"'.format(doctype) for doctype in
|
||||
list(set(can_read) - set(restrictions.keys()))]
|
||||
|
||||
if not can_read_doctypes:
|
||||
return ""
|
||||
|
||||
conditions = ["tabFeed.doc_type in ({})".format(", ".join(can_read_doctypes))]
|
||||
|
||||
if restrictions:
|
||||
can_read_docs = []
|
||||
for doctype, names in restrictions.items():
|
||||
for n in names:
|
||||
can_read_docs.append('"{}|{}"'.format(doctype, n))
|
||||
|
||||
if can_read_docs:
|
||||
conditions.append("concat_ws('|', tabFeed.doc_type, tabFeed.doc_name) in ({})".format(
|
||||
", ".join(can_read_docs)))
|
||||
|
||||
return "(" + " or ".join(conditions) + ")"
|
||||
|
||||
def has_permission(doc):
|
||||
return frappe.has_permission(doc.doc_type, "read", doc.doc_name)
|
||||
|
@ -25,6 +25,15 @@ before_tests = "erpnext.setup.utils.before_tests"
|
||||
|
||||
standard_queries = "Customer:erpnext.selling.doctype.customer.customer.get_customer_list"
|
||||
|
||||
permission_query_conditions = {
|
||||
"Feed": "erpnext.home.doctype.feed.feed.get_permission_query_conditions",
|
||||
}
|
||||
|
||||
has_permission = {
|
||||
"Feed": "erpnext.home.doctype.feed.feed.has_permission",
|
||||
}
|
||||
|
||||
|
||||
doc_events = {
|
||||
"*": {
|
||||
"on_update": "erpnext.home.update_feed",
|
||||
|
@ -3,7 +3,7 @@
|
||||
"allow_import": 1,
|
||||
"allow_rename": 1,
|
||||
"autoname": "field:item_group_name",
|
||||
"creation": "2013-03-28 10:35:29.000000",
|
||||
"creation": "2013-03-28 10:35:29",
|
||||
"description": "Item Classification",
|
||||
"docstatus": 0,
|
||||
"doctype": "DocType",
|
||||
@ -12,6 +12,7 @@
|
||||
{
|
||||
"fieldname": "item_group_name",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Item Group Name",
|
||||
"no_copy": 0,
|
||||
"oldfieldname": "item_group_name",
|
||||
@ -23,6 +24,7 @@
|
||||
{
|
||||
"fieldname": "page_name",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Page Name",
|
||||
"permlevel": 0,
|
||||
"read_only": 1
|
||||
@ -30,6 +32,7 @@
|
||||
{
|
||||
"fieldname": "cb0",
|
||||
"fieldtype": "Column Break",
|
||||
"in_list_view": 1,
|
||||
"permlevel": 0
|
||||
},
|
||||
{
|
||||
@ -37,6 +40,7 @@
|
||||
"fieldname": "parent_item_group",
|
||||
"fieldtype": "Link",
|
||||
"ignore_restrictions": 1,
|
||||
"in_list_view": 1,
|
||||
"label": "Parent Item Group",
|
||||
"no_copy": 0,
|
||||
"oldfieldname": "parent_item_group",
|
||||
@ -50,6 +54,7 @@
|
||||
"description": "Only leaf nodes are allowed in transaction",
|
||||
"fieldname": "is_group",
|
||||
"fieldtype": "Select",
|
||||
"in_list_view": 1,
|
||||
"label": "Has Child Node",
|
||||
"no_copy": 0,
|
||||
"oldfieldname": "is_group",
|
||||
@ -157,7 +162,7 @@
|
||||
"in_create": 1,
|
||||
"issingle": 0,
|
||||
"max_attachments": 3,
|
||||
"modified": "2014-02-20 18:29:57.000000",
|
||||
"modified": "2014-05-04 00:06:26.075492",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Setup",
|
||||
"name": "Item Group",
|
||||
@ -194,7 +199,7 @@
|
||||
{
|
||||
"cancel": 0,
|
||||
"create": 1,
|
||||
"delete": 0,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"permlevel": 0,
|
||||
"print": 1,
|
||||
|
@ -365,7 +365,7 @@ frappe.wiz.Wizard = Class.extend({
|
||||
this.parent = $('<div class="setup-wizard-wrapper">').appendTo(this.parent);
|
||||
},
|
||||
get_message: function(html) {
|
||||
return $(repl('<div class="panel panel-default">\
|
||||
return $(repl('<div class="panel panel-default" data-state="setup-complete">\
|
||||
<div class="panel-body" style="padding: 40px;">%(html)s</div>\
|
||||
</div>', {html:html}))
|
||||
},
|
||||
@ -430,7 +430,9 @@ frappe.wiz.Wizard = Class.extend({
|
||||
frappe.wiz.WizardSlide = Class.extend({
|
||||
init: function(opts) {
|
||||
$.extend(this, opts);
|
||||
this.$wrapper = $("<div>").appendTo(this.wiz.parent);
|
||||
this.$wrapper = $("<div>")
|
||||
.appendTo(this.wiz.parent)
|
||||
.attr("data-slide-id", this.id);
|
||||
},
|
||||
make: function() {
|
||||
var me = this;
|
||||
|
@ -15,6 +15,7 @@ import install_fixtures
|
||||
|
||||
@frappe.whitelist()
|
||||
def setup_account(args=None):
|
||||
|
||||
if frappe.db.sql("select name from tabCompany"):
|
||||
frappe.throw(_("Setup Already Complete!!"))
|
||||
|
||||
@ -260,16 +261,22 @@ def create_taxes(args):
|
||||
# replace % in case someone also enters the % symbol
|
||||
tax_rate = (args.get("tax_rate_" + str(i)) or "").replace("%", "")
|
||||
|
||||
frappe.get_doc({
|
||||
"doctype":"Account",
|
||||
"company": args.get("company_name"),
|
||||
"parent_account": "Duties and Taxes - " + args.get("company_abbr"),
|
||||
"account_name": args.get("tax_" + str(i)),
|
||||
"group_or_ledger": "Ledger",
|
||||
"report_type": "Balance Sheet",
|
||||
"account_type": "Tax",
|
||||
"tax_rate": flt(tax_rate) if tax_rate else None
|
||||
}).insert()
|
||||
try:
|
||||
frappe.get_doc({
|
||||
"doctype":"Account",
|
||||
"company": args.get("company_name"),
|
||||
"parent_account": "Duties and Taxes - " + args.get("company_abbr"),
|
||||
"account_name": args.get("tax_" + str(i)),
|
||||
"group_or_ledger": "Ledger",
|
||||
"report_type": "Balance Sheet",
|
||||
"account_type": "Tax",
|
||||
"tax_rate": flt(tax_rate) if tax_rate else None
|
||||
}).insert()
|
||||
except frappe.NameError, e:
|
||||
if e.args[2][0]==1062:
|
||||
pass
|
||||
else:
|
||||
raise
|
||||
|
||||
def create_items(args):
|
||||
for i in xrange(1,6):
|
||||
|
@ -184,6 +184,8 @@ cur_frm.cscript.copy_from_item_group = function(doc) {
|
||||
cur_frm.cscript.image = function() {
|
||||
refresh_field("image_view");
|
||||
|
||||
if(!cur_frm.doc.image) return;
|
||||
|
||||
if(!cur_frm.doc.description_html)
|
||||
cur_frm.cscript.add_image(cur_frm.doc);
|
||||
else {
|
||||
|
@ -13,4 +13,8 @@ cur_frm.cscript.onload = function() {
|
||||
cur_frm.set_query("item_code", function() {
|
||||
return erpnext.queries.item({"is_stock_item": "Yes", "has_serial_no": "Yes"})
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
frappe.ui.form.on("Serial No", "refresh", function(frm) {
|
||||
frm.toggle_enable("item_code", frm.doc.__islocal);
|
||||
});
|
||||
|
@ -3,7 +3,7 @@
|
||||
"allow_import": 1,
|
||||
"allow_rename": 1,
|
||||
"autoname": "field:serial_no",
|
||||
"creation": "2013-05-16 10:59:15.000000",
|
||||
"creation": "2013-05-16 10:59:15",
|
||||
"description": "Distinct unit of an Item",
|
||||
"docstatus": 0,
|
||||
"doctype": "DocType",
|
||||
@ -24,7 +24,7 @@
|
||||
"read_only": 0
|
||||
},
|
||||
{
|
||||
"default": "In Store",
|
||||
"default": "Not Available",
|
||||
"description": "Only Serial Nos with status \"Available\" can be delivered.",
|
||||
"fieldname": "status",
|
||||
"fieldtype": "Select",
|
||||
@ -34,9 +34,9 @@
|
||||
"no_copy": 1,
|
||||
"oldfieldname": "status",
|
||||
"oldfieldtype": "Select",
|
||||
"options": "\nAvailable\nNot Available\nDelivered\nPurchase Returned\nSales Returned",
|
||||
"options": "Not Available\nAvailable\nDelivered\nPurchase Returned\nSales Returned",
|
||||
"permlevel": 0,
|
||||
"read_only": 0,
|
||||
"read_only": 1,
|
||||
"reqd": 1,
|
||||
"search_index": 1
|
||||
},
|
||||
@ -418,7 +418,7 @@
|
||||
"icon": "icon-barcode",
|
||||
"idx": 1,
|
||||
"in_create": 0,
|
||||
"modified": "2014-01-20 17:49:26.000000",
|
||||
"modified": "2014-05-04 00:47:20.443476",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Stock",
|
||||
"name": "Serial No",
|
||||
|
@ -262,7 +262,7 @@ def update_serial_nos(sle, item_det):
|
||||
sr = frappe.get_doc("Serial No", serial_no)
|
||||
sr.via_stock_ledger = True
|
||||
sr.warehouse = sle.warehouse if sle.actual_qty > 0 else None
|
||||
sr.save()
|
||||
sr.save(ignore_permissions=True)
|
||||
elif sle.actual_qty > 0:
|
||||
make_serial_no(serial_no, sle)
|
||||
|
||||
@ -277,6 +277,7 @@ def get_serial_nos(serial_no):
|
||||
|
||||
def make_serial_no(serial_no, sle):
|
||||
sr = frappe.new_doc("Serial No")
|
||||
sr.ignore_permissions = True
|
||||
sr.serial_no = serial_no
|
||||
sr.item_code = sle.item_code
|
||||
sr.warehouse = None
|
||||
|
@ -7,8 +7,9 @@ import frappe
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
def send_message(subject="Website Query", message="", sender="", status="Open"):
|
||||
from frappe.templates.pages.contact import send_message as website_send_message
|
||||
res = website_send_message(subject, message, sender)
|
||||
|
||||
if not website_send_message(subject, message, sender):
|
||||
if not res:
|
||||
return
|
||||
|
||||
if subject=="Support":
|
||||
@ -21,3 +22,4 @@ def send_message(subject="Website Query", message="", sender="", status="Open"):
|
||||
add_sales_communication(subject or "Website Query", message, sender, sender,
|
||||
mail=None, status=status)
|
||||
|
||||
return res
|
||||
|
@ -14,11 +14,89 @@ from __future__ import unicode_literals
|
||||
import frappe
|
||||
|
||||
from frappe.utils import sel
|
||||
import time
|
||||
|
||||
def start():
|
||||
sel.start(verbose=True)
|
||||
try:
|
||||
run()
|
||||
finally:
|
||||
sel.close()
|
||||
|
||||
def run():
|
||||
def next_slide(idx, selector="next-btn"):
|
||||
sel.find('[data-slide-id="{0}"] .{1}'.format(idx, selector))[0].click()
|
||||
sel.wait_for_ajax()
|
||||
|
||||
|
||||
sel.start(verbose=True, driver="Firefox")
|
||||
sel.input_wait = 0.2
|
||||
sel.login("#page-setup-wizard")
|
||||
|
||||
# slide 1
|
||||
next_slide("0")
|
||||
|
||||
sel.set_field("first_name", "Test")
|
||||
sel.set_field("last_name", "User")
|
||||
sel.set_field("email", "test@erpnext.com")
|
||||
sel.set_field("password", "test")
|
||||
|
||||
next_slide("1")
|
||||
|
||||
sel.set_select("country", "India")
|
||||
|
||||
next_slide("2")
|
||||
|
||||
sel.set_field("company_name", "Wind Power LLC")
|
||||
sel.set_field("fy_start_date", "01-04-2014")
|
||||
sel.set_field("company_tagline", "Wind Power For Everyone")
|
||||
|
||||
next_slide("3")
|
||||
next_slide("4")
|
||||
|
||||
sel.set_field("tax_1", "VAT")
|
||||
sel.set_field("tax_rate_1", "12.5")
|
||||
|
||||
sel.set_field("tax_2", "Service Tax")
|
||||
sel.set_field("tax_rate_2", "10.36")
|
||||
|
||||
next_slide("5")
|
||||
|
||||
sel.set_field("customer_1", "Asian Junction")
|
||||
sel.set_field("customer_contact_1", "January Vaclavik")
|
||||
sel.set_field("customer_2", "Life Plan Counselling")
|
||||
sel.set_field("customer_contact_2", "Jana Tobeolisa")
|
||||
sel.set_field("customer_3", "Two Pesos")
|
||||
sel.set_field("customer_contact_3", "Satomi Shigeki")
|
||||
sel.set_field("customer_4", "Intelacard")
|
||||
sel.set_field("customer_contact_4", "Hans Rasmussen")
|
||||
|
||||
next_slide("6")
|
||||
|
||||
sel.set_field("item_1", "Wind Turbine A")
|
||||
sel.set_field("item_2", "Wind Turbine B")
|
||||
sel.set_field("item_3", "Wind Turbine C")
|
||||
|
||||
next_slide("7")
|
||||
|
||||
sel.set_field("supplier_1", "Helios Air")
|
||||
sel.set_field("supplier_contact_1", "Quimey Osorio")
|
||||
sel.set_field("supplier_2", "Ks Merchandise")
|
||||
sel.set_field("supplier_contact_2", "Edgarda Salcedo")
|
||||
sel.set_field("supplier_3", "Eagle Hardware")
|
||||
sel.set_field("supplier_contact_3", "Hafsteinn Bjarnarsonar")
|
||||
|
||||
next_slide("8")
|
||||
|
||||
sel.set_field("item_buy_1", "Bearing Pipe")
|
||||
sel.set_field("item_buy_2", "Bearing Assembly")
|
||||
sel.set_field("item_buy_3", "Base Plate")
|
||||
sel.set_field("item_buy_4", "Coil")
|
||||
|
||||
next_slide("9", "complete-btn")
|
||||
|
||||
sel.wait('[data-state="setup-complete"]')
|
||||
|
||||
w = raw_input("quit?")
|
||||
|
||||
# complete setup
|
||||
# new customer
|
||||
|
5
erpnext/utilities/doctype/note/note_list.js
Normal file
5
erpnext/utilities/doctype/note/note_list.js
Normal file
@ -0,0 +1,5 @@
|
||||
frappe.listview_settings['Note'] = {
|
||||
set_title_left: function() {
|
||||
frappe.set_route();
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user