From b596bcbccf787557bdb8d07d6d1b0aa258674f6b Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 3 Apr 2013 11:41:01 +0530 Subject: [PATCH 1/9] [desktop] [cleanup] moved to framework --- home/page/desktop/__init__.py | 1 - home/page/desktop/desktop.css | 86 ---------------- home/page/desktop/desktop.html | 6 -- home/page/desktop/desktop.js | 101 ------------------- home/page/desktop/desktop.txt | 32 ------ projects/page/projects_home/projects_home.js | 6 -- 6 files changed, 232 deletions(-) delete mode 100644 home/page/desktop/__init__.py delete mode 100644 home/page/desktop/desktop.css delete mode 100644 home/page/desktop/desktop.html delete mode 100644 home/page/desktop/desktop.js delete mode 100644 home/page/desktop/desktop.txt diff --git a/home/page/desktop/__init__.py b/home/page/desktop/__init__.py deleted file mode 100644 index baffc48825..0000000000 --- a/home/page/desktop/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from __future__ import unicode_literals diff --git a/home/page/desktop/desktop.css b/home/page/desktop/desktop.css deleted file mode 100644 index ed3a1b3209..0000000000 --- a/home/page/desktop/desktop.css +++ /dev/null @@ -1,86 +0,0 @@ -/* Sprite CSS */ - -.case-border { - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; - width: 32px; - height: 32px; - padding: 12px; - border: 2px solid white; - box-shadow: 0 0 4px 1px black; - -moz-box-shadow: 0 0 4px 1px black; - -webkit-box-shadow: 0 0 4px 1px black; - -o-box-shadow: 0 0 4px 1px black; - margin: auto; -} - -.case-wrapper { - margin: 24px; - float: left; - width: 100px; - height: 100px; -} - -.case-wrapper i { - font-size: 32px; - color: #f8f8f8; -} - -.case-label { - color: white; - padding-top: 10px; - text-align: center; - text-shadow: 1px 1px 2px #000, 1px 1px 2px #000, 1px 1px 2px #000, 0px 0px 2px #000; -} - -/* Hover and click effects */ -.case-border:hover, .circle:hover, .hover-effect { - box-shadow: 0 0 2px 0px black, 0 0 4px 1px white !important; - -moz-box-shadow: 0 0 2px 0px black, 0 0 4px 1px white !important; - -webkit-box-shadow: 0 0 2px 0px black, 0 0 4px 1px white !important; - -o-box-shadow: 0 0 2px 0px black, 0 0 10px 1px white !important; -} - -.case-border:active, .case-border:focus, .case-border-click { - transform: scale(0.98, 0.98); - -ms-transform: scale(0.98, 0.98); /* IE 9 */ - -webkit-transform: scale(0.98, 0.98); /* Safari and Chrome */ - -o-transform: scale(0.98, 0.98); /* Opera */ - -moz-transform: scale(0.98, 0.98); /* Firefox */ -} - -.circle:active, .circle:focus, .circle-click { - transform: scale(1, 1); - -ms-transform: scale(1, 1); /* IE 9 */ - -webkit-transform: scale(1, 1); /* Safari and Chrome */ - -o-transform: scale(1, 1); /* Opera */ - -moz-transform: scale(1, 1); /* Firefox */ -} - -.circle { - border-radius: 30px; - -moz-border-radius: 30px; - -webkit-border-radius: 30px; - height: 15px; - line-height: 12px; - min-width: 15px; - background: #B00D07; - padding: 3px; - float: right; - margin-top: -12px; - margin-right: 10px; - border: 2px solid white; - box-shadow: 0 0 4px 1px black; - -moz-box-shadow: 0 0 4px 1px black; - -webkit-box-shadow: 0 0 4px 1px black; - -o-box-shadow: 0 0 4px 1px black; -} - -.circle-text { - color: white; - text-align: center; - display: inline-block; - margin-top: 1px; -} - diff --git a/home/page/desktop/desktop.html b/home/page/desktop/desktop.html deleted file mode 100644 index 43ee4236b7..0000000000 --- a/home/page/desktop/desktop.html +++ /dev/null @@ -1,6 +0,0 @@ -
-
-
-
-
diff --git a/home/page/desktop/desktop.js b/home/page/desktop/desktop.js deleted file mode 100644 index 87181d8a98..0000000000 --- a/home/page/desktop/desktop.js +++ /dev/null @@ -1,101 +0,0 @@ -wn.provide('erpnext.desktop'); - -erpnext.desktop.refresh = function() { - erpnext.desktop.render(); - - $("#icon-grid").sortable({ - update: function() { - new_order = []; - $("#icon-grid .case-wrapper").each(function(i, e) { - new_order.push($(this).attr("data-name")); - }); - wn.defaults.set_default("_desktop_items", new_order); - } - }); -} - -erpnext.desktop.render = function() { - document.title = "Desktop"; - var add_icon = function(m) { - var module = wn.modules[m]; - if(!module.label) - module.label = m; - module.name = m; - module.label = wn._(module.label); - module.gradient_css = wn.get_gradient_css(module.color, 45); - module._link = module.link.toLowerCase().replace("/", "-"); - - $module_icon = $(repl('\ -
\ -
\ - \ -
\ -
%(label)s
\ -
', module)).click(function() { - wn.set_route($(this).attr("data-link")); - }).css({ - cursor:"pointer" - }).appendTo("#icon-grid"); - } - - // modules - 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); - }) - - // setup - if(user_roles.indexOf('System Manager')!=-1) - add_icon('Setup') - - // notifications - erpnext.desktop.show_pending_notifications(); - -} - -erpnext.desktop.show_pending_notifications = function() { - var add_circle = function(str_module, id, title) { - var module = $('#'+str_module); - module.prepend( - repl('', {id: id, title: wn._(title)})); - - var case_border = module.find('.case-border'); - var circle = module.find('.circle'); - - var add_hover_and_click = function(primary, secondary, hover_class, click_class) { - primary - .hover( - function() { secondary.addClass(hover_class); }, - function() { secondary.removeClass(hover_class); }) - .mousedown(function() { secondary.addClass(click_class); }) - .mouseup(function() { secondary.removeClass(click_class); }) - .focusin(function() { $(this).mousedown(); }) - .focusout(function() { $(this).mouseup(); }) - } - - add_hover_and_click(case_border, circle, 'hover-effect', 'circle-click'); - add_hover_and_click(circle, case_border, 'hover-effect', 'case-border-click'); - - } - - add_circle('module-icon-messages', 'unread_messages', 'Unread Messages'); - 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-event', 'todays_events', 'Todays Events'); - add_circle('module-icon-projects-home', 'open_tasks', 'Open Tasks'); - add_circle('module-icon-questions', 'unanswered_questions', 'Unanswered Questions'); - add_circle('module-icon-selling-home', 'open_leads', 'Open Leads'); - - erpnext.update_messages(); - -} - -pscript.onload_desktop = function() { - // load desktop - erpnext.desktop.refresh(); -} - diff --git a/home/page/desktop/desktop.txt b/home/page/desktop/desktop.txt deleted file mode 100644 index 4a5fb9559d..0000000000 --- a/home/page/desktop/desktop.txt +++ /dev/null @@ -1,32 +0,0 @@ -[ - { - "creation": "2012-06-14 18:44:56", - "docstatus": 0, - "modified": "2013-02-12 18:11:00", - "modified_by": "Administrator", - "owner": "Administrator" - }, - { - "doctype": "Page", - "module": "Home", - "name": "__common__", - "page_name": "desktop", - "standard": "Yes", - "title": "Desktop" - }, - { - "doctype": "Page Role", - "name": "__common__", - "parent": "desktop", - "parentfield": "roles", - "parenttype": "Page", - "role": "All" - }, - { - "doctype": "Page", - "name": "desktop" - }, - { - "doctype": "Page Role" - } -] \ No newline at end of file diff --git a/projects/page/projects_home/projects_home.js b/projects/page/projects_home/projects_home.js index d9476e93f0..f3ef71a2da 100644 --- a/projects/page/projects_home/projects_home.js +++ b/projects/page/projects_home/projects_home.js @@ -26,12 +26,6 @@ wn.module_page["Projects"] = [ description: wn._("Batch Time Logs for billing."), doctype:"Time Log Batch" }, - { - label: wn._("Timesheet"), - description: wn._("[DEPRECATED] Timesheet for tasks."), - doctype:"Timesheet" - }, - ] }, { From 458fda8ca59df4a72e1161bc674b327ac9a8026c Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 3 Apr 2013 13:30:17 +0530 Subject: [PATCH 2/9] [quotation] [fix] letter head --- selling/doctype/quotation/quotation.txt | 64 +++---------------------- 1 file changed, 6 insertions(+), 58 deletions(-) diff --git a/selling/doctype/quotation/quotation.txt b/selling/doctype/quotation/quotation.txt index 23e767c328..feda14c591 100644 --- a/selling/doctype/quotation/quotation.txt +++ b/selling/doctype/quotation/quotation.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-04-03 09:50:56", + "creation": "2013-04-03 09:10:44", "docstatus": 0, - "modified": "2013-04-03 09:53:04", + "modified": "2013-04-03 09:58:02", "modified_by": "Administrator", "owner": "Administrator" }, @@ -34,7 +34,9 @@ "parent": "Quotation", "parentfield": "permissions", "parenttype": "DocType", - "read": 1 + "permlevel": 0, + "read": 1, + "report": 1 }, { "doctype": "DocType", @@ -678,7 +680,7 @@ "label": "Letter Head", "oldfieldname": "letter_head", "oldfieldtype": "Select", - "options": "\nDefault\nERP Grey Large\nERP LOGO\nERPNext Logo Black\nERPNext WT Logo", + "options": "link:Letter Head", "print_hide": 1, "read_only": 0 }, @@ -862,24 +864,11 @@ "print_hide": 1, "read_only": 0 }, - { - "amend": 0, - "cancel": 0, - "create": 0, - "doctype": "DocPerm", - "permlevel": 1, - "report": 0, - "role": "Sales Manager", - "submit": 0, - "write": 0 - }, { "amend": 1, "cancel": 1, "create": 1, "doctype": "DocPerm", - "permlevel": 0, - "report": 1, "role": "Sales Manager", "submit": 1, "write": 1 @@ -889,8 +878,6 @@ "cancel": 1, "create": 1, "doctype": "DocPerm", - "permlevel": 0, - "report": 1, "role": "Sales User", "submit": 1, "write": 1 @@ -900,19 +887,6 @@ "cancel": 0, "create": 0, "doctype": "DocPerm", - "permlevel": 1, - "report": 0, - "role": "Sales User", - "submit": 0, - "write": 0 - }, - { - "amend": 0, - "cancel": 0, - "create": 0, - "doctype": "DocPerm", - "permlevel": 0, - "report": 1, "role": "Customer", "submit": 0, "write": 0 @@ -922,43 +896,17 @@ "cancel": 1, "create": 1, "doctype": "DocPerm", - "permlevel": 0, - "report": 1, "role": "Maintenance Manager", "submit": 1, "write": 1 }, - { - "amend": 0, - "cancel": 0, - "create": 0, - "doctype": "DocPerm", - "permlevel": 1, - "report": 0, - "role": "Maintenance Manager", - "submit": 0, - "write": 0 - }, { "amend": 1, "cancel": 1, "create": 1, "doctype": "DocPerm", - "permlevel": 0, - "report": 1, "role": "Maintenance User", "submit": 1, "write": 1 - }, - { - "amend": 0, - "cancel": 0, - "create": 0, - "doctype": "DocPerm", - "permlevel": 1, - "report": 0, - "role": "Maintenance User", - "submit": 0, - "write": 0 } ] \ No newline at end of file From 0b9ec8cbc15afc96db99977fb17c81428056f3f6 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 3 Apr 2013 13:45:28 +0530 Subject: [PATCH 3/9] [auto inventory accounting] [fix] if non stock item, dont create gl entry in delivery note and pos sales invoice --- accounts/doctype/sales_invoice/sales_invoice.py | 5 +++-- stock/doctype/delivery_note/delivery_note.py | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py index 9b17fc0e61..1003a8ec22 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.py +++ b/accounts/doctype/sales_invoice/sales_invoice.py @@ -749,8 +749,9 @@ class DocType(SellingController): for item in self.doclist.get({"parentfield": "entries"}): self.check_expense_account(item) - gl_entries += self.get_gl_entries_for_stock(item.expense_account, - -1*item.buying_amount, cost_center=item.cost_center) + if item.buying_amount: + gl_entries += self.get_gl_entries_for_stock(item.expense_account, + -1*item.buying_amount, cost_center=item.cost_center) def make_pos_gl_entries(self, gl_entries): if cint(self.doc.is_pos) and self.doc.cash_bank_account and self.doc.paid_amount: diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py index daf7d61519..ab7d060859 100644 --- a/stock/doctype/delivery_note/delivery_note.py +++ b/stock/doctype/delivery_note/delivery_note.py @@ -413,8 +413,9 @@ class DocType(SellingController): for item in self.doclist.get({"parentfield": "delivery_note_details"}): self.check_expense_account(item) - gl_entries += self.get_gl_entries_for_stock(item.expense_account, -1*item.buying_amount, - cost_center=item.cost_center) + if item.buying_amount: + gl_entries += self.get_gl_entries_for_stock(item.expense_account, -1*item.buying_amount, + cost_center=item.cost_center) if gl_entries: from accounts.general_ledger import make_gl_entries From 27c4079ff9de023b154f7e26a940905b266f7e52 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 3 Apr 2013 15:21:44 +0530 Subject: [PATCH 4/9] [framework] [cleanup] desktop, todo, messages, modules setup moved to framework --- config.json | 79 +++++++ home/page/activity/activity.txt | 29 ++- .../april_2013/p04_reverse_modules_list.py | 11 + patches/patch_list.py | 2 +- public/build.json | 1 - public/js/modules.js | 105 --------- public/js/startup.js | 6 +- public/js/toolbar.js | 7 +- setup/page/modules_setup/__init__.py | 1 - setup/page/modules_setup/modules_setup.css | 0 setup/page/modules_setup/modules_setup.html | 14 -- setup/page/modules_setup/modules_setup.js | 51 ----- setup/page/modules_setup/modules_setup.py | 9 - setup/page/modules_setup/modules_setup.txt | 32 --- startup/boot.py | 4 +- utilities/page/messages/__init__.py | 1 - utilities/page/messages/messages.css | 32 --- utilities/page/messages/messages.html | 0 utilities/page/messages/messages.js | 214 ------------------ utilities/page/messages/messages.py | 117 ---------- utilities/page/messages/messages.txt | 21 -- utilities/page/todo/__init__.py | 1 - utilities/page/todo/todo.css | 51 ----- utilities/page/todo/todo.html | 11 - utilities/page/todo/todo.js | 212 ----------------- utilities/page/todo/todo.py | 64 ------ utilities/page/todo/todo.txt | 21 -- 27 files changed, 116 insertions(+), 980 deletions(-) create mode 100644 config.json create mode 100644 patches/april_2013/p04_reverse_modules_list.py delete mode 100644 public/js/modules.js delete mode 100644 setup/page/modules_setup/__init__.py delete mode 100644 setup/page/modules_setup/modules_setup.css delete mode 100644 setup/page/modules_setup/modules_setup.html delete mode 100644 setup/page/modules_setup/modules_setup.js delete mode 100644 setup/page/modules_setup/modules_setup.py delete mode 100644 setup/page/modules_setup/modules_setup.txt delete mode 100644 utilities/page/messages/__init__.py delete mode 100644 utilities/page/messages/messages.css delete mode 100644 utilities/page/messages/messages.html delete mode 100644 utilities/page/messages/messages.js delete mode 100644 utilities/page/messages/messages.py delete mode 100644 utilities/page/messages/messages.txt delete mode 100644 utilities/page/todo/__init__.py delete mode 100644 utilities/page/todo/todo.css delete mode 100644 utilities/page/todo/todo.html delete mode 100644 utilities/page/todo/todo.js delete mode 100644 utilities/page/todo/todo.py delete mode 100644 utilities/page/todo/todo.txt diff --git a/config.json b/config.json new file mode 100644 index 0000000000..0f6bd0a5f9 --- /dev/null +++ b/config.json @@ -0,0 +1,79 @@ +{ + "modules": { + "Selling": { + "link": "selling-home", + "color": "#3f4901", + "icon": "icon-tag", + "type": "module" + }, + "Accounts": { + "link": "accounts-home", + "color": "#025770", + "icon": "icon-money", + "type": "module" + }, + "Stock": { + "type": "module", + "link": "stock-home", + "color": "#a66a02", + "icon": "icon-truck" + }, + "Buying": { + "type": "module", + "link": "buying-home", + "color": "#8F0222", + "icon": "icon-shopping-cart" + }, + "Support": { + "type": "module", + "link": "support-home", + "color": "#410169", + "icon": "icon-phone" + }, + "Projects": { + "type": "module", + "link": "projects-home", + "color": "#473b7f", + "icon": "icon-tasks" + }, + "Manufacturing": { + "type": "module", + "link": "manufacturing-home", + "color": "#590116", + "icon": "icon-magic" + }, + "Website": { + "type": "module", + "link": "website-home", + "color": "#968c00", + "icon": "icon-globe" + }, + "HR": { + "type": "module", + "link": "hr-home", + "color": "#018d6c", + "label": "Human Resources", + "icon": "icon-group" + }, + "Setup": { + "type": "setup", + "link": "Setup", + "color": "#484848", + "icon": "icon-wrench" + }, + "Activity": { + "type": "page", + "link": "activity", + "color": "#633501", + "icon": "icon-play", + "label": "Activity" + }, + "Knowledge Base": { + "type": "page", + "link": "questions", + "color": "#01372b", + "label": "Knowledge Base", + "icon": "icon-question-sign" + } + } +} \ No newline at end of file diff --git a/home/page/activity/activity.txt b/home/page/activity/activity.txt index ec39d011a0..57f4b7a082 100644 --- a/home/page/activity/activity.txt +++ b/home/page/activity/activity.txt @@ -1,21 +1,32 @@ [ { - "owner": "Administrator", + "creation": "2012-06-14 18:44:56", "docstatus": 0, - "creation": "2012-02-29 11:59:13", + "modified": "2013-04-03 14:59:38", "modified_by": "Administrator", - "modified": "2012-02-29 12:11:46" + "owner": "Administrator" }, { - "name": "__common__", - "title": "Activity", - "module": "Home", "doctype": "Page", + "module": "Home", + "name": "__common__", "page_name": "activity", - "standard": "Yes" + "standard": "Yes", + "title": "Activity" }, { - "name": "activity", - "doctype": "Page" + "doctype": "Page Role", + "name": "__common__", + "parent": "activity", + "parentfield": "roles", + "parenttype": "Page", + "role": "All" + }, + { + "doctype": "Page", + "name": "activity" + }, + { + "doctype": "Page Role" } ] \ No newline at end of file diff --git a/patches/april_2013/p04_reverse_modules_list.py b/patches/april_2013/p04_reverse_modules_list.py new file mode 100644 index 0000000000..9215fea5d9 --- /dev/null +++ b/patches/april_2013/p04_reverse_modules_list.py @@ -0,0 +1,11 @@ +import webnotes, json +import webnotes.utils + +def execute(): + modules = webnotes.get_config().modules + + ml = json.loads(webnotes.conn.get_global("modules_list") or "[]") + + webnotes.conn.set_global("hidden_modules", + json.dumps(list(set(modules.keys()).difference(set(ml))))) + \ No newline at end of file diff --git a/patches/patch_list.py b/patches/patch_list.py index 28d735c43d..4c69e303a4 100644 --- a/patches/patch_list.py +++ b/patches/patch_list.py @@ -234,5 +234,5 @@ patch_list = [ 'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Classic") # 2013-04-02', 'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Modern") # 2013-04-02', 'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Spartan") # 2013-04-02', - + "patches.april_2013.p04_reverse_modules_list", ] \ No newline at end of file diff --git a/public/build.json b/public/build.json index 05d603f4b9..24abde20b2 100644 --- a/public/build.json +++ b/public/build.json @@ -13,7 +13,6 @@ "public/js/all-app.min.js": [ "app/public/js/startup.js", "app/public/js/conf.js", - "app/public/js/modules.js", "app/public/js/toolbar.js", "app/public/js/feature_setup.js", "app/public/js/utils.js", diff --git a/public/js/modules.js b/public/js/modules.js deleted file mode 100644 index dc9548f8d7..0000000000 --- a/public/js/modules.js +++ /dev/null @@ -1,105 +0,0 @@ -// ERPNext - web based ERP (http://erpnext.com) -// Copyright (C) 2012 Web Notes Technologies Pvt Ltd -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -wn.home_page = "desktop"; -wn.provide("wn.module_page"); - -$.extend(wn.modules, { - "Selling": { - link: "selling-home", - color: "#3f4901", - icon: "icon-tag" - }, - "Accounts": { - link: "accounts-home", - color: "#025770", - icon: "icon-money" - }, - "Stock": { - link: "stock-home", - color: "#a66a02", - icon: "icon-truck" - }, - "Buying": { - link: "buying-home", - color: "#8F0222", - icon: "icon-shopping-cart" - }, - "Support": { - link: "support-home", - color: "#410169", - icon: "icon-phone" - }, - "Projects": { - link: "projects-home", - color: "#473b7f", - icon: "icon-tasks" - }, - "Manufacturing": { - link: "manufacturing-home", - color: "#590116", - icon: "icon-magic" - }, - "Website": { - link: "website-home", - color: "#968c00", - icon: "icon-globe" - }, - "HR": { - link: "hr-home", - color: "#018d6c", - label: wn._("Human Resources"), - icon: "icon-group" - }, - "Setup": { - link: "Setup", - color: "#484848", - icon: "icon-wrench" - }, - "Activity": { - link: "activity", - color: "#633501", - icon: "icon-play", - label: wn._("Activity"), - }, - "To Do": { - link: "todo", - color: "#febf04", - label: wn._("To Do"), - icon: "icon-check" - }, - "Calendar": { - link: "Calendar/Event", - color: "#026584", - label: wn._("Calendar"), - icon: "icon-calendar" - }, - "Messages": { - link: "messages", - color: "#8d016e", - label: wn._("Messages"), - icon: "icon-comments" - }, - "Knowledge Base": { - link: "questions", - color: "#01372b", - label: wn._("Knowledge Base"), - icon: "icon-question-sign" - }, - -}); - -wn.provide('erpnext.module_page'); \ No newline at end of file diff --git a/public/js/startup.js b/public/js/startup.js index 1ae3feb613..0a6580be94 100644 --- a/public/js/startup.js +++ b/public/js/startup.js @@ -31,11 +31,7 @@ erpnext.startup.start = function() { if(user != 'Guest'){ erpnext.setup_mousetrap(); - - // always allow apps - wn.boot.profile.allow_modules = wn.boot.profile.allow_modules.concat( - ['To Do', 'Knowledge Base', 'Calendar', 'Activity', 'Messages']) - + // setup toolbar erpnext.toolbar.setup(); diff --git a/public/js/toolbar.js b/public/js/toolbar.js index bcd2ddd388..03d7d0aba9 100644 --- a/public/js/toolbar.js +++ b/public/js/toolbar.js @@ -74,12 +74,11 @@ erpnext.toolbar.add_modules = function() { } // add to dropdown - 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]) { + $.each(modules_list,function(i, m) { + if(m!='Setup') { $('.navbar .modules').append(_get_list_item(m)); } - } + }) // setup for system manager if(user_roles.indexOf("System Manager")!=-1) { diff --git a/setup/page/modules_setup/__init__.py b/setup/page/modules_setup/__init__.py deleted file mode 100644 index baffc48825..0000000000 --- a/setup/page/modules_setup/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from __future__ import unicode_literals diff --git a/setup/page/modules_setup/modules_setup.css b/setup/page/modules_setup/modules_setup.css deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/setup/page/modules_setup/modules_setup.html b/setup/page/modules_setup/modules_setup.html deleted file mode 100644 index 26130de6f8..0000000000 --- a/setup/page/modules_setup/modules_setup.html +++ /dev/null @@ -1,14 +0,0 @@ -
- × -

Modules Setup

-
-
- Select checkbox to show / hide module. -
-
-
-
- -
-
\ No newline at end of file diff --git a/setup/page/modules_setup/modules_setup.js b/setup/page/modules_setup/modules_setup.js deleted file mode 100644 index 5868b46244..0000000000 --- a/setup/page/modules_setup/modules_setup.js +++ /dev/null @@ -1,51 +0,0 @@ -wn.require('lib/js/lib/jquery/jquery.ui.sortable.js'); - -$.extend(wn.pages.modules_setup, { - modules: ['Activity', 'Accounts', 'Selling', 'Buying', 'Stock', 'Manufacturing', 'Projects', - 'Support', 'HR', 'Website', 'To Do', 'Messages', 'Calendar', 'Knowledge Base'], - onload: function(wrapper) { - wn.pages.modules_setup.refresh_page(JSON.parse(wn.boot.modules_list || "[]")); - }, - refresh_page: function(ml) { - $('#modules-list').empty(); - - // Hide Setup and Dashboard modules - ml.indexOf('Setup')!=-1 && ml.splice(ml.indexOf('Setup'), 1); - - // checked modules - for(i in ml) { - $('#modules-list').append(repl('

\ - \ - %(m)s

', {m:ml[i]})); - } - $('#modules-list [data-module]').attr('checked', true); - - // unchecked modules - var all = wn.pages.modules_setup.modules; - for(i in all) { - if(!$('#modules-list [data-module="'+all[i]+'"]').length) { - $('#modules-list').append(repl('

\ - \ - %(m)s

', {m:all[i]})); - } - } - - }, - update: function() { - var ml = []; - $('#modules-list [data-module]').each(function() { - if($(this).attr('checked')) - ml.push($(this).attr('data-module')); - }); - - wn.call({ - method: 'setup.page.modules_setup.modules_setup.update', - args: { - ml: JSON.stringify(ml) - }, - callback: function(r) { - }, - btn: $('#modules-update').get(0) - }); - } -}); diff --git a/setup/page/modules_setup/modules_setup.py b/setup/page/modules_setup/modules_setup.py deleted file mode 100644 index 3a3504a226..0000000000 --- a/setup/page/modules_setup/modules_setup.py +++ /dev/null @@ -1,9 +0,0 @@ -from __future__ import unicode_literals -import webnotes - -@webnotes.whitelist() -def update(arg=None): - """update modules""" - webnotes.conn.set_global('modules_list', webnotes.form_dict['ml']) - webnotes.msgprint('Updated') - webnotes.clear_cache() \ No newline at end of file diff --git a/setup/page/modules_setup/modules_setup.txt b/setup/page/modules_setup/modules_setup.txt deleted file mode 100644 index a20e9df98b..0000000000 --- a/setup/page/modules_setup/modules_setup.txt +++ /dev/null @@ -1,32 +0,0 @@ -[ - { - "owner": "Administrator", - "docstatus": 0, - "creation": "2012-06-14 15:07:28", - "modified_by": "Administrator", - "modified": "2012-10-04 16:55:31" - }, - { - "name": "__common__", - "title": "Modules Setup", - "module": "Setup", - "doctype": "Page", - "page_name": "modules_setup", - "standard": "Yes" - }, - { - "parent": "modules_setup", - "name": "__common__", - "doctype": "Page Role", - "parenttype": "Page", - "role": "System Manager", - "parentfield": "roles" - }, - { - "name": "modules_setup", - "doctype": "Page" - }, - { - "doctype": "Page Role" - } -] \ No newline at end of file diff --git a/startup/boot.py b/startup/boot.py index 574646f959..4774a903aa 100644 --- a/startup/boot.py +++ b/startup/boot.py @@ -26,9 +26,7 @@ def boot_session(bootinfo): import webnotes.model.doctype bootinfo['notification_settings'] = webnotes.doc("Notification Control", "Notification Control").get_values() - - bootinfo['modules_list'] = webnotes.conn.get_global('modules_list') - + # if no company, show a dialog box to create a new company bootinfo['setup_complete'] = webnotes.conn.sql("""select name from tabCompany limit 1""") and 'Yes' or 'No' diff --git a/utilities/page/messages/__init__.py b/utilities/page/messages/__init__.py deleted file mode 100644 index baffc48825..0000000000 --- a/utilities/page/messages/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from __future__ import unicode_literals diff --git a/utilities/page/messages/messages.css b/utilities/page/messages/messages.css deleted file mode 100644 index 88bbde7e86..0000000000 --- a/utilities/page/messages/messages.css +++ /dev/null @@ -1,32 +0,0 @@ -#message-post-text { -} - -#message-list { -} - -.message { - padding: 7px; - padding-left: 17px; - border-bottom: 1px solid #ccc; -} - -.message-mark { - margin-left: -17px; - width: 9px; - position: absolute; - height: 30px; -} - -.message .help { - margin-bottom: 0px; - padding-bottom: 0px; - color: #888; - font-size: 11px; -} - -.message-other { -} - -.message-self { - background-color: #eee; -} \ No newline at end of file diff --git a/utilities/page/messages/messages.html b/utilities/page/messages/messages.html deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/utilities/page/messages/messages.js b/utilities/page/messages/messages.js deleted file mode 100644 index 4d77e16e6d..0000000000 --- a/utilities/page/messages/messages.js +++ /dev/null @@ -1,214 +0,0 @@ -// ERPNext - web based ERP (http://erpnext.com) -// Copyright (C) 2012 Web Notes Technologies Pvt Ltd -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -wn.provide('erpnext.messages'); - -wn.pages.messages.onload = function(wrapper) { - wn.ui.make_app_page({ - parent: wrapper, - title: "Messages" - }); - - $('
\ -
\ -

Everyone

\ -

\ -
\ - \ -

\ -
\ -
').appendTo($(wrapper).find('.layout-main-section')); - - wrapper.appframe.add_home_breadcrumb(); - wrapper.appframe.add_breadcrumb(wn.modules["Messages"].icon); - - erpnext.messages = new erpnext.Messages(wrapper); - erpnext.toolbar.set_new_comments(0); -} - -$(wn.pages.messages).bind('show', function() { - // remove alerts - $('#alert-container .alert').remove(); - - erpnext.toolbar.set_new_comments(0); - erpnext.messages.show(); - setTimeout("erpnext.messages.refresh()", 17000); -}) - -erpnext.Messages = Class.extend({ - init: function(wrapper) { - this.wrapper = wrapper; - this.show_active_users(); - this.make_post_message(); - this.make_list(); - //this.update_messages('reset'); //Resets notification icons - }, - make_post_message: function() { - var me = this; - $('#post-message textarea').keydown(function(e) { - if(e.which==13) { - $('#post-message .btn').click(); - return false; - } - }); - - $('#post-message .btn').click(function() { - var txt = $('#post-message textarea').val(); - if(txt) { - wn.call({ - module:'utilities', - page:'messages', - method:'post', - args: { - txt: txt, - contact: me.contact - }, - callback:function(r,rt) { - $('#post-message textarea').val('') - me.list.run(); - }, - btn: this - }); - } - }); - }, - show: function() { - var contact = this.get_contact() || this.contact || user; - - $('#message-title').html(contact==user ? "Everyone" : - wn.user_info(contact).fullname) - - $('#avatar-image').attr("src", wn.utils.get_file_link(wn.user_info(contact).image)); - - $("#show-everyone").toggle(contact!=user); - - $("#post-message button").text(contact==user ? "Post Publicly" : "Post to user") - - this.contact = contact; - this.list.opts.args.contact = contact; - this.list.run(); - - }, - // check for updates every 5 seconds if page is active - refresh: function() { - setTimeout("erpnext.messages.refresh()", 17000); - if(wn.container.page.label != 'Messages') return; - this.show(); - }, - get_contact: function() { - var route = location.hash; - if(route.indexOf('/')!=-1) { - var name = decodeURIComponent(route.split('/')[1]); - if(name.indexOf('__at__')!=-1) { - name = name.replace('__at__', '@'); - } - return name; - } - }, - make_list: function() { - this.list = new wn.ui.Listing({ - parent: $(this.wrapper).find('.all-messages'), - method: 'utilities.page.messages.messages.get_list', - args: { - contact: null - }, - hide_refresh: true, - no_loading: true, - render_row: function(wrapper, data) { - $(wrapper).removeClass('list-row'); - - data.creation = dateutil.comment_when(data.creation); - data.comment_by_fullname = wn.user_info(data.owner).fullname; - data.image = wn.utils.get_file_link(wn.user_info(data.owner).image); - data.mark_html = ""; - - data.reply_html = ''; - if(data.owner==user) { - data.cls = 'message-self'; - data.comment_by_fullname = 'You'; - } else { - data.cls = 'message-other'; - } - - // delete - data.delete_html = ""; - if(data.owner==user || data.comment.indexOf("assigned to")!=-1) { - data.delete_html = repl('×', data); - } - - if(data.owner==data.comment_docname && data.parenttype!="Assignment") { - data.mark_html = "
" - } - - wrapper.innerHTML = repl('
%(mark_html)s\ - %(comment)s\ - %(delete_html)s\ -
by %(comment_by_fullname)s, %(creation)s
\ -
\ -
', data); - } - }); - }, - delete: function(ele) { - $(ele).parent().css('opacity', 0.6); - wn.call({ - method:'utilities.page.messages.messages.delete', - args: {name : $(ele).attr('data-name')}, - callback: function() { - $(ele).parent().toggle(false); - } - }); - }, - show_active_users: function() { - var me = this; - wn.call({ - module:'utilities', - page:'messages', - method:'get_active_users', - callback: function(r,rt) { - var $body = $(me.wrapper).find('.layout-side-section'); - $('

Users


\ - \ - ').appendTo($body); - r.message.sort(function(a, b) { return b.has_session - a.has_session; }); - for(var i in r.message) { - var p = r.message[i]; - if(p.name != user) { - p.fullname = wn.user_info(p.name).fullname; - p.image = wn.utils.get_file_link(wn.user_info(p.name).image); - p.name = p.name.replace('@', '__at__'); - p.status_color = p.has_session ? "green" : "#ddd"; - p.status = p.has_session ? "Online" : "Offline"; - $(repl('

\ - \ - %(fullname)s\ -

', p)) - .appendTo($body); - } - } - } - }); - } -}); - - diff --git a/utilities/page/messages/messages.py b/utilities/page/messages/messages.py deleted file mode 100644 index 90f5e9152f..0000000000 --- a/utilities/page/messages/messages.py +++ /dev/null @@ -1,117 +0,0 @@ -# ERPNext - web based ERP (http://erpnext.com) -# Copyright (C) 2012 Web Notes Technologies Pvt Ltd -# -# 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. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -from __future__ import unicode_literals -import webnotes - -@webnotes.whitelist() -def get_list(arg=None): - """get list of messages""" - webnotes.form_dict['limit_start'] = int(webnotes.form_dict['limit_start']) - webnotes.form_dict['limit_page_length'] = int(webnotes.form_dict['limit_page_length']) - webnotes.form_dict['user'] = webnotes.session['user'] - - # set all messages as read - webnotes.conn.begin() - webnotes.conn.sql("""UPDATE `tabComment` - set docstatus = 1 where comment_doctype in ('My Company', 'Message') - and comment_docname = %s - """, webnotes.user.name) - webnotes.conn.commit() - - if webnotes.form_dict['contact'] == webnotes.session['user']: - # return messages - return webnotes.conn.sql("""select * from `tabComment` - where (owner=%(contact)s - or comment_docname=%(user)s - or (owner=comment_docname and ifnull(parenttype, "")!="Assignment")) - and comment_doctype ='Message' - order by creation desc - limit %(limit_start)s, %(limit_page_length)s""", webnotes.form_dict, as_dict=1) - else: - return webnotes.conn.sql("""select * from `tabComment` - where (owner=%(contact)s and comment_docname=%(user)s) - or (owner=%(user)s and comment_docname=%(contact)s) - or (owner=%(contact)s and comment_docname=%(contact)s) - and comment_doctype ='Message' - order by creation desc - limit %(limit_start)s, %(limit_page_length)s""", webnotes.form_dict, as_dict=1) - - -@webnotes.whitelist() -def get_active_users(arg=None): - return webnotes.conn.sql("""select name, - (select count(*) from tabSessions where user=tabProfile.name - and timediff(now(), lastupdate) < time("01:00:00")) as has_session - from tabProfile - where ifnull(enabled,0)=1 and - docstatus < 2 and - name not in ('Administrator', 'Guest') - order by first_name""", as_dict=1) - -@webnotes.whitelist() -def post(arg=None): - import webnotes - """post message""" - if not arg: - arg = {} - arg.update(webnotes.form_dict) - - if isinstance(arg, basestring): - import json - arg = json.loads(arg) - - from webnotes.model.doc import Document - d = Document('Comment') - d.parenttype = arg.get("parenttype") - d.comment = arg['txt'] - d.comment_docname = arg['contact'] - d.comment_doctype = 'Message' - d.save() - - import webnotes.utils - if webnotes.utils.cint(arg.get('notify')): - notify(arg) - -@webnotes.whitelist() -def delete(arg=None): - webnotes.conn.sql("""delete from `tabComment` where name=%s""", - webnotes.form_dict['name']); - -def notify(arg=None): - from webnotes.utils import cstr, get_fullname - from startup import get_url - - fn = get_fullname(webnotes.user.name) or webnotes.user.name - - url = get_url() - - message = '''You have a message from %s: - - %s - - To answer, please login to your erpnext account at \ - %s - ''' % (fn, arg['txt'], url, url) - - sender = webnotes.conn.get_value("Profile", webnotes.user.name, "email") \ - or webnotes.user.name - recipient = [webnotes.conn.get_value("Profile", arg["contact"], "email") \ - or arg["contact"]] - - from webnotes.utils.email_lib import sendmail - sendmail(recipient, sender, message, arg.get("subject") or "You have a message from %s" % (fn,)) - \ No newline at end of file diff --git a/utilities/page/messages/messages.txt b/utilities/page/messages/messages.txt deleted file mode 100644 index 32fab17f2d..0000000000 --- a/utilities/page/messages/messages.txt +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "owner": "Administrator", - "docstatus": 0, - "creation": "2012-02-24 11:21:57", - "modified_by": "Administrator", - "modified": "2012-02-24 11:21:57" - }, - { - "name": "__common__", - "title": "Messages", - "module": "Utilities", - "doctype": "Page", - "page_name": "messages", - "standard": "Yes" - }, - { - "name": "messages", - "doctype": "Page" - } -] \ No newline at end of file diff --git a/utilities/page/todo/__init__.py b/utilities/page/todo/__init__.py deleted file mode 100644 index baffc48825..0000000000 --- a/utilities/page/todo/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from __future__ import unicode_literals diff --git a/utilities/page/todo/todo.css b/utilities/page/todo/todo.css deleted file mode 100644 index f67f729c4f..0000000000 --- a/utilities/page/todo/todo.css +++ /dev/null @@ -1,51 +0,0 @@ -.todoitem { - padding-bottom: 3px; - clear: both; -} - -.todoitem div { - float: left; - display: inline-block; - padding: 3px; -} - -.todoitem .label { - width: 50px; - margin-right: 11px; - margin-top: 3px; - text-align: center; -} - -.todoitem .todo-date { - margin-top: -2px; - margin-right: 7px; - color: #aaa; -} - -.todoitem .close { - margin-left: 5px; - font-size: 17px; -} - -.todoitem .close-span { - float: right; -} - -.todo-separator { - border-bottom: 1px solid #DEB85F; - margin-bottom: 5px; - clear: both; -} - -.todo-content { - padding-right: 15px; -} - -.todo-layout { - background-color: #FFFDC9; - min-height: 300px; -} - -.todoitem .popup-on-click { - margin: 0px 6px; -} \ No newline at end of file diff --git a/utilities/page/todo/todo.html b/utilities/page/todo/todo.html deleted file mode 100644 index e00f8ef35b..0000000000 --- a/utilities/page/todo/todo.html +++ /dev/null @@ -1,11 +0,0 @@ -
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file diff --git a/utilities/page/todo/todo.js b/utilities/page/todo/todo.js deleted file mode 100644 index fa82002ea7..0000000000 --- a/utilities/page/todo/todo.js +++ /dev/null @@ -1,212 +0,0 @@ -// ERPNext - web based ERP (http://erpnext.com) -// Copyright (C) 2012 Web Notes Technologies Pvt Ltd -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -wn.provide('erpnext.todo'); - -erpnext.todo.refresh = function() { - wn.call({ - method: 'utilities.page.todo.todo.get', - callback: function(r,rt) { - var todo_list = $('#todo-list div.todo-content'); - var assigned_todo_list = $('#assigned-todo-list div.todo-content'); - todo_list.empty(); - assigned_todo_list.empty(); - - var nothing_to_do = function() { - $('#todo-list div.todo-content') - .html('
Nothing to do :)
'); - } - - - if(r.message) { - for(var i in r.message) { - new erpnext.todo.ToDoItem(r.message[i]); - } - if (!todo_list.html()) { nothing_to_do(); } - } else { - nothing_to_do(); - } - } - }); -} - -erpnext.todo.ToDoItem = Class.extend({ - init: function(todo) { - label_map = { - 'High': 'label-important', - 'Medium': 'label-info', - 'Low':'' - } - todo.labelclass = label_map[todo.priority]; - todo.userdate = dateutil.str_to_user(todo.date) || ''; - - todo.fullname = ''; - if(todo.assigned_by) { - var assigned_by = wn.boot.user_info[todo.assigned_by] - todo.fullname = repl("[By %(fullname)s] ".bold(), { - fullname: (assigned_by ? assigned_by.fullname : todo.assigned_by), - }); - } - - var parent_list = "#todo-list"; - if(todo.owner !== user) { - var owner = wn.boot.user_info[todo.owner]; - todo.fullname = repl("[To %(fullname)s] ".bold(), { - fullname: (owner ? owner.fullname : todo.owner), - }); - } - parent_list += " div.todo-content"; - - if(todo.reference_name && todo.reference_type) { - todo.link = repl('\ - %(reference_type)s: %(reference_name)s', todo); - } else if(todo.reference_type) { - todo.link = repl('
\ - %(reference_type)s', todo); - } else { - todo.link = ''; - } - if(!todo.description) todo.description = ''; - todo.description_display = todo.description.replace(/\n\n/g, "
").trim(); - - $(parent_list).append(repl('\ -
\ -
%(priority)s
\ - \ -
\ -
%(userdate)s
\ - %(fullname)s:\ -
\ -
%(description_display)s\ - %(link)s\ -
\ - \ -
\ -
', todo)); - $todo = $(parent_list + ' div.todoitem:last'); - - if(todo.checked) { - $todo.find('.description').css('text-decoration', 'line-through'); - } - - if(!todo.reference_type) - $todo.find('.ref_link').toggle(false); - - $todo.find('.popup-on-click') - .data('todo', todo) - .click(function() { - erpnext.todo.make_dialog($(this).data('todo')); - return false; - }); - - $todo.find('.close') - .data('name', todo.name) - .click(function() { - $(this).parent().css('opacity', 0.5); - wn.call({ - method:'utilities.page.todo.todo.delete', - args: {name: $(this).data('name')}, - callback: function() { - erpnext.todo.refresh(); - } - }); - return false; - }) - } -}); - -erpnext.todo.make_dialog = function(det) { - if(!erpnext.todo.dialog) { - var dialog = new wn.ui.Dialog({ - width: 480, - title: 'To Do', - fields: [ - {fieldtype:'Text', fieldname:'description', label:'Description', - reqd:1}, - {fieldtype:'Date', fieldname:'date', label:'Event Date', reqd:1}, - {fieldtype:'Check', fieldname:'checked', label:'Completed'}, - {fieldtype:'Select', fieldname:'priority', label:'Priority', reqd:1, 'options':['Medium','High','Low'].join('\n')}, - {fieldtype:'Button', fieldname:'save', label:'Save (Ctrl+S)'} - ] - }); - - dialog.fields_dict.save.input.onclick = function() { - erpnext.todo.save(this); - } - erpnext.todo.dialog = dialog; - } - - if(det) { - erpnext.todo.dialog.set_values({ - date: det.date, - priority: det.priority, - description: det.description, - checked: det.checked - }); - erpnext.todo.dialog.det = det; - } - erpnext.todo.dialog.show(); - -} - -erpnext.todo.save = function(btn) { - var d = erpnext.todo.dialog; - var det = d.get_values(); - - if(!det) { - return; - } - - det.name = d.det.name || ''; - wn.call({ - method:'utilities.page.todo.todo.edit', - args: det, - btn: btn, - callback: function() { - erpnext.todo.dialog.hide(); - erpnext.todo.refresh(); - } - }); -} - -wn.pages.todo.onload = function(wrapper) { - // create app frame - wrapper.appframe = new wn.ui.AppFrame($(wrapper).find('.appframe-area'), 'To Do'); - wrapper.appframe.add_home_breadcrumb(); - wrapper.appframe.add_breadcrumb(wn.modules["To Do"].icon); - wrapper.appframe.add_button('Refresh', erpnext.todo.refresh, 'icon-refresh'); - wrapper.appframe.add_button('Add', function() { - erpnext.todo.make_dialog({ - date:get_today(), priority:'Medium', checked:0, description:''}); - }, 'icon-plus'); - wrapper.appframe.add_ripped_paper_effect(wrapper); - - // show report button for System Manager - if(wn.boot.profile.roles.indexOf("System Manager") !== -1) { - wrapper.appframe.add_button("Report", function() { wn.set_route("query-report", "todo"); }, - "icon-table"); - } - - // load todos - erpnext.todo.refresh(); - - // save on click - wrapper.save_action = function() { - if(erpnext.todo.dialog && erpnext.todo.dialog.display) { - erpnext.todo.dialog.fields_dict.save.input.click(); - } - }; -} \ No newline at end of file diff --git a/utilities/page/todo/todo.py b/utilities/page/todo/todo.py deleted file mode 100644 index f0de04ec9b..0000000000 --- a/utilities/page/todo/todo.py +++ /dev/null @@ -1,64 +0,0 @@ -# ERPNext - web based ERP (http://erpnext.com) -# Copyright (C) 2012 Web Notes Technologies Pvt Ltd -# -# 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. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -from __future__ import unicode_literals -import webnotes -from webnotes.model.doc import Document - -@webnotes.whitelist() -def get(arg=None): - """get todo list""" - return webnotes.conn.sql("""select name, owner, description, date, - priority, checked, reference_type, reference_name, assigned_by - from `tabToDo` where (owner=%s or assigned_by=%s) - order by field(priority, 'High', 'Medium', 'Low') asc, date asc""", - (webnotes.session['user'], webnotes.session['user']), as_dict=1) - -@webnotes.whitelist() -def edit(arg=None): - import markdown2 - args = webnotes.form_dict - - d = Document('ToDo', args.get('name') or None) - d.description = args['description'] - d.date = args['date'] - d.priority = args['priority'] - d.checked = args.get('checked', 0) - if not d.owner: d.owner = webnotes.session['user'] - d.save(not args.get('name') and 1 or 0) - - if args.get('name') and d.checked: - notify_assignment(d) - - return d.name - -@webnotes.whitelist() -def delete(arg=None): - name = webnotes.form_dict['name'] - d = Document('ToDo', name) - if d and d.name and d.owner != webnotes.session['user']: - notify_assignment(d) - webnotes.conn.sql("delete from `tabToDo` where name = %s", name) - -def notify_assignment(d): - doc_type = d.reference_type - doc_name = d.reference_name - assigned_by = d.assigned_by - - if doc_type and doc_name and assigned_by: - from webnotes.widgets.form import assign_to - assign_to.notify_assignment(assigned_by, d.owner, doc_type, doc_name) - \ No newline at end of file diff --git a/utilities/page/todo/todo.txt b/utilities/page/todo/todo.txt deleted file mode 100644 index 523bb43337..0000000000 --- a/utilities/page/todo/todo.txt +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "owner": "Administrator", - "docstatus": 0, - "creation": "2012-02-23 13:59:03", - "modified_by": "Administrator", - "modified": "2012-02-23 13:59:03" - }, - { - "name": "__common__", - "title": "To Do", - "module": "Utilities", - "doctype": "Page", - "page_name": "todo", - "standard": "Yes" - }, - { - "name": "todo", - "doctype": "Page" - } -] \ No newline at end of file From 5c1d3c5a8b55cfc04e2e2eb69c61b6dd0f4bd133 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 3 Apr 2013 15:44:19 +0530 Subject: [PATCH 5/9] [New Script Report] added report daily time log summary --- patches/patch_list.py | 1 + projects/page/projects_home/projects_home.js | 4 +- .../__init__.py | 0 .../daily_time_log_summary.js | 21 ++++++++ .../daily_time_log_summary.py | 53 +++++++++++++++++++ .../daily_time_log_summary.txt | 21 ++++++++ .../time_log_summary/time_log_summary.txt | 22 -------- 7 files changed, 98 insertions(+), 24 deletions(-) rename projects/report/{time_log_summary => daily_time_log_summary}/__init__.py (100%) create mode 100644 projects/report/daily_time_log_summary/daily_time_log_summary.js create mode 100644 projects/report/daily_time_log_summary/daily_time_log_summary.py create mode 100644 projects/report/daily_time_log_summary/daily_time_log_summary.txt delete mode 100644 projects/report/time_log_summary/time_log_summary.txt diff --git a/patches/patch_list.py b/patches/patch_list.py index 28d735c43d..0b7092c76d 100644 --- a/patches/patch_list.py +++ b/patches/patch_list.py @@ -234,5 +234,6 @@ patch_list = [ 'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Classic") # 2013-04-02', 'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Modern") # 2013-04-02', 'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Spartan") # 2013-04-02', + "execute:webnotes.delete_doc('Search Criteria', 'time_log_summary')" ] \ No newline at end of file diff --git a/projects/page/projects_home/projects_home.js b/projects/page/projects_home/projects_home.js index d9476e93f0..0e7ccff89e 100644 --- a/projects/page/projects_home/projects_home.js +++ b/projects/page/projects_home/projects_home.js @@ -62,8 +62,8 @@ wn.module_page["Projects"] = [ icon: "icon-list", items: [ { - "label":wn._("Time Log Summary"), - route: "Report2/Time Log/Time Log Summary", + "label":wn._("Daily Time Log Summary"), + route: "query-report/Daily Time Log Summary", doctype: "Time Log" }, ] diff --git a/projects/report/time_log_summary/__init__.py b/projects/report/daily_time_log_summary/__init__.py similarity index 100% rename from projects/report/time_log_summary/__init__.py rename to projects/report/daily_time_log_summary/__init__.py diff --git a/projects/report/daily_time_log_summary/daily_time_log_summary.js b/projects/report/daily_time_log_summary/daily_time_log_summary.js new file mode 100644 index 0000000000..7eb3acb0a8 --- /dev/null +++ b/projects/report/daily_time_log_summary/daily_time_log_summary.js @@ -0,0 +1,21 @@ +wn.query_reports["Daily Time Log Summary"] = { + "filters": [ + { + "fieldname": "employee_name", + "label":"Employee Name", + "fieldtype": "Data", + }, + { + "fieldname":"from_date", + "label": "From Date", + "fieldtype": "Date", + "default": wn.datetime.get_today() + }, + { + "fieldname":"to_date", + "label": "To Date", + "fieldtype": "Date", + "default": wn.datetime.get_today() + } + ] +} \ No newline at end of file diff --git a/projects/report/daily_time_log_summary/daily_time_log_summary.py b/projects/report/daily_time_log_summary/daily_time_log_summary.py new file mode 100644 index 0000000000..ac51ebf9ed --- /dev/null +++ b/projects/report/daily_time_log_summary/daily_time_log_summary.py @@ -0,0 +1,53 @@ +from __future__ import unicode_literals +import webnotes + +def execute(filters=None): + if not filters: filters = {} + columns = ["Profile:Link:150", "From Time::120", "To Time::120", "Hours::70", "Task::150", + "Project:Link/Project:100", "Status::70"] + + profile_map = get_profile_map() + + if filters.get("employee_name"): + filters["employee_name"] = "%" + filters.get("employee_name") + "%" + + conditions = build_conditions(filters) + time_logs = webnotes.conn.sql("""select * from `tabTime Log` + where docstatus < 2 %s order by owner asc""" % (conditions,), filters, as_dict=1) + + data = [] + profiles = [] + + for tl in time_logs: + employee_name = profile_map[tl.owner] + if employee_name not in profiles: + data.append(employee_name) + profiles.append(employee_name) + + data.append(["", tl.from_time, tl.to_time, tl.hours, tl.task, tl.project, tl.status]) + + return columns, data + +def get_profile_map(): + profiles = webnotes.conn.sql("""select name, + concat(first_name, if(last_name, (' ' + last_name), '')) as fullname + from tabProfile""", as_dict=1) + profile_map = {} + for p in profiles: + profile_map.setdefault(p.name, []).append(p.fullname) + + return profile_map + +def build_conditions(filters): + conditions = "" + if filters.get("employee_name"): + conditions += """ and owner in (select name from `tabProfile` + where concat(first_name, if(last_name, (' ' + last_name), '')) + like %(employee_name)s)""" + + if filters.get("from_date"): + conditions += " and from_time >= %(from_date)s" + if filters.get("to_date"): + conditions += " and to_time <= %(to_date)s" + + return conditions \ No newline at end of file diff --git a/projects/report/daily_time_log_summary/daily_time_log_summary.txt b/projects/report/daily_time_log_summary/daily_time_log_summary.txt new file mode 100644 index 0000000000..5bf3e6d57e --- /dev/null +++ b/projects/report/daily_time_log_summary/daily_time_log_summary.txt @@ -0,0 +1,21 @@ +[ + { + "creation": "2013-04-03 11:27:52", + "docstatus": 0, + "modified": "2013-04-03 11:48:07", + "modified_by": "Administrator", + "owner": "Administrator" + }, + { + "doctype": "Report", + "is_standard": "Yes", + "name": "__common__", + "ref_doctype": "Time Log", + "report_name": "Daily Time Log Summary", + "report_type": "Script Report" + }, + { + "doctype": "Report", + "name": "Daily Time Log Summary" + } +] \ No newline at end of file diff --git a/projects/report/time_log_summary/time_log_summary.txt b/projects/report/time_log_summary/time_log_summary.txt deleted file mode 100644 index 3925a2dd80..0000000000 --- a/projects/report/time_log_summary/time_log_summary.txt +++ /dev/null @@ -1,22 +0,0 @@ -[ - { - "creation": "2013-03-01 17:36:35", - "docstatus": 0, - "modified": "2013-03-01 18:17:13", - "modified_by": "Administrator", - "owner": "Administrator" - }, - { - "doctype": "Report", - "is_standard": "Yes", - "json": "{\"filters\":[],\"columns\":[[\"name\",\"Time Log\"],[\"status\",\"Time Log\"],[\"from_time\",\"Time Log\"],[\"hours\",\"Time Log\"],[\"activity_type\",\"Time Log\"],[\"owner\",\"Time Log\"],[\"billable\",\"Time Log\"],[\"time_log_batch\",\"Time Log\"],[\"sales_invoice\",\"Time Log\"]],\"sort_by\":\"Time Log.name\",\"sort_order\":\"desc\",\"sort_by_next\":\"\",\"sort_order_next\":\"desc\"}", - "name": "__common__", - "ref_doctype": "Time Log", - "report_name": "Time Log Summary", - "report_type": "Report Builder" - }, - { - "doctype": "Report", - "name": "Time Log Summary" - } -] \ No newline at end of file From 7dfa1d935cf6fb18b0bde5de2ab38b658430b73a Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 3 Apr 2013 15:48:57 +0530 Subject: [PATCH 6/9] [New Script Report] added report daily time log summary --- .../report/daily_time_log_summary/daily_time_log_summary.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/report/daily_time_log_summary/daily_time_log_summary.py b/projects/report/daily_time_log_summary/daily_time_log_summary.py index ac51ebf9ed..376ee30d75 100644 --- a/projects/report/daily_time_log_summary/daily_time_log_summary.py +++ b/projects/report/daily_time_log_summary/daily_time_log_summary.py @@ -3,8 +3,8 @@ import webnotes def execute(filters=None): if not filters: filters = {} - columns = ["Profile:Link:150", "From Time::120", "To Time::120", "Hours::70", "Task::150", - "Project:Link/Project:100", "Status::70"] + columns = ["Employee::150", "From Time::120", "To Time::120", "Hours::70", "Task::150", + "Project:Link/Project:120", "Status::70"] profile_map = get_profile_map() From dd8e964a17fb9df6ba8cac4862aef160ef58d00a Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 3 Apr 2013 15:51:55 +0530 Subject: [PATCH 7/9] [New Script Report] added report daily time log summary --- projects/doctype/time_log/time_log.txt | 38 ++++++++++++++++++-------- 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/projects/doctype/time_log/time_log.txt b/projects/doctype/time_log/time_log.txt index 838d3f178a..09c04c5167 100644 --- a/projects/doctype/time_log/time_log.txt +++ b/projects/doctype/time_log/time_log.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-03-05 10:52:02", + "creation": "2013-03-06 14:08:07", "docstatus": 0, - "modified": "2013-03-05 10:54:07", + "modified": "2013-04-03 15:51:32", "modified_by": "Administrator", "owner": "Administrator" }, @@ -48,6 +48,7 @@ "label": "Naming Series", "options": "TL-", "permlevel": 0, + "read_only": 0, "reqd": 1 }, { @@ -57,6 +58,7 @@ "in_list_view": 1, "label": "From Time", "permlevel": 0, + "read_only": 0, "reqd": 1 }, { @@ -66,6 +68,7 @@ "in_list_view": 0, "label": "To Time", "permlevel": 0, + "read_only": 0, "reqd": 1 }, { @@ -80,7 +83,8 @@ "doctype": "DocField", "fieldname": "column_break_3", "fieldtype": "Column Break", - "permlevel": 0 + "permlevel": 0, + "read_only": 0 }, { "doctype": "DocField", @@ -101,6 +105,7 @@ "label": "Activity Type", "options": "Activity Type", "permlevel": 0, + "read_only": 0, "reqd": 1 }, { @@ -109,7 +114,8 @@ "fieldtype": "Link", "label": "Task", "options": "Task", - "permlevel": 0 + "permlevel": 0, + "read_only": 0 }, { "doctype": "DocField", @@ -117,26 +123,30 @@ "fieldtype": "Check", "in_list_view": 1, "label": "Billable", - "permlevel": 0 + "permlevel": 0, + "read_only": 0 }, { "doctype": "DocField", "fieldname": "section_break_7", "fieldtype": "Section Break", - "permlevel": 0 + "permlevel": 0, + "read_only": 0 }, { "doctype": "DocField", "fieldname": "note", "fieldtype": "Text Editor", "label": "Note", - "permlevel": 0 + "permlevel": 0, + "read_only": 0 }, { "doctype": "DocField", "fieldname": "section_break_9", "fieldtype": "Section Break", - "permlevel": 0 + "permlevel": 0, + "read_only": 0 }, { "doctype": "DocField", @@ -145,7 +155,8 @@ "in_list_view": 1, "label": "Project", "options": "Project", - "permlevel": 0 + "permlevel": 0, + "read_only": 0 }, { "description": "Will be updated when batched.", @@ -171,7 +182,8 @@ "doctype": "DocField", "fieldname": "column_break_16", "fieldtype": "Column Break", - "permlevel": 0 + "permlevel": 0, + "read_only": 0 }, { "doctype": "DocField", @@ -181,7 +193,8 @@ "label": "File List", "no_copy": 1, "permlevel": 0, - "print_hide": 1 + "print_hide": 1, + "read_only": 0 }, { "doctype": "DocField", @@ -191,7 +204,8 @@ "no_copy": 1, "options": "Time Log", "permlevel": 1, - "print_hide": 1 + "print_hide": 1, + "read_only": 0 }, { "create": 1, From 9274f2772c279b1a2fc57768cfaf1aad97657c3e Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 3 Apr 2013 16:09:50 +0530 Subject: [PATCH 8/9] [New Script Report] added report daily time log summary --- .../daily_time_log_summary.js | 11 +++----- .../daily_time_log_summary.py | 27 +++++++------------ 2 files changed, 13 insertions(+), 25 deletions(-) diff --git a/projects/report/daily_time_log_summary/daily_time_log_summary.js b/projects/report/daily_time_log_summary/daily_time_log_summary.js index 7eb3acb0a8..8147676704 100644 --- a/projects/report/daily_time_log_summary/daily_time_log_summary.js +++ b/projects/report/daily_time_log_summary/daily_time_log_summary.js @@ -1,21 +1,16 @@ wn.query_reports["Daily Time Log Summary"] = { "filters": [ - { - "fieldname": "employee_name", - "label":"Employee Name", - "fieldtype": "Data", - }, { "fieldname":"from_date", "label": "From Date", - "fieldtype": "Date", + "fieldtype": "Datetime", "default": wn.datetime.get_today() }, { "fieldname":"to_date", "label": "To Date", - "fieldtype": "Date", + "fieldtype": "Datetime", "default": wn.datetime.get_today() - } + }, ] } \ No newline at end of file diff --git a/projects/report/daily_time_log_summary/daily_time_log_summary.py b/projects/report/daily_time_log_summary/daily_time_log_summary.py index 376ee30d75..0309977a8c 100644 --- a/projects/report/daily_time_log_summary/daily_time_log_summary.py +++ b/projects/report/daily_time_log_summary/daily_time_log_summary.py @@ -3,29 +3,27 @@ import webnotes def execute(filters=None): if not filters: filters = {} - columns = ["Employee::150", "From Time::120", "To Time::120", "Hours::70", "Task::150", + columns = ["Employee::150", "From Datetime::120", "To Datetime::120", "Hours::70", "Task::150", "Project:Link/Project:120", "Status::70"] profile_map = get_profile_map() - if filters.get("employee_name"): - filters["employee_name"] = "%" + filters.get("employee_name") + "%" - conditions = build_conditions(filters) time_logs = webnotes.conn.sql("""select * from `tabTime Log` where docstatus < 2 %s order by owner asc""" % (conditions,), filters, as_dict=1) data = [] - profiles = [] + profiles = [time_logs[0].owner] for tl in time_logs: - employee_name = profile_map[tl.owner] - if employee_name not in profiles: - data.append(employee_name) - profiles.append(employee_name) - data.append(["", tl.from_time, tl.to_time, tl.hours, tl.task, tl.project, tl.status]) - + if tl.owner not in profiles: + profiles.append(tl.owner) + data.append([]) + + data.append([profile_map[tl.owner], tl.from_time, tl.to_time, tl.hours, + tl.task, tl.project, tl.status]) + return columns, data def get_profile_map(): @@ -39,12 +37,7 @@ def get_profile_map(): return profile_map def build_conditions(filters): - conditions = "" - if filters.get("employee_name"): - conditions += """ and owner in (select name from `tabProfile` - where concat(first_name, if(last_name, (' ' + last_name), '')) - like %(employee_name)s)""" - + conditions = "" if filters.get("from_date"): conditions += " and from_time >= %(from_date)s" if filters.get("to_date"): From 3023a8fa9b258169bc073aab6644e8d93d565da0 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 3 Apr 2013 16:34:23 +0530 Subject: [PATCH 9/9] [website] [cleanup] separated website generation in framework and erpnext --- config.json | 67 ++++++++++++++ startup/website.py | 39 --------- website/helpers/blog.py | 2 +- website/helpers/product.py | 2 +- website/templates/css/login.css | 43 --------- website/templates/html/base.html | 25 ------ website/templates/html/blog_page.html | 12 +-- website/templates/html/outer.html | 6 +- website/templates/html/page.html | 2 +- website/templates/html/product_group.html | 8 +- website/templates/html/product_in_list.html | 2 +- website/templates/html/product_page.html | 14 +-- website/templates/html/web_page.html | 4 +- website/templates/js/login.js | 97 --------------------- website/templates/pages/404.html | 14 --- website/templates/pages/about.html | 2 +- website/templates/pages/account.html | 2 +- website/templates/pages/attributions.html | 2 +- website/templates/pages/blog.html | 8 +- website/templates/pages/contact.html | 4 +- website/templates/pages/error.html | 13 --- website/templates/pages/index.html | 2 +- website/templates/pages/login.html | 62 ------------- website/templates/pages/message.html | 11 --- website/templates/pages/order.html | 2 +- website/templates/pages/orders.html | 2 +- website/templates/pages/print.html | 18 ---- website/templates/pages/product_search.html | 6 +- website/templates/pages/profile.html | 2 +- website/templates/pages/ticket.html | 2 +- website/templates/pages/tickets.html | 2 +- website/templates/pages/writers.html | 6 +- 32 files changed, 114 insertions(+), 369 deletions(-) delete mode 100644 website/templates/css/login.css delete mode 100644 website/templates/html/base.html delete mode 100644 website/templates/js/login.js delete mode 100644 website/templates/pages/404.html delete mode 100644 website/templates/pages/error.html delete mode 100644 website/templates/pages/login.html delete mode 100644 website/templates/pages/message.html delete mode 100644 website/templates/pages/print.html diff --git a/config.json b/config.json index 0f6bd0a5f9..ff6f80ffff 100644 --- a/config.json +++ b/config.json @@ -75,5 +75,72 @@ "label": "Knowledge Base", "icon": "icon-question-sign" } + }, + "web": { + "pages": { + "about": { + "template": "app/website/templates/pages/about", + "args_method": "website.doctype.about_us_settings.about_us_settings.get_args" + }, + "account": { + "template": "app/website/templates/pages/account" + }, + "attributions": { + "template": "app/website/templates/pages/attributions" + }, + "blog": { + "template": "app/website/templates/pages/blog", + "args_method": "website.helpers.blog.get_blog_template_args" + }, + "contact": { + "template": "app/website/templates/pages/contact", + "args_doctype": "Contact Us Settings" + }, + "index": { + "template": "app/website/templates/pages/index" + }, + "order": { + "no_cache": true, + "template": "app/website/templates/pages/order", + "args_method": "selling.doctype.sales_order.sales_order.get_website_args" + }, + "orders": { + "template": "app/website/templates/pages/orders", + "args_method": "selling.doctype.sales_order.sales_order.get_currency_and_number_format" + }, + "product_search": { + "template": "app/website/templates/pages/product_search" + }, + "ticket": { + "no_cache": true, + "template": "app/website/templates/pages/ticket", + "get_website_args": "support.doctype.support_ticket.support_ticket.get_website_args" + }, + "tickets": { + "template": "app/website/templates/pages/tickets" + }, + "writers": { + "template": "app/website/templates/pages/writers", + "args_method": "website.helpers.blog.get_writers_args" + } + }, + "generators": { + "Web Page": { + "template": "app/website/templates/html/web_page.html", + "condition_field": "published" + }, + "Blog Post": { + "template": "app/website/templates/html/blog_page.html", + "condition_field": "published" + }, + "Item": { + "template": "app/website/templates/html/product_page.html", + "condition_field": "show_in_website" + }, + "Item Group":{ + "template": "app/website/templates/html/product_group.html", + "condition_field": "show_in_website" + } + } } } \ No newline at end of file diff --git a/startup/website.py b/startup/website.py index 1041039d0e..295e5bb0ca 100644 --- a/startup/website.py +++ b/startup/website.py @@ -1,47 +1,8 @@ import webnotes, conf, os - def get_templates_path(): return os.path.join(os.path.dirname(conf.__file__), "app", "website", "templates") -standard_pages = [ - "404", "about", "account", "attributions", "blog", "contact", "error", "index", - "login", "message", "order", "orders", "print", "product_search", "profile", - "ticket", "tickets", "writers" -] - -page_map = { - 'Web Page': webnotes._dict({ - "template": 'html/web_page.html', - "condition_field": "published" - }), - 'Blog Post': webnotes._dict({ - "template": 'html/blog_page.html', - "condition_field": "published", - }), - 'Item': webnotes._dict({ - "template": 'html/product_page.html', - "condition_field": "show_in_website", - }), - 'Item Group': webnotes._dict({ - "template": "html/product_group.html", - "condition_field": "show_in_website" - }) -} - -page_settings_map = { - "about": "website.doctype.about_us_settings.about_us_settings.get_args", - "contact": "Contact Us Settings", - "blog": "website.helpers.blog.get_blog_template_args", - "writers": "website.helpers.blog.get_writers_args", - "print": "core.doctype.print_format.print_format.get_args", - "orders": "selling.doctype.sales_order.sales_order.get_currency_and_number_format", - "order": "selling.doctype.sales_order.sales_order.get_website_args", - "ticket": "support.doctype.support_ticket.support_ticket.get_website_args" -} - -no_cache = ["message", "print", "order", "ticket"] - def get_home_page(): doc_name = webnotes.conn.get_value('Website Settings', None, 'home_page') if doc_name: diff --git a/website/helpers/blog.py b/website/helpers/blog.py index fb85e0dfe7..386c4b7f05 100644 --- a/website/helpers/blog.py +++ b/website/helpers/blog.py @@ -74,7 +74,7 @@ def add_comment(args=None): webnotes.webutils.clear_cache(args.get('page_name')) comment['comment_date'] = webnotes.utils.global_date_format(comment['creation']) - template_args = { 'comment_list': [comment], 'template': 'html/comment.html' } + template_args = { 'comment_list': [comment], 'template': 'app/website/templates/html/comment.html' } # get html of comment row comment_html = webnotes.webutils.build_html(template_args) diff --git a/website/helpers/product.py b/website/helpers/product.py index 4a1cd40e4d..d6f16fb753 100644 --- a/website/helpers/product.py +++ b/website/helpers/product.py @@ -82,7 +82,7 @@ def get_group_item_count(item_group): def get_item_for_list_in_html(r): scrub_item_for_list(r) - r.template = "html/product_in_list.html" + r.template = "app/website/templates/html/product_in_list.html" return build_html(r) def scrub_item_for_list(r): diff --git a/website/templates/css/login.css b/website/templates/css/login.css deleted file mode 100644 index 4120807022..0000000000 --- a/website/templates/css/login.css +++ /dev/null @@ -1,43 +0,0 @@ - \ No newline at end of file diff --git a/website/templates/html/base.html b/website/templates/html/base.html deleted file mode 100644 index cfba1a5ca0..0000000000 --- a/website/templates/html/base.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - {{ title }} - - - - - - - - - {% if description -%} - - {%- endif %} - {% block header -%} - {%- endblock %} - - - {% block body %} - {% endblock %} - - \ No newline at end of file diff --git a/website/templates/html/blog_page.html b/website/templates/html/blog_page.html index 270d427f7f..cf1f00e3be 100644 --- a/website/templates/html/blog_page.html +++ b/website/templates/html/blog_page.html @@ -1,11 +1,11 @@ -{% extends "html/page.html" %} +{% extends "app/website/templates/html/page.html" %} {% block javascript %} - {% include "js/blog_page.js" %} + {% include "app/website/templates/js/blog_page.js" %} {% endblock %} {% block css %} - {% include "css/blog_page.css" %} + {% include "app/website/templates/css/blog_page.css" %} {% endblock %} {% block content %} @@ -23,7 +23,7 @@ {% if blogger_info %}
- {% include "html/blogger.html" %} + {% include "app/website/templates/html/blogger.html" %} {% endif %}

{{ texts.comments }}


@@ -35,7 +35,7 @@ {% endif %} - {% include 'html/comment.html' %} + {% include 'app/website/templates/html/comment.html' %}
-{% include 'html/blog_footer.html' %} +{% include 'app/website/templates/html/blog_footer.html' %} {% endblock %} \ No newline at end of file diff --git a/website/templates/html/outer.html b/website/templates/html/outer.html index 624371e4f5..570c7691c2 100644 --- a/website/templates/html/outer.html +++ b/website/templates/html/outer.html @@ -1,4 +1,4 @@ -{% extends "html/base.html" %} +{% extends "lib/templates/base.html" %} {% block body %}
@@ -10,13 +10,13 @@
{{ banner_html }}
{% endif %}
- {% include "html/navbar.html" %} + {% include "app/website/templates/html/navbar.html" %}
{%- block content -%} {%- endblock -%}
- {% include "html/footer.html" %} + {% include "app/website/templates/html/footer.html" %} {% endblock %} \ No newline at end of file diff --git a/website/templates/html/page.html b/website/templates/html/page.html index 9d38cdc859..c9fbec449a 100644 --- a/website/templates/html/page.html +++ b/website/templates/html/page.html @@ -1,4 +1,4 @@ -{% extends "html/outer.html" %} +{% extends "app/website/templates/html/outer.html" %} {% block title -%}{{ title }}{%- endblock %} diff --git a/website/templates/html/product_group.html b/website/templates/html/product_group.html index 510f9946ac..b3c851197e 100644 --- a/website/templates/html/product_group.html +++ b/website/templates/html/product_group.html @@ -1,11 +1,11 @@ -{% extends "html/page.html" %} +{% extends "app/website/templates/html/page.html" %} {% block content %} -{% include 'html/product_search_box.html' %} -{% include 'html/product_breadcrumbs.html' %} +{% include 'app/website/templates/html/product_search_box.html' %} +{% include 'app/website/templates/html/product_breadcrumbs.html' %}
{% if slideshow %} - {% include "html/slideshow.html" %} + {% include "app/website/templates/html/slideshow.html" %} {% endif %} {% if description %}
{{ description or ""}}
diff --git a/website/templates/html/product_in_list.html b/website/templates/html/product_in_list.html index bc6260795b..5cd9eace4e 100644 --- a/website/templates/html/product_in_list.html +++ b/website/templates/html/product_in_list.html @@ -4,7 +4,7 @@ {%- if website_image -%} {%- else -%} - {% include 'html/product_missing_image.html' %} + {% include 'app/website/templates/html/product_missing_image.html' %} {%- endif -%}
diff --git a/website/templates/html/product_page.html b/website/templates/html/product_page.html index f897a3120f..23091ad435 100644 --- a/website/templates/html/product_page.html +++ b/website/templates/html/product_page.html @@ -1,28 +1,28 @@ -{% extends "html/page.html" %} +{% extends "app/website/templates/html/page.html" %} {% block javascript %} - {% include "js/product_page.js" %} + {% include "app/website/templates/js/product_page.js" %} {% endblock %} {% block css %} - {% include "css/product_page.css" %} + {% include "app/website/templates/css/product_page.css" %} {% endblock %} {% block content %} - {% include 'html/product_search_box.html' %} - {% include 'html/product_breadcrumbs.html' %} + {% include 'app/website/templates/html/product_search_box.html' %} + {% include 'app/website/templates/html/product_breadcrumbs.html' %}
{% if slideshow %} - {% include "html/slideshow.html" %} + {% include "app/website/templates/html/slideshow.html" %} {% else %} {% if website_image %} {% else %}
- {% include 'html/product_missing_image.html' %} + {% include 'app/website/templates/html/product_missing_image.html' %}
{% endif %} {% endif %} diff --git a/website/templates/html/web_page.html b/website/templates/html/web_page.html index d3c646a8b8..6b8c914925 100644 --- a/website/templates/html/web_page.html +++ b/website/templates/html/web_page.html @@ -1,4 +1,4 @@ -{% extends "html/page.html" %} +{% extends "app/website/templates/html/page.html" %} {% block javascript %} {% if insert_code %} @@ -8,7 +8,7 @@ {% block content %}
- {% include "html/slideshow.html" %} + {% include "app/website/templates/html/slideshow.html" %} {{ main_section }}
{% endblock %} \ No newline at end of file diff --git a/website/templates/js/login.js b/website/templates/js/login.js deleted file mode 100644 index 06ea4c5242..0000000000 --- a/website/templates/js/login.js +++ /dev/null @@ -1,97 +0,0 @@ - -var login = {}; - -$(document).ready(function(wrapper) { - $('#login_btn').click(login.do_login) - - $('#password').keypress(function(ev){ - if(ev.which==13 && $('#password').val()) { - $('form').submit(function() { - login.do_login(); - return false; - }); - } - }); - $(document).trigger('login_rendered'); -}) - -// Login -login.do_login = function(){ - var args = {}; - if(window.is_sign_up) { - args.cmd = "core.doctype.profile.profile.sign_up"; - args.email = $("#login_id").val(); - args.full_name = $("#full_name").val(); - - if(!args.email || !valid_email(args.email) || !args.full_name) { - login.set_message("Valid email and name required."); - return false; - } - } else if(window.is_forgot) { - args.cmd = "reset_password"; - args.user = $("#login_id").val(); - - if(!args.user) { - login.set_message("Valid Login Id required."); - return false; - } - - } else { - args.cmd = "login" - args.usr = $("#login_id").val(); - args.pwd = $("#password").val(); - - if(!args.usr || !args.pwd) { - login.set_message("Both login and password required."); - return false; - } - } - - $('#login_btn').attr("disabled", "disabled"); - $("#login-spinner").toggle(true); - $('#login_message').toggle(false); - - $.ajax({ - type: "POST", - url: "server.py", - data: args, - dataType: "json", - success: function(data) { - $("input").val(""); - $("#login-spinner").toggle(false); - $('#login_btn').attr("disabled", false); - if(data.message=="Logged In") { - window.location.href = "app.html"; - } else if(data.message=="No App") { - window.location.href = "index"; - } else { - login.set_message(data.message); - } - } - }) - - return false; -} - -login.sign_up = function() { - $("#login_wrapper h3").html("Sign Up"); - $("#login-label").html("Email Id"); - $("#password-row, #sign-up-wrapper, #login_message").toggle(false); - $("#full-name-row").toggle(true); - $("#login_btn").html("Register"); - $("#forgot-wrapper").html("Login") - window.is_sign_up = true; -} - -login.show_forgot_password = function() { - $("#login_wrapper h3").html("Forgot"); - $("#login-label").html("Email Id"); - $("#password-row, #sign-up-wrapper, #login_message").toggle(false); - $("#login_btn").html("Send Password"); - $("#forgot-wrapper").html("Login") - window.is_forgot = true; -} - -login.set_message = function(message, color) { - $('#login_message').html(message).toggle(true); -} \ No newline at end of file diff --git a/website/templates/pages/404.html b/website/templates/pages/404.html deleted file mode 100644 index 8a676ce524..0000000000 --- a/website/templates/pages/404.html +++ /dev/null @@ -1,14 +0,0 @@ -{% extends "html/outer.html" %} - -{% set title="Not Found" %} - -{% block content %} -
-
-

Page missing or moved

-
-

We are very sorry for this, but the page you are looking for is missing - (this could be because of a typo in the address) or moved.

-
-
-{% endblock %} \ No newline at end of file diff --git a/website/templates/pages/about.html b/website/templates/pages/about.html index 380c5439ec..0cbd562ef9 100644 --- a/website/templates/pages/about.html +++ b/website/templates/pages/about.html @@ -1,4 +1,4 @@ -{% extends "html/page.html" %} +{% extends "app/website/templates/html/page.html" %} {% set title="About Us" %} diff --git a/website/templates/pages/account.html b/website/templates/pages/account.html index 8e8f4b4a07..fe2b8587ed 100644 --- a/website/templates/pages/account.html +++ b/website/templates/pages/account.html @@ -1,4 +1,4 @@ -{% extends "html/page.html" %} +{% extends "app/website/templates/html/page.html" %} {% set title="My Account" %} diff --git a/website/templates/pages/attributions.html b/website/templates/pages/attributions.html index 9e4b50ddce..05e8e8863e 100644 --- a/website/templates/pages/attributions.html +++ b/website/templates/pages/attributions.html @@ -1,4 +1,4 @@ -{% extends "html/outer.html" %} +{% extends "app/website/templates/html/outer.html" %} {% block header %} - - - {{ body }} - -{%- if comment -%} - -{%- endif -%} - \ No newline at end of file diff --git a/website/templates/pages/product_search.html b/website/templates/pages/product_search.html index 66bf160c94..2dab6ff4c2 100644 --- a/website/templates/pages/product_search.html +++ b/website/templates/pages/product_search.html @@ -1,9 +1,9 @@ -{% extends "html/page.html" %} +{% extends "app/website/templates/html/page.html" %} {% set title="Product Search" %} {% block javascript %} -{% include "js/product_list.js" %} +{% include "app/website/templates/js/product_list.js" %} {% endblock %} {% block content %} @@ -17,7 +17,7 @@ $(document).ready(function() { }); -{% include 'html/product_search_box.html' %} +{% include 'app/website/templates/html/product_search_box.html' %}

Search Results

diff --git a/website/templates/pages/profile.html b/website/templates/pages/profile.html index 1b9350cf8c..d689cfb718 100644 --- a/website/templates/pages/profile.html +++ b/website/templates/pages/profile.html @@ -1,4 +1,4 @@ -{% extends "html/page.html" %} +{% extends "app/website/templates/html/page.html" %} {% set title="My Profile" %} diff --git a/website/templates/pages/ticket.html b/website/templates/pages/ticket.html index fe185f82ba..858dd3b338 100644 --- a/website/templates/pages/ticket.html +++ b/website/templates/pages/ticket.html @@ -1,4 +1,4 @@ -{% extends "html/page.html" %} +{% extends "app/website/templates/html/page.html" %} {% set title=doc.name %} diff --git a/website/templates/pages/tickets.html b/website/templates/pages/tickets.html index 11da32978d..843d10e38a 100644 --- a/website/templates/pages/tickets.html +++ b/website/templates/pages/tickets.html @@ -1,4 +1,4 @@ -{% extends "html/page.html" %} +{% extends "app/website/templates/html/page.html" %} {% set title="My Tickets" %} diff --git a/website/templates/pages/writers.html b/website/templates/pages/writers.html index bba374946c..67c0b7e6e1 100644 --- a/website/templates/pages/writers.html +++ b/website/templates/pages/writers.html @@ -1,4 +1,4 @@ -{% extends "html/page.html" %} +{% extends "app/website/templates/html/page.html" %} {% set title="Blog Writers" %} @@ -10,8 +10,8 @@ {% endif %}
{% for blogger_info in bloggers %} - {% include "html/blogger.html" %} + {% include "app/website/templates/html/blogger.html" %} {% endfor %}
-{% include 'html/blog_footer.html' %} +{% include 'app/website/templates/html/blog_footer.html' %} {% endblock %} \ No newline at end of file