From fc19f25c885f4b906f7df706c0c9a281b1767998 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 20 Dec 2012 17:11:51 +0530 Subject: [PATCH] updates to item, item_group and website --- projects/doctype/task/task.js | 15 ---- setup/doctype/item_group/item_group.py | 5 +- setup/doctype/item_group/item_group.txt | 27 +------ stock/doctype/item/item.txt | 22 +++--- website/doctype/product_settings/__init__.py | 0 .../product_settings/product_settings.py | 8 +++ .../product_settings/product_settings.txt | 65 +++++++++++++++++ .../website_product_category/__init__.py | 0 .../website_product_category.py | 8 +++ .../website_product_category.txt | 43 +++++++++++ .../website_settings/website_settings.txt | 11 +-- website/helpers/product.py | 26 ++++--- website/page/website_home/website_home.html | 7 +- website/templates/css/login.css | 3 + website/templates/html/outer.html | 6 +- website/templates/html/product_group.html | 27 +++++-- .../templates/html/product_search_box.html | 1 + website/templates/js/product_list.js | 69 ++++++++++++++++++ website/templates/pages/product_search.html | 71 ++----------------- website/utils.py | 16 ++++- 20 files changed, 277 insertions(+), 153 deletions(-) create mode 100644 website/doctype/product_settings/__init__.py create mode 100644 website/doctype/product_settings/product_settings.py create mode 100644 website/doctype/product_settings/product_settings.txt create mode 100644 website/doctype/website_product_category/__init__.py create mode 100644 website/doctype/website_product_category/website_product_category.py create mode 100644 website/doctype/website_product_category/website_product_category.txt create mode 100644 website/templates/js/product_list.js diff --git a/projects/doctype/task/task.js b/projects/doctype/task/task.js index 18c16538ca..e9ca4d89a9 100644 --- a/projects/doctype/task/task.js +++ b/projects/doctype/task/task.js @@ -26,18 +26,3 @@ cur_frm.fields_dict['project'].get_query = function(doc,cdt,cdn){ cur_frm.cscript.project = function(doc, cdt, cdn){ if(doc.project) get_server_fields('get_project_details', '','', doc, cdt, cdn, 1); } - - -// TODO: remove these? field doesn't exist, but custom field could exist -cur_frm.fields_dict['customer'].get_query = function(doc,cdt,cdn){ - var cond=''; - if(doc.project) cond = 'ifnull(`tabProject`.customer, "") = `tabCustomer`.name AND ifnull(`tabProject`.name, "") = "'+doc.project+'" AND'; - return repl('SELECT distinct `tabCustomer`.`name` FROM `tabCustomer`, `tabProject` WHERE %(cond)s `tabCustomer`.`name` LIKE "%s" ORDER BY `tabCustomer`.`name` ASC LIMIT 50', {cond:cond}); -} - -cur_frm.cscript.customer = function(doc, cdt, cdn){ - if(doc.customer) get_server_fields('get_customer_details', '','', doc, cdt, cdn, 1); - else doc.customer_name =''; -} - - diff --git a/setup/doctype/item_group/item_group.py b/setup/doctype/item_group/item_group.py index 81c5d80af2..4ce126bed4 100644 --- a/setup/doctype/item_group/item_group.py +++ b/setup/doctype/item_group/item_group.py @@ -39,6 +39,5 @@ class DocType(DocTypeNestedSet): def prepare_template_args(self): self.doc.sub_groups = webnotes.conn.sql("""select name, page_name - from `tabItem Group` where parent_item_group=%s - and ifnull(show_in_website,0)=1""", self.doc.name, as_dict=1) - \ No newline at end of file + from `tabItem Group` where parent_item_group=%s + and ifnull(show_in_website,0)=1""", self.doc.name, as_dict=1) \ No newline at end of file diff --git a/setup/doctype/item_group/item_group.txt b/setup/doctype/item_group/item_group.txt index 1a3e0637ed..72b83aaaf7 100644 --- a/setup/doctype/item_group/item_group.txt +++ b/setup/doctype/item_group/item_group.txt @@ -4,7 +4,7 @@ "docstatus": 0, "creation": "2012-12-07 15:15:28", "modified_by": "Administrator", - "modified": "2012-12-18 16:23:48" + "modified": "2012-12-20 16:11:15" }, { "in_create": 1, @@ -103,29 +103,13 @@ "fieldtype": "Check" }, { + "description": "HTML / Banner that will show on the top of product list.", "depends_on": "show_in_website", "doctype": "DocField", "label": "Description", "fieldname": "description", "fieldtype": "Text Editor" }, - { - "depends_on": "show_in_website", - "doctype": "DocField", - "label": "Featured Items", - "fieldname": "featured_items_html", - "fieldtype": "Section Break" - }, - { - "description": "Items Featured on the Item Group Page", - "depends_on": "show_in_website", - "doctype": "DocField", - "label": "Featured Items", - "fieldname": "featured_items", - "fieldtype": "Table", - "hidden": 0, - "options": "Featured Item" - }, { "print_hide": 1, "no_copy": 1, @@ -168,13 +152,6 @@ "options": "Item Group", "report_hide": 1 }, - { - "doctype": "DocField", - "label": "file_list", - "fieldname": "file_list", - "fieldtype": "Text", - "hidden": 1 - }, { "print_hide": 1, "no_copy": 1, diff --git a/stock/doctype/item/item.txt b/stock/doctype/item/item.txt index 10017a69a8..71adb4fb2b 100644 --- a/stock/doctype/item/item.txt +++ b/stock/doctype/item/item.txt @@ -4,7 +4,7 @@ "docstatus": 0, "creation": "2012-12-17 14:56:32", "modified_by": "Administrator", - "modified": "2012-12-18 14:23:19" + "modified": "2012-12-20 15:59:41" }, { "allow_attach": 1, @@ -771,6 +771,15 @@ "fieldtype": "Data", "permlevel": 1 }, + { + "description": "Products will be sorted by weight-age in default searches. More the weight-age, higher the product will appear in the list.", + "search_index": 1, + "doctype": "DocField", + "label": "Weightage", + "fieldname": "weightage", + "fieldtype": "Int", + "permlevel": 0 + }, { "depends_on": "show_in_website", "doctype": "DocField", @@ -823,18 +832,9 @@ "permlevel": 0 }, { - "description": "Will appear in search", "depends_on": "show_in_website", "doctype": "DocField", - "label": "Short Description", - "fieldname": "web_short_description", - "fieldtype": "Text Editor", - "permlevel": 0 - }, - { - "depends_on": "show_in_website", - "doctype": "DocField", - "label": "Long Description", + "label": "Website Description", "fieldname": "web_long_description", "fieldtype": "Text Editor", "permlevel": 0 diff --git a/website/doctype/product_settings/__init__.py b/website/doctype/product_settings/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/website/doctype/product_settings/product_settings.py b/website/doctype/product_settings/product_settings.py new file mode 100644 index 0000000000..928aa9ff9f --- /dev/null +++ b/website/doctype/product_settings/product_settings.py @@ -0,0 +1,8 @@ +# For license information, please see license.txt + +from __future__ import unicode_literals +import webnotes + +class DocType: + def __init__(self, d, dl): + self.doc, self.doclist = d, dl \ No newline at end of file diff --git a/website/doctype/product_settings/product_settings.txt b/website/doctype/product_settings/product_settings.txt new file mode 100644 index 0000000000..d9c67f523c --- /dev/null +++ b/website/doctype/product_settings/product_settings.txt @@ -0,0 +1,65 @@ +[ + { + "owner": "Administrator", + "docstatus": 0, + "creation": "2012-12-20 14:05:00", + "modified_by": "Administrator", + "modified": "2012-12-20 15:46:15" + }, + { + "issingle": 1, + "description": "Settings for Product Catalog on the website", + "doctype": "DocType", + "module": "Website", + "document_type": "Other", + "name": "__common__" + }, + { + "name": "__common__", + "parent": "Product Settings", + "doctype": "DocField", + "parenttype": "DocType", + "permlevel": 0, + "parentfield": "fields" + }, + { + "parent": "Product Settings", + "read": 1, + "name": "__common__", + "create": 1, + "doctype": "DocPerm", + "write": 1, + "parenttype": "DocType", + "role": "Website Manager", + "permlevel": 0, + "parentfield": "permissions" + }, + { + "name": "Product Settings", + "doctype": "DocType" + }, + { + "description": "Default: \"Product Search\"", + "doctype": "DocField", + "label": "Search Help", + "fieldname": "search_help", + "fieldtype": "Data" + }, + { + "description": "List of Item Groups to be shown in \"All Products\" menu - in the sequence wanted and with number of indents (left spacing to show a tree effect).", + "doctype": "DocField", + "label": "Product Categories", + "fieldname": "sb2", + "fieldtype": "Section Break" + }, + { + "doctype": "DocField", + "label": "Website Product Categories", + "fieldname": "website_product_categories", + "fieldtype": "Table", + "options": "Website Product Category" + }, + { + "doctype": "DocPerm" + } +] \ No newline at end of file diff --git a/website/doctype/website_product_category/__init__.py b/website/doctype/website_product_category/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/website/doctype/website_product_category/website_product_category.py b/website/doctype/website_product_category/website_product_category.py new file mode 100644 index 0000000000..928aa9ff9f --- /dev/null +++ b/website/doctype/website_product_category/website_product_category.py @@ -0,0 +1,8 @@ +# For license information, please see license.txt + +from __future__ import unicode_literals +import webnotes + +class DocType: + def __init__(self, d, dl): + self.doc, self.doclist = d, dl \ No newline at end of file diff --git a/website/doctype/website_product_category/website_product_category.txt b/website/doctype/website_product_category/website_product_category.txt new file mode 100644 index 0000000000..6625b47c7b --- /dev/null +++ b/website/doctype/website_product_category/website_product_category.txt @@ -0,0 +1,43 @@ +[ + { + "owner": "Administrator", + "docstatus": 0, + "creation": "2012-12-20 14:21:35", + "modified_by": "Administrator", + "modified": "2012-12-20 15:00:25" + }, + { + "istable": 1, + "description": "Product Category for website", + "doctype": "DocType", + "module": "Website", + "document_type": "Transaction", + "name": "__common__" + }, + { + "name": "__common__", + "parent": "Website Product Category", + "doctype": "DocField", + "parenttype": "DocType", + "permlevel": 0, + "parentfield": "fields" + }, + { + "name": "Website Product Category", + "doctype": "DocType" + }, + { + "doctype": "DocField", + "label": "Item Group", + "fieldname": "item_group", + "fieldtype": "Link", + "options": "Item Group" + }, + { + "doctype": "DocField", + "label": "Indent", + "fieldname": "indent", + "fieldtype": "Select", + "options": "0\n1\n2\n3\n4\n5" + } +] \ No newline at end of file diff --git a/website/doctype/website_settings/website_settings.txt b/website/doctype/website_settings/website_settings.txt index b6429655d7..b02b55e44c 100644 --- a/website/doctype/website_settings/website_settings.txt +++ b/website/doctype/website_settings/website_settings.txt @@ -4,7 +4,7 @@ "docstatus": 0, "creation": "2012-07-12 23:29:36", "modified_by": "Administrator", - "modified": "2012-12-18 16:15:43" + "modified": "2012-12-20 14:28:46" }, { "issingle": 1, @@ -65,15 +65,6 @@ "fieldtype": "Column Break", "permlevel": 0 }, - { - "description": "Only Items / Groups under this Groups will be shown on the website. This will also represent the \"Products\" Home Page.", - "doctype": "DocField", - "label": "Default Product Category", - "options": "Item Group", - "fieldname": "default_product_category", - "fieldtype": "Link", - "permlevel": 0 - }, { "description": "If checked, the Home page will be the default Item Group for the website.", "doctype": "DocField", diff --git a/website/helpers/product.py b/website/helpers/product.py index 60d54e67f0..398049d4bd 100644 --- a/website/helpers/product.py +++ b/website/helpers/product.py @@ -4,6 +4,7 @@ from __future__ import unicode_literals import webnotes + @webnotes.whitelist(allow_guest=True) def get_product_info(item_code): """get product price / stock info""" @@ -24,40 +25,37 @@ def get_product_info(item_code): } @webnotes.whitelist(allow_guest=True) -def get_product_list(args=None): +def get_product_list(search=None, product_group=None, start=0): import webnotes from webnotes.utils import cstr - - if not args: args = webnotes.form_dict - if not args.search: args.search = "" - + # base query query = """\ select name, item_name, page_name, website_image, item_group, - if(ifnull(web_short_description,'')='', web_long_description, - web_short_description) as web_short_description + web_long_description as website_description from `tabItem` where docstatus = 0 and show_in_website = 1 """ # search term condition - if args.search: + if search: query += """ and ( - web_short_description like %(search)s or web_long_description like %(search)s or - description like %(search)s or item_name like %(search)s or name like %(search)s )""" - args['search'] = "%" + cstr(args.get('search')) + "%" + search = "%" + cstr(search) + "%" # product group condition - if args.get('product_group') and args.get('product_group') != 'All Products': + if product_group: query += """ and item_group = %(product_group)s """ # order by - query += """order by item_name asc, name asc limit %s, 10""" % args.start + query += """order by item_name asc, name asc limit %s, 10""" % start - return webnotes.conn.sql(query, args, as_dict=1) \ No newline at end of file + return webnotes.conn.sql(query, { + "search": search, + "product_group": product_group + }, as_dict=1) \ No newline at end of file diff --git a/website/page/website_home/website_home.html b/website/page/website_home/website_home.html index 16850e6be4..a8d2bb1abf 100644 --- a/website/page/website_home/website_home.html +++ b/website/page/website_home/website_home.html @@ -9,11 +9,14 @@

Weblog (blog) entry

-
Website Settings
+
Website Settings

Setup of top navigation bar, footer and logo


-
Style Settings
+
Style Settings

Setup of fonts and background

+
+
Product Settings
+

Settings for Product Catalog on the website.


diff --git a/website/templates/css/login.css b/website/templates/css/login.css index b7b7fca1de..3d6400954d 100644 --- a/website/templates/css/login.css +++ b/website/templates/css/login.css @@ -23,6 +23,9 @@ .login-box td { padding: 8px; } + .login-box td input { + margin-bottom: 0px; + } .login-footer { text-align: center; padding: 15px; diff --git a/website/templates/html/outer.html b/website/templates/html/outer.html index 9741451a43..fcd65f955f 100644 --- a/website/templates/html/outer.html +++ b/website/templates/html/outer.html @@ -35,7 +35,11 @@