commit
f29449ba07
@ -65,9 +65,11 @@ class StatusUpdater(Document):
|
|||||||
self.validate_qty()
|
self.validate_qty()
|
||||||
|
|
||||||
def set_status(self, update=False):
|
def set_status(self, update=False):
|
||||||
if self.get("__islocal"):
|
if self.is_new():
|
||||||
return
|
return
|
||||||
|
|
||||||
|
_status = self.status
|
||||||
|
|
||||||
if self.doctype in status_map:
|
if self.doctype in status_map:
|
||||||
sl = status_map[self.doctype][:]
|
sl = status_map[self.doctype][:]
|
||||||
sl.reverse()
|
sl.reverse()
|
||||||
@ -83,9 +85,11 @@ class StatusUpdater(Document):
|
|||||||
self.status = s[0]
|
self.status = s[0]
|
||||||
break
|
break
|
||||||
|
|
||||||
|
if self.status != _status:
|
||||||
|
self.add_comment("Label", self.status)
|
||||||
|
|
||||||
if update:
|
if update:
|
||||||
frappe.db.set_value(self.doctype, self.name, "status", self.status)
|
frappe.db.set_value(self.doctype, self.name, "status", self.status)
|
||||||
self.add_comment("Label", self.status)
|
|
||||||
|
|
||||||
def on_communication(self):
|
def on_communication(self):
|
||||||
if not self.get("communications"): return
|
if not self.get("communications"): return
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<span class="label label-warning filterable"
|
<span class="label label-warning filterable"
|
||||||
data-filter="per_delivered,<,100|status,!=,Stopped"
|
data-filter="per_delivered,<,100|status,!=,Stopped"
|
||||||
title="{%= __("Pending") %}">
|
title="{%= __("Pending") %}">
|
||||||
{%= doc.get_formatted("delivery_date")%}</span>
|
{%= doc.get_formatted("delivery_date") || "Pending" %}</span>
|
||||||
{% } %}
|
{% } %}
|
||||||
{% } %}
|
{% } %}
|
||||||
{% if(doc.per_delivered == 100 && doc.status!=="Stopped") { %}
|
{% if(doc.per_delivered == 100 && doc.status!=="Stopped") { %}
|
||||||
|
@ -83,10 +83,11 @@
|
|||||||
{
|
{
|
||||||
"depends_on": "show_in_website",
|
"depends_on": "show_in_website",
|
||||||
"fieldname": "parent_website_route",
|
"fieldname": "parent_website_route",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Read Only",
|
||||||
"label": "Parent Website Page",
|
"label": "Parent Website Route",
|
||||||
"options": "Website Route",
|
"options": "",
|
||||||
"permlevel": 0
|
"permlevel": 0,
|
||||||
|
"read_only": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"depends_on": "show_in_website",
|
"depends_on": "show_in_website",
|
||||||
@ -163,7 +164,7 @@
|
|||||||
"in_create": 1,
|
"in_create": 1,
|
||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"max_attachments": 3,
|
"max_attachments": 3,
|
||||||
"modified": "2014-06-10 05:37:03.763185",
|
"modified": "2014-08-19 06:42:03.262273",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Setup",
|
"module": "Setup",
|
||||||
"name": "Item Group",
|
"name": "Item Group",
|
||||||
|
@ -9,22 +9,16 @@ from frappe.website.website_generator import WebsiteGenerator
|
|||||||
from frappe.website.render import clear_cache
|
from frappe.website.render import clear_cache
|
||||||
from frappe.website.doctype.website_slideshow.website_slideshow import get_slideshow
|
from frappe.website.doctype.website_slideshow.website_slideshow import get_slideshow
|
||||||
|
|
||||||
condition_field = "show_in_website"
|
|
||||||
template = "templates/generators/item_group.html"
|
|
||||||
|
|
||||||
class ItemGroup(NestedSet, WebsiteGenerator):
|
class ItemGroup(NestedSet, WebsiteGenerator):
|
||||||
nsm_parent_field = 'parent_item_group'
|
nsm_parent_field = 'parent_item_group'
|
||||||
|
condition_field = "show_in_website"
|
||||||
|
template = "templates/generators/item_group.html"
|
||||||
|
parent_website_route_field = "parent_item_group"
|
||||||
|
|
||||||
def autoname(self):
|
def autoname(self):
|
||||||
self.name = self.item_group_name
|
self.name = self.item_group_name
|
||||||
|
|
||||||
def validate(self):
|
|
||||||
WebsiteGenerator.validate(self)
|
|
||||||
if not self.parent_website_route:
|
|
||||||
if frappe.db.get_value("Item Group", self.parent_item_group, "show_in_website"):
|
|
||||||
self.parent_website_route = frappe.get_website_route("Item Group",
|
|
||||||
self.parent_item_group)
|
|
||||||
|
|
||||||
def on_update(self):
|
def on_update(self):
|
||||||
NestedSet.on_update(self)
|
NestedSet.on_update(self)
|
||||||
WebsiteGenerator.on_update(self)
|
WebsiteGenerator.on_update(self)
|
||||||
@ -60,14 +54,16 @@ def get_product_list_for_group(product_group=None, start=0, limit=10):
|
|||||||
child_groups = ", ".join(['"' + i[0] + '"' for i in get_child_groups(product_group)])
|
child_groups = ", ".join(['"' + i[0] + '"' for i in get_child_groups(product_group)])
|
||||||
|
|
||||||
# base query
|
# base query
|
||||||
query = """select t1.name, t1.item_name, t1.page_name, t1.website_image, t1.item_group,
|
query = """select name, item_name, page_name, website_image, item_group,
|
||||||
t1.web_long_description as website_description, t2.name as route
|
web_long_description as website_description,
|
||||||
from `tabItem` t1, `tabWebsite Route` t2
|
concat(parent_website_route, "/", page_name) as route
|
||||||
where t1.show_in_website = 1 and (item_group in (%s)
|
from `tabItem`
|
||||||
or t1.name in (select parent from `tabWebsite Item Group` where item_group in (%s)))
|
where show_in_website = 1
|
||||||
and t1.name = t2.docname and t2.ref_doctype='Item' """ % (child_groups, child_groups)
|
and (item_group in (%s)
|
||||||
|
or name in (select parent from `tabWebsite Item Group` where item_group in (%s)))
|
||||||
|
""" % (child_groups, child_groups)
|
||||||
|
|
||||||
query += """order by t1.weightage desc, t1.modified desc limit %s, %s""" % (start, limit)
|
query += """order by weightage desc, modified desc limit %s, %s""" % (start, limit)
|
||||||
|
|
||||||
data = frappe.db.sql(query, {"product_group": product_group}, as_dict=1)
|
data = frappe.db.sql(query, {"product_group": product_group}, as_dict=1)
|
||||||
|
|
||||||
@ -107,6 +103,6 @@ def invalidate_cache_for(doc, item_group=None):
|
|||||||
item_group = doc.name
|
item_group = doc.name
|
||||||
|
|
||||||
for i in get_parent_item_groups(item_group):
|
for i in get_parent_item_groups(item_group):
|
||||||
route = frappe.db.get_value("Website Route", {"ref_doctype":"Item Group", "docname": i.name})
|
route = doc.get_route()
|
||||||
if route:
|
if route:
|
||||||
clear_cache(route)
|
clear_cache(route)
|
||||||
|
@ -190,16 +190,16 @@
|
|||||||
{
|
{
|
||||||
"default": "partners",
|
"default": "partners",
|
||||||
"fieldname": "parent_website_route",
|
"fieldname": "parent_website_route",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Read Only",
|
||||||
"label": "Parent Website Route",
|
"label": "Parent Website Route",
|
||||||
"options": "Website Route",
|
"options": "",
|
||||||
"permlevel": 0
|
"permlevel": 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"icon": "icon-user",
|
"icon": "icon-user",
|
||||||
"idx": 1,
|
"idx": 1,
|
||||||
"in_create": 0,
|
"in_create": 0,
|
||||||
"modified": "2014-06-27 09:21:33.687012",
|
"modified": "2014-08-19 06:42:33.103060",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Setup",
|
"module": "Setup",
|
||||||
"name": "Sales Partner",
|
"name": "Sales Partner",
|
||||||
|
@ -6,14 +6,15 @@ import frappe
|
|||||||
from frappe.utils import cstr, filter_strip_join
|
from frappe.utils import cstr, filter_strip_join
|
||||||
from frappe.website.website_generator import WebsiteGenerator
|
from frappe.website.website_generator import WebsiteGenerator
|
||||||
|
|
||||||
|
class SalesPartner(WebsiteGenerator):
|
||||||
|
page_title_field = "partner_name"
|
||||||
condition_field = "show_in_website"
|
condition_field = "show_in_website"
|
||||||
template = "templates/generators/sales_partner.html"
|
template = "templates/generators/sales_partner.html"
|
||||||
|
|
||||||
class SalesPartner(WebsiteGenerator):
|
|
||||||
def autoname(self):
|
def autoname(self):
|
||||||
self.name = self.partner_name
|
self.name = self.partner_name
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
|
self.parent_website_route = "partners"
|
||||||
super(SalesPartner, self).validate()
|
super(SalesPartner, self).validate()
|
||||||
if self.partner_website and not self.partner_website.startswith("http"):
|
if self.partner_website and not self.partner_website.startswith("http"):
|
||||||
self.partner_website = "http://" + self.partner_website
|
self.partner_website = "http://" + self.partner_website
|
||||||
@ -27,9 +28,6 @@ class SalesPartner(WebsiteGenerator):
|
|||||||
else:
|
else:
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
def get_page_title(self):
|
|
||||||
return self.partner_name
|
|
||||||
|
|
||||||
def get_context(self, context):
|
def get_context(self, context):
|
||||||
address = frappe.db.get_value("Address",
|
address = frappe.db.get_value("Address",
|
||||||
{"sales_partner": self.name, "is_primary_address": 1},
|
{"sales_partner": self.name, "is_primary_address": 1},
|
||||||
@ -46,7 +44,3 @@ class SalesPartner(WebsiteGenerator):
|
|||||||
})
|
})
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
def get_parent_website_route(self):
|
|
||||||
parent_website_sitemap = super(SalesPartner, self).get_parent_website_route()
|
|
||||||
return parent_website_sitemap or "partners"
|
|
||||||
|
@ -59,7 +59,7 @@ class website_maker(object):
|
|||||||
website_settings.append("top_bar_items", {
|
website_settings.append("top_bar_items", {
|
||||||
"doctype": "Top Bar Item",
|
"doctype": "Top Bar Item",
|
||||||
"label": _("Products"),
|
"label": _("Products"),
|
||||||
"url": frappe.db.get_value("Website Route", {"ref_doctype":"Item Group"})
|
"url": "products"
|
||||||
})
|
})
|
||||||
website_settings.save()
|
website_settings.save()
|
||||||
|
|
||||||
|
@ -814,18 +814,18 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "parent_website_route",
|
"fieldname": "parent_website_route",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Read Only",
|
||||||
"ignore_user_permissions": 1,
|
"ignore_user_permissions": 1,
|
||||||
"label": "Parent Website Route",
|
"label": "Parent Website Route",
|
||||||
"no_copy": 1,
|
"no_copy": 1,
|
||||||
"options": "Website Route",
|
"options": "",
|
||||||
"permlevel": 0
|
"permlevel": 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"icon": "icon-tag",
|
"icon": "icon-tag",
|
||||||
"idx": 1,
|
"idx": 1,
|
||||||
"max_attachments": 1,
|
"max_attachments": 1,
|
||||||
"modified": "2014-08-18 09:32:57.268763",
|
"modified": "2014-08-19 06:41:28.565607",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Stock",
|
"module": "Stock",
|
||||||
"name": "Item",
|
"name": "Item",
|
||||||
|
@ -12,10 +12,12 @@ from frappe.website.doctype.website_slideshow.website_slideshow import get_slide
|
|||||||
|
|
||||||
class WarehouseNotSet(frappe.ValidationError): pass
|
class WarehouseNotSet(frappe.ValidationError): pass
|
||||||
|
|
||||||
|
class Item(WebsiteGenerator):
|
||||||
|
page_title_field = "item_name"
|
||||||
condition_field = "show_in_website"
|
condition_field = "show_in_website"
|
||||||
template = "templates/generators/item.html"
|
template = "templates/generators/item.html"
|
||||||
|
parent_website_route_field = "item_group"
|
||||||
|
|
||||||
class Item(WebsiteGenerator):
|
|
||||||
def onload(self):
|
def onload(self):
|
||||||
super(Item, self).onload()
|
super(Item, self).onload()
|
||||||
self.get("__onload").sle_exists = self.check_if_sle_exists()
|
self.get("__onload").sle_exists = self.check_if_sle_exists()
|
||||||
@ -49,9 +51,6 @@ class Item(WebsiteGenerator):
|
|||||||
self.cant_change()
|
self.cant_change()
|
||||||
self.validate_item_type_for_reorder()
|
self.validate_item_type_for_reorder()
|
||||||
|
|
||||||
if not self.parent_website_route:
|
|
||||||
self.parent_website_route = frappe.get_website_route("Item Group", self.item_group)
|
|
||||||
|
|
||||||
if not self.get("__islocal"):
|
if not self.get("__islocal"):
|
||||||
self.old_item_group = frappe.db.get_value(self.doctype, self.name, "item_group")
|
self.old_item_group = frappe.db.get_value(self.doctype, self.name, "item_group")
|
||||||
self.old_website_item_groups = frappe.db.sql_list("""select item_group from `tabWebsite Item Group`
|
self.old_website_item_groups = frappe.db.sql_list("""select item_group from `tabWebsite Item Group`
|
||||||
@ -216,14 +215,6 @@ class Item(WebsiteGenerator):
|
|||||||
item_description=%s, modified=NOW() where item_code=%s""",
|
item_description=%s, modified=NOW() where item_code=%s""",
|
||||||
(self.item_name, self.description, self.name))
|
(self.item_name, self.description, self.name))
|
||||||
|
|
||||||
def get_page_title(self):
|
|
||||||
if self.name==self.item_name:
|
|
||||||
page_name_from = self.name
|
|
||||||
else:
|
|
||||||
page_name_from = self.name + " - " + self.item_name
|
|
||||||
|
|
||||||
return page_name_from
|
|
||||||
|
|
||||||
def get_tax_rate(self, tax_type):
|
def get_tax_rate(self, tax_type):
|
||||||
return { "tax_rate": frappe.db.get_value("Account", tax_type, "tax_rate") }
|
return { "tax_rate": frappe.db.get_value("Account", tax_type, "tax_rate") }
|
||||||
|
|
||||||
|
@ -12,23 +12,28 @@ no_sitemap = 1
|
|||||||
@frappe.whitelist(allow_guest=True)
|
@frappe.whitelist(allow_guest=True)
|
||||||
def get_product_list(search=None, start=0, limit=10):
|
def get_product_list(search=None, start=0, limit=10):
|
||||||
# base query
|
# base query
|
||||||
query = """select t1.name, t1.item_name, t1.page_name, t1.website_image, t1.item_group,
|
query = """select name, item_name, page_name, website_image, item_group,
|
||||||
t1.web_long_description as website_description, t2.name as route
|
web_long_description as website_description, parent_website_route
|
||||||
from `tabItem` t1, `tabWebsite Route` t2 where t1.show_in_website = 1
|
from `tabItem` where show_in_website = 1"""
|
||||||
and t1.name = t2.docname and t2.ref_doctype = 'Item'"""
|
|
||||||
|
|
||||||
# search term condition
|
# search term condition
|
||||||
if search:
|
if search:
|
||||||
query += """and (t1.web_long_description like %(search)s or t1.description like %(search)s or
|
query += """and web_long_description like %(search)s
|
||||||
t1.item_name like %(search)s or t1.name like %(search)s)"""
|
or description like %(search)s
|
||||||
|
or item_name like %(search)s
|
||||||
|
or name like %(search)s)"""
|
||||||
search = "%" + cstr(search) + "%"
|
search = "%" + cstr(search) + "%"
|
||||||
|
|
||||||
# order by
|
# order by
|
||||||
query += """order by t1.weightage desc, t1.modified desc limit %s, %s""" % (start, limit)
|
query += """order by weightage desc, modified desc limit %s, %s""" % (start, limit)
|
||||||
|
|
||||||
data = frappe.db.sql(query, {
|
data = frappe.db.sql(query, {
|
||||||
"search": search,
|
"search": search,
|
||||||
}, as_dict=1)
|
}, as_dict=1)
|
||||||
|
|
||||||
|
for d in data:
|
||||||
|
d.route = ((d.parent_website_route + "/") if d.parent_website_route else "") \
|
||||||
|
+ d.page_name
|
||||||
|
|
||||||
return [get_item_for_list_in_html(r) for r in data]
|
return [get_item_for_list_in_html(r) for r in data]
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user