From 4bbe96dc61255d54c44badeb23675c60d188ac6d Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 9 Jun 2011 17:25:29 +0530 Subject: [PATCH 1/7] merged event_updates and my_company into home --- .../Event Updates/Event Updates.txt | 330 ------- event_updates/__init__.py | 52 -- event_updates/doctype/__init__.py | 0 event_updates/doctype/feed/__init__.py | 0 event_updates/doctype/feed/feed.py | 22 - event_updates/doctype/feed/feed.txt | 196 ---- .../doctype/home_control/__init__.py | 0 .../doctype/home_control/home_control.js | 0 .../doctype/home_control/home_control.py | 387 -------- .../doctype/home_control/home_control.txt | 1 - .../doctype/widget_control/__init__.py | 0 .../doctype/widget_control/widget_control.py | 45 - .../doctype/widget_control/widget_control.txt | 1 - event_updates/page/__init__.py | 0 event_updates/page/event_updates/__init__.py | 0 .../page/event_updates/event_updates.comp.js | 111 --- .../page/event_updates/event_updates.css | 17 - .../page/event_updates/event_updates.html | 1 - .../page/event_updates/event_updates.js | 748 ---------------- .../page/event_updates/event_updates.py | 56 -- .../page/event_updates/event_updates.txt | 1 - .../event_updates/event_updates_static.html | 1 - .../page/profile_settings/__init__.py | 0 .../profile_settings/profile_settings.comp.js | 19 - .../profile_settings/profile_settings.html | 0 .../page/profile_settings/profile_settings.js | 114 --- .../page/profile_settings/profile_settings.py | 34 - .../profile_settings/profile_settings.txt | 26 - event_updates/search_criteria/__init__.py | 0 .../bills_to_be_paid/__init__.py | 0 .../bills_to_be_paid/bills_to_be_paid.txt | 37 - .../bills_to_be_submitted/__init__.py | 0 .../bills_to_be_submitted.txt | 37 - .../delivery_note_to_be_billed/__init__.py | 0 .../delivery_note_to_be_billed.txt | 37 - .../delivery_note_to_be_submitted/__init__.py | 0 .../delivery_note_to_be_submitted.txt | 37 - .../enquiry_quotations_to_be_sent/__init__.py | 0 .../enquiry_quotations_to_be_sent.txt | 37 - .../enquiry_to_follow_up/__init__.py | 0 .../enquiry_to_follow_up.js | 5 - .../enquiry_to_follow_up.txt | 37 - .../__init__.py | 0 .../indent_purchase_order_to_be_made.txt | 37 - .../indent_to_be_submitted/__init__.py | 0 .../indent_to_be_submitted.txt | 37 - .../invoices_overdue/__init__.py | 0 .../invoices_overdue/invoices_overdue.txt | 37 - .../invoices_to_be_submitted/__init__.py | 0 .../invoices_to_be_submitted.txt | 37 - .../invoices_to_receive_payment/__init__.py | 0 .../invoices_to_receive_payment.txt | 37 - .../lead_to_follow_up/__init__.py | 0 .../lead_to_follow_up/lead_to_follow_up.js | 5 - .../lead_to_follow_up/lead_to_follow_up.txt | 37 - .../purchase_order_to_be_billed/__init__.py | 0 .../purchase_order_to_be_billed.txt | 37 - .../__init__.py | 0 .../purchase_order_to_be_submitted.txt | 37 - .../__init__.py | 0 .../purchase_order_to_receive_items.txt | 37 - .../sales_order_overdue/__init__.py | 0 .../sales_order_overdue.js | 11 - .../sales_order_overdue.txt | 37 - .../sales_order_to_be_billed/__init__.py | 0 .../sales_order_to_be_billed.txt | 37 - .../sales_order_to_be_delivered/__init__.py | 0 .../sales_order_to_be_delivered.txt | 37 - .../sales_order_to_be_submitted/__init__.py | 0 .../sales_order_to_be_submitted.txt | 37 - .../__init__.py | 0 .../serial_no_amc_expiring_this_month.txt | 37 - .../__init__.py | 0 ...serial_no_warranty_expiring_this_month.txt | 37 - .../search_criteria/task_open/__init__.py | 0 .../search_criteria/task_open/task_open.txt | 37 - .../Module Def/My Company/My Company.txt | 127 --- my_company/__init__.py | 0 my_company/doctype/__init__.py | 0 .../doctype/company_control/__init__.py | 0 .../company_control/company_control.py | 90 -- .../company_control/company_control.txt | 1 - my_company/page/__init__.py | 0 my_company/page/my_company/__init__.py | 0 my_company/page/my_company/my_company.comp.js | 118 --- my_company/page/my_company/my_company.css | 82 -- my_company/page/my_company/my_company.html | 0 my_company/page/my_company/my_company.js | 842 ------------------ my_company/page/my_company/my_company.py | 130 --- my_company/page/my_company/my_company.txt | 1 - 90 files changed, 4388 deletions(-) delete mode 100644 event_updates/Module Def/Event Updates/Event Updates.txt delete mode 100644 event_updates/__init__.py delete mode 100644 event_updates/doctype/__init__.py delete mode 100644 event_updates/doctype/feed/__init__.py delete mode 100644 event_updates/doctype/feed/feed.py delete mode 100644 event_updates/doctype/feed/feed.txt delete mode 100644 event_updates/doctype/home_control/__init__.py delete mode 100644 event_updates/doctype/home_control/home_control.js delete mode 100644 event_updates/doctype/home_control/home_control.py delete mode 100644 event_updates/doctype/home_control/home_control.txt delete mode 100644 event_updates/doctype/widget_control/__init__.py delete mode 100644 event_updates/doctype/widget_control/widget_control.py delete mode 100644 event_updates/doctype/widget_control/widget_control.txt delete mode 100644 event_updates/page/__init__.py delete mode 100644 event_updates/page/event_updates/__init__.py delete mode 100644 event_updates/page/event_updates/event_updates.comp.js delete mode 100644 event_updates/page/event_updates/event_updates.css delete mode 100644 event_updates/page/event_updates/event_updates.html delete mode 100644 event_updates/page/event_updates/event_updates.js delete mode 100644 event_updates/page/event_updates/event_updates.py delete mode 100644 event_updates/page/event_updates/event_updates.txt delete mode 100644 event_updates/page/event_updates/event_updates_static.html delete mode 100644 event_updates/page/profile_settings/__init__.py delete mode 100644 event_updates/page/profile_settings/profile_settings.comp.js delete mode 100644 event_updates/page/profile_settings/profile_settings.html delete mode 100644 event_updates/page/profile_settings/profile_settings.js delete mode 100644 event_updates/page/profile_settings/profile_settings.py delete mode 100644 event_updates/page/profile_settings/profile_settings.txt delete mode 100644 event_updates/search_criteria/__init__.py delete mode 100644 event_updates/search_criteria/bills_to_be_paid/__init__.py delete mode 100644 event_updates/search_criteria/bills_to_be_paid/bills_to_be_paid.txt delete mode 100644 event_updates/search_criteria/bills_to_be_submitted/__init__.py delete mode 100644 event_updates/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt delete mode 100644 event_updates/search_criteria/delivery_note_to_be_billed/__init__.py delete mode 100644 event_updates/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt delete mode 100644 event_updates/search_criteria/delivery_note_to_be_submitted/__init__.py delete mode 100644 event_updates/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt delete mode 100644 event_updates/search_criteria/enquiry_quotations_to_be_sent/__init__.py delete mode 100644 event_updates/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt delete mode 100644 event_updates/search_criteria/enquiry_to_follow_up/__init__.py delete mode 100644 event_updates/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js delete mode 100644 event_updates/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt delete mode 100644 event_updates/search_criteria/indent_purchase_order_to_be_made/__init__.py delete mode 100644 event_updates/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt delete mode 100644 event_updates/search_criteria/indent_to_be_submitted/__init__.py delete mode 100644 event_updates/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt delete mode 100644 event_updates/search_criteria/invoices_overdue/__init__.py delete mode 100644 event_updates/search_criteria/invoices_overdue/invoices_overdue.txt delete mode 100644 event_updates/search_criteria/invoices_to_be_submitted/__init__.py delete mode 100644 event_updates/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt delete mode 100644 event_updates/search_criteria/invoices_to_receive_payment/__init__.py delete mode 100644 event_updates/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt delete mode 100644 event_updates/search_criteria/lead_to_follow_up/__init__.py delete mode 100644 event_updates/search_criteria/lead_to_follow_up/lead_to_follow_up.js delete mode 100644 event_updates/search_criteria/lead_to_follow_up/lead_to_follow_up.txt delete mode 100644 event_updates/search_criteria/purchase_order_to_be_billed/__init__.py delete mode 100644 event_updates/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt delete mode 100644 event_updates/search_criteria/purchase_order_to_be_submitted/__init__.py delete mode 100644 event_updates/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt delete mode 100644 event_updates/search_criteria/purchase_order_to_receive_items/__init__.py delete mode 100644 event_updates/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt delete mode 100644 event_updates/search_criteria/sales_order_overdue/__init__.py delete mode 100644 event_updates/search_criteria/sales_order_overdue/sales_order_overdue.js delete mode 100644 event_updates/search_criteria/sales_order_overdue/sales_order_overdue.txt delete mode 100644 event_updates/search_criteria/sales_order_to_be_billed/__init__.py delete mode 100644 event_updates/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt delete mode 100644 event_updates/search_criteria/sales_order_to_be_delivered/__init__.py delete mode 100644 event_updates/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt delete mode 100644 event_updates/search_criteria/sales_order_to_be_submitted/__init__.py delete mode 100644 event_updates/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt delete mode 100644 event_updates/search_criteria/serial_no_amc_expiring_this_month/__init__.py delete mode 100644 event_updates/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt delete mode 100644 event_updates/search_criteria/serial_no_warranty_expiring_this_month/__init__.py delete mode 100644 event_updates/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt delete mode 100644 event_updates/search_criteria/task_open/__init__.py delete mode 100644 event_updates/search_criteria/task_open/task_open.txt delete mode 100644 my_company/Module Def/My Company/My Company.txt delete mode 100644 my_company/__init__.py delete mode 100644 my_company/doctype/__init__.py delete mode 100644 my_company/doctype/company_control/__init__.py delete mode 100644 my_company/doctype/company_control/company_control.py delete mode 100644 my_company/doctype/company_control/company_control.txt delete mode 100644 my_company/page/__init__.py delete mode 100644 my_company/page/my_company/__init__.py delete mode 100644 my_company/page/my_company/my_company.comp.js delete mode 100644 my_company/page/my_company/my_company.css delete mode 100644 my_company/page/my_company/my_company.html delete mode 100644 my_company/page/my_company/my_company.js delete mode 100644 my_company/page/my_company/my_company.py delete mode 100644 my_company/page/my_company/my_company.txt diff --git a/event_updates/Module Def/Event Updates/Event Updates.txt b/event_updates/Module Def/Event Updates/Event Updates.txt deleted file mode 100644 index 3bc62f084e..0000000000 --- a/event_updates/Module Def/Event Updates/Event Updates.txt +++ /dev/null @@ -1,330 +0,0 @@ -[ - { - '_last_update': None, - 'creation': '2010-11-30 22:40:49', - 'disabled': 'No', - 'docstatus': 0, - 'doctype': 'Module Def', - 'doctype_list': None, - 'file_list': None, - 'idx': None, - 'is_hidden': 'No', - 'last_updated_date': '2010-11-29 12:02:02', - 'modified': '2010-09-25 15:53:18', - 'modified_by': 'Administrator', - 'module_desc': '

This module contains

\n', - 'module_icon': 'star_full.png', - 'module_label': 'Home', - 'module_name': 'Event Updates', - 'module_page': 'Event Updates', - 'module_seq': 0, - 'name': 'Event Updates', - 'owner': 'Administrator', - 'parent': None, - 'parentfield': None, - 'parenttype': None, - 'trash_reason': None, - 'widget_code': None - }, - { - 'click_function': None, - 'creation': '2010-11-30 22:40:49', - 'description': None, - 'display_name': 'Comment Widget Record', - 'doc_name': 'Comment Widget Record', - 'doc_type': 'Forms', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': None, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDI00108', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2010-11-30 22:40:49', - 'description': None, - 'display_name': 'Feed', - 'doc_name': 'Feed', - 'doc_type': 'Forms', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': None, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDI00109', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2010-11-30 22:40:49', - 'description': None, - 'display_name': 'Home', - 'doc_name': 'Home', - 'doc_type': 'Pages', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': None, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDI00111', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 1, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00014', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Administrator' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 2, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00015', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Accounts User' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 3, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00016', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Accounts Manager' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 4, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00017', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'HR User' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 5, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00018', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'HR Manager' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 6, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00019', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Material User' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 7, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00020', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Material Master Manager' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 8, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00021', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Material Manager' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 9, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00022', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Purchase User' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 10, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00023', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Purchase Master Manager' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 11, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00024', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Purchase Manager' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 12, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00025', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Production User' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 13, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00026', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Production Manager' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 14, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00027', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'System Manager' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 15, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00028', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Sales User' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 16, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00029', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Sales Master Manager' - }, - { - 'creation': '2010-11-30 22:40:49', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 17, - 'modified': '2010-11-30 22:40:49', - 'modified_by': 'Administrator', - 'name': 'MDR00030', - 'owner': 'Administrator', - 'parent': 'Event Updates', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Sales Manager' - } -] \ No newline at end of file diff --git a/event_updates/__init__.py b/event_updates/__init__.py deleted file mode 100644 index d1f79c7d59..0000000000 --- a/event_updates/__init__.py +++ /dev/null @@ -1,52 +0,0 @@ -import webnotes - -feed_dict = { - # Project - 'Ticket': ['[%(status)s] %(subject)s', '#000080'], - - # Sales - 'Lead': ['%(lead_name)s', '#000080'], - 'Quotation': ['[%(status)s] To %(customer_name)s worth %(currency)s %(grand_total_export)s', '#4169E1'], - 'Sales Order': ['[%(status)s] To %(customer_name)s worth %(currency)s %(grand_total_export)s', '#4169E1'], - - # Purchase - 'Supplier': ['%(supplier_name)s, %(supplier_type)s', '#6495ED'], - 'Purchase Order': ['[%(status)s] %(name)s To %(supplier_name)s for %(currency)s %(grand_total_import)s', '#4169E1'], - - # Stock - 'Delivery Note': ['[%(status)s] To %(customer_name)s', '#4169E1'], - - # Accounts - 'Journal Voucher': ['[%(voucher_type)s] %(name)s', '#4169E1'], - 'Payable Voucher': ['To %(supplier_name)s for %(currency)s %(grand_total_import)s', '#4169E1'], - 'Receivable Voucher':['To %(customer_name)s for %(currency)s %(grand_total_export)s', '#4169E1'], - - # HR - 'Expense Voucher': ['[%(approval_status)s] %(name)s by %(employee_name)s', '#4169E1'], - 'Salary Slip': ['%(employee_name)s for %(month)s %(fiscal_year)s', '#4169E1'], - 'Leave Transaction':['%(leave_type)s for %(employee)s', '#4169E1'], - - # Support - 'Customer Issue': ['[%(status)s] %(description)s by %(customer_name)s', '#000080'], - 'Maintenance Visit':['To %(customer_name)s', '#4169E1'], - 'Support Ticket': ['[%(status)s] %(subject)s', '#000080'] -} - -def make_feed(doc, subject, color): - "makes a new Feed record" - from webnotes.model.doc import Document - webnotes.conn.sql("delete from tabFeed where doc_type=%s and doc_name=%s", (doc.doctype, doc.name)) - f = Document('Feed') - f.doc_type = doc.doctype - f.doc_name = doc.name - f.subject = subject - f.color = color - f.save(1) - -def update_feed(doc): - "adds a new feed" - subject, color = feed_dict.get(doc.doctype, [None, None]) - if subject: - subject = subject % doc.fields - make_feed(doc, subject, color) - diff --git a/event_updates/doctype/__init__.py b/event_updates/doctype/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/doctype/feed/__init__.py b/event_updates/doctype/feed/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/doctype/feed/feed.py b/event_updates/doctype/feed/feed.py deleted file mode 100644 index dca0c357b3..0000000000 --- a/event_updates/doctype/feed/feed.py +++ /dev/null @@ -1,22 +0,0 @@ -# Please edit this list and import only required elements -import webnotes - -from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add -from webnotes.model import db_exists -from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType -from webnotes.model.doclist import getlist, copy_doclist -from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax -from webnotes import session, form, is_testing, msgprint, errprint - -set = webnotes.conn.set -sql = webnotes.conn.sql -get_value = webnotes.conn.get_value -in_transaction = webnotes.conn.in_transaction -convert_to_lists = webnotes.conn.convert_to_lists - -# ----------------------------------------------------------------------------------------- - - -class DocType: - def __init__(self,d,dl): - self.doc, self.doclist = d, dl \ No newline at end of file diff --git a/event_updates/doctype/feed/feed.txt b/event_updates/doctype/feed/feed.txt deleted file mode 100644 index 33a47d0c7b..0000000000 --- a/event_updates/doctype/feed/feed.txt +++ /dev/null @@ -1,196 +0,0 @@ -[ - { - '_last_update': None, - 'allow_attach': None, - 'allow_copy': None, - 'allow_email': None, - 'allow_print': None, - 'allow_rename': None, - 'allow_trash': None, - 'autoname': '_FEED.#####', - 'change_log': None, - 'client_script': None, - 'client_script_core': None, - 'client_string': None, - 'colour': 'White:FFF', - 'creation': '2011-05-09 11:04:25', - 'description': None, - 'docstatus': 0, - 'doctype': 'DocType', - 'document_type': None, - 'dt_template': None, - 'hide_heading': None, - 'hide_toolbar': None, - 'idx': None, - 'in_create': None, - 'in_dialog': None, - 'is_transaction_doc': None, - 'issingle': None, - 'istable': None, - 'max_attachments': None, - 'menu_index': None, - 'modified': '2011-04-05 09:16:57', - 'modified_by': 'Administrator', - 'module': 'Event Updates', - 'name': 'Feed', - 'name_case': None, - 'owner': 'Administrator', - 'parent': None, - 'parent_node': None, - 'parentfield': None, - 'parenttype': None, - 'print_outline': None, - 'read_only': None, - 'read_only_onload': None, - 'search_fields': None, - 'section_style': 'Simple', - 'server_code': None, - 'server_code_compiled': None, - 'server_code_core': None, - 'server_code_error': None, - 'show_in_menu': 0, - 'smallicon': None, - 'use_template': None, - 'version': 1 - }, - { - 'allow_on_submit': None, - 'colour': None, - 'creation': '2011-05-09 11:04:25', - 'default': None, - 'depends_on': None, - 'description': None, - 'docstatus': 0, - 'doctype': 'DocField', - 'fieldname': 'doc_type', - 'fieldtype': 'Data', - 'hidden': None, - 'icon': None, - 'idx': 1, - 'in_filter': None, - 'label': 'Doc Type', - 'modified': '2011-05-09 11:04:25', - 'modified_by': 'Administrator', - 'name': '000000400', - 'no_copy': None, - 'oldfieldname': None, - 'oldfieldtype': None, - 'options': None, - 'owner': 'Administrator', - 'parent': 'Feed', - 'parentfield': 'fields', - 'parenttype': 'DocType', - 'permlevel': 0, - 'print_hide': None, - 'report_hide': None, - 'reqd': None, - 'search_index': None, - 'trigger': None, - 'width': None - }, - { - 'allow_on_submit': None, - 'colour': None, - 'creation': '2011-05-09 11:04:25', - 'default': None, - 'depends_on': None, - 'description': None, - 'docstatus': 0, - 'doctype': 'DocField', - 'fieldname': 'doc_name', - 'fieldtype': 'Data', - 'hidden': None, - 'icon': None, - 'idx': 2, - 'in_filter': None, - 'label': 'Doc Name', - 'modified': '2011-05-09 11:04:25', - 'modified_by': 'Administrator', - 'name': '000000401', - 'no_copy': None, - 'oldfieldname': None, - 'oldfieldtype': None, - 'options': None, - 'owner': 'Administrator', - 'parent': 'Feed', - 'parentfield': 'fields', - 'parenttype': 'DocType', - 'permlevel': 0, - 'print_hide': None, - 'report_hide': None, - 'reqd': None, - 'search_index': None, - 'trigger': None, - 'width': None - }, - { - 'allow_on_submit': None, - 'colour': None, - 'creation': '2011-05-09 11:04:25', - 'default': None, - 'depends_on': None, - 'description': None, - 'docstatus': 0, - 'doctype': 'DocField', - 'fieldname': 'subject', - 'fieldtype': 'Data', - 'hidden': None, - 'icon': None, - 'idx': 3, - 'in_filter': None, - 'label': 'Subject', - 'modified': '2011-05-09 11:04:25', - 'modified_by': 'Administrator', - 'name': '000000402', - 'no_copy': None, - 'oldfieldname': None, - 'oldfieldtype': None, - 'options': None, - 'owner': 'Administrator', - 'parent': 'Feed', - 'parentfield': 'fields', - 'parenttype': 'DocType', - 'permlevel': 0, - 'print_hide': None, - 'report_hide': None, - 'reqd': None, - 'search_index': None, - 'trigger': None, - 'width': None - }, - { - 'allow_on_submit': None, - 'colour': None, - 'creation': '2011-05-09 11:04:25', - 'default': None, - 'depends_on': None, - 'description': None, - 'docstatus': 0, - 'doctype': 'DocField', - 'fieldname': 'color', - 'fieldtype': 'Data', - 'hidden': None, - 'icon': None, - 'idx': 4, - 'in_filter': None, - 'label': 'Color', - 'modified': '2011-05-09 11:04:25', - 'modified_by': 'Administrator', - 'name': '000000403', - 'no_copy': None, - 'oldfieldname': None, - 'oldfieldtype': None, - 'options': None, - 'owner': 'Administrator', - 'parent': 'Feed', - 'parentfield': 'fields', - 'parenttype': 'DocType', - 'permlevel': 0, - 'print_hide': None, - 'report_hide': None, - 'reqd': None, - 'search_index': None, - 'trigger': None, - 'width': None - } -] \ No newline at end of file diff --git a/event_updates/doctype/home_control/__init__.py b/event_updates/doctype/home_control/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/doctype/home_control/home_control.js b/event_updates/doctype/home_control/home_control.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/doctype/home_control/home_control.py b/event_updates/doctype/home_control/home_control.py deleted file mode 100644 index 213a35d36f..0000000000 --- a/event_updates/doctype/home_control/home_control.py +++ /dev/null @@ -1,387 +0,0 @@ -# Please edit this list and import only required elements -import webnotes - -from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add -from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType -from webnotes import session, msgprint, errprint - -sql = webnotes.conn.sql -convert_to_lists = webnotes.conn.convert_to_lists - -try: import json -except: import simplejson as json - -# ----------------------------------------------------------------------------------------- - - -class DocType: - def __init__(self,d,dl): - self.doc, self.doclist = d,dl - -# -------------------------------------------------------------------------------------------------------- -# ------------------------------------- Home page module details ----------------------------------------- - - def delete_cache(self): - sql("delete from __DocTypeCache") - com = sql("select abbr, name from tabCompany") - for d in com: - sql("update `tabCompany` set receivables_group = '%s' where (receivables_group = '%s' or receivables_group = '' or receivables_group is null) and name = '%s'" % ('Accounts Receivable - '+cstr(d[0]), 'Accounts Receivables - '+cstr(d[0]), d[1])) - sql("update `tabCompany` set payables_group = '%s' where (payables_group = '%s' or payables_group = '' or payables_group is null) and name = '%s'" % ('Accounts Payable - '+cstr(d[0]), 'Accounts Payables - '+cstr(d[0]), d[1])) - - def get_modules(self): - rl = webnotes.user.get_roles() - ml = sql("select distinct t1.name, t1.module_icon, t1.module_label, t1.module_desc, t1.module_page from `tabModule Def` t1, `tabModule Def Role` t2 where t2.role in ('%s') and t1.disabled !='Yes' and ifnull(t1.is_hidden, 'No') != 'Yes' and t1.name = t2.parent order by t1.module_seq asc" % "','".join(rl), as_dict=1) - return ml - - def get_login_url(self): - return session['data'].get('login_from', '') - - def get_module_details(self,m): - ret = {} - ret['il'] = sql('select doc_type, doc_name, display_name, icon, description, fields, click_function, idx from `tabModule Def Item` where parent=%s and ifnull(`hide`,0)=0 order by idx asc', m, as_dict=1) - ret['wl'] = sql('select widget_code from `tabModule Def` where name =%s', m)[0][0] or '' - ret['custom_reports'] = sql(''' - SELECT DISTINCT t1.criteria_name AS `display_name`, t1.description, t1.doc_type AS `doc_name`, 'Custom Reports' AS `doc_type` - FROM `tabSearch Criteria` t1, `tabDocPerm` t2 - WHERE t1.module = "%s" - AND IFNULL(t1.disabled,0) = 0 - AND (t1.doc_type=t2.parent OR t1.parent_doc_type = t2.parent) - AND t2.permlevel = 0 - AND t2.read=1 - AND t2.role IN ("%s") - AND ifnull(standard,"No")="No"''' % (m, '", "'.join(webnotes.user.get_roles())), as_dict=1) - return ret - - # ---------------------------------------------------------------------------------------------------------------- - # ----------------------------------------------- Home page updates ---------------------------------------------- - - def get_events_list(self): - import webnotes, webnotes.utils - from webnotes.widgets.event import get_cal_events - - dl = get_cal_events(nowdate(), add_days(nowdate(), 7)) - el = [] - for d in dl: - #el.append([d.name, d.event_date, d.event_hour, d.event_name, d.description or '', d.ref_type or '', d.ref_name or '', d.owner]) - dict = { - 'name': d.name, - 'event_date': d.event_date, - 'event_hour': d.event_hour, - 'event_name': d.event_name, - 'description': d.description, - 'notes': d.notes, - 'event_type': d.event_type, - 'ref_type': d.ref_type, - 'ref_name': d.ref_name, - 'owner' : d.owner - } - - el.append(dict) - return el - - - def get_activity_list(self): - out = {} - import webnotes - rt = webnotes.user.can_read - - dt_list = [d[0] for d in sql("select distinct t2.name from tabDocField t1, tabDocType t2 where t1.fieldname='status' and t1.docstatus=0 and (t2.istable is null or t2.istable = 0) and t1.parent = t2.name")] - if not dt_list: - return out - - # get list of activity dt - for dt in dt_list: - if dt in rt: - out[dt] = {} - # get status list - sl = sql("select distinct status from `tab%s`" % dt) - - for s in sl: - if s[0]: - # get count - cnt = sql("select count(*) from `tab%s` where status = '%s' and modified > '%s'" % (dt, s[0], add_days(nowdate(), -7)))[0][0] - out[dt][s[0]] = cint(cnt) - return out - - def send_feedback(self, args): - args = json.loads(args) - - fb_sender = sql("select concat_ws(' ',first_name, last_name), email from tabProfile where name=%s", session['user']) - fb_subject = 'Feedback : ' + args['subject'] - - - fb_msg = ''' -
-
%s wrote,
-
%s
-
- ''' % (fb_sender[0][0], args['feedback']) - - sendmail('info@webnotestech.com', fb_sender[0][1], msg = fb_msg, subject=args['subject'],parts=[], cc=[], attach=[]) - - def get_dt_help(self,dt): - return sql("select description from tabDocType where name=%s",dt)[0][0] or '' - - # ---------------------------------------------------------------------------------------- - def welcome_done(self): - if cint(get_defaults().get('welcome_done')): - return 'Yes' - else: - return 'No' - - def set_welcome_done(self): - set_default('welcome_done', '1') - - # Check Complete Registration - # ---------------------- - def registration_complete(self): - if cint(get_defaults().get('registration_complete')): - return 'Yes' - else: - return 'No' - - # get dashboard counts - # -------------------- - def get_wip_counts(self): - #dtl = ['Lead', 'Enquiries', 'Sales Order', 'Invoices', 'Indent', 'Purchase Order', 'Bills', 'Tasks', 'Delivery Note', 'Maintenance'] - can_read_dt = ['Lead', 'Enquiry', 'Sales Order', 'Receivable Voucher', 'Indent', 'Purchase Order', 'Payable Voucher', 'Delivery Note', 'Task', 'Serial No'] - dt = {} - for d in can_read_dt: - args = {} - - # if Lead - if d=='Lead': - args = {'To follow up':sql("select count(name) from tabLead where status!='Converted' and status!='Lead Lost' and status!='Not Interested'")} - - # if Enquiry - elif d=='Enquiry': - args['Quotations to be sent'] = sql("select count(distinct(t2.name)) from `tabQuotation`t1, `tabEnquiry`t2 where t1.enq_no!=t2.name and t2.docstatus=1") - args['To follow up'] = sql("select count(distinct(t2.name)) from `tabQuotation`t1, `tabEnquiry`t2 where t1.enq_no=t2.name and t2.docstatus=1 and t1.docstatus=1") - - # if Sales Order - elif d=='Sales Order': - args['To be delivered'] = sql("select count(name) from `tabSales Order` where ifnull(per_delivered,0)<100 and delivery_date>now() and docstatus=1") - args['To be billed'] = sql("select count(name) from `tabSales Order` where ifnull(per_billed,0)<100 and docstatus=1") - args['Overdue'] = sql("select count(name) from `tabSales Order` where ifnull(per_delivered,0)<100 and delivery_datenow() and outstanding_amount!=0") - args['Overdue'] = sql("select count(name) from `tabReceivable Voucher` where docstatus=1 and due_date= CURDATE() and ifnull(amc_expiry_date, '0000-00-00') !='0000-00-00' and ifnull(maintenance_status, '') !='Under AMC'") - if chk_for_under_amc: - lst3 = [x3[0] for x3 in chk_for_under_amc] - self.update_serial_status(lst3, 'Under AMC') - - # chk to set serial no status as 'under warranty' - def set_for_under_warranty(self): - chk_for_under_wrnty = sql("select name from `tabSerial No` where ifnull(warranty_expiry_date, '2200-12-12') >= CURDATE() and ifnull(warranty_expiry_date, '0000-00-00') != '0000-00-00' and ifnull(amc_expiry_date, '0000-00-00') ='0000-00-00' and ifnull(maintenance_status, '') != 'Under Warranty'") - if chk_for_under_wrnty: - lst4 = [x4[0] for x4 in chk_for_under_wrnty] - self.update_serial_status(lst4, 'Under Warranty') - - # check maintenance status for all serial nos only for 1st login each day - def set_serial_no_status(self): - - chk_serial_no_update_date = webnotes.conn.get_global('maintenance_status_update_date') - - # check status only for 1st login each day.... if maintenance date already updated means it is checked - if getdate(chk_serial_no_update_date) != nowdate(): - # chk to set serial no status as 'Out of warranty' - self.set_for_out_of_warranty() - - # chk to set serial no status as 'Out of amc' - self.set_for_out_of_amc() - - # chk to set serial no status as 'under amc' - self.set_for_under_amc() - - # chk to set serial no status as 'under warranty' - self.set_for_under_warranty() - - #set maintenance_status_update_date - webnotes.conn.set_global('maintenance_status_update_date', nowdate()) - - # get user fullname - def get_user_fullname(self,usr): - return sql("select concat_ws(' ',first_name, last_name) from tabProfile where name=%s", usr)[0][0] or '' diff --git a/event_updates/doctype/home_control/home_control.txt b/event_updates/doctype/home_control/home_control.txt deleted file mode 100644 index d23fb3d9e7..0000000000 --- a/event_updates/doctype/home_control/home_control.txt +++ /dev/null @@ -1 +0,0 @@ -[{'section_style': 'Simple', 'is_transaction_doc': None, 'creation': '2009-07-09 16:32:49', 'search_fields': None, 'module': 'Event Updates', 'doctype': 'DocType', 'change_log': None, 'print_outline': '', 'owner': 'Administrator', 'in_dialog': None, 'in_create': None, 'read_only': None, 'allow_email': None, 'dt_template': None, 'hide_heading': None, 'issingle': 1, 'allow_rename': None, 'smallicon': None, 'allow_attach': None, 'show_in_menu': 0, 'max_attachments': None, 'version': 4, 'menu_index': None, 'docstatus': 0, 'allow_copy': None, 'istable': None, 'description': None, 'parent': None, 'server_code': None, 'allow_trash': None, 'allow_print': None, 'autoname': None, 'client_script_core': '', 'client_string': None, 'use_template': None, 'modified_by': 'Administrator', 'document_type': None, 'name': 'Home Control', 'idx': None, 'hide_toolbar': None, 'colour': 'White:FFF', 'client_script': None, 'modified': '2010-11-21 16:46:44', 'server_code_error': ' ', 'name_case': '', 'parenttype': None, 'read_only_onload': None, 'server_code_core': None, 'server_code_compiled': None, 'parent_node': None, 'parentfield': None}] \ No newline at end of file diff --git a/event_updates/doctype/widget_control/__init__.py b/event_updates/doctype/widget_control/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/doctype/widget_control/widget_control.py b/event_updates/doctype/widget_control/widget_control.py deleted file mode 100644 index fa41cc9db2..0000000000 --- a/event_updates/doctype/widget_control/widget_control.py +++ /dev/null @@ -1,45 +0,0 @@ -import webnotes - -from webnotes.utils import nowdate -from webnotes.model.doc import Document -from webnotes.model.code import get_obj -from webnotes import session, form, msgprint - -sql = webnotes.conn.sql - -try: import json -except: import simplejson as json - -# ----------------------------------------------------------------------------------------- - - -class DocType: - def __init__(self,d,dl): - self.doc, self.doclist = d, dl - - def add_comment(self,args): - import time - args = eval(args) - if(args['comment']): - cmt = Document('Comment Widget Record') - for arg in args: - cmt.fields[arg] = args[arg] - cmt.comment_date = nowdate() - cmt.comment_time = time.strftime('%H:%M') - cmt.save(1) - - try: - get_obj('Feed Control').upate_comment_in_feed(args['comment_doctype'], args['comment_docname']) - except: - pass - - else: - raise Exception - - def remove_comment(self, args): - args = json.loads(args) - sql("delete from `tabComment Widget Record` where name=%s",args['id']) - - try: - get_obj('Feed Control').upate_comment_in_feed(args['dt'], args['dn']) - except: pass diff --git a/event_updates/doctype/widget_control/widget_control.txt b/event_updates/doctype/widget_control/widget_control.txt deleted file mode 100644 index 184eb2425b..0000000000 --- a/event_updates/doctype/widget_control/widget_control.txt +++ /dev/null @@ -1 +0,0 @@ -[{'section_style': 'Simple', 'is_transaction_doc': None, 'creation': '2009-11-12 13:06:24', 'search_fields': None, 'module': 'Event Updates', 'doctype': 'DocType', 'change_log': None, 'print_outline': '', 'owner': 'Administrator', 'in_dialog': None, 'in_create': None, 'read_only': None, 'allow_email': None, 'dt_template': None, 'hide_heading': None, 'issingle': 1, 'allow_rename': None, 'smallicon': None, 'allow_attach': None, 'show_in_menu': 0, 'max_attachments': None, 'version': 27, 'menu_index': None, 'docstatus': 0, 'allow_copy': None, 'istable': 0, 'description': None, 'parent': None, 'server_code': None, 'allow_trash': None, 'allow_print': None, 'autoname': None, 'client_script_core': None, 'client_string': None, 'use_template': None, 'modified_by': 'Administrator', 'document_type': None, 'name': 'Widget Control', 'idx': None, 'hide_toolbar': None, 'colour': 'White:FFF', 'client_script': None, 'modified': '2010-09-20 14:06:57', 'server_code_error': ' ', 'name_case': '', 'parenttype': None, 'read_only_onload': None, 'server_code_core': None, 'server_code_compiled': None, 'parent_node': None, 'parentfield': None}] \ No newline at end of file diff --git a/event_updates/page/__init__.py b/event_updates/page/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/page/event_updates/__init__.py b/event_updates/page/event_updates/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/page/event_updates/event_updates.comp.js b/event_updates/page/event_updates/event_updates.comp.js deleted file mode 100644 index 3af8868ffb..0000000000 --- a/event_updates/page/event_updates/event_updates.comp.js +++ /dev/null @@ -1,111 +0,0 @@ - -pscript['onload_Event Updates']=function(){if(user=='Guest'){loadpage('Login Page');return;} -pscript.home_make_body();pscript.home_make_status();pscript.home_pre_process();pscript.home_make_widgets();} -pscript.home_make_body=function(){var wrapper=page_body.pages['Event Updates'];wrapper.main_tab=make_table(wrapper,1,2,'100%',['70%','30%']);$y(wrapper.main_tab,{tableLayout:'fixed'});wrapper.body=$a($td(wrapper.main_tab,0,0),'div','layout_wrapper');wrapper.head=$a(wrapper.body,'div');wrapper.banner_area=$a(wrapper.head,'div');wrapper.toolbar_area=$a(wrapper.head,'div');wrapper.system_message_area=$a(wrapper.body,'div','',{marginBottom:'16px',padding:'8px',backgroundColor:'#FFD',border:'1px dashed #AA6',display:'none'})} -pscript.home_pre_process=function(wrapper){var wrapper=page_body.pages['Event Updates'];var cp=locals['Control Panel']['Control Panel'];if(cp.client_name){var banner=$a(wrapper.banner_area,'div','',{paddingBottom:'4px'}) -banner.innerHTML=cp.client_name;} -if(in_list(user_roles,'System Manager')){pscript.complete_registration();}} -pscript.home_make_widgets=function(){var wrapper=page_body.pages['Event Updates'];var cell=$td(wrapper.main_tab,0,1);sidebar=new wn.widgets.PageSidebar(cell,{sections:[{title:'Calendar',display:function(){return!has_common(user_roles,['Guest','Customer','Vendor'])},render:function(wrapper){new HomeCalendar(new HomeWidget(wrapper,'Calendar','Event'),wrapper);}},{title:'To Do',display:function(){return!has_common(user_roles,['Guest','Customer','Vendor'])},render:function(wrapper){new HomeToDo(new HomeWidget(wrapper,'To Do','Item'));}},{title:'Online Users',display:function(){return!has_common(user_roles,['Guest','Customer','Vendor'])},render:function(wrapper){pscript.online_users_obj=new OnlineUsers(wrapper);}}]}) -sidebar.refresh() -new FeedList(wrapper.body);} -OnlineUsers=function(wrapper){var me=this;this.wrapper=wrapper;this.my_company_link=function(){$a($a(wrapper,'div','',{marginBottom:'7px'}),'span','link_type',{color:'#777','color:hover':'#FFF',fontSize:'11px'},'See all users',function(){loadpage('My Company');});} -this.render=function(online_users){me.my_company_link();if(online_users.length){var max=online_users.length;max=(max>10?10:max) -for(var i=0;iDeleting...';var callback=function(r,rt){$(me.wrapper).slideUp();} -$c_obj('Home Control',this.widget.delete_method,this.widget.get_item_id(this.det),callback);} -HomeCalendar=function(widget,wrapper){$ln(widget.footer,'Full Calendar',function(){loadpage('_calendar');},{marginLeft:'7px',fontSize:'11px',color:'#888'}) -this.widget=widget;this.widget.get_list_method='get_events_list' -this.widget.delete_method='delete_event';this.widget.no_items_message='You have no events in the next 7 days';this.widget.get_item_id=function(det){return det.name;} -this.widget.decorator=this;var hl=[];for(var i=0;i<24;i++){hl.push(((i+8)%24)+':00');} -this.widget.dialog_fields=[{fieldtype:'Date',fieldname:'event_date',label:'Event Date',reqd:1},{fieldtype:'Time',fieldname:'event_hour',label:'Event Time',reqd:1},{fieldtype:'Text',fieldname:'description',label:'Description',reqd:1},{fieldtype:'Button',fieldname:'save',label:'Save'}];this.widget.refresh();} -HomeCalendar.prototype.setup_body=function(){var w=this.widget;w.date_blocks={};for(var i=0;i<7;i++){var dt=dateutil.obj_to_str(dateutil.add_days(new Date(),i));var div=$a(w.body,'div','',{padding:'4px 0px',borderBottom:'1px solid #AAA',display:'none'});div.head=$a(div,'div','',{fontWeight:'bold',paddingBottom:'4px'});div.head.innerHTML=(i==0?'Today':(i==1?'Tomorrow':dateutil.str_to_user(dt))) -w.date_blocks[dt]=div;}} -HomeCalendar.prototype.get_item_parent=function(det){var d=this.widget.date_blocks[det.event_date];$ds(d);return d;} -HomeCalendar.prototype.render_item=function(item,det){var tab=make_table($td(item.tab,0,0),1,2,'100%',['48px',null],{padding:'2px',lineHeight:'1.5em'});$y(tab,{tableLayout:'fixed'});$td(tab,0,0).innerHTML=''+det.event_hour+': ';$a($td(tab,0,1),'span','social',{},replace_newlines(det.description));if(det.ref_type&&det.ref_name&&det.ref_name!='None'){var span=$a($a($td(tab,0,1),'div'),'span','link_type');span.innerHTML=det.ref_name;span.dt=det.ref_type;span.onclick=function(){loaddoc(this.dt,this.innerHTML);}}} -HomeCalendar.prototype.clear_dialog=function(){this.set_dialog_values({event_date:get_today(),event_hour:'8:00',description:''});} -HomeCalendar.prototype.set_dialog_values=function(det){var d=this.widget.dialog;d.set_values(det);d.det=det;} -HomeCalendar.prototype.save=function(btn){var d=this.widget.dialog;var me=this;var det=d.get_values();if(!det){btn.done_working();return;} -det.name=d.det.name;det.owner=user;if(!det.event_type) -det.event_type='Private';var callback=function(r,rt){btn.done_working();me.widget.dialog.hide();me.widget.refresh();} -$c_obj('Home Control','edit_event',JSON.stringify(det),callback);} -HomeToDo=function(widget){this.widget=widget;this.widget.get_list_method='get_todo_list';this.widget.delete_method='remove_todo_item';this.widget.no_items_message='Nothing to do?';this.widget.get_item_id=function(det){return det[0];} -this.widget.decorator=this;this.widget.dialog_fields=[{fieldtype:'Date',fieldname:'date',label:'Event Date',reqd:1},{fieldtype:'Text',fieldname:'description',label:'Description',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'}];this.widget.refresh();} -HomeToDo.prototype.render_item=function(item,det){var tab=make_table($td(item.tab,0,0),1,2,'100%',['48px',null],{padding:'2px'});$y(tab,{tableLayout:'fixed'});var span=$a($td(tab,0,0),'span','',{padding:'2px',color:'#FFF',fontSize:'10px',backgroundColor:(det[3]=='Low'?'#888':(det[3]=='High'?'#EDA857':'#687FD3'))});$(span).css('-moz-border-radius','3px').css('-webkit-border-radius','3px');span.innerHTML=det[3];var span=$a($td(tab,0,1),'span','social',{lineHeight:'1.5em'},replace_newlines(det[1]));if(det[4])$y(span,{textDecoration:'line-through'});if(!det[4]&&dateutil.str_to_obj(det[2])What appears here? This is where you get updates of everything you are allowed to access and generates an update')}) -$a(this.head,'span','link_type',{cursor:'pointer',marginLeft:'7px',fontSize:'11px'},'refresh',function(){me.run();});} -FeedList.prototype.run=function(){this.prev_date=null;this.list.run();} -FeedList.prototype.make_list=function(){this.list_area=$a(this.wrapper,'div') -this.no_result=$a(this.wrapper,'div','help_box',{display:'none'},'Nothing to show yet. Your feed will be updated as you start your activities') -var l=new Listing('Feed List',1);var me=this;l.colwidths=['100%'];l.page_len=20;l.opts.cell_style={padding:'0px'};l.opts.hide_rec_label=1;l.get_query=function(){this.query=repl('select \ - distinct t1.name, t1.doc_type, t1.doc_name, t1.subject, t1.modified_by, \ - concat(ifnull(t2.first_name,""), " ", ifnull(t2.last_name,"")), t1.modified, t1.color \ - from tabFeed t1, tabProfile t2, tabUserRole t3, tabDocPerm t4 \ - where t1.doc_type = t4.parent \ - and t2.name = t1.owner \ - and t3.parent = "%(user)s" \ - and t4.role = t3.role \ - and ifnull(t4.`read`,0) = 1 \ - order by t1.modified desc',{user:user}) -this.query_max=''} -l.show_cell=function(cell,ri,ci,d){me.render_feed(cell,ri,ci,d);} -l.onrun=function(){$(me.wrapper).fadeIn();if(me.after_run)me.after_run();} -l.make(this.list_area);$dh(l.btn_area);this.list=l;} -FeedList.prototype.after_run=function(){this.list.has_data()?$dh(this.no_result):$ds(this.no_result)} -FeedList.prototype.render_feed=function(cell,ri,ci,d){new FeedItem(cell,d[ri],this);} -FeedItem=function(cell,det,feedlist){var me=this;this.det=det;this.feedlist=feedlist;this.wrapper=$a(cell,'div','',{paddingBottom:'4px'});this.head=$a(this.wrapper,'div');this.tab=make_table(this.wrapper,1,2,'100%',[(100/7)+'%',(600/7)+'%']);$y(this.tab,{tableLayout:'fixed'}) -$y($td(this.tab,0,0),{textAlign:'right',paddingRight:'4px'});this.text_area=$a($td(this.tab,0,1),'div');this.render_references(this.text_area,det);this.render_tag(det);this.add_day_sep(det);} -FeedItem.prototype.add_day_sep=function(det){var me=this;var prev_date=det[6].split(' ')[0];var make_div=function(){var div=$a(me.head,'div','',{borderBottom:'1px solid #888',margin:'8px 0px',padding:'2px 0px',color:'#888',fontSize:'11px'});div.innerHTML=comment_when(det[6],1);if(prev_date==get_today()){div.innerHTML='';span=$a(div,'span','',{padding:'2px',color:'#000',fontWeight:'bold'});span.innerHTML='Today';}} -if(this.feedlist.prev_date&&this.feedlist.prev_date!=prev_date){make_div();} -if(!this.feedlist.prev_date){make_div();} -this.feedlist.prev_date=prev_date;} -FeedItem.prototype.render_tag=function(det){tag=$a($td(this.tab,0,0),'div','',{color:'#FFF',padding:'3px',textAlign:'right',fontSize:'11px',whiteSpace:'nowrap',overflow:'hidden',cursor:'pointer'});$br(tag,'3px');$y(tag,{backgroundColor:(det[7]?det[7]:'#273')});tag.innerHTML=get_doctype_label(det[1]);tag.dt=det[1] -tag.onclick=function(){loaddocbrowser(this.dt);}} -FeedItem.prototype.render_references=function(div,det){div.tab=make_table(div,1,2,'100%',[null,'15%']) -var dt=det[1];var dn=det[2] -var allow=in_list(profile.can_read,dt);var span=$a($td(div.tab,0,0),'span',(allow?'link_type':''),null,det[2]);span.dt=dt;span.dn=dn;if(allow)span.onclick=function(){loaddoc(this.dt,this.dn);} -if(det[3]){$a($td(div.tab,0,0),'span','',{marginLeft:'7px',color:'#444'},det[3]);} -$y($td(div.tab,0,1),{fontSize:'11px'}).innerHTML=(strip(det[5])?det[5]:det[4]);} -HomeStatusBar=function(){var me=this;var parent=page_body.pages['Event Updates'];this.wrapper=$a($td(parent.main_tab,0,1),'div','home-status',{},'Loading...');$br(this.wrapper,'3px');this.render=function(r){this.wrapper.innerHTML='';this.span=$a(this.wrapper,'span','home-status-link') -this.span.onclick=function(){loadpage('My Company')} -if(r.unread_messages){this.span.innerHTML=''+r.unread_messages+' unread message'+(cint(r.unread_messages)>1?'s':'');}else{this.span.innerHTML='No unread messages.';}}} -pscript.home_make_status=function(){var home_status_bar=new HomeStatusBar() -var wrapper=page_body.pages['Event Updates'];$c_page('event_updates','event_updates','get_status_details',user,function(r,rt){home_status_bar.render(r.message);if(r.message.system_message) -pscript.show_system_message(wrapper,r.message.system_message);if(pscript.is_erpnext_saas&&cint(r.message.is_trial)&&in_list(user_roles,'System Manager')){pscript.trial_box=$a(div,'div','help_box',{margin:'2px 8px 2px 0px'},"Your Free Trial expires in "+ -r.message.days_to_expiry+" days. When you are satisfied, please please click here to convert to a paid account."+"
To get help, view Getting Started with Your System (opens in a new page)");} -pscript.online_users_obj.render(r.message.online_users);pscript.online_users=r.message.online_users;});} -pscript.convert_to_paid=function(){var callback=function(r,rt){if(r.exc){msgprint(r.exc);return;} -$(pscript.trial_box).slideUp();} -$c_page('event_updates','event_updates','convert_to_paid','',callback)} -pscript.show_system_message=function(wrapper,msg){$ds(wrapper.system_message_area);var txt=$a(wrapper.system_message_area,'div','',{lineHeight:'1.6em'});txt.innerHTML=msg;var span=$ln($a(wrapper.system_message_area,'div'),'Dismiss',function(me){me.set_working();$c_obj('Home Control','dismiss_message','',function(r,rt){me.done_working();$(wrapper.system_message_area).slideUp();});},{fontSize:'11px'})} -pscript.complete_registration=function() -{var reg_callback=function(r,rt){if(r.message=='No'){var d=new Dialog(400,200,"Please Complete Your Registration");if(user!='Administrator'){d.no_cancel();$dh(page_body.wntoolbar.wrapper);} -$($a(d.body,'div','',{margin:'8px',color:'#888'})).html('Company Name : '+locals['Control Panel']['Control Panel'].company_name);d.make_body([['Data','Company Abbreviation'],['Select','Fiscal Year Start Date'],['Select','Default Currency'],['Button','Save'],]);pscript.make_dialog_field(d);d.widgets['Save'].onclick=function() -{d.widgets['Save'].set_working();flag=pscript.validate_fields(d);if(flag) -{var args=[locals['Control Panel']['Control Panel'].company_name,d.widgets['Company Abbreviation'].value,d.widgets['Fiscal Year Start Date'].value,d.widgets['Default Currency'].value];$c_obj('Setup Control','setup_account',JSON.stringify(args),function(r,rt){sys_defaults=r.message;d.hide();$ds(page_body.wntoolbar.wrapper);});}} -d.show();}} -$c_obj('Home Control','registration_complete','',reg_callback);} -pscript.make_dialog_field=function(d) -{fisc_format=d.widgets['Fiscal Year Start Date'];add_sel_options(fisc_format,['','1st Jan','1st Apr','1st Jul','1st Oct']);currency_list=['','AED','AFN','ALL','AMD','ANG','AOA','ARS','AUD','AZN','BAM','BBD','BDT','BGN','BHD','BIF','BMD','BND','BOB','BRL','BSD','BTN','BYR','BZD','CAD','CDF','CFA','CFP','CHF','CLP','CNY','COP','CRC','CUC','CZK','DJF','DKK','DOP','DZD','EEK','EGP','ERN','ETB','EUR','EURO','FJD','FKP','FMG','GBP','GEL','GHS','GIP','GMD','GNF','GQE','GTQ','GYD','HKD','HNL','HRK','HTG','HUF','IDR','ILS','INR','IQD','IRR','ISK','JMD','JOD','JPY','KES','KGS','KHR','KMF','KPW','KRW','KWD','KYD','KZT','LAK','LBP','LKR','LRD','LSL','LTL','LVL','LYD','MAD','MDL','MGA','MKD','MMK','MNT','MOP','MRO','MUR','MVR','MWK','MXN','MYR','MZM','NAD','NGN','NIO','NOK','NPR','NRs','NZD','OMR','PAB','PEN','PGK','PHP','PKR','PLN','PYG','QAR','RMB','RON','RSD','RUB','RWF','SAR','SCR','SDG','SDR','SEK','SGD','SHP','SOS','SRD','STD','SYP','SZL','THB','TJS','TMT','TND','TRY','TTD','TWD','TZS','UAE','UAH','UGX','USD','USh','UYU','UZS','VEB','VND','VUV','WST','XAF','XCD','XDR','XOF','XPF','YEN','YER','YTL','ZAR','ZMK','ZWR'];currency=d.widgets['Default Currency'];add_sel_options(currency,currency_list);} -pscript.validate_fields=function(d) -{var lst=['Company Abbreviation','Fiscal Year Start Date','Default Currency'];var msg='Please enter the following fields';var flag=1;for(var i=0;i \ No newline at end of file diff --git a/event_updates/page/event_updates/event_updates.js b/event_updates/page/event_updates/event_updates.js deleted file mode 100644 index 7a401de69f..0000000000 --- a/event_updates/page/event_updates/event_updates.js +++ /dev/null @@ -1,748 +0,0 @@ -pscript['onload_Event Updates'] = function() { - if(user=='Guest') { - loadpage('Login Page'); - return; - } - - pscript.home_make_body(); - pscript.home_make_status(); - pscript.home_pre_process(); - pscript.home_make_widgets(); -} - -// ================================== - -pscript.home_make_body = function() { - var wrapper = page_body.pages['Event Updates']; - - // body - wrapper.main_tab = make_table(wrapper,1,2,'100%',['70%','30%']); - $y(wrapper.main_tab, {tableLayout:'fixed'}); - - wrapper.body = $a($td(wrapper.main_tab, 0, 0), 'div', 'layout_wrapper'); - - wrapper.head = $a(wrapper.body, 'div'); - - wrapper.banner_area = $a(wrapper.head, 'div'); - wrapper.toolbar_area = $a(wrapper.head, 'div'); - - - wrapper.system_message_area = $a(wrapper.body, 'div', '', - {marginBottom:'16px', padding:'8px', backgroundColor:'#FFD', border:'1px dashed #AA6', display:'none'}) - - -} - -// ================================== - -pscript.home_pre_process = function(wrapper) { - var wrapper = page_body.pages['Event Updates']; - var cp = locals['Control Panel']['Control Panel']; - - // banner - if(cp.client_name) { - var banner = $a(wrapper.banner_area, 'div', '', {paddingBottom:'4px'}) - banner.innerHTML = cp.client_name; - } - - // complete registration - if(in_list(user_roles,'System Manager')) { pscript.complete_registration(); } -} - -// Widgets -// ================================== - -pscript.home_make_widgets = function() { - var wrapper = page_body.pages['Event Updates']; - var cell = $td(wrapper.main_tab, 0, 1); - - // sidebar - sidebar = new wn.widgets.PageSidebar(cell, { - sections:[ - { - title: 'Calendar', - display: function() { return !has_common(user_roles, ['Guest','Customer','Vendor'])}, - render: function(wrapper) { - new HomeCalendar(new HomeWidget(wrapper, 'Calendar', 'Event'), wrapper); - } - }, - - { - title: 'To Do', - display: function() { return !has_common(user_roles, ['Guest','Customer','Vendor'])}, - render: function(wrapper) { - new HomeToDo(new HomeWidget(wrapper, 'To Do', 'Item')); - } - }, - - { - title: 'Online Users', - display: function() { return !has_common(user_roles, ['Guest','Customer','Vendor'])}, - render: function(wrapper) { - pscript.online_users_obj = new OnlineUsers(wrapper); - } - } - ] - }) - sidebar.refresh() - - /*$y(cell,{padding:'0px 8px'}); - - new HomeCalendar(new HomeWidget(cell, 'Calendar', 'Event')); - - - new HomeToDo(new HomeWidget(cell, 'To Do', 'Item'));*/ - - new FeedList(wrapper.body); -} - -OnlineUsers = function(wrapper) { - var me = this; - this.wrapper = wrapper; - - this.my_company_link = function() { - $a($a(wrapper, 'div', '', {marginBottom:'7px'}), 'span', 'link_type', - {color:'#777', 'color:hover':'#FFF', fontSize:'11px'}, - 'See all users', function() {loadpage('My Company'); }); - } - - this.render = function(online_users) { - me.my_company_link(); - - if(online_users.length) { - var max = online_users.length; max = (max > 10 ? 10 : max) - for(var i=0; i '; - $a($td(tab, 0, 1), 'span', 'social', {}, replace_newlines(det.description)); - - if(det.ref_type && det.ref_name && det.ref_name != 'None') { - var span=$a($a($td(tab, 0, 1),'div'),'span','link_type'); - span.innerHTML = det.ref_name; span.dt = det.ref_type; - span.onclick = function() { loaddoc(this.dt, this.innerHTML); } - } -} - -HomeCalendar.prototype.clear_dialog = function() { - this.set_dialog_values({event_date:get_today(), event_hour:'8:00', description:''}); -} - -HomeCalendar.prototype.set_dialog_values = function(det) { - var d = this.widget.dialog; - d.set_values(det); - d.det = det; -} - -HomeCalendar.prototype.save = function(btn) { - var d = this.widget.dialog; - var me = this; - var det = d.get_values(); - - if(!det) { - btn.done_working(); - return; - } - - det.name = d.det.name; - det.owner = user; - if(!det.event_type) - det.event_type = 'Private'; - - var callback = function(r,rt) { - btn.done_working(); - me.widget.dialog.hide(); - me.widget.refresh(); - } - $c_obj('Home Control','edit_event',JSON.stringify(det),callback); -} - -// Todo -// =========================== - -HomeToDo = function(widget) { - this.widget = widget; - - // methods - this.widget.get_list_method = 'get_todo_list'; - this.widget.delete_method = 'remove_todo_item'; - this.widget.no_items_message = 'Nothing to do?'; - this.widget.get_item_id = function(det) { return det[0]; } - - this.widget.decorator = this; - - this.widget.dialog_fields = [ - {fieldtype:'Date', fieldname:'date', label:'Event Date', reqd:1}, - {fieldtype:'Text', fieldname:'description', label:'Description', 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'} - ]; - - this.widget.refresh(); -} - -HomeToDo.prototype.render_item = function(item, det) { - - // priority tag - var tab = make_table($td(item.tab, 0, 0), 1, 2, '100%', ['48px', null], {padding:'2px'}); - $y(tab, {tableLayout:'fixed'}); - - var span = $a($td(tab, 0, 0), 'span', '', {padding:'2px',color:'#FFF',fontSize:'10px' - ,backgroundColor:(det[3]=='Low' ? '#888' : (det[3]=='High' ? '#EDA857' : '#687FD3'))}); - - $(span).css('-moz-border-radius','3px').css('-webkit-border-radius','3px'); - span.innerHTML = det[3]; - - // text - var span = $a($td(tab, 0, 1), 'span', 'social', {lineHeight:'1.5em'}, replace_newlines(det[1])); - if(det[4]) $y(span,{textDecoration:'line-through'}); - - // if expired & open, then in red - if(!det[4] && dateutil.str_to_obj(det[2]) < new Date()) { - $y(span,{color:'RED'}); - $a($td(tab, 0, 1), 'div', '', {fontSize:'10px', color:'#666'}, dateutil.str_to_user(det[2]) + ' (Overdue)'); - } else { - $a($td(tab, 0, 1), 'div', '', {fontSize:'10px', color:'#666'}, dateutil.str_to_user(det[2])); - } -} - -HomeToDo.prototype.clear_dialog = function() { - this.set_dialog_values(['','',get_today(),'Medium',0]); -} - -HomeToDo.prototype.set_dialog_values = function(det) { - var d = this.widget.dialog; - d.set_values({ - date: det[2], - priority: det[3], - description: det[1], - checked: det[4] - }); - d.det = det; -} - -HomeToDo.prototype.save = function(btn) { - var d = this.widget.dialog; - var me = this; - - var det = d.get_values() - if(!det) { - btn.done_working(); - return; - } - - det.name = d.det ? d.det[0] : ''; - - var callback = function(r,rt) { - btn.done_working(); - me.widget.dialog.hide(); - me.widget.refresh(); - } - $c_obj('Home Control','add_todo_item',JSON.stringify(det),callback); -} - -// Feed -// ================================== - - -FeedList = function(parent) { - // settings - this.auto_feed_off = cint(sys_defaults.auto_feed_off); - - this.wrapper = $a(parent, 'div'); - this.make_head(); - this.make_list(); - this.list.run(); -} - -FeedList.prototype.make_head = function() { - var me = this; - this.head = $a(this.wrapper, 'div', '', {marginBottom:'8px'}); - - // head - - $a(this.head,'h1','', {display:'inline'}, 'Home'); - $a(this.head,'span','link_type', {marginLeft:'7px'}, '[?]', function() { - msgprint('What appears here? This is where you get updates of everything you are allowed to access and generates an update') - }) - - // refresh - $a(this.head,'span','link_type', - {cursor:'pointer', marginLeft:'7px', fontSize:'11px'}, 'refresh', - function() { me.run(); } - ); -} - -FeedList.prototype.run = function() { - this.prev_date = null; - this.list.run(); -} - -FeedList.prototype.make_list = function() { - this.list_area = $a(this.wrapper,'div') - this.no_result = $a(this.wrapper, 'div','help_box',{display:'none'},'Nothing to show yet. Your feed will be updated as you start your activities') - - var l = new Listing('Feed List',1); - var me = this; - - // style - l.colwidths = ['100%']; l.page_len = 20; - l.opts.cell_style = {padding:'0px'}; - l.opts.hide_rec_label = 1; - - // build query - l.get_query = function(){ - this.query = repl('select \ - distinct t1.name, t1.doc_type, t1.doc_name, t1.subject, t1.modified_by, \ - concat(ifnull(t2.first_name,""), " ", ifnull(t2.last_name,"")), t1.modified, t1.color \ - from tabFeed t1, tabProfile t2, tabUserRole t3, tabDocPerm t4 \ - where t1.doc_type = t4.parent \ - and t2.name = t1.owner \ - and t3.parent = "%(user)s" \ - and t4.role = t3.role \ - and ifnull(t4.`read`,0) = 1 \ - order by t1.modified desc', {user:user}) - this.query_max = '' - } - - // render list ui - l.show_cell = function(cell,ri,ci,d){ me.render_feed(cell,ri,ci,d); } - - // onrun - l.onrun = function(){ $(me.wrapper).fadeIn(); if(me.after_run) me.after_run(); } - - // make - l.make(this.list_area); - $dh(l.btn_area); - - this.list = l; -} - -FeedList.prototype.after_run = function() { - this.list.has_data() ? $dh(this.no_result) : $ds(this.no_result) -} - -FeedList.prototype.render_feed = function(cell,ri,ci,d) { - new FeedItem(cell, d[ri], this); -} - -// Item -// ------------------------------- - -FeedItem = function(cell, det, feedlist) { - var me = this; - - this.det = det; this.feedlist = feedlist; - this.wrapper = $a(cell,'div','',{paddingBottom:'4px'}); - this.head = $a(this.wrapper,'div'); - - this.tab = make_table(this.wrapper, 1, 2, '100%', [(100/7)+'%', (600/7)+'%']); - $y(this.tab,{tableLayout:'fixed'}) - - // image - $y($td(this.tab,0,0),{textAlign:'right',paddingRight:'4px'}); - - // text - this.text_area = $a($td(this.tab,0,1), 'div'); - this.render_references(this.text_area, det); - - this.render_tag(det); - - // add day separator - this.add_day_sep(det); -} - -// Day separator -// ------------------------------------------------- - -FeedItem.prototype.add_day_sep = function(det) { - var me = this; - var prev_date = det[6].split(' ')[0]; - - var make_div = function() { - var div = $a(me.head, 'div', '', - {borderBottom:'1px solid #888', margin:'8px 0px', padding:'2px 0px', color:'#888', fontSize:'11px'}); - div.innerHTML = comment_when(det[6], 1); - - // today? - if(prev_date==get_today()) { - div.innerHTML = ''; - span = $a(div, 'span', '', {padding:'2px', color:'#000', fontWeight:'bold'}); - span.innerHTML = 'Today'; - } - } - - if(this.feedlist.prev_date && this.feedlist.prev_date != prev_date) { make_div(); } - if(!this.feedlist.prev_date) { make_div(); } - this.feedlist.prev_date = prev_date; -} - -// Tag -// ------------------------------------------------- - -FeedItem.prototype.render_tag = function(det) { - tag = $a($td(this.tab,0,0), 'div', '', - {color:'#FFF', padding:'3px', textAlign:'right', fontSize:'11px', whiteSpace:'nowrap', overflow:'hidden', cursor:'pointer'}); - $br(tag,'3px'); - $y(tag, {backgroundColor:(det[7] ? det[7] : '#273')}); - tag.innerHTML = get_doctype_label(det[1]); - tag.dt = det[1] - tag.onclick = function() { loaddocbrowser(this.dt); } -} - -FeedItem.prototype.render_references = function(div, det) { - // name - div.tab = make_table(div, 1, 2, '100%', [null, '15%']) - //div.innerHTML = '' + (strip(det[11]) ? det[11] : det[2]) + ' (' + cint(det[12]) + '): has ' + det[7] + ' '; - - var dt = det[1]; var dn = det[2] - - // link - var allow = in_list(profile.can_read, dt); - var span = $a($td(div.tab,0,0), 'span', (allow ? 'link_type': ''), null, det[2]); - span.dt = dt; span.dn = dn; - if(allow) span.onclick = function() { loaddoc(this.dt, this.dn); } - - // subject - if(det[3]) { - $a($td(div.tab,0,0), 'span', '', {marginLeft:'7px', color:'#444'}, det[3]); - } - - // by - $y($td(div.tab,0,1), {fontSize:'11px'}).innerHTML = (strip(det[5]) ? det[5] : det[4]); -} - -HomeStatusBar = function() { - var me = this; - var parent = page_body.pages['Event Updates']; - this.wrapper = $a($td(parent.main_tab, 0, 1), 'div', 'home-status', {}, 'Loading...'); - $br(this.wrapper, '3px'); - - this.render = function(r) { - this.wrapper.innerHTML = ''; - this.span = $a(this.wrapper, 'span', 'home-status-link') - this.span.onclick = function() { loadpage('My Company') } - - if(r.unread_messages) { - this.span.innerHTML = '' + r.unread_messages + ' unread message' + (cint(r.unread_messages) > 1 ? 's' : ''); - } else { - this.span.innerHTML = 'No unread messages.'; - } - } -} - -pscript.home_make_status = function() { - var home_status_bar = new HomeStatusBar() - var wrapper = page_body.pages['Event Updates']; - - // get values - $c_page('event_updates', 'event_updates', 'get_status_details', user, - function(r,rt) { - - home_status_bar.render(r.message); - - // system_messages - if(r.message.system_message) - pscript.show_system_message(wrapper, r.message.system_message); - - // trial - if(pscript.is_erpnext_saas && cint(r.message.is_trial) && in_list(user_roles, 'System Manager')) { - pscript.trial_box = $a(div, 'div', 'help_box', {margin:'2px 8px 2px 0px'}, "Your Free Trial expires in " + - r.message.days_to_expiry + " days. When you are satisfied, please please click here to convert to a paid account." + - "
To get help, view Getting Started with Your System (opens in a new page)"); - } - - // render online users - pscript.online_users_obj.render(r.message.online_users); - pscript.online_users = r.message.online_users; - } - ); -} - -// show system message -// ------------------- -pscript.convert_to_paid = function() { - var callback = function(r,rt) { - if(r.exc) { msgprint(r.exc); return; } - $(pscript.trial_box).slideUp(); - } - $c_page('event_updates','event_updates','convert_to_paid','',callback) -} - -// show system message -// ------------------- -pscript.show_system_message = function(wrapper, msg) { - $ds(wrapper.system_message_area); - var txt = $a(wrapper.system_message_area, 'div', '', {lineHeight:'1.6em'}); - txt.innerHTML = msg; - - var span = $ln($a(wrapper.system_message_area, 'div'), 'Dismiss', - function(me) { - me.set_working(); - $c_obj('Home Control', 'dismiss_message', '', function(r,rt) { - me.done_working(); - $(wrapper.system_message_area).slideUp(); - }); - }, {fontSize:'11px'} - ) -} - -// complete my company registration -// -------------------------------- -pscript.complete_registration = function() -{ - var reg_callback = function(r, rt){ - if(r.message == 'No'){ - var d = new Dialog(400, 200, "Please Complete Your Registration"); - if(user != 'Administrator'){ - d.no_cancel(); // Hide close image - $dh(page_body.wntoolbar.wrapper); - } - $($a(d.body,'div','', {margin:'8px', color:'#888'})).html('Company Name : '+locals['Control Panel']['Control Panel'].company_name); - - d.make_body( - [ - ['Data','Company Abbreviation'], - ['Select','Fiscal Year Start Date'], - ['Select','Default Currency'], - ['Button','Save'], - ]); - - //d.widgets['Save'].disabled = true; // disable Save button - pscript.make_dialog_field(d); - - // submit details - d.widgets['Save'].onclick = function() - { - d.widgets['Save'].set_working(); - - flag = pscript.validate_fields(d); - if(flag) - { - var args = [ - locals['Control Panel']['Control Panel'].company_name, - d.widgets['Company Abbreviation'].value, - d.widgets['Fiscal Year Start Date'].value, - d.widgets['Default Currency'].value - ]; - - $c_obj('Setup Control','setup_account',JSON.stringify(args),function(r, rt){ - sys_defaults = r.message; - d.hide(); - $ds(page_body.wntoolbar.wrapper); - }); - } - } - d.show(); - } - } - $c_obj('Home Control','registration_complete','',reg_callback); -} - -// make dialog fields -// ------------------ -pscript.make_dialog_field = function(d) -{ - // fiscal year format - fisc_format = d.widgets['Fiscal Year Start Date']; - add_sel_options(fisc_format, ['', '1st Jan', '1st Apr', '1st Jul', '1st Oct']); - - // default currency - currency_list = ['', 'AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AZN', 'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BRL', 'BSD', 'BTN', 'BYR', 'BZD', 'CAD', 'CDF', 'CFA', 'CFP', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CUC', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EEK', 'EGP', 'ERN', 'ETB', 'EUR', 'EURO', 'FJD', 'FKP', 'FMG', 'GBP', 'GEL', 'GHS', 'GIP', 'GMD', 'GNF', 'GQE', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LTL', 'LVL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRO', 'MUR', 'MVR', 'MWK', 'MXN', 'MYR', 'MZM', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NRs', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RMB', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SCR', 'SDG', 'SDR', 'SEK', 'SGD', 'SHP', 'SOS', 'SRD', 'STD', 'SYP', 'SZL', 'THB', 'TJS', 'TMT', 'TND', 'TRY', 'TTD', 'TWD', 'TZS', 'UAE', 'UAH', 'UGX', 'USD', 'USh', 'UYU', 'UZS', 'VEB', 'VND', 'VUV', 'WST', 'XAF', 'XCD', 'XDR', 'XOF', 'XPF', 'YEN', 'YER', 'YTL', 'ZAR', 'ZMK', 'ZWR']; - currency = d.widgets['Default Currency']; - add_sel_options(currency, currency_list); -} - - -// validate fields -// --------------- -pscript.validate_fields = function(d) -{ - var lst = ['Company Abbreviation', 'Fiscal Year Start Date', 'Default Currency']; - var msg = 'Please enter the following fields'; - var flag = 1; - for(var i=0; inow() \n`tabReceivable Voucher`.outstanding_amount!=0\n`tabReceivable Voucher`.docstatus=1', - 'add_tab': None, - 'columns': 'Receivable Voucher\x01ID,Receivable Voucher\x01Owner,Receivable Voucher\x01Debit To,Receivable Voucher\x01Voucher Date,Receivable Voucher\x01Due Date,Receivable Voucher\x01Outstanding Amount', - 'creation': '2010-08-08 17:09:31', - 'criteria_name': 'Invoices-To receive payment', - 'custom_query': '', - 'description': None, - 'dis_filters': None, - 'disabled': None, - 'doc_type': 'Receivable Voucher', - 'docstatus': 0, - 'doctype': 'Search Criteria', - 'filters': "{'Receivable Voucher\x01Submitted':1,'Receivable Voucher\x01Is Opening':'','Receivable Voucher\x01Fiscal Year':''}", - 'graph_series': None, - 'graph_values': None, - 'group_by': None, - 'idx': None, - 'modified': '2010-04-30 16:54:26', - 'modified_by': 'Administrator', - 'module': 'Event Updates', - 'name': 'invoices-to_receive_payment', - 'owner': 'Administrator', - 'page_len': 50, - 'parent': None, - 'parent_doc_type': None, - 'parentfield': None, - 'parenttype': None, - 'report_script': '', - 'server_script': None, - 'sort_by': '`tabReceivable Voucher`.`name`', - 'sort_order': 'DESC', - 'standard': 'Yes' - } -] \ No newline at end of file diff --git a/event_updates/search_criteria/lead_to_follow_up/__init__.py b/event_updates/search_criteria/lead_to_follow_up/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/search_criteria/lead_to_follow_up/lead_to_follow_up.js b/event_updates/search_criteria/lead_to_follow_up/lead_to_follow_up.js deleted file mode 100644 index ff22521c74..0000000000 --- a/event_updates/search_criteria/lead_to_follow_up/lead_to_follow_up.js +++ /dev/null @@ -1,5 +0,0 @@ -report.customize_filters = function() { - this.filter_fields_dict['Lead'+FILTER_SEP +'Status'].df.filter_hide = 1; - this.filter_fields_dict['Lead'+FILTER_SEP +'Fiscal Year'].df['report_default'] = sys_defaults.fiscal_year; -} - \ No newline at end of file diff --git a/event_updates/search_criteria/lead_to_follow_up/lead_to_follow_up.txt b/event_updates/search_criteria/lead_to_follow_up/lead_to_follow_up.txt deleted file mode 100644 index e1536eb3a5..0000000000 --- a/event_updates/search_criteria/lead_to_follow_up/lead_to_follow_up.txt +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - 'add_col': None, - 'add_cond': "`tabLead`.status!='Converted' \n`tabLead`.status!='Lead Lost' \n`tabLead`.status!='Not Interested'", - 'add_tab': None, - 'columns': 'Lead\x01ID,Lead\x01Status,Lead\x01Lead Name,Lead\x01Lead Date,Lead\x01Lead Owner,Lead\x01Next Contact Date', - 'creation': '2010-09-01 15:47:57', - 'criteria_name': 'Lead-To follow up', - 'custom_query': '', - 'description': None, - 'dis_filters': None, - 'disabled': None, - 'doc_type': 'Lead', - 'docstatus': 0, - 'doctype': 'Search Criteria', - 'filters': "{'Lead\x01Status':'','Lead\x01Source':'','Lead\x01Expected Month':'','Lead\x01Industry':'','Lead\x01Market Segment':'','Lead\x01Rating':''}", - 'graph_series': None, - 'graph_values': None, - 'group_by': None, - 'idx': None, - 'modified': '2010-08-30 12:01:19', - 'modified_by': 'Administrator', - 'module': 'Event Updates', - 'name': 'lead-to_follow_up', - 'owner': 'Administrator', - 'page_len': 50, - 'parent': None, - 'parent_doc_type': None, - 'parentfield': None, - 'parenttype': None, - 'report_script': None, - 'server_script': None, - 'sort_by': '`tabLead`.`name`', - 'sort_order': 'DESC', - 'standard': 'Yes' - } -] \ No newline at end of file diff --git a/event_updates/search_criteria/purchase_order_to_be_billed/__init__.py b/event_updates/search_criteria/purchase_order_to_be_billed/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt b/event_updates/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt deleted file mode 100644 index c84afa7878..0000000000 --- a/event_updates/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - 'add_col': None, - 'add_cond': "ifnull(`tabPurchase Order`.per_billed,0)<100\n`tabPurchase Order`.status='Submitted'", - 'add_tab': None, - 'columns': 'Purchase Order\x01ID,Purchase Order\x01Supplier,Purchase Order\x01PO Date,Purchase Order\x01Company,Purchase Order\x01Grand Total', - 'creation': '2010-08-08 17:09:32', - 'criteria_name': 'Purchase Order-To be billed', - 'custom_query': '', - 'description': None, - 'dis_filters': None, - 'disabled': None, - 'doc_type': 'Purchase Order', - 'docstatus': 0, - 'doctype': 'Search Criteria', - 'filters': "{'Purchase Order\x01Submitted':1,'Purchase Order\x01Status':'Submitted','Purchase Order\x01Fiscal Year':''}", - 'graph_series': None, - 'graph_values': None, - 'group_by': None, - 'idx': None, - 'modified': '2010-05-13 17:31:42', - 'modified_by': 'Administrator', - 'module': 'Event Updates', - 'name': 'purchase_order-to_be_billed', - 'owner': 'Administrator', - 'page_len': 50, - 'parent': None, - 'parent_doc_type': None, - 'parentfield': None, - 'parenttype': None, - 'report_script': '', - 'server_script': None, - 'sort_by': '`tabPurchase Order`.`name`', - 'sort_order': 'DESC', - 'standard': 'Yes' - } -] \ No newline at end of file diff --git a/event_updates/search_criteria/purchase_order_to_be_submitted/__init__.py b/event_updates/search_criteria/purchase_order_to_be_submitted/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt b/event_updates/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt deleted file mode 100644 index 41f1d7fcc3..0000000000 --- a/event_updates/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - 'add_col': None, - 'add_cond': None, - 'add_tab': None, - 'columns': 'Purchase Order\x01ID,Purchase Order\x01Supplier,Purchase Order\x01PO Date,Purchase Order\x01Company,Purchase Order\x01Grand Total', - 'creation': '2010-08-08 17:09:32', - 'criteria_name': 'Purchase Order-To be submitted', - 'custom_query': '', - 'description': None, - 'dis_filters': None, - 'disabled': None, - 'doc_type': 'Purchase Order', - 'docstatus': 0, - 'doctype': 'Search Criteria', - 'filters': "{'Purchase Order\x01Saved':1,'Purchase Order\x01Submitted':0,'Purchase Order\x01Status':'Draft','Purchase Order\x01Fiscal Year':''}", - 'graph_series': None, - 'graph_values': None, - 'group_by': None, - 'idx': None, - 'modified': '2010-05-03 11:19:23', - 'modified_by': 'Administrator', - 'module': 'Event Updates', - 'name': 'purchase_order-to_be_submitted', - 'owner': 'Administrator', - 'page_len': 50, - 'parent': None, - 'parent_doc_type': None, - 'parentfield': None, - 'parenttype': None, - 'report_script': '', - 'server_script': None, - 'sort_by': '`tabPurchase Order`.`name`', - 'sort_order': 'DESC', - 'standard': 'Yes' - } -] \ No newline at end of file diff --git a/event_updates/search_criteria/purchase_order_to_receive_items/__init__.py b/event_updates/search_criteria/purchase_order_to_receive_items/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt b/event_updates/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt deleted file mode 100644 index 51f51441ab..0000000000 --- a/event_updates/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - 'add_col': None, - 'add_cond': "ifnull(`tabPurchase Order`.per_received,0)<100\n`tabPurchase Order`.status='Submitted'", - 'add_tab': None, - 'columns': 'Purchase Order\x01ID,Purchase Order\x01Supplier,Purchase Order\x01PO Date,Purchase Order\x01Company,Purchase Order\x01% Received,Purchase Order\x01Grand Total', - 'creation': '2010-08-08 17:09:32', - 'criteria_name': 'Purchase Order-To receive items', - 'custom_query': '', - 'description': None, - 'dis_filters': None, - 'disabled': None, - 'doc_type': 'Purchase Order', - 'docstatus': 0, - 'doctype': 'Search Criteria', - 'filters': "{'Purchase Order\x01Submitted':1,'Purchase Order\x01Status':'Submitted','Purchase Order\x01Fiscal Year':''}", - 'graph_series': None, - 'graph_values': None, - 'group_by': None, - 'idx': None, - 'modified': '2010-05-13 17:34:22', - 'modified_by': 'Administrator', - 'module': 'Event Updates', - 'name': 'purchase_order-to_receive_items', - 'owner': 'Administrator', - 'page_len': 50, - 'parent': None, - 'parent_doc_type': None, - 'parentfield': None, - 'parenttype': None, - 'report_script': '', - 'server_script': None, - 'sort_by': '`tabPurchase Order`.`name`', - 'sort_order': 'DESC', - 'standard': 'Yes' - } -] \ No newline at end of file diff --git a/event_updates/search_criteria/sales_order_overdue/__init__.py b/event_updates/search_criteria/sales_order_overdue/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/search_criteria/sales_order_overdue/sales_order_overdue.js b/event_updates/search_criteria/sales_order_overdue/sales_order_overdue.js deleted file mode 100644 index 0f86a56ad0..0000000000 --- a/event_updates/search_criteria/sales_order_overdue/sales_order_overdue.js +++ /dev/null @@ -1,11 +0,0 @@ -report.customize_filters = function() { - this.hide_all_filters(); - this.filter_fields_dict['Sales Order'+FILTER_SEP +'Customer'].df.filter_hide = 0; - this.filter_fields_dict['Sales Order'+FILTER_SEP +'ID'].df.filter_hide = 0; - this.filter_fields_dict['Sales Order'+FILTER_SEP +'Quotation No'].df.filter_hide = 0; - this.filter_fields_dict['Sales Order'+FILTER_SEP +'Company'].df.filter_hide = 0; - this.filter_fields_dict['Sales Order'+FILTER_SEP +'Sales Partner'].df.filter_hide = 0; - this.filter_fields_dict['Sales Order'+FILTER_SEP +'Fiscal Year'].df.filter_hide = 0; - this.filter_fields_dict['Sales Order'+FILTER_SEP +'From Sales Order Date'].df.filter_hide = 0; - this.filter_fields_dict['Sales Order'+FILTER_SEP +'To Sales Order Date'].df.filter_hide = 0; -} \ No newline at end of file diff --git a/event_updates/search_criteria/sales_order_overdue/sales_order_overdue.txt b/event_updates/search_criteria/sales_order_overdue/sales_order_overdue.txt deleted file mode 100644 index 5e216cce62..0000000000 --- a/event_updates/search_criteria/sales_order_overdue/sales_order_overdue.txt +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - 'add_col': None, - 'add_cond': '`tabSales Order`.delivery_date now()", - 'add_tab': None, - 'columns': 'Sales Order\x01ID,Sales Order\x01Owner,Sales Order\x01Status,Sales Order\x01Customer,Sales Order\x01Sales Order Date,Sales Order\x01Expected Delivery Date,Sales Order\x01Quotation No', - 'creation': '2010-08-08 17:09:31', - 'criteria_name': 'Sales Order-To be delivered', - 'custom_query': '', - 'description': None, - 'dis_filters': None, - 'disabled': None, - 'doc_type': 'Sales Order', - 'docstatus': 0, - 'doctype': 'Search Criteria', - 'filters': "{'Sales Order\x01Saved':1,'Sales Order\x01Submitted':1,'Sales Order\x01Fiscal Year':''}", - 'graph_series': None, - 'graph_values': None, - 'group_by': None, - 'idx': None, - 'modified': '2010-05-13 17:53:29', - 'modified_by': 'Administrator', - 'module': 'Event Updates', - 'name': 'sales_order-to_be_delivered', - 'owner': 'Administrator', - 'page_len': 100, - 'parent': None, - 'parent_doc_type': None, - 'parentfield': None, - 'parenttype': None, - 'report_script': '', - 'server_script': '', - 'sort_by': '`tabSales Order`.`name`', - 'sort_order': 'DESC', - 'standard': 'Yes' - } -] \ No newline at end of file diff --git a/event_updates/search_criteria/sales_order_to_be_submitted/__init__.py b/event_updates/search_criteria/sales_order_to_be_submitted/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt b/event_updates/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt deleted file mode 100644 index 0e1a4ee77a..0000000000 --- a/event_updates/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - 'add_col': None, - 'add_cond': "`tabSales Order`.status='Draft'", - 'add_tab': None, - 'columns': 'Sales Order\x01ID,Sales Order\x01Customer,Sales Order\x01Sales Order Date,Sales Order\x01Quotation No', - 'creation': '2010-08-08 17:09:31', - 'criteria_name': 'Sales Order-To be submitted', - 'custom_query': '', - 'description': None, - 'dis_filters': None, - 'disabled': None, - 'doc_type': 'Sales Order', - 'docstatus': 0, - 'doctype': 'Search Criteria', - 'filters': "{'Sales Order\x01Saved':1,'Sales Order\x01Fiscal Year':''}", - 'graph_series': None, - 'graph_values': None, - 'group_by': None, - 'idx': None, - 'modified': '2010-05-13 17:47:45', - 'modified_by': 'Administrator', - 'module': 'Event Updates', - 'name': 'sales_order-to_be_submitted', - 'owner': 'Administrator', - 'page_len': 100, - 'parent': None, - 'parent_doc_type': None, - 'parentfield': None, - 'parenttype': None, - 'report_script': '', - 'server_script': None, - 'sort_by': '`tabSales Order`.`name`', - 'sort_order': 'DESC', - 'standard': 'Yes' - } -] \ No newline at end of file diff --git a/event_updates/search_criteria/serial_no_amc_expiring_this_month/__init__.py b/event_updates/search_criteria/serial_no_amc_expiring_this_month/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt b/event_updates/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt deleted file mode 100644 index c43ce7dc9f..0000000000 --- a/event_updates/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - 'add_col': '', - 'add_cond': '`tab Serial No`.month(amc_expiry_date)=month(now()) \n`tab Serial No`.year(amc_expiry_date)=year(now())', - 'add_tab': None, - 'columns': 'Serial No\x01ID,Serial No\x01Status,Serial No\x01AMC Expiry Date,Serial No\x01Customer Name', - 'creation': '2010-08-08 17:09:32', - 'criteria_name': 'Serial No-AMC expiring this month', - 'custom_query': '', - 'description': None, - 'dis_filters': None, - 'disabled': None, - 'doc_type': 'Serial No', - 'docstatus': 0, - 'doctype': 'Search Criteria', - 'filters': "{'Serial No\x01Saved':1,'Serial No\x01Submitted':1,'Serial No\x01Status':'','Serial No\x01Warranty Status':''}", - 'graph_series': None, - 'graph_values': None, - 'group_by': None, - 'idx': None, - 'modified': '2010-07-29 15:01:33', - 'modified_by': 'Administrator', - 'module': 'Event Updates', - 'name': 'serial_no-amc_expiring_this_month', - 'owner': 'Administrator', - 'page_len': 50, - 'parent': None, - 'parent_doc_type': None, - 'parentfield': None, - 'parenttype': None, - 'report_script': '', - 'server_script': None, - 'sort_by': '`tabSerial No`.`name`', - 'sort_order': 'DESC', - 'standard': 'Yes' - } -] \ No newline at end of file diff --git a/event_updates/search_criteria/serial_no_warranty_expiring_this_month/__init__.py b/event_updates/search_criteria/serial_no_warranty_expiring_this_month/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt b/event_updates/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt deleted file mode 100644 index 1b74d947cb..0000000000 --- a/event_updates/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - 'add_col': '', - 'add_cond': "`tab Serial No`.docstatus!=2\n`tab Serial No`.maintenance_status='Under Warranty'\n`tab Serial No`.status!='Scrapped'\n`tab Serial No`.status!='Not in Use'\n`tab Serial No`.month(ifnull(warranty_expiry_date,0)) = month(now()) \n`tab Serial No`.yearmonth(ifnull(warranty_expiry_date,0)) = year(now())", - 'add_tab': None, - 'columns': 'Serial No\x01ID,Serial No\x01Status,Serial No\x01Warranty Expiry Date,Serial No\x01Customer Name', - 'creation': '2010-08-08 17:09:32', - 'criteria_name': 'Serial No-Warranty expiring this month', - 'custom_query': '', - 'description': None, - 'dis_filters': None, - 'disabled': None, - 'doc_type': 'Serial No', - 'docstatus': 0, - 'doctype': 'Search Criteria', - 'filters': "{'Serial No\x01Saved':1,'Serial No\x01Submitted':1,'Serial No\x01Status':'Issued','Serial No\x01Maintenance Status':''}", - 'graph_series': None, - 'graph_values': None, - 'group_by': None, - 'idx': None, - 'modified': '2010-07-23 09:57:51', - 'modified_by': 'Administrator', - 'module': 'Event Updates', - 'name': 'serial_no-warranty_expiring_this_month', - 'owner': 'Administrator', - 'page_len': 50, - 'parent': None, - 'parent_doc_type': None, - 'parentfield': None, - 'parenttype': None, - 'report_script': '', - 'server_script': None, - 'sort_by': '`tabSerial No`.`name`', - 'sort_order': 'DESC', - 'standard': 'Yes' - } -] \ No newline at end of file diff --git a/event_updates/search_criteria/task_open/__init__.py b/event_updates/search_criteria/task_open/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/event_updates/search_criteria/task_open/task_open.txt b/event_updates/search_criteria/task_open/task_open.txt deleted file mode 100644 index 47e8dfcfe2..0000000000 --- a/event_updates/search_criteria/task_open/task_open.txt +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - 'add_col': None, - 'add_cond': "`tabTicket`.status='Open'", - 'add_tab': None, - 'columns': 'Ticket\x01ID,Ticket\x01Subject,Ticket\x01Priority,Ticket\x01Raised By,Ticket\x01Allocated To', - 'creation': '2010-08-08 17:09:32', - 'criteria_name': 'Task-Open', - 'custom_query': '', - 'description': None, - 'dis_filters': None, - 'disabled': None, - 'doc_type': 'Ticket', - 'docstatus': 0, - 'doctype': 'Search Criteria', - 'filters': "{'Ticket\x01Priority':''}", - 'graph_series': None, - 'graph_values': None, - 'group_by': None, - 'idx': None, - 'modified': '2010-07-16 13:03:49', - 'modified_by': 'Administrator', - 'module': 'Event Updates', - 'name': 'task-open', - 'owner': 'Administrator', - 'page_len': 50, - 'parent': None, - 'parent_doc_type': None, - 'parentfield': None, - 'parenttype': None, - 'report_script': '', - 'server_script': None, - 'sort_by': '`tabTicket`.`name`', - 'sort_order': 'DESC', - 'standard': 'Yes' - } -] \ No newline at end of file diff --git a/my_company/Module Def/My Company/My Company.txt b/my_company/Module Def/My Company/My Company.txt deleted file mode 100644 index 52b80fbdad..0000000000 --- a/my_company/Module Def/My Company/My Company.txt +++ /dev/null @@ -1,127 +0,0 @@ -[ - { - '_last_update': None, - 'creation': '2010-11-30 22:41:39', - 'disabled': 'No', - 'docstatus': 0, - 'doctype': 'Module Def', - 'doctype_list': None, - 'file_list': None, - 'idx': None, - 'is_hidden': 'No', - 'last_updated_date': '2010-12-01 17:37:00', - 'modified': '2010-12-13 11:50:27', - 'modified_by': 'Administrator', - 'module_desc': None, - 'module_icon': 'chart_organisation.png', - 'module_label': 'Members', - 'module_name': 'My Company', - 'module_page': 'My Company', - 'module_seq': 2, - 'name': 'My Company', - 'owner': 'Administrator', - 'parent': None, - 'parentfield': None, - 'parenttype': None, - 'trash_reason': None, - 'widget_code': None - }, - { - 'click_function': None, - 'creation': '2011-03-24 15:04:46', - 'description': None, - 'display_name': None, - 'doc_name': 'Forms', - 'doc_type': 'Separator', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 1, - 'modified': '2011-03-24 15:04:46', - 'modified_by': 'Administrator', - 'name': '000003090', - 'owner': 'Administrator', - 'parent': 'My Company', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2010-12-01 17:37:40', - 'description': None, - 'display_name': 'Social Badge', - 'doc_name': 'Social Badge', - 'doc_type': 'Forms', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 2, - 'modified': '2011-03-24 15:04:46', - 'modified_by': 'Administrator', - 'name': 'MDI00279', - 'owner': 'Administrator', - 'parent': 'My Company', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-03-24 15:04:46', - 'description': None, - 'display_name': None, - 'doc_name': 'Pages', - 'doc_type': 'Separator', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 3, - 'modified': '2011-03-24 15:04:46', - 'modified_by': 'Administrator', - 'name': '000003091', - 'owner': 'Administrator', - 'parent': 'My Company', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2010-12-01 17:37:40', - 'description': None, - 'display_name': 'My Company', - 'doc_name': 'My Company', - 'doc_type': 'Pages', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 4, - 'modified': '2011-03-24 15:04:46', - 'modified_by': 'Administrator', - 'name': 'MDI00281', - 'owner': 'Administrator', - 'parent': 'My Company', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'creation': '2010-12-13 11:49:53', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 1, - 'modified': '2010-12-13 11:50:27', - 'modified_by': 'Administrator', - 'name': 'MDR00075', - 'owner': 'Administrator', - 'parent': 'My Company', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'All' - } -] \ No newline at end of file diff --git a/my_company/__init__.py b/my_company/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/my_company/doctype/__init__.py b/my_company/doctype/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/my_company/doctype/company_control/__init__.py b/my_company/doctype/company_control/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/my_company/doctype/company_control/company_control.py b/my_company/doctype/company_control/company_control.py deleted file mode 100644 index cab8e7c17e..0000000000 --- a/my_company/doctype/company_control/company_control.py +++ /dev/null @@ -1,90 +0,0 @@ -# Please edit this list and import only required elements -import webnotes - -from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add -from webnotes.model import db_exists -from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType -from webnotes.model.doclist import getlist, copy_doclist -from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax -from webnotes import session, form, is_testing, msgprint, errprint - -set = webnotes.conn.set -sql = webnotes.conn.sql -get_value = webnotes.conn.get_value -in_transaction = webnotes.conn.in_transaction -convert_to_lists = webnotes.conn.convert_to_lists - -# ----------------------------------------------------------------------------------------- - - -class DocType: - def __init__(self,d,dl): - self.doc, self.doclist = d,dl - - # All roles of Role Master - def get_all_roles(self): - r_list=sql("select name from `tabRole` where name not in ('All','Guest','Administrator','Customer','Supplier') and docstatus != 2") - if r_list[0][0]: - r_list = [x[0] for x in r_list] - return r_list - - # Get all permissions for given role - def get_permission(self,role): - perm = sql("select distinct t1.`parent`, t1.`read`, t1.`write`, t1.`create`, t1.`submit`,t1.`cancel`,t1.`amend` from `tabDocPerm` t1, `tabDocType` t2 where t1.`role` ='%s' and t1.docstatus !=2 and ifnull(t1.permlevel, 0) = 0 and t1.`read` = 1 and t2.module != 'Recycle Bin' and t1.parent=t2.name " % role) - return perm or '' - - # Get roles for given user - def get_user_roles(self,usr): - r_list=sql("select role from `tabUserRole` where parent=%s and role not in ('All','Guest')",usr) - if r_list: - return [r[0] for r in r_list] - else: - return '' - - # Update roles of given user - def update_roles(self,arg): - arg = eval(arg) - sql("delete from `tabUserRole` where parenttype='Profile' and parent ='%s'" % (cstr(arg['usr']))) - role_list = arg['role_list'].split(',') - for r in role_list: - pr=Document('UserRole') - pr.parent = arg['usr'] - pr.parenttype = 'Profile' - pr.role = r - pr.parentfield = 'userroles' - pr.save(1) - sql("delete from __SessionCache where user=%s", cstr(arg['usr'])) - - # Save profile - def save_profile(self,arg): - arg = eval(arg) - p = Document('Profile', session['user']) - for k in arg: - p.fields[k] = arg[k] - p.save() - - def update_profile_image(self, fid, fname): - sql("update tabProfile set file_list = '%s,%s' where name='%s'" % (fname, fid, session['user'])) - - - def get_login_url(self): - return session['data']['login_from'] - - def get_user_info(self): - - usr = sql("select count(name) from tabProfile where docstatus != 2 and name not in ('Guest','Administrator')") - usr = usr and usr[0][0] or 0 - - ol = sql("select count(distinct t1.name) from tabProfile t1, tabSessions t2 where t1.name = t2.user and t1.name not in('Guest','Administrator') and TIMESTAMPDIFF(HOUR,t2.lastupdate,NOW()) <= 1 and t1.docstatus != 2 and t1.enabled=1") - ol = ol and ol[0][0] or 0 - - ac = sql("select count(name) from tabProfile where enabled=1 and docstatus != 2 and name not in ('Guest', 'Administrator')") - ac = ac and ac[0][0] or 0 - - inac = sql("select count(name) from tabProfile where (enabled=0 or enabled is null or enabled = '') and docstatus != 2 and name not in ('Guest','Administrator')") - inac = inac and inac[0][0] or 0 - - return usr, ol, ac, inac - - def get_sm_count(self) : - return sql("select count(t1.parent) from tabUserRole t1, tabProfile t2 where t1.role='System Manager' and t1.parent = t2.name and t2.enabled=1")[0][0] or 0 diff --git a/my_company/doctype/company_control/company_control.txt b/my_company/doctype/company_control/company_control.txt deleted file mode 100644 index 43a62cced5..0000000000 --- a/my_company/doctype/company_control/company_control.txt +++ /dev/null @@ -1 +0,0 @@ -[{'section_style': 'Simple', 'is_transaction_doc': None, 'creation': '2010-11-30 22:41:39', 'search_fields': None, 'module': 'My Company', 'doctype': 'DocType', 'change_log': None, 'print_outline': '', 'owner': 'Administrator', 'in_dialog': None, 'in_create': None, 'read_only': None, 'allow_email': None, 'dt_template': None, 'hide_heading': None, 'issingle': 1, 'allow_rename': None, 'smallicon': '', 'allow_attach': None, 'show_in_menu': None, 'max_attachments': None, 'version': 43, 'menu_index': None, 'docstatus': 0, 'allow_copy': None, 'istable': None, 'description': None, 'parent': None, 'server_code': None, 'allow_trash': None, 'allow_print': None, 'autoname': None, 'client_script_core': '', 'client_string': None, 'use_template': None, 'modified_by': 'Administrator', 'document_type': '', 'name': 'Company Control', 'idx': None, 'hide_toolbar': None, 'colour': 'White:FFF', 'client_script': None, 'modified': '2010-11-17 16:25:34', 'server_code_error': ' ', 'name_case': '', 'parenttype': None, 'read_only_onload': None, 'server_code_core': None, 'server_code_compiled': None, 'parent_node': None, 'parentfield': None}] \ No newline at end of file diff --git a/my_company/page/__init__.py b/my_company/page/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/my_company/page/my_company/__init__.py b/my_company/page/my_company/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/my_company/page/my_company/my_company.comp.js b/my_company/page/my_company/my_company.comp.js deleted file mode 100644 index ca87c0703c..0000000000 --- a/my_company/page/my_company/my_company.comp.js +++ /dev/null @@ -1,118 +0,0 @@ - -pscript['onload_My Company']=function(){var wrapper=page_body.pages['My Company'];wrapper.head=new PageHeader(wrapper,'People');wrapper.body=$a(wrapper,'div','',{marginRight:'11px',marginTop:'11px'});wrapper.message=$a(wrapper.body,'div');wrapper.tab=make_table(wrapper.body,1,2,'100%',['25%','75%']);$y(wrapper.tab,{tableLayout:'fixed'}) -pscript.myc_make_toolbar(wrapper);pscript.myc_make_list(wrapper);if(pscript.is_erpnext_saas){pscript.myc_show_erpnext_message();}} -pscript.myc_make_toolbar=function(wrapper){if(has_common(user_roles,['System Manager','Administrator'])){wrapper.head.add_button('Add User',pscript.myc_add_user)}} -pscript.myc_show_erpnext_message=function(){var callback=function(r,rt){if(r.exc){msgprint(r.exc);return;} -$a(wrapper.message,'div','help_box','','You have '+r.message.enabled -+' users enabled out of '+r.message.max_user -+'. Go to Account Settings to increase the number of users');} -$c_page('my_company','my_company','get_max_users','',callback)} -pscript.myc_add_user=function(){var d=new wn.widgets.Dialog({title:'Add User',width:400,fields:[{fieldtype:'Data',fieldname:'user',reqd:1,label:'Email Id of the user to add'},{fieldtype:'Button',label:'Add',fieldname:'add'}]});d.make();d.fields_dict.add.input.onclick=function(){v=d.get_values();if(v){d.fields_dict.add.input.set_working();$c_page('my_company','my_company','add_user',v,function(r,rt){if(r.exc){msgprint(r.exc);return;} -else{d.hide();pscript.myc_refresh();}})}} -d.show();} -pscript.myc_refresh=function(){page_body.pages['My Company'].member_list.lst.run();} -pscript.myc_make_list=function(wrapper){wrapper.member_list=new MemberList(wrapper)} -pscript.get_fullname=function(uid){if(uid=='Administrator')return uid;return page_body.pages['My Company'].member_list.member_items[uid].fullname;} -MemberList=function(parent){var me=this;this.profiles={};this.member_items={};this.role_objects={};this.cur_profile=null;this.list_wrapper=$a($td(parent.tab,0,0),'div','',{marginLeft:'11px'});this.profile_wrapper=$a($td(parent.tab,0,1),'div','layout_wrapper',{marginLeft:'0px',height:'100%'});this.no_user_selected=$a(this.profile_wrapper,'div','help_box',null,'Please select a user to view profile');this.make_search();if(pscript.online_users){this.make_list();}else{$c_page('event_updates','event_updates','get_online_users','',function(r,rt){pscript.online_users=r.message;me.make_list();})}} -MemberList.prototype.make_search=function(){var me=this;this.search_area=$a(this.list_wrapper,'div','',{textAlign:'center',padding:'8px'});this.search_inp=$a(this.search_area,'input','',{fontSize:'14px',width:'80%'});this.search_inp.set_empty=function(){this.value='Search';$fg(this,'#888');} -this.search_inp.onfocus=function(){$fg(this,'#000');if(this.value=='Search')this.value='';} -this.search_inp.onchange=function(){if(!this.value)this.set_empty();} -this.search_inp.set_empty();} -MemberList.prototype.make_list=function(){var me=this;this.lst_area=$a(this.list_wrapper,'div');this.lst=new Listing('Profiles',1);this.lst.colwidths=['100%'];this.lst.opts.cell_style={padding:'0px'} -this.lst.get_query=function(){var c1='';if(me.search_inp.value&&me.search_inp.value!='Search'){var c1=repl(' AND (first_name LIKE "%(txt)s" OR last_name LIKE "%(txt)s" OR name LIKE "%(txt)s")',{txt:'%'+me.search_inp.value+'%'});} -this.query=repl("SELECT distinct ifnull(name,''), ifnull(concat_ws(' ', first_name, last_name),''), ifnull(messanger_status,''), ifnull(gender,''), ifnull(file_list,''), 0, enabled from tabProfile where docstatus != 2 AND name not in ('Guest','Administrator') %(cond)s ORDER BY name asc",{cond:c1});} -this.lst.make(this.lst_area);this.lst.show_cell=function(cell,ri,ci,d){me.member_items[d[ri][0]]=new MemberItem(cell,d[ri],me);} -this.lst.run();} -MemberList.prototype.show_profile=function(uid,member_item){$dh(this.no_user_selected);if(!this.profiles[uid]){if(!member_item)member_item=this.member_items[uid];this.profiles[uid]=new MemberProfile(this.profile_wrapper,uid,member_item);} -if(this.cur_profile) -this.cur_profile.hide();this.profiles[uid].show();this.cur_profile=this.profiles[uid];} -MemberItem=function(parent,det,mlist){var me=this;this.det=det;this.wrapper=$a(parent,'div');this.enabled=det[6];this.tab=make_table(this.wrapper,1,2,'100%',['20%','70%'],{padding:'4px',overflow:'hidden'});$y(this.tab,{tableLayout:'fixed',borderCollapse:'collapse'}) -this.is_online=function(){for(var i=0;i'):'';this.bio_area.innerHTML+=this.profile.bio?this.profile.bio:'No bio';new MemberConversation(this.wrapper,this.profile.name,this.fullname);} -this.refresh_enable_disable=function(){this.profile=locals['Profile'][this.uid] -if(!this.profile.enabled){$fg(this.name_area,'#999');}else{$fg(this.name_area,'#000');} -this.member_item.enabled=this.profile.enabled;this.member_item.refresh_name_link();this.status_span.innerHTML=this.profile.enabled?'Enabled':'Disabled';if(has_common(['Administrator','System Manager'],user_roles)){this.set_enable_button();}} -this.load=function(){if(locals['Profile']&&locals['Profile'][uid]){this.render();return;} -var callback=function(r,rt){$dh(me.member_item.working_img);$ds(me.wrapper);me.loading=0;me.render();} -$ds(this.member_item.working_img);$dh(this.wrapper);this.loading=1;$c('webnotes.widgets.form.getdoc',{'name':this.uid,'doctype':'Profile','user':user},callback);} -this.show=function(){if(!this.loading)$ds(this.wrapper);this.member_item.select();} -this.hide=function(){$dh(this.wrapper);this.member_item.deselect();} -this.make_message_list=function(){} -this.make();this.load();} -MemberConversation=function(parent,uid,fullname){var me=this;this.wrapper=$a(parent,'div','my-company-conversation');this.fullname=fullname;this.make=function(){if(user!=uid){this.make_input();} -this.make_list();if(user==uid){$c_page('my_company','my_company','set_read_all_messages','',function(r,rt){});}} -this.make_input=function(){this.input_wrapper=$a(this.wrapper,'div','my-company-input-wrapper');var tab=make_table(this.input_wrapper,1,2,'100%',['64%','36%'],{padding:'3px'}) -this.input=$a($td(tab,0,0),'textarea');$(this.input).add_default_text('Send a message to '+fullname);var div=$a(this.input_wrapper,'div');this.post=$btn(div,'Post'.bold(),function(){me.post_message();},{margin:'0px 13px 0px 3px'}) -this.post.set_disabled();this.input.onkeyup=this.input.onchange=function(){if(this.value){me.post.set_enabled();}else{me.post.set_disabled();}} -this.notify_check=$a_input(div,'checkbox',null);$a(div,'span','',{marginLeft:'3px'},'Notify '+fullname+' by email')} -this.post_message=function(){if(me.input.value==$(me.input).attr('default_text')){msgprint('Please write a message first!');return;} -this.post.set_working();$c_page('my_company','my_company','post_comment',{uid:uid,comment:$(me.input).val(),notify:me.notify_check.checked?1:0},function(r,rt){$(me.input).val("").blur();me.post.done_working();if(r.exc){msgprint(r.exc);return;} -me.notify_check.checked=false;me.refresh();})} -this.make_list=function(){this.lst_area=$a(this.wrapper,'div','my-company-conversation',{padding:'7px 13px'});if(user==uid){this.my_messages_box=$a(this.lst_area,'div','my-company-conversation-head',{marginBottom:'7px'},'Messages by everyone to me
To send a message, click on the user on the left')} -this.lst=new wn.widgets.Listing({parent:this.lst_area,no_result_message:(user==uid?'No messages by anyone yet':'No messages yet. To start a conversation post a new message'),get_query:function(){if(uid==user){return repl("SELECT comment, owner, comment_docname, creation, docstatus "+"FROM `tabComment Widget Record` "+"WHERE comment_doctype='My Company' "+"AND comment_docname='%(user)s' "+"ORDER BY creation DESC ",{user:user});}else{return repl("SELECT comment, owner, comment_docname, creation, docstatus "+"FROM `tabComment Widget Record` "+"WHERE comment_doctype='My Company' "+"AND ((owner='%(user)s' AND comment_docname='%(uid)s') "+"OR (owner='%(uid)s' AND comment_docname='%(user)s')) "+"ORDER BY creation DESC ",{uid:uid,user:user});}},render_row:function(parent,data){new MemberCoversationComment(parent,data,me);},}) -this.refresh();} -this.refresh=function(){me.lst.run()} -this.make();} -MemberCoversationComment=function(cell,det,conv){var me=this;this.det=det;this.wrapper=$a(cell,'div','my-company-comment-wrapper');this.comment=$a(this.wrapper,'div','my-company-comment');this.user=$a(this.comment,'span','link_type',{fontWeight:'bold'},pscript.get_fullname(det[1]));this.user.onclick=function(){page_body.pages['My Company'].member_list.show_profile(me.det[1]);} -var st=(!det[4]?{fontWeight:'bold'}:null);this.msg=$a(this.comment,'span','social',st,': '+det[0]);if(det[1]==user){$y(this.wrapper,{backgroundColor:'#D9D9F3'});} -this.timestamp=$a(this.wrapper,'div','my-company-timestamp','',comment_when(det[3]));} -pscript.all_roles=null;RoleObj=function(profile_id){this.roles_dict={};this.profile_id=profile_id;this.setup_done=0;var d=new Dialog(500,500,'Assign Roles');d.make_body([['HTML','roles']]);this.dialog=d;this.make_role_body(profile_id);this.make_help_body();this.body.innerHTML='Loading... ' -var me=this;d.onshow=function(){if(!me.setup_done) -me.get_all_roles(me.profile_id);}} -RoleObj.prototype.make_role_body=function(id){var me=this;var d=this.dialog;this.role_div=$a(d.widgets['roles'],'div');this.head=$a(this.role_div,'div','',{marginLeft:'4px',marginBottom:'4px',fontWeight:'bold'});this.body=$a(this.role_div,'div');this.footer=$a(this.role_div,'div');this.update_btn=$btn(this.footer,'Update',function(){me.update_roles(me.profile_id);},{marginRight:'4px'},'',1);} -RoleObj.prototype.make_help_body=function(){var me=this;var d=this.dialog;this.help_div=$a(d.widgets['roles'],'div');var head=$a(this.help_div,'div');this.help_div.head=head;var body=$a(this.help_div,'div');this.help_div.body=body;var tail=$a(this.help_div,'div');this.help_div.tail=tail;var back_btn=$btn(tail,'Back',function(){$(me.role_div).slideToggle('medium');$(me.help_div).slideToggle('medium');});this.help_div.back_btn=back_btn;$dh(this.help_div);} -RoleObj.prototype.get_all_roles=function(id){if(pscript.all_roles){this.make_roles(id);return;} -var me=this;var callback=function(r,rt){pscript.all_roles=r.message;me.make_roles(id);} -$c_obj('Company Control','get_all_roles','',callback);} -RoleObj.prototype.make_roles=function(id){var me=this;var list=pscript.all_roles;me.setup_done=1;me.body.innerHTML='';var tbl=make_table(me.body,cint(list.length/2)+1,4,'100%',['5%','45%','5%','45%'],{padding:'4px'});var in_right=0;var ridx=0;for(i=0;i1){var c=confirm("You have unchecked the System Manager role.\nYou will lose administrative rights and will not be able to set roles.\n\nDo you want to continue anyway?");if(!c)return;} -else{var c="There should be atleast one user with System Manager role.";me.roles_dict['System Manager'].checked=1;}} -me.set_roles(id);} -$c_obj('Company Control','get_sm_count','',callback);} -else{me.set_roles(id);}} -RoleObj.prototype.set_roles=function(id){var me=this;var role_list=[];for(d in me.roles_dict){if(me.roles_dict[d].checked){role_list.push(d);}} -var callback=function(r,rt){me.update_btn.done_working();me.dialog.hide();} -var arg={'usr':id,'role_list':role_list};me.update_btn.set_working();$c_obj('Company Control','update_roles',docstring(arg),callback);} -RoleObj.prototype.get_permissions=function(role){var me=this;var callback=function(r,rt){$(me.help_div).slideToggle('medium');$(me.role_div).slideToggle('medium');me.set_permissions(r.message,role);} -$c_obj('Company Control','get_permission',role,callback);} -RoleObj.prototype.set_permissions=function(perm,role){var me=this;me.help_div.body.innerHTML='';if(perm){me.help_div.head.innerHTML='Permissions for '+role+':

';perm_tbl=make_table(me.help_div.body,cint(perm.length)+2,7,'100%',['30%','10%','10%','10%','10%','10%','10%'],{padding:'4px'});var head_lst=['Document','Read','Write','Create','Submit','Cancel','Amend'];for(var i=0;i<(head_lst.length-1);i++){$td(perm_tbl,0,i).innerHTML=""+head_lst[i]+"";} -var accept_img1='images/icons/accept.gif';var cancel_img1='images/icons/cancel.gif';for(i=1;i
';} \ No newline at end of file diff --git a/my_company/page/my_company/my_company.css b/my_company/page/my_company/my_company.css deleted file mode 100644 index d2d9a668f4..0000000000 --- a/my_company/page/my_company/my_company.css +++ /dev/null @@ -1,82 +0,0 @@ -/* item */ - -div.my-company-member-item-selected { - background-color: #BBC; -} - - - -/* profile */ -.my-company-name-head { - font-size: 14px; - font-weight: bold; - margin-bottom: 7px; -} - -.my-company-email { - margin-bottom: 7px; - color: #888; -} - -.my-company-online-status { - font-weight: bold; - margin-left: 7px; -} - -.my-company-status { - margin-bottom: 7px; - color: #888; - font-style: italics; -} - -.my-company-bio { - margin-bottom: 7px; -} - -.my-company-toolbar { - margin: 7px 0px; -} - -/* conversation */ - -.my-company-input-wrapper { - color: #555; - padding: 13px; -} - -.my-company-input-wrapper td { - vertical-align: bottom; -} - -.my-company-input-wrapper textarea { - height: 3em; - font-size: 14px; - width: 100%; - margin: 7px 0px 3px 0px; -} - -.my-company-input-wrapper button { - margin: 0px; -} - -.my-company-conversation { - border-top: 1px solid #DDD; -} -.my-company-comment-wrapper { - padding: 7px; - border-bottom: 1px solid #DDD; -} - -.my-company-timestamp { - color: #888; - font-size: 11px; - margin: 3px; -} - -.my-company-conversation-head { - padding: 3px; - background-color: #DEDEDE; - color: #555; - font-size: 14px; - text-align: center; -} \ No newline at end of file diff --git a/my_company/page/my_company/my_company.html b/my_company/page/my_company/my_company.html deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/my_company/page/my_company/my_company.js b/my_company/page/my_company/my_company.js deleted file mode 100644 index ea436041c4..0000000000 --- a/my_company/page/my_company/my_company.js +++ /dev/null @@ -1,842 +0,0 @@ -pscript['onload_My Company'] = function() { - var wrapper = page_body.pages['My Company']; - - // body - wrapper.head = new PageHeader(wrapper, 'People'); - wrapper.body = $a(wrapper, 'div', '', {marginRight:'11px', marginTop:'11px'}); - - wrapper.message = $a(wrapper.body, 'div'); - wrapper.tab = make_table(wrapper.body, 1, 2, '100%', ['25%','75%']); - - $y(wrapper.tab, {tableLayout:'fixed'}) - - pscript.myc_make_toolbar(wrapper); - pscript.myc_make_list(wrapper); - - if(pscript.is_erpnext_saas) { - pscript.myc_show_erpnext_message(); - } -} - -pscript.myc_make_toolbar = function(wrapper) { - if(has_common(user_roles, ['System Manager', 'Administrator'])) { - wrapper.head.add_button('Add User', pscript.myc_add_user) - } -} - -// -// Only for erpnext product - show max users allowed -// -pscript.myc_show_erpnext_message = function() { - var callback = function(r, rt) { - if(r.exc) {msgprint(r.exc); return;} - $a(wrapper.message, 'div', 'help_box', '', 'You have ' + r.message.enabled - + ' users enabled out of ' + r.message.max_user - + '. Go to Account Settings to increase the number of users'); - } - $c_page('my_company', 'my_company', 'get_max_users', '', callback) -} - -// -// Add user dialog and server call -// -pscript.myc_add_user = function() { - var d = new wn.widgets.Dialog({ - title: 'Add User', - width: 400, - fields: [ - {fieldtype:'Data', fieldname:'user',reqd:1,label:'Email Id of the user to add'}, - {fieldtype:'Button', label:'Add', fieldname:'add'} - ] - }); - d.make(); - d.fields_dict.add.input.onclick = function() { - v = d.get_values(); - if(v) { - d.fields_dict.add.input.set_working(); - $c_page('my_company', 'my_company', 'add_user', v, function(r,rt) { - if(r.exc) { msgprint(r.exc); return; } - else { - d.hide(); - pscript.myc_refresh(); - } - }) - } - } - d.show(); -} - -pscript.myc_refresh = function() { - page_body.pages['My Company'].member_list.lst.run(); -} - -pscript.myc_make_list= function(wrapper) { - wrapper.member_list = new MemberList(wrapper) -} - -pscript.get_fullname=function(uid) { - if(uid=='Administrator') return uid; - return page_body.pages['My Company'].member_list.member_items[uid].fullname; -} - - - -//============================================= - -MemberList = function(parent) { - var me = this; - this.profiles = {}; - this.member_items = {}; - this.role_objects = {}; - this.cur_profile = null; - - this.list_wrapper = $a($td(parent.tab,0,0), 'div', '', {marginLeft:'11px'}); - this.profile_wrapper = $a($td(parent.tab,0,1), 'div', 'layout_wrapper', {marginLeft:'0px', height:'100%'}); - - this.no_user_selected = $a(this.profile_wrapper, 'div', 'help_box', null, 'Please select a user to view profile'); - - this.make_search(); - if(pscript.online_users) { - this.make_list(); - } else { - $c_page('event_updates', 'event_updates', 'get_online_users', '', function(r,rt) { - pscript.online_users = r.message; - me.make_list(); - }) - } -} - -// ---------------------- - -MemberList.prototype.make_search = function() { - var me = this; - this.search_area = $a(this.list_wrapper, 'div', '', {textAlign:'center', padding:'8px'}); - this.search_inp = $a(this.search_area, 'input', '', {fontSize:'14px', width:'80%'}); - this.search_inp.set_empty = function() { - this.value = 'Search'; $fg(this,'#888'); - } - this.search_inp.onfocus = function() { - $fg(this,'#000'); - if(this.value=='Search')this.value = ''; - } - this.search_inp.onchange = function() { - if(!this.value) this.set_empty(); - } - this.search_inp.set_empty(); -} - -// ---------------------- - -MemberList.prototype.make_list = function() { - var me = this; - this.lst_area = $a(this.list_wrapper, 'div'); - this.lst = new Listing('Profiles',1); - this.lst.colwidths = ['100%']; - this.lst.opts.cell_style = {padding:'0px'} - this.lst.get_query = function() { - var c1 = ''; - if(me.search_inp.value && me.search_inp.value != 'Search') { - var c1 = repl(' AND (first_name LIKE "%(txt)s" OR last_name LIKE "%(txt)s" OR name LIKE "%(txt)s")', {txt:'%' + me.search_inp.value + '%'}); - } - - this.query = repl("SELECT distinct ifnull(name,''), ifnull(concat_ws(' ', first_name, last_name),''), ifnull(messanger_status,''), ifnull(gender,''), ifnull(file_list,''), 0, enabled from tabProfile where docstatus != 2 AND name not in ('Guest','Administrator') %(cond)s ORDER BY name asc",{cond:c1}); - } - this.lst.make(this.lst_area); - this.lst.show_cell= function(cell, ri, ci, d) { - me.member_items[d[ri][0]] = new MemberItem(cell, d[ri], me); - } - this.lst.run(); -} - - -/* -Create / show profile -*/ -MemberList.prototype.show_profile = function(uid, member_item) { - $dh(this.no_user_selected); - - // if not exists, create - if(!this.profiles[uid]) { - if(!member_item) member_item = this.member_items[uid]; - this.profiles[uid] = new MemberProfile(this.profile_wrapper, uid, member_item); - } - - // hide current - if(this.cur_profile) - this.cur_profile.hide(); - - // show this - this.profiles[uid].show(); - this.cur_profile = this.profiles[uid]; -} - - -// Member Item -// List item of all profiles -// on the left hand sidebar of the page - -MemberItem = function(parent, det, mlist) { - var me = this; - this.det = det; - this.wrapper = $a(parent, 'div'); - this.enabled = det[6]; - - this.tab = make_table(this.wrapper, 1,2,'100%', ['20%', '70%'], {padding:'4px', overflow:'hidden'}); - $y(this.tab, {tableLayout:'fixed', borderCollapse:'collapse'}) - - this.is_online = function() { - for(var i=0;i') : ''; - this.bio_area.innerHTML += this.profile.bio ? this.profile.bio : 'No bio'; - - new MemberConversation(this.wrapper, this.profile.name, this.fullname); - } - - // refresh enable / disable - this.refresh_enable_disable = function() { - this.profile = locals['Profile'][this.uid] - - if(!this.profile.enabled) { - $fg(this.name_area,'#999'); - } else { - $fg(this.name_area,'#000'); - } - - this.member_item.enabled = this.profile.enabled; - this.member_item.refresh_name_link(); - - this.status_span.innerHTML = this.profile.enabled ? 'Enabled' : 'Disabled'; - - // set styles and buttons - if(has_common(['Administrator','System Manager'],user_roles)) { - this.set_enable_button(); - } - } - - // Load user profile (if not loaded) - this.load = function() { - if(locals['Profile'] && locals['Profile'][uid]) { - this.render(); - return; - } - var callback = function(r,rt) { - $dh(me.member_item.working_img); - $ds(me.wrapper); - me.loading = 0; - me.render(); - } - $ds(this.member_item.working_img); - $dh(this.wrapper); - this.loading = 1; - $c('webnotes.widgets.form.getdoc', {'name':this.uid, 'doctype':'Profile', 'user':user}, callback); // onload - } - - // show / hide - this.show = function() { - if(!this.loading)$ds(this.wrapper); - - // select profile - this.member_item.select(); - } - this.hide = function() { - $dh(this.wrapper); - - // select profile - this.member_item.deselect(); - } - - this.make_message_list = function() { - - } - - this.make(); - this.load(); -} - - - - -// Member conversation -// Between the current user and the displayed profile -// or if same, then the conversation with all other -// profiles -MemberConversation = function(parent, uid, fullname) { - var me = this; - this.wrapper = $a(parent, 'div', 'my-company-conversation'); - this.fullname = fullname; - this.make = function() { - if(user!=uid) { - this.make_input(); - } - this.make_list(); - - // set all messages - // as "read" (docstatus = 0) - if(user==uid) { - $c_page('my_company', 'my_company', 'set_read_all_messages', '', function(r,rt) { }); - } - } - - this.make_input = function() { - this.input_wrapper = $a(this.wrapper, 'div', 'my-company-input-wrapper'); - var tab = make_table(this.input_wrapper, 1, 2, '100%', ['64%','36%'], {padding: '3px'}) - this.input = $a($td(tab,0,0), 'textarea'); - $(this.input).add_default_text( 'Send a message to ' + fullname); - - // button - var div = $a(this.input_wrapper, 'div'); - this.post = $btn(div, 'Post'.bold(), function() { me.post_message(); }, {margin:'0px 13px 0px 3px'}) - this.post.set_disabled(); - this.input.onkeyup = this.input.onchange = function() { - if(this.value) { - me.post.set_enabled(); - } else { - me.post.set_disabled(); - } - } - - // notification check - this.notify_check = $a_input(div, 'checkbox', null); - $a(div, 'span', '', {marginLeft:'3px'}, 'Notify ' + fullname + ' by email') - } - - this.post_message = function() { - if(me.input.value==$(me.input).attr('default_text')) { - msgprint('Please write a message first!'); return; - } - this.post.set_working(); - $c_page('my_company', 'my_company', 'post_comment', { - uid: uid, - comment: $(me.input).val(), - notify: me.notify_check.checked ? 1 : 0 - }, function(r,rt) { - $(me.input).val("").blur(); - me.post.done_working(); - if(r.exc) { msgprint(r.exc); return; } - me.notify_check.checked = false; - me.refresh(); - }) - } - - this.make_list = function() { - this.lst_area = $a(this.wrapper, 'div', 'my-company-conversation', {padding:'7px 13px'}); - - if(user==uid) { - this.my_messages_box = $a(this.lst_area, 'div', 'my-company-conversation-head', {marginBottom:'7px'}, 'Messages by everyone to me
To send a message, click on the user on the left') - } - - this.lst = new wn.widgets.Listing({ - parent: this.lst_area, - no_result_message: (user==uid - ? 'No messages by anyone yet' - : 'No messages yet. To start a conversation post a new message'), - - get_query: function() { - if(uid==user) { - return repl("SELECT comment, owner, comment_docname, creation, docstatus " + - "FROM `tabComment Widget Record` "+ - "WHERE comment_doctype='My Company' " + - "AND comment_docname='%(user)s' " + - "ORDER BY creation DESC ", {user:user}); - - } else { - return repl("SELECT comment, owner, comment_docname, creation, docstatus " + - "FROM `tabComment Widget Record` "+ - "WHERE comment_doctype='My Company' " + - "AND ((owner='%(user)s' AND comment_docname='%(uid)s') " + - "OR (owner='%(uid)s' AND comment_docname='%(user)s')) " + - "ORDER BY creation DESC ", {uid:uid, user:user}); - - } - }, - render_row: function(parent, data) { - new MemberCoversationComment(parent, data, me); - }, - - }) - this.refresh(); - } - - this.refresh = function() { - me.lst.run() - } - - this.make(); -} - -MemberCoversationComment = function(cell, det, conv) { - var me = this; - this.det = det; - this.wrapper = $a(cell, 'div', 'my-company-comment-wrapper'); - this.comment = $a(this.wrapper, 'div', 'my-company-comment'); - - this.user = $a(this.comment, 'span', 'link_type', {fontWeight:'bold'}, pscript.get_fullname(det[1])); - this.user.onclick = function() { - page_body.pages['My Company'].member_list.show_profile(me.det[1]); - } - - var st = (!det[4] ? {fontWeight: 'bold'} : null); - this.msg = $a(this.comment, 'span', 'social', st, ': ' + det[0]); - - if(det[1]==user) { - $y(this.wrapper, {backgroundColor: '#D9D9F3'}); - } - this.timestamp = $a(this.wrapper, 'div', 'my-company-timestamp', '', comment_when(det[3])); -} - - - - - - - -// ========================== Role object ===================================== - -pscript.all_roles = null; - -RoleObj = function(profile_id){ - this.roles_dict = {}; - this.profile_id = profile_id; - this.setup_done = 0; - - var d = new Dialog(500,500,'Assign Roles'); - d.make_body([ - ['HTML','roles'] - ]); - - this.dialog = d; - this.make_role_body(profile_id); - this.make_help_body(); - - this.body.innerHTML = 'Loading... ' - var me=this; - - d.onshow = function() { - if(!me.setup_done) - me.get_all_roles(me.profile_id); - } -} - -// make role body -RoleObj.prototype.make_role_body = function(id){ - var me = this; - var d = this.dialog; - this.role_div = $a(d.widgets['roles'],'div'); - - this.head = $a(this.role_div,'div','',{marginLeft:'4px', marginBottom:'4px',fontWeight:'bold'}); - this.body = $a(this.role_div,'div'); - this.footer = $a(this.role_div,'div'); - - this.update_btn = $btn(this.footer,'Update',function() { me.update_roles(me.profile_id); },{marginRight:'4px'},'',1); -} - -// make help body -RoleObj.prototype.make_help_body = function(){ - var me = this; - - var d = this.dialog; - this.help_div = $a(d.widgets['roles'],'div'); - - var head = $a(this.help_div,'div'); this.help_div.head = head; - var body = $a(this.help_div,'div'); this.help_div.body = body; - var tail = $a(this.help_div,'div'); this.help_div.tail = tail; - - var back_btn = $btn(tail,'Back', function() { - // back to assign roles - $(me.role_div).slideToggle('medium'); - $(me.help_div).slideToggle('medium'); - }); - this.help_div.back_btn = back_btn; - $dh(this.help_div); -} - -// get all roles -RoleObj.prototype.get_all_roles = function(id){ - if(pscript.all_roles) { - this.make_roles(id); - return; - } - - var me = this; - var callback = function(r,rt){ - pscript.all_roles = r.message; - me.make_roles(id); - } - $c_obj('Company Control','get_all_roles','',callback); -} - -// make roles -RoleObj.prototype.make_roles = function(id){ - var me = this; - var list = pscript.all_roles; - me.setup_done = 1; - me.body.innerHTML = ''; - - var tbl = make_table( me.body, cint(list.length / 2) + 1,4,'100%',['5%','45%','5%','45%'],{padding:'4px'}); - var in_right = 0; var ridx = 0; - - for(i=0;i 1){ - var c = confirm("You have unchecked the System Manager role.\nYou will lose administrative rights and will not be able to set roles.\n\nDo you want to continue anyway?"); - if(!c) return; - } - else{ - var c = "There should be atleast one user with System Manager role."; - me.roles_dict['System Manager'].checked = 1; - } - } - me.set_roles(id); - } - $c_obj('Company Control','get_sm_count','',callback); - } - else{ - me.set_roles(id); - } -} - -// set roles -RoleObj.prototype.set_roles = function(id){ - - var me = this; - var role_list = []; - - for(d in me.roles_dict){ - if(me.roles_dict[d].checked){ - role_list.push(d); - } - } - - var callback = function(r,rt){ - me.update_btn.done_working(); - me.dialog.hide(); - } - var arg = {'usr':id, 'role_list':role_list}; - me.update_btn.set_working(); - $c_obj('Company Control','update_roles',docstring(arg), callback); - -} - -// get permission -RoleObj.prototype.get_permissions = function(role){ - var me = this; - - var callback = function(r,rt){ - $(me.help_div).slideToggle('medium'); - $(me.role_div).slideToggle('medium'); - me.set_permissions(r.message, role); - } - $c_obj('Company Control','get_permission',role,callback); -} - - -// set permission -RoleObj.prototype.set_permissions = function(perm, role){ - var me = this; - me.help_div.body.innerHTML =''; - - if(perm){ - me.help_div.head.innerHTML = 'Permissions for ' + role + ':

'; - - perm_tbl = make_table(me.help_div.body,cint(perm.length)+2,7,'100%',['30%','10%','10%','10%','10%','10%','10%'],{padding:'4px'}); - - var head_lst = ['Document','Read','Write','Create','Submit','Cancel','Amend']; - - for(var i=0; i<(head_lst.length-1);i++){ - $td(perm_tbl,0,i).innerHTML= ""+head_lst[i]+""; - } - var accept_img1 = 'images/icons/accept.gif'; - var cancel_img1 = 'images/icons/cancel.gif'; - - for(i=1; i
'; -} diff --git a/my_company/page/my_company/my_company.py b/my_company/page/my_company/my_company.py deleted file mode 100644 index cbdb8fced8..0000000000 --- a/my_company/page/my_company/my_company.py +++ /dev/null @@ -1,130 +0,0 @@ -import webnotes - -from webnotes.utils import cint, load_json, cstr - -try: import json -except: import simplejson as json - -def get_account_settings_url(arg=''): - import server_tools.server_tools.gateway_utils - return server_tools.server_tools.gateway_utils.get_account_settings_url() - -# -# set max users -# -def get_max_users(arg=''): - from server_tools.server_tools.gateway_utils import get_max_users_gateway - return { - 'max_users': get_max_users_gateway(), - 'enabled': cint(webnotes.conn.sql("select count(*) from tabProfile where ifnull(enabled,0)=1 and name not in ('Administrator', 'Guest')")[0][0]) - } - -# -# enable profile in local -# -def enable_profile(arg=''): - webnotes.conn.sql("update tabProfile set enabled=1 where name=%s", arg) - return 1 - -# -# disable profile in local -# -def disable_profile(arg=''): - if arg=='Administrator': - return 'Cannot disable Administrator' - - webnotes.conn.sql("update tabProfile set enabled=0 where name=%s", arg) - return 0 - -# -# delete user -# -def delete_user(args): - args = json.loads(args) - webnotes.conn.sql("update tabProfile set enabled=0, docstatus=2 where name=%s", args['user']) - # erpnext-saas - if cint(webnotes.conn.get_value('Control Panel', None, 'sync_with_gateway')): - from server_tools.server_tools.gateway_utils import remove_user_gateway - remove_user_gateway(args['user']) - -# -# add user -# -def add_user(args): - args = json.loads(args) - add_profile(args['user']) - # erpnext-saas - if cint(webnotes.conn.get_value('Control Panel', None, 'sync_with_gateway')): - from server_tools.server_tools.gateway_utils import add_user_gateway - add_user_gateway(args['user']) - -# -# add profile record -# -def add_profile(email): - from webnotes.utils import validate_email_add - from webnotes.model.doc import Document - - sql = webnotes.conn.sql - - if not email: - email = webnotes.form_dict.get('user') - if not validate_email_add(email): - raise Exception - return 'Invalid Email Id' - - if sql("select name from tabProfile where name = %s", email): - # exists, enable it - sql("update tabProfile set enabled = 1, docstatus=0 where name = %s", email) - webnotes.msgprint('Profile exists, enabled it') - else: - # does not exist, create it! - pr = Document('Profile') - pr.name = email - pr.email = email - pr.enabled=1 - pr.user_type='System User' - pr.save(1) - -# -# post comment -# -def post_comment(arg): - arg = load_json(arg) - - from webnotes.model.doc import Document - d = Document('Comment Widget Record') - d.comment_doctype = 'My Company' - d.comment_docname = arg['uid'] # to - d.owner = webnotes.user.name - d.comment = arg['comment'] - d.save(1) - - if cint(arg['notify']): - fn = webnotes.conn.sql('select first_name, last_name from tabProfile where name=%s', webnotes.user.name)[0] - if fn[0] or f[1]: - fn = cstr(fn[0]) + (fn[0] and ' ' or '') + cstr(fn[1]) - else: - fn = webnotes.user.name - - from webnotes.utils.email_lib import sendmail - from settings.doctype.notification_control.notification_control import get_formatted_message - - message = '''A new comment has been posted on your page by %s: - - Comment: %s - - To answer, please login to your erpnext account! - ''' % (fn, arg['comment']) - - sendmail([arg['uid']], webnotes.user.name, get_formatted_message('New Comment', message), fn + ' has posted a new comment') - -# -# update read messages -# -def set_read_all_messages(arg=''): - webnotes.conn.sql("""UPDATE `tabComment Widget Record` - SET docstatus = 1 - WHERE comment_doctype = 'My Company' - AND comment_docname = %s - """, webnotes.user.name) diff --git a/my_company/page/my_company/my_company.txt b/my_company/page/my_company/my_company.txt deleted file mode 100644 index 4977ac9c63..0000000000 --- a/my_company/page/my_company/my_company.txt +++ /dev/null @@ -1 +0,0 @@ -[{'creation': '2010-06-29 12:40:20', 'module': 'My Company', 'doctype': 'Page', 'owner': 'Administrator', 'style': '', 'modified_by': 'Administrator', 'script': None, 'show_in_menu': 1, 'content': None, 'page_name': 'My Company', 'menu_index': None, 'docstatus': 0, 'parent': None, 'standard': 'Yes', 'icon': None, 'name': 'My Company', 'idx': None, 'static_content': None, 'modified': '2010-12-01 17:09:46', 'parenttype': None, 'parent_node': None, 'parentfield': None}, {'modified_by': 'Administrator', 'name': 'PR000143', 'parent': 'My Company', 'creation': '2010-06-29 16:40:26', 'modified': '2010-12-01 17:09:46', 'doctype': 'Page Role', 'idx': 1, 'parenttype': 'Page', 'role': 'Administrator', 'owner': 'Administrator', 'docstatus': 0, 'parentfield': 'roles'}, {'modified_by': 'Administrator', 'name': 'PR000153', 'parent': 'My Company', 'creation': '2010-08-06 20:18:55', 'modified': '2010-12-01 17:09:46', 'doctype': 'Page Role', 'idx': 2, 'parenttype': 'Page', 'role': 'All', 'owner': 'nabin@webnotestech.com', 'docstatus': 0, 'parentfield': 'roles'}] \ No newline at end of file From 13f61552dc53e8678b68542d8f837f2d03d92fb6 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 9 Jun 2011 17:32:32 +0530 Subject: [PATCH 2/7] patch to remove my_company and event_updates --- home/page/profile_settings/profile_settings.html | 0 patches/patch.py | 14 +++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 home/page/profile_settings/profile_settings.html diff --git a/home/page/profile_settings/profile_settings.html b/home/page/profile_settings/profile_settings.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/patches/patch.py b/patches/patch.py index 0ab691274e..9b9255b6cc 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -1,6 +1,6 @@ # REMEMBER to update this # ======================== -last_patch = 276 +last_patch = 277 #------------------------------------------- @@ -1097,3 +1097,15 @@ def execute(patch_no): for d in sn: delete_doc('Search Criteria', d[0]) reload_doc('crm', 'search_criteria', 'sales_personwise_transaction_summary') + elif patch_no == 277: + webnotes.model.delete_doc('DocType','HomePage Settings') + webnotes.model.delete_doc('DocType','Badge Settings') + sql("update tabDocType set module='Home' where module in ('Event Updates', 'My Company')") + sql("update tabPage set module='Home' where module in ('Event Updates', 'My Company')") + sql("update `tabSearch Criteria` set module='Home' where module in ('Event Updates', 'My Company')") + + + delete_pages = ('Chat User Gallery', 'Badge Info', 'Home', 'Website Setup', 'Test Page', 'Setup Masters', 'Service', 'Selling', 'Sales Reports', 'Organize','My Cart', 'My Activity', 'Manage Users', 'Maintenance', 'Getting Started', 'Gantt Test', 'Custom Reports - Stock', 'Custom Reports - Selling', 'Custom Reports - Production', 'Custom Reports - Payroll', 'Custom Reports - Maintenance', 'Custom Reports - Buying', 'Custom Reports - Accounts', 'CRM Setup', 'CRM Reports') + for p in delete_pages: + webnotes.model.delete_doc('Page',p) + \ No newline at end of file From f83c1e949c835f0ebc96ec78b17012f62aba8d83 Mon Sep 17 00:00:00 2001 From: Ravi Dey Date: Fri, 10 Jun 2011 12:22:24 +0530 Subject: [PATCH 3/7] first commit README file --- README | 1 + 1 file changed, 1 insertion(+) create mode 100644 README diff --git a/README b/README new file mode 100644 index 0000000000..37967291f6 --- /dev/null +++ b/README @@ -0,0 +1 @@ +erpnext From bb4b9bfa1551226a1d58fcef0cfe8150c423f49d Mon Sep 17 00:00:00 2001 From: Ravi Dey Date: Fri, 10 Jun 2011 13:02:01 +0530 Subject: [PATCH 4/7] customer/supplier name fix --- crm/doctype/customer/customer.py | 3 ++- srm/doctype/supplier/supplier.py | 3 ++- tools/doctype/address/address.py | 2 +- tools/doctype/contact/contact.py | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/crm/doctype/customer/customer.py b/crm/doctype/customer/customer.py index d480a6cf25..3d2fa59335 100644 --- a/crm/doctype/customer/customer.py +++ b/crm/doctype/customer/customer.py @@ -25,7 +25,8 @@ class DocType: if cust_master_name == 'Customer Name': # filter out bad characters in name - cust = self.doc.customer_name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','').replace('`','') + #cust = self.doc.customer_name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','').replace('`','') + cust = self.doc.customer_name supp = sql("select name from `tabSupplier` where name = %s", (cust)) supp = supp and supp[0][0] or '' diff --git a/srm/doctype/supplier/supplier.py b/srm/doctype/supplier/supplier.py index af5b85a650..e6db6c326e 100644 --- a/srm/doctype/supplier/supplier.py +++ b/srm/doctype/supplier/supplier.py @@ -29,7 +29,8 @@ class DocType: if supp_master_name == 'Supplier Name': # filter out bad characters in name - supp = self.doc.supplier_name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','').replace('`','') + #supp = self.doc.supplier_name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','').replace('`','') + supp = self.doc.supplier_name cust = sql("select name from `tabCustomer` where name = '%s'" % (supp)) cust = cust and cust[0][0] or '' diff --git a/tools/doctype/address/address.py b/tools/doctype/address/address.py index dc177436fa..eabf624af2 100644 --- a/tools/doctype/address/address.py +++ b/tools/doctype/address/address.py @@ -22,7 +22,7 @@ class DocType: self.doc.name = self.doc.sales_partner + '-' + self.doc.address_type # filter out bad characters in name - self.doc.name = self.doc.name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','').replace('`','') + #self.doc.name = self.doc.name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','').replace('`','') #---------------------- # Call to Validate diff --git a/tools/doctype/contact/contact.py b/tools/doctype/contact/contact.py index 7498619775..6d7c4c442a 100644 --- a/tools/doctype/contact/contact.py +++ b/tools/doctype/contact/contact.py @@ -22,7 +22,7 @@ class DocType: self.doc.name = self.doc.first_name + (self.doc.last_name and ' ' + self.doc.last_name or '') + '-' + self.doc.sales_partner # filter out bad characters in name - self.doc.name = self.doc.name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','') + #self.doc.name = self.doc.name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','') #---------------------- # Call to Validate From 1c59fba480a3012f4b9214194a72d5edd5671983 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 13 Jun 2011 13:23:49 +0530 Subject: [PATCH 5/7] added home files --- home/Module Def/Home/Home.txt | 28 + home/__init__.py | 0 home/__init__.pyc | Bin 0 -> 140 bytes home/doctype/__init__.py | 0 home/doctype/__init__.pyc | Bin 0 -> 148 bytes home/doctype/company_control/__init__.py | 0 .../company_control/company_control.py | 90 ++ .../company_control/company_control.txt | 58 ++ home/doctype/feed/__init__.py | 0 home/doctype/feed/feed.py | 22 + home/doctype/feed/feed.txt | 202 +++++ home/doctype/home_control/__init__.py | 0 home/doctype/home_control/__init__.pyc | Bin 0 -> 161 bytes home/doctype/home_control/home_control.js | 0 home/doctype/home_control/home_control.py | 387 ++++++++ home/doctype/home_control/home_control.pyc | Bin 0 -> 22711 bytes home/doctype/home_control/home_control.txt | 81 ++ home/doctype/widget_control/__init__.py | 0 home/doctype/widget_control/widget_control.py | 45 + .../doctype/widget_control/widget_control.txt | 58 ++ home/page/.DS_Store | Bin 0 -> 6148 bytes home/page/__init__.py | 0 home/page/event_updates/.DS_Store | Bin 0 -> 6148 bytes home/page/event_updates/__init__.py | 0 home/page/event_updates/event_updates.css | 17 + home/page/event_updates/event_updates.html | 1 + home/page/event_updates/event_updates.js | 748 ++++++++++++++++ home/page/event_updates/event_updates.py | 56 ++ home/page/event_updates/event_updates.txt | 36 + .../event_updates/event_updates_static.html | 1 + home/page/my_company/__init__.py | 0 home/page/my_company/my_company.css | 82 ++ home/page/my_company/my_company.html | 0 home/page/my_company/my_company.js | 842 ++++++++++++++++++ home/page/my_company/my_company.py | 130 +++ home/page/my_company/my_company.txt | 64 ++ home/page/profile_settings/__init__.py | 0 .../page/profile_settings/profile_settings.js | 115 +++ .../page/profile_settings/profile_settings.py | 34 + .../profile_settings/profile_settings.txt | 36 + home/search_criteria/__init__.py | 0 .../bills_to_be_paid/__init__.py | 0 .../bills_to_be_paid/bills_to_be_paid.txt | 37 + .../bills_to_be_submitted/__init__.py | 0 .../bills_to_be_submitted.txt | 37 + .../delivery_note_to_be_billed/__init__.py | 0 .../delivery_note_to_be_billed.txt | 37 + .../delivery_note_to_be_submitted/__init__.py | 0 .../delivery_note_to_be_submitted.txt | 37 + .../enquiry_quotations_to_be_sent/__init__.py | 0 .../enquiry_quotations_to_be_sent.txt | 37 + .../enquiry_to_follow_up/__init__.py | 0 .../enquiry_to_follow_up.js | 5 + .../enquiry_to_follow_up.txt | 37 + .../__init__.py | 0 .../indent_purchase_order_to_be_made.txt | 37 + .../indent_to_be_submitted/__init__.py | 0 .../indent_to_be_submitted.txt | 37 + .../invoices_overdue/__init__.py | 0 .../invoices_overdue/invoices_overdue.txt | 37 + .../invoices_to_be_submitted/__init__.py | 0 .../invoices_to_be_submitted.txt | 37 + .../invoices_to_receive_payment/__init__.py | 0 .../invoices_to_receive_payment.txt | 37 + .../lead_to_follow_up/__init__.py | 0 .../lead_to_follow_up/lead_to_follow_up.js | 5 + .../lead_to_follow_up/lead_to_follow_up.txt | 37 + .../lead_to_follow_up/sales_order_overdue.js | 11 + .../purchase_order_to_be_billed/__init__.py | 0 .../purchase_order_to_be_billed.txt | 37 + .../__init__.py | 0 .../purchase_order_to_be_submitted.txt | 37 + .../__init__.py | 0 .../purchase_order_to_receive_items.txt | 37 + .../sales_order_overdue/__init__.py | 0 .../sales_order_overdue.txt | 37 + .../sales_order_to_be_billed/__init__.py | 0 .../sales_order_to_be_billed.txt | 37 + .../sales_order_to_be_delivered/__init__.py | 0 .../sales_order_to_be_delivered.txt | 37 + .../sales_order_to_be_submitted/__init__.py | 0 .../sales_order_to_be_submitted.txt | 37 + .../__init__.py | 0 .../serial_no_amc_expiring_this_month.txt | 37 + .../__init__.py | 0 ...serial_no_warranty_expiring_this_month.txt | 37 + home/search_criteria/task_open/__init__.py | 0 home/search_criteria/task_open/task_open.txt | 37 + 88 files changed, 3968 insertions(+) create mode 100644 home/Module Def/Home/Home.txt create mode 100644 home/__init__.py create mode 100644 home/__init__.pyc create mode 100644 home/doctype/__init__.py create mode 100644 home/doctype/__init__.pyc create mode 100644 home/doctype/company_control/__init__.py create mode 100644 home/doctype/company_control/company_control.py create mode 100644 home/doctype/company_control/company_control.txt create mode 100644 home/doctype/feed/__init__.py create mode 100644 home/doctype/feed/feed.py create mode 100644 home/doctype/feed/feed.txt create mode 100644 home/doctype/home_control/__init__.py create mode 100644 home/doctype/home_control/__init__.pyc create mode 100644 home/doctype/home_control/home_control.js create mode 100644 home/doctype/home_control/home_control.py create mode 100644 home/doctype/home_control/home_control.pyc create mode 100644 home/doctype/home_control/home_control.txt create mode 100644 home/doctype/widget_control/__init__.py create mode 100644 home/doctype/widget_control/widget_control.py create mode 100644 home/doctype/widget_control/widget_control.txt create mode 100644 home/page/.DS_Store create mode 100644 home/page/__init__.py create mode 100644 home/page/event_updates/.DS_Store create mode 100644 home/page/event_updates/__init__.py create mode 100644 home/page/event_updates/event_updates.css create mode 100644 home/page/event_updates/event_updates.html create mode 100644 home/page/event_updates/event_updates.js create mode 100644 home/page/event_updates/event_updates.py create mode 100644 home/page/event_updates/event_updates.txt create mode 100644 home/page/event_updates/event_updates_static.html create mode 100644 home/page/my_company/__init__.py create mode 100644 home/page/my_company/my_company.css create mode 100644 home/page/my_company/my_company.html create mode 100644 home/page/my_company/my_company.js create mode 100644 home/page/my_company/my_company.py create mode 100644 home/page/my_company/my_company.txt create mode 100644 home/page/profile_settings/__init__.py create mode 100644 home/page/profile_settings/profile_settings.js create mode 100644 home/page/profile_settings/profile_settings.py create mode 100644 home/page/profile_settings/profile_settings.txt create mode 100644 home/search_criteria/__init__.py create mode 100644 home/search_criteria/bills_to_be_paid/__init__.py create mode 100644 home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt create mode 100644 home/search_criteria/bills_to_be_submitted/__init__.py create mode 100644 home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt create mode 100644 home/search_criteria/delivery_note_to_be_billed/__init__.py create mode 100644 home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt create mode 100644 home/search_criteria/delivery_note_to_be_submitted/__init__.py create mode 100644 home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt create mode 100644 home/search_criteria/enquiry_quotations_to_be_sent/__init__.py create mode 100644 home/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt create mode 100644 home/search_criteria/enquiry_to_follow_up/__init__.py create mode 100644 home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js create mode 100644 home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt create mode 100644 home/search_criteria/indent_purchase_order_to_be_made/__init__.py create mode 100644 home/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt create mode 100644 home/search_criteria/indent_to_be_submitted/__init__.py create mode 100644 home/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt create mode 100644 home/search_criteria/invoices_overdue/__init__.py create mode 100644 home/search_criteria/invoices_overdue/invoices_overdue.txt create mode 100644 home/search_criteria/invoices_to_be_submitted/__init__.py create mode 100644 home/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt create mode 100644 home/search_criteria/invoices_to_receive_payment/__init__.py create mode 100644 home/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt create mode 100644 home/search_criteria/lead_to_follow_up/__init__.py create mode 100644 home/search_criteria/lead_to_follow_up/lead_to_follow_up.js create mode 100644 home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt create mode 100644 home/search_criteria/lead_to_follow_up/sales_order_overdue.js create mode 100644 home/search_criteria/purchase_order_to_be_billed/__init__.py create mode 100644 home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt create mode 100644 home/search_criteria/purchase_order_to_be_submitted/__init__.py create mode 100644 home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt create mode 100644 home/search_criteria/purchase_order_to_receive_items/__init__.py create mode 100644 home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt create mode 100644 home/search_criteria/sales_order_overdue/__init__.py create mode 100644 home/search_criteria/sales_order_overdue/sales_order_overdue.txt create mode 100644 home/search_criteria/sales_order_to_be_billed/__init__.py create mode 100644 home/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt create mode 100644 home/search_criteria/sales_order_to_be_delivered/__init__.py create mode 100644 home/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt create mode 100644 home/search_criteria/sales_order_to_be_submitted/__init__.py create mode 100644 home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt create mode 100644 home/search_criteria/serial_no_amc_expiring_this_month/__init__.py create mode 100644 home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt create mode 100644 home/search_criteria/serial_no_warranty_expiring_this_month/__init__.py create mode 100644 home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt create mode 100644 home/search_criteria/task_open/__init__.py create mode 100644 home/search_criteria/task_open/task_open.txt diff --git a/home/Module Def/Home/Home.txt b/home/Module Def/Home/Home.txt new file mode 100644 index 0000000000..7613ee8ec3 --- /dev/null +++ b/home/Module Def/Home/Home.txt @@ -0,0 +1,28 @@ +[ + { + 'creation': '2011-06-09 16:14:42', + 'disabled': 'No', + 'docstatus': 0, + 'doctype': 'Module Def', + 'doctype_list': None, + 'file_list': None, + 'idx': None, + 'is_hidden': 'No', + 'last_updated_date': None, + 'modified': '2011-06-09 16:57:36', + 'modified_by': 'Administrator', + 'module_desc': None, + 'module_icon': None, + 'module_label': 'Home', + 'module_name': 'Home', + 'module_page': 'Event Updates', + 'module_seq': -1, + 'name': 'Home', + 'owner': 'Administrator', + 'parent': None, + 'parentfield': None, + 'parenttype': None, + 'trash_reason': None, + 'widget_code': None + } +] \ No newline at end of file diff --git a/home/__init__.py b/home/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/__init__.pyc b/home/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0d32400393be611b63f730f6a236a130b9682fc9 GIT binary patch literal 140 zcmcckiI;2J+7G_T3{b!bq#b~`m<33rFfasbfJFQ>fCK{?QEUnn(+@39Eh^S8DlN`P zOv=y?&o9bOO3h2o&@V49*H0}f$V;s#(a*@wP1TQ&&&a@wtPbtkw LwF8-748#lo>dzoT literal 0 HcmV?d00001 diff --git a/home/doctype/__init__.py b/home/doctype/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/doctype/__init__.pyc b/home/doctype/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..be44f7483ce34129f83b4fe578c102843a3d0546 GIT binary patch literal 148 zcmcckiI;2J+7G_T3{b!bq#b~`m<33rFfasbfJFQ>fCK{?QEUqo(+@39Eh^S8DlN`P zOv=y?&o9bOO3h2o&@V49*H0}f$V;s#(a*@wP1R4yPcEq}NY#&z&&F4FB=93~ literal 0 HcmV?d00001 diff --git a/home/doctype/company_control/__init__.py b/home/doctype/company_control/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/doctype/company_control/company_control.py b/home/doctype/company_control/company_control.py new file mode 100644 index 0000000000..cab8e7c17e --- /dev/null +++ b/home/doctype/company_control/company_control.py @@ -0,0 +1,90 @@ +# Please edit this list and import only required elements +import webnotes + +from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add +from webnotes.model import db_exists +from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType +from webnotes.model.doclist import getlist, copy_doclist +from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax +from webnotes import session, form, is_testing, msgprint, errprint + +set = webnotes.conn.set +sql = webnotes.conn.sql +get_value = webnotes.conn.get_value +in_transaction = webnotes.conn.in_transaction +convert_to_lists = webnotes.conn.convert_to_lists + +# ----------------------------------------------------------------------------------------- + + +class DocType: + def __init__(self,d,dl): + self.doc, self.doclist = d,dl + + # All roles of Role Master + def get_all_roles(self): + r_list=sql("select name from `tabRole` where name not in ('All','Guest','Administrator','Customer','Supplier') and docstatus != 2") + if r_list[0][0]: + r_list = [x[0] for x in r_list] + return r_list + + # Get all permissions for given role + def get_permission(self,role): + perm = sql("select distinct t1.`parent`, t1.`read`, t1.`write`, t1.`create`, t1.`submit`,t1.`cancel`,t1.`amend` from `tabDocPerm` t1, `tabDocType` t2 where t1.`role` ='%s' and t1.docstatus !=2 and ifnull(t1.permlevel, 0) = 0 and t1.`read` = 1 and t2.module != 'Recycle Bin' and t1.parent=t2.name " % role) + return perm or '' + + # Get roles for given user + def get_user_roles(self,usr): + r_list=sql("select role from `tabUserRole` where parent=%s and role not in ('All','Guest')",usr) + if r_list: + return [r[0] for r in r_list] + else: + return '' + + # Update roles of given user + def update_roles(self,arg): + arg = eval(arg) + sql("delete from `tabUserRole` where parenttype='Profile' and parent ='%s'" % (cstr(arg['usr']))) + role_list = arg['role_list'].split(',') + for r in role_list: + pr=Document('UserRole') + pr.parent = arg['usr'] + pr.parenttype = 'Profile' + pr.role = r + pr.parentfield = 'userroles' + pr.save(1) + sql("delete from __SessionCache where user=%s", cstr(arg['usr'])) + + # Save profile + def save_profile(self,arg): + arg = eval(arg) + p = Document('Profile', session['user']) + for k in arg: + p.fields[k] = arg[k] + p.save() + + def update_profile_image(self, fid, fname): + sql("update tabProfile set file_list = '%s,%s' where name='%s'" % (fname, fid, session['user'])) + + + def get_login_url(self): + return session['data']['login_from'] + + def get_user_info(self): + + usr = sql("select count(name) from tabProfile where docstatus != 2 and name not in ('Guest','Administrator')") + usr = usr and usr[0][0] or 0 + + ol = sql("select count(distinct t1.name) from tabProfile t1, tabSessions t2 where t1.name = t2.user and t1.name not in('Guest','Administrator') and TIMESTAMPDIFF(HOUR,t2.lastupdate,NOW()) <= 1 and t1.docstatus != 2 and t1.enabled=1") + ol = ol and ol[0][0] or 0 + + ac = sql("select count(name) from tabProfile where enabled=1 and docstatus != 2 and name not in ('Guest', 'Administrator')") + ac = ac and ac[0][0] or 0 + + inac = sql("select count(name) from tabProfile where (enabled=0 or enabled is null or enabled = '') and docstatus != 2 and name not in ('Guest','Administrator')") + inac = inac and inac[0][0] or 0 + + return usr, ol, ac, inac + + def get_sm_count(self) : + return sql("select count(t1.parent) from tabUserRole t1, tabProfile t2 where t1.role='System Manager' and t1.parent = t2.name and t2.enabled=1")[0][0] or 0 diff --git a/home/doctype/company_control/company_control.txt b/home/doctype/company_control/company_control.txt new file mode 100644 index 0000000000..9ec6fe31b1 --- /dev/null +++ b/home/doctype/company_control/company_control.txt @@ -0,0 +1,58 @@ +[ + { + '_last_update': None, + 'allow_attach': None, + 'allow_copy': None, + 'allow_email': None, + 'allow_print': None, + 'allow_rename': None, + 'allow_trash': None, + 'autoname': None, + 'change_log': None, + 'client_script': None, + 'client_script_core': '', + 'client_string': None, + 'colour': 'White:FFF', + 'creation': '2010-08-08 17:08:55', + 'description': None, + 'docstatus': 0, + 'doctype': 'DocType', + 'document_type': None, + 'dt_template': None, + 'hide_heading': None, + 'hide_toolbar': None, + 'idx': None, + 'in_create': None, + 'in_dialog': None, + 'is_transaction_doc': None, + 'issingle': 1, + 'istable': None, + 'max_attachments': None, + 'menu_index': None, + 'modified': '2010-11-17 16:25:34', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'Company Control', + 'name_case': '', + 'owner': 'Administrator', + 'parent': None, + 'parent_node': None, + 'parentfield': None, + 'parenttype': None, + 'print_outline': '', + 'read_only': None, + 'read_only_onload': None, + 'search_fields': None, + 'section_style': 'Simple', + 'server_code': None, + 'server_code_compiled': None, + 'server_code_core': None, + 'server_code_error': ' ', + 'show_in_menu': None, + 'smallicon': None, + 'subject': None, + 'tag_fields': None, + 'use_template': None, + 'version': 7 + } +] \ No newline at end of file diff --git a/home/doctype/feed/__init__.py b/home/doctype/feed/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/doctype/feed/feed.py b/home/doctype/feed/feed.py new file mode 100644 index 0000000000..dca0c357b3 --- /dev/null +++ b/home/doctype/feed/feed.py @@ -0,0 +1,22 @@ +# Please edit this list and import only required elements +import webnotes + +from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add +from webnotes.model import db_exists +from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType +from webnotes.model.doclist import getlist, copy_doclist +from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax +from webnotes import session, form, is_testing, msgprint, errprint + +set = webnotes.conn.set +sql = webnotes.conn.sql +get_value = webnotes.conn.get_value +in_transaction = webnotes.conn.in_transaction +convert_to_lists = webnotes.conn.convert_to_lists + +# ----------------------------------------------------------------------------------------- + + +class DocType: + def __init__(self,d,dl): + self.doc, self.doclist = d, dl \ No newline at end of file diff --git a/home/doctype/feed/feed.txt b/home/doctype/feed/feed.txt new file mode 100644 index 0000000000..abf306d5dc --- /dev/null +++ b/home/doctype/feed/feed.txt @@ -0,0 +1,202 @@ +[ + { + '_last_update': None, + 'allow_attach': None, + 'allow_copy': None, + 'allow_email': None, + 'allow_print': None, + 'allow_rename': None, + 'allow_trash': None, + 'autoname': '_FEED.#####', + 'change_log': None, + 'client_script': None, + 'client_script_core': None, + 'client_string': None, + 'colour': 'White:FFF', + 'creation': '2011-04-06 18:07:23', + 'description': None, + 'docstatus': 0, + 'doctype': 'DocType', + 'document_type': None, + 'dt_template': None, + 'hide_heading': None, + 'hide_toolbar': None, + 'idx': None, + 'in_create': None, + 'in_dialog': None, + 'is_transaction_doc': None, + 'issingle': None, + 'istable': None, + 'max_attachments': None, + 'menu_index': None, + 'modified': '2011-06-09 16:42:12', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'Feed', + 'name_case': None, + 'owner': 'Administrator', + 'parent': None, + 'parent_node': None, + 'parentfield': None, + 'parenttype': None, + 'print_outline': None, + 'read_only': None, + 'read_only_onload': None, + 'search_fields': None, + 'section_style': 'Simple', + 'server_code': None, + 'server_code_compiled': None, + 'server_code_core': None, + 'server_code_error': None, + 'show_in_menu': 0, + 'smallicon': None, + 'subject': None, + 'tag_fields': None, + 'use_template': None, + 'version': 2 + }, + { + 'allow_on_submit': None, + 'colour': None, + 'creation': '2011-04-06 18:07:23', + 'default': None, + 'depends_on': None, + 'description': None, + 'docstatus': 0, + 'doctype': 'DocField', + 'fieldname': 'doc_type', + 'fieldtype': 'Data', + 'hidden': None, + 'icon': None, + 'idx': 1, + 'in_filter': None, + 'label': 'Doc Type', + 'modified': '2011-06-09 16:42:12', + 'modified_by': 'Administrator', + 'name': '000000498', + 'no_column': None, + 'no_copy': None, + 'oldfieldname': None, + 'oldfieldtype': None, + 'options': None, + 'owner': 'Administrator', + 'parent': 'Feed', + 'parentfield': 'fields', + 'parenttype': 'DocType', + 'permlevel': 0, + 'print_hide': None, + 'report_hide': None, + 'reqd': None, + 'search_index': None, + 'trigger': None, + 'width': None + }, + { + 'allow_on_submit': None, + 'colour': None, + 'creation': '2011-04-06 18:07:24', + 'default': None, + 'depends_on': None, + 'description': None, + 'docstatus': 0, + 'doctype': 'DocField', + 'fieldname': 'doc_name', + 'fieldtype': 'Data', + 'hidden': None, + 'icon': None, + 'idx': 2, + 'in_filter': None, + 'label': 'Doc Name', + 'modified': '2011-06-09 16:42:12', + 'modified_by': 'Administrator', + 'name': '000000499', + 'no_column': None, + 'no_copy': None, + 'oldfieldname': None, + 'oldfieldtype': None, + 'options': None, + 'owner': 'Administrator', + 'parent': 'Feed', + 'parentfield': 'fields', + 'parenttype': 'DocType', + 'permlevel': 0, + 'print_hide': None, + 'report_hide': None, + 'reqd': None, + 'search_index': None, + 'trigger': None, + 'width': None + }, + { + 'allow_on_submit': None, + 'colour': None, + 'creation': '2011-04-06 18:07:24', + 'default': None, + 'depends_on': None, + 'description': None, + 'docstatus': 0, + 'doctype': 'DocField', + 'fieldname': 'subject', + 'fieldtype': 'Data', + 'hidden': None, + 'icon': None, + 'idx': 3, + 'in_filter': None, + 'label': 'Subject', + 'modified': '2011-06-09 16:42:12', + 'modified_by': 'Administrator', + 'name': '000000500', + 'no_column': None, + 'no_copy': None, + 'oldfieldname': None, + 'oldfieldtype': None, + 'options': None, + 'owner': 'Administrator', + 'parent': 'Feed', + 'parentfield': 'fields', + 'parenttype': 'DocType', + 'permlevel': 0, + 'print_hide': None, + 'report_hide': None, + 'reqd': None, + 'search_index': None, + 'trigger': None, + 'width': None + }, + { + 'allow_on_submit': None, + 'colour': None, + 'creation': '2011-04-06 18:07:24', + 'default': None, + 'depends_on': None, + 'description': None, + 'docstatus': 0, + 'doctype': 'DocField', + 'fieldname': 'color', + 'fieldtype': 'Data', + 'hidden': None, + 'icon': None, + 'idx': 4, + 'in_filter': None, + 'label': 'Color', + 'modified': '2011-06-09 16:42:12', + 'modified_by': 'Administrator', + 'name': '000000501', + 'no_column': None, + 'no_copy': None, + 'oldfieldname': None, + 'oldfieldtype': None, + 'options': None, + 'owner': 'Administrator', + 'parent': 'Feed', + 'parentfield': 'fields', + 'parenttype': 'DocType', + 'permlevel': 0, + 'print_hide': None, + 'report_hide': None, + 'reqd': None, + 'search_index': None, + 'trigger': None, + 'width': None + } +] \ No newline at end of file diff --git a/home/doctype/home_control/__init__.py b/home/doctype/home_control/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/doctype/home_control/__init__.pyc b/home/doctype/home_control/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f2aa5850c0d815b2c2f0aec0bb2dc02f67dbd697 GIT binary patch literal 161 zcmcckiI;2J+7G_T3{b!bq#b~`m<33rFfasbfJFQ>fCK{?QS1d2(+@39Eh^S8DlN`P zOv=y?&o9bOO3h2o&@V49*H0}f$V;s#(a*@wP1R4yPcEq}NCk7^lk@XRit=;x '%s'" % (dt, s[0], add_days(nowdate(), -7)))[0][0] + out[dt][s[0]] = cint(cnt) + return out + + def send_feedback(self, args): + args = json.loads(args) + + fb_sender = sql("select concat_ws(' ',first_name, last_name), email from tabProfile where name=%s", session['user']) + fb_subject = 'Feedback : ' + args['subject'] + + + fb_msg = ''' +
+
%s wrote,
+
%s
+
+ ''' % (fb_sender[0][0], args['feedback']) + + sendmail('info@webnotestech.com', fb_sender[0][1], msg = fb_msg, subject=args['subject'],parts=[], cc=[], attach=[]) + + def get_dt_help(self,dt): + return sql("select description from tabDocType where name=%s",dt)[0][0] or '' + + # ---------------------------------------------------------------------------------------- + def welcome_done(self): + if cint(get_defaults().get('welcome_done')): + return 'Yes' + else: + return 'No' + + def set_welcome_done(self): + set_default('welcome_done', '1') + + # Check Complete Registration + # ---------------------- + def registration_complete(self): + if cint(get_defaults().get('registration_complete')): + return 'Yes' + else: + return 'No' + + # get dashboard counts + # -------------------- + def get_wip_counts(self): + #dtl = ['Lead', 'Enquiries', 'Sales Order', 'Invoices', 'Indent', 'Purchase Order', 'Bills', 'Tasks', 'Delivery Note', 'Maintenance'] + can_read_dt = ['Lead', 'Enquiry', 'Sales Order', 'Receivable Voucher', 'Indent', 'Purchase Order', 'Payable Voucher', 'Delivery Note', 'Task', 'Serial No'] + dt = {} + for d in can_read_dt: + args = {} + + # if Lead + if d=='Lead': + args = {'To follow up':sql("select count(name) from tabLead where status!='Converted' and status!='Lead Lost' and status!='Not Interested'")} + + # if Enquiry + elif d=='Enquiry': + args['Quotations to be sent'] = sql("select count(distinct(t2.name)) from `tabQuotation`t1, `tabEnquiry`t2 where t1.enq_no!=t2.name and t2.docstatus=1") + args['To follow up'] = sql("select count(distinct(t2.name)) from `tabQuotation`t1, `tabEnquiry`t2 where t1.enq_no=t2.name and t2.docstatus=1 and t1.docstatus=1") + + # if Sales Order + elif d=='Sales Order': + args['To be delivered'] = sql("select count(name) from `tabSales Order` where ifnull(per_delivered,0)<100 and delivery_date>now() and docstatus=1") + args['To be billed'] = sql("select count(name) from `tabSales Order` where ifnull(per_billed,0)<100 and docstatus=1") + args['Overdue'] = sql("select count(name) from `tabSales Order` where ifnull(per_delivered,0)<100 and delivery_datenow() and outstanding_amount!=0") + args['Overdue'] = sql("select count(name) from `tabReceivable Voucher` where docstatus=1 and due_date= CURDATE() and ifnull(amc_expiry_date, '0000-00-00') !='0000-00-00' and ifnull(maintenance_status, '') !='Under AMC'") + if chk_for_under_amc: + lst3 = [x3[0] for x3 in chk_for_under_amc] + self.update_serial_status(lst3, 'Under AMC') + + # chk to set serial no status as 'under warranty' + def set_for_under_warranty(self): + chk_for_under_wrnty = sql("select name from `tabSerial No` where ifnull(warranty_expiry_date, '2200-12-12') >= CURDATE() and ifnull(warranty_expiry_date, '0000-00-00') != '0000-00-00' and ifnull(amc_expiry_date, '0000-00-00') ='0000-00-00' and ifnull(maintenance_status, '') != 'Under Warranty'") + if chk_for_under_wrnty: + lst4 = [x4[0] for x4 in chk_for_under_wrnty] + self.update_serial_status(lst4, 'Under Warranty') + + # check maintenance status for all serial nos only for 1st login each day + def set_serial_no_status(self): + + chk_serial_no_update_date = webnotes.conn.get_global('maintenance_status_update_date') + + # check status only for 1st login each day.... if maintenance date already updated means it is checked + if getdate(chk_serial_no_update_date) != nowdate(): + # chk to set serial no status as 'Out of warranty' + self.set_for_out_of_warranty() + + # chk to set serial no status as 'Out of amc' + self.set_for_out_of_amc() + + # chk to set serial no status as 'under amc' + self.set_for_under_amc() + + # chk to set serial no status as 'under warranty' + self.set_for_under_warranty() + + #set maintenance_status_update_date + webnotes.conn.set_global('maintenance_status_update_date', nowdate()) + + # get user fullname + def get_user_fullname(self,usr): + return sql("select concat_ws(' ',first_name, last_name) from tabProfile where name=%s", usr)[0][0] or '' diff --git a/home/doctype/home_control/home_control.pyc b/home/doctype/home_control/home_control.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6709adf38b420d01b842b03e99487b0fd1269606 GIT binary patch literal 22711 zcmeHPTW}oNSw20w%aSc$W$pUXme)IDN0u#T<0Ok@)@#{WFKgM`^2W&!XFQtjvD)sL zmZp0w3G6`dhHN0fQWRAok5Euhl}D=JArC1k4?Iu>RPjKncz{P9peUY56$O0X|98*y zj3w`GHnVwQy?u1f>2vG<{P**p`TPGIAAN7(KWxi!L#8-nf?-n}Ho=G~j+kK76h}?4%M^E+ zV9XT9OfYVW<0jZ`in~p)#}xONV8Rq9Ot9A!_nKgzDeg1DepB3Uf&->_zyt?P@t_F~ znc^W6Oq$}P2@ad$VG~T5;*<$qFvS;4@S-WcXe_R{&pbS0f}^H*)C9*&@t6sYo8oa3 z*rsTk;DjljFu}AbPHXFaeqV6X6i=GqB~yIK1gA{#l(9Tx{FjZNH^sb3@&!{Yn5~Hv zET>KJw7FB?Z!AmZ1*Fcfs&1JtxdX->GVY*x*O;fqe7X23LUOq<4AA=ji~p7iFCZJU zTz1`(Ti%M|(WFod>+xz7k0iw{uiS{@ev~SHJ=RPVH{`urj=hrWSF7=Eym!57xf#Tz zs_zAE6!)R38pP7DT8m2<*V~d=s$rv6j@daLN2B{*-D_~9)pE2Nk4a5@yHT!qE9J_= zw4#&@A0>S_4;IF?x0(dyq+&=1ktz6H7`aplYy318tH`UnwXz??#M8*bfVAIgu) zfiEEQI7kVQFASnuhF%OS&6)=QCwo#^^#fN%X?V5pk=HKY_hKnD(3;?@l^=Sgax)I) zdkDVe=9<^QfVa2SyaKmDzAo~j$Oiy8K`pw!*5G!s;58arAPkajEsD&c?sYuTYoJJA zV$mW30jGL28Ke3-RK)-&;3>u&!Yf@|kT>>*%Gh*Cf$&4CzL^8XKJ1Utm zdsH&VjC)Kn$BlbjGPZGT z$(%6m3CT1jop}y-JpQfND?g}ckUe^V|1?3j8@AltLN^7jfX2Hwa_v2EDs2y=qV^z2UejD*h zzU>c?iLoBbJhhC)T#mUXmf3vFk6yeRn53t(t2jZ~I=m`koCoVK=;r=RYd11YT6S-w2y)_JW;1 z73J-XRj=XMg&p6AjqUs9?QP%qkzH>F!D+i(cXgFIPjm>2yIiS+&3YW!PHQ#xS=+}O z#lUUeM{K|?jlPX!r>|QpZ|(eP+rPx>pM4=8)m6RY7wyM_S}VS#E5K@_1KZT|Guk8+ ztp^S%Mrg-*89AXWhzBRnYCOH88?t9bwNi!1br|J{mBt#i#;hSTXnnR#MO>y((FJ5c zJJ<^!3}Y{P)q5CqrmN0&!ob6e3klB0 z7iPg%Jln6^1(Jf|ELMXh5}RE6#6ted9%zKP>{p4`1-$m7(yH&e9+sM43eoKZP`uSH z`7DqZ#$PK_M1oRWuVJrjWj;0X*6ngsiO8w)GkM{t&=6d|5(~Nu;DpC*cq?^?b5(#S z&qbYq2rhB;k#mL{!)w~ z6XTLDsM&zBjL%Gj4*zf~iSF`=8_2AJN>r{uqO`x$q6FzT^Mt^F5Dv97<=ouSQzVfhCZGvW{-gh@u@=(UKDbBtgd$oHBX(`?> zoQkrfa}QMG-J3aodf|MVA~+i8z&VT63gQdG`ayKDz5ET|C3aOpHzD@UnbS!{CSp#J zC(dWlU&h)9qVEFxMn^_Qmao2b^~!B~@%r-Z>r2RhR`I>D*YL{%2mA7}eJ=}`d%|ow zz(W3zfK!_%5Jl7cm1Yz}cst%&*oeV5WVod9J)0}I=G?p?Y-t%bO=Z=-l1$&`SCIR+ zyapf%KE)n)-ni;qZ8Hw=mFZK_w7j~!v}j+yw)DsfTnhk3qw}p6@-A7#LYpVu zbU3JPRH^kv8LoA@H3B1Z4_!hu8 zNYmhjAoh45$ta%$t9;UD?xTOd+5Coi+y@o*iFq<$R!7a_0pr8u={FadgUvIbIjE?E znuFCdq&b*9!dKBJn0<+Dq3Fnz`}2is@dTzoQU9`_r6!aN=%AF|e$%^g%M z7ifYniFGebS@u&Xw;Ys!Jkb2GB76=vTuen;!tw$(G%VJ3aW!l=JIk)-UWuPOwQ9nabGNW{j0=pvQFnU_M_(K z;4#i+Ca*K$?mCN1t}?mCRa8aPO^tQfn#diq2B{n7`k*Ct{~PbytEkQ`qVy3|{~u&l zvq&!D5J(L^4;@lbxF0x7JyJ}v#k+fn#=s>YFK~To-}*W8wSGf{8#HSJAPM-8tj#}U zaq;eV%@c@9{NHCD44Uwp#=>-HfvS0qiD8DsNP9ADHXoSB!|3x>^8^wVG=R~=8!!ja z4l`m9tpmJ)SfDwO3+ODd^4OZs6IgXv%P7%aCz?w7&9A=?LU`ZYS^o$cYWzHlxC3 ztdvcqtfBtG(l5^4ReIu2vy94U z8i@g^jag&4Pgz6OKpzdVaceX;kz;OGZq6!L6@D6-8I@8Ywr?T>g%YF%!~=HHJcDkC zRETSeGDCDlyar)RO@jQ0_-)mbFX-2RR!N$KCvCX(dIabX*@8N;^f&;7!+k(NF*e&Di2DW%l%pEiTCxE!=8^RUeqE{s}?& zQ;~@Nh+O8H=ehLF+OOK`T5PU7fO{nReY~UEH1GP4>?qy}yoKp1JV<9F|ChX1=U!Rc z{5jbDuItzDzxp{AR>U}ab#86bjzTy`?URd(*QPIZk5MZ(V27Mt31et@ug+au+nl}x z^>(8H0W>pz4zsnopgvQPz7l#8RIVmVj}Bt3e!UvLmdctKKGs=y0aOttYQsw^at_oP zM}n`Fii(gphViaeBE{*02p>s|2*R?fMxj_q4kuA9io9IJ2|h)g>(!MK{mC#XDM49M zD9Q{dV)ovO9ilH+P)cF)fE8Q}Ovl`QYxnSxoZvd~o$wG`KZ1;!kHmFga1Q8*M~tVw z)QpU%A*LL+ZP>IBEM=}82-db8)T}&%G1TNF^qeoUh^KeTC2^aa0W50O3)X%K#ni^6 zip!@32iZ`70zd#F3AKar@qY+O34knHkXg$@l0=auIi%R|0$>=l_Mk=W|FtA?w;9;J=0^@f%E81G&mGA56BX8&7=!8nS#F7rZ0`2n(OnB~yp{ zgccu9aN*drENtIp9pP%Wae#c}og)=Dy!#MZIHrOb&ZDF?x{DoBjPnr5&vN(bnEzXN zx_567b)@DieD@tdLrol@B}53s50os(90(ei9}qD2M=7_cGv>_Z{T!%!@op&xNyREi z9(1$JgPaK`q3S`jVZ2?$cbX@7U;j7wK}6iK%}eU*9~WH>v+Y)Y%AT}5X6EbP*ACDh z(P2?LOr#C=YKMJkdB2tqq~(KJK9rUxG2lZTuwMpzMF%{bHki^5FQnyUfEUv;2RNex z49Eb1nN#*=A-mvn$r zX_+0MXLH8kY=@UK4Y)1&w2T?+U(^mG(xJU|1-5Zd>(*V+Hlx`=&!mHVN>?$Hmd|2P z*qxgfsgf+-ooyQpQz1^H)qa?AXCW5wh*+3Stcv;d+c_GmP<-$a^Xqfa)aiMoPeDD8 zZ$ZlxmEvlBz3Df$MBP{}!_{ivq#rk;{hv9&_+r?E7rh}e^E!kntX$f`x0>+plp`(bHb7=Q+#K6^a9}wZcaCIx>4hKV=4UQb%Rt3WHA#&Li1=&xO}+e(t;) zZb{{qI7KcYB%q*HS{5+GC+rWP(HbJU^Rbq);s-eM=vYT)Bd8GQeA+JR^>@#2``tpA zH-Xu1(~E9=^zUthP(ht+V}7wwuEzPO4OM8uH9rO^JeT;m!OyaSbf4Rk%?ajU&D~oH zTNO*F(;O+4Ydjo1v2b2E41ld?vL4SV8JE$6m1Kat{YvQH+KKag*pELSiDj$D*XkYU zq7h}ADcCaPA-37hNI8Yob@JJSL)6M}6jFVC-r757?ZSkwd_d>UX}4K=vUxia6m`bT z9^(|E7DdI6JL~g___d#C_%6tN>4OGIPQnu@mx8977`DeZDvQcy*2=ycUHZ6losVvQ zzz`h*I9+V#CoA!`nBjRjVR{~BZ98T+0J_T=wC~u(h$mUko9#Bv=e)Rk={MnG&Wl39 zT=dT$Fi1<;NXKa{@5I6d0RRHVpdZxBb%dlTd~g<&e~0b^`|^z|UHZgwr9m%uxB5Xf z1Ly6C1k&~r23HVP&r>TcmTQ%gx48!0OW36fKL!D|8%n9WokTHVDYkS5OSR)wI6h_2 z$bvQbJScuV0Ng1z8s&Pt^;3jGf)5+X$XSR$NIwIV1p&zibc*OYN!Pj^n8g2~X0y0H zXuzpwm5zx@;)I2FLR=x@QFSVKBbIl$x2_Rt)pU()_-inK8AtTHsEKYPF}auYc)}X& z8@DF$Ojrjboyg?0Cauqwm`{3%mvtt$Tdj5)@Knmhfc-QwG;Uyd!f=7ZiB45Sp`{rc2EK{nnAT&x1Zmf!-uCfF41ozG(#@Y`|r4T`WcKa|l%v2ol67 zwB2?n;Dm6-Mwn=bGxMz(*j!+HZu^vBN3gYn4dm>k&>ABDhJSw*!8bQN*KgL4c`Mvt z6cA&KB#MrK3FojVS)X`$5THb}suYLfvd=hLKPg`mjYd*|K%S=y-Ds8(bfy2EewPG|VHB5eJb=xDub%}Rd!c}!NEUEhrv1f#gO02m zHi%4uTR>Xiv;YTvyV7hToHCOYCXB8WZ>Eg21ka})(jv&!I8T_+^{D>xH<6QOQTdT4 zYf#4;U3S9iK7kNDE}ud1vd7d6{|Oah70@ky9LGWYcM#91ZQSE+FDW*uDqINVQ;Wm= z6$;9qfm%Ri<^`b{s0%M5SP#79MEgD>A3TOYZar@fFN)hJ+X6^HbO!(*^qKIGvDz;s z>;WC=gj($*riTadUXRmohQ@O=Odxb6?#+wvHKk23{j*Ip`T}0OizzL9o1dGtnOfq4 zF@TA$h5iMNsfTYQjceq48-WoT*!Tq)$}xD`Ww(Y{Y4IP2jU?9b_VpWAmv3LbaclAV zwQGepZocEp!2iNCISsU(S-N?r099jt!JdokZUqWQ&Rvr01_EL3$>BBeiY5CN4zB!) zkND&mahVb+gBIyhF&j^|k_H-sl{p;N*D!s7jmd1Hiqhr8!{Ce_ia^Zda69_~+8@KC zR9Rv##r}jK8~06RsrV9`b$*Fl&rnG}OY|mZhY-?BB$Na9gK(uBDDNWc*AC=Xa=L@FK4%jJ zM-GTdE;!WVn(neKp5EyQ^pkRhYAmF2QvZ%xagdtaSl>k7K5H#cA zU9F=nrD=wbfQX=YNqm$jVtpNFLGPlg3T}?3(KYWe_brY|S;Nzs4CFE_{x{g}H<9!f zIP^4uqHBH>rI^CQJ&A=g*1m1@CmTHgj}H9_Tl^FUw{jQ;hLb8%-$2t|C{hgApd3yE zI}_=P_`goo zn7t~(p!iBVfC8bpymqFqvJn)C^(UOCejnUKNe|5b5qL2Jfx!6XehJv~&H)y}IGRx- z`mb#kl<;B11$V9q_1R^mEK?-JOeT8%qb)88gnCxUCCi{-xG*ackI0$Us`M-56XAC% zQVH-;VD2ZeH=-YW(kUFeZmDP80qqhC*(Bs%!&Od?~$c?yT z(I~Nt0*NtSNAWNJ5f%Drbj>RCAndD*wC#+W+EJ1B-QIpIkBt(=No4Pj*OPH)Y;{A*q@gnj#JB-?*eX67L z#!{j{a4}2bMG-KH0Vv^EqNmCAlLS5YLvQ6UnDE86lZ!88`3^GBt)Nvw!fhL+ftU-1{f#l=1KS0~ zvWoWO=GRp@*-c|!TlRs_7%OtD1cw~V17uXTzb1s zX!nY9L;fz~FP)JvFH(PWv|q|{kt48glT&9hD+z%N2$?5Qf;xJ=9Bf4} zi3lgWahr0(rNW)zL;U2xqOHPJ;2Jaa9wO}qA+Y&gF#;KlGm;(Mls9riD_RXV#7QKZ z+^ZX~^Fg_`;+8L+zZ2C1ChWNUlT+826KZ$RrHVE#f| z&1;XM?y~G0tPw7o&_RHGQO%EBH^XZ`%_5#8PV0}6>jjwTOd!Ke)+nm#34&{wb6aO{ zNo|it)RF*5yP^ZWjSSFR5g5q4c}aQAMR6?vNi6GIcULJ z-=AFf75);viLo4wQ}6w4XjE^Zn@;C3I49;KLR?XPYJnXQLk0MO0g z$9CI2yeh3bf=tgggT_~OGxF`t(EF!Cf}~xpST^HdkV&*{5esG#(+$>=Ga04D7xHFOU5tt?e!v90x&t3R-Fi!F^ zoh_LJB8I_ZpV_{RPKz###E>317 z{A~{n;BV_#&H~$WhImD$Tj?!| zQn-*`thmCyXNjGRCWTp^+lS+%iJaVou})cUSW_CM%Ej>!TwOv2xC;KDSPF)ao)0CQ zqT_rh+y>lM>CBEt-j{k3ib}8dwS=>XmCOW8j3dgNmD(%aF@B>_mWC%CbfGSjd<4 zx;?x-dMpV}&ihdk9LAqifOD?y1$mKU;-iWVV}?ZN+ShS^A6OEtc@?>#p<2utw2-^& z&Ix`dxy;qgiYIqQ+pJwUKc>gjz1=H{Ztj)Nb%|T0D$W?rpoVZ;V$_l!yC4Ah$ObV^ zij1JoY`&?C;C1o_-7|1=kgHnhjC17CNwObe$K(AZNPiN$gSXhSNg?I&gujzxEk!?% zG{fJQ(?~x3ErwcKb7^}bJJ>oLETYpa%MBld-_h&hLa^F-Ib+KsFt1@}c7#MEJEFfU zz)w|gJ!uU$+GIo28z6*;s<}C#sja!*?$Ci2C~((+0gcHgztP?+C8zy3&ZwYL_Nld3 zw@}edOrJLvwy$3gtK`m@_~5Y}^abu)KW4rL^%ERhcoKFG`$Zv4cfF94ZqhEUpsgsi zb)d|4>E(duovPdU3m49xKRb5;|ATYR+gILk7BAnvn#Alqzw3GYcUJyKSMuIWg|OzN zdsn0bt{P_=B5)#G%=UX0)6g}U>Shx^Oi;DcXaHpc5%qMwx!HcBWG#gMeZ0+FCgI*z zR&hBzY?KhsQwpo4jRvA1oZH+rGQ`a}Ve~||-l7>#m#J4|my$$I+~PhDnhS3bclh6Raq5i>7AD^%`` zQ9Lu~!YHgSgHIPye7ewEeBwg7@CggK^Z%$MT<+4s_H3>fxYUj?Q&ghL(W=`Slj!tM zF{w$1KjLe%i1g_ckv`p9M3NK1gfX?&@ztLx9`!`qd2m2M$lywN>Npi!IOU6SW5Zog&K!@hV`Iq8jNS{?rN~-3H z6)OQjT?e-gbrb#VgYLneRCpPSi?bCl10;OYPj-Ud71PHkkVs>nI!Sym57; z)Ji&jHD|lS0_T0q)mv0fPiZ9#q6*&x7X|}3J*6$YM5qiSDap}isU&`{QtC=7Ij8Z? znPKt@lg~4uCFanGaEeS|HyCG?35AJMV?r`;HkfQN`DG?wX9CPN&bOKTHk03B@_S5p z$=vxalRsthJtlw7g8W|iJ8W|Yr z8`(cHH8MFeG18Bkfsx^nD^fc?GBCDpY!J00ct)l51pW@Am;O7XYZmCv@;iQk2_EBM zi;P436~~S`2gCrSE7cidGR%a6+o8ek(8HovjK`THNhonoFvn#()W4M04=~63uMU}= zLq*@ApTZ%9%a59-*XQ{&a$dmuV;b@IB3qG`oTE(0b)4f&Y$hj|Ofz|piP$&dvMQsf wK_Wiy*z#t*fKwrWm%Za0gwwpbMlTVf@>_yqxj(UHts^=9Bt)N?u<#80AO8KE@c;k- literal 0 HcmV?d00001 diff --git a/home/doctype/home_control/home_control.txt b/home/doctype/home_control/home_control.txt new file mode 100644 index 0000000000..4113a6135e --- /dev/null +++ b/home/doctype/home_control/home_control.txt @@ -0,0 +1,81 @@ +[ + { + '_last_update': None, + 'allow_attach': None, + 'allow_copy': None, + 'allow_email': None, + 'allow_print': None, + 'allow_rename': None, + 'allow_trash': None, + 'autoname': None, + 'change_log': None, + 'client_script': None, + 'client_script_core': '', + 'client_string': None, + 'colour': 'White:FFF', + 'creation': '2009-07-09 16:32:49', + 'description': None, + 'docstatus': 0, + 'doctype': 'DocType', + 'document_type': None, + 'dt_template': None, + 'hide_heading': None, + 'hide_toolbar': None, + 'idx': None, + 'in_create': None, + 'in_dialog': None, + 'is_transaction_doc': None, + 'issingle': 1, + 'istable': None, + 'max_attachments': None, + 'menu_index': None, + 'modified': '2011-06-09 16:42:37', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'Home Control', + 'name_case': None, + 'owner': 'Administrator', + 'parent': None, + 'parent_node': None, + 'parentfield': None, + 'parenttype': None, + 'print_outline': None, + 'read_only': None, + 'read_only_onload': None, + 'search_fields': None, + 'section_style': 'Simple', + 'server_code': None, + 'server_code_compiled': None, + 'server_code_core': None, + 'server_code_error': ' ', + 'show_in_menu': 0, + 'smallicon': None, + 'subject': None, + 'tag_fields': None, + 'use_template': None, + 'version': 4 + }, + { + 'amend': None, + 'cancel': None, + 'create': 1, + 'creation': '2010-10-19 13:01:06', + 'docstatus': 0, + 'doctype': 'DocPerm', + 'execute': None, + 'idx': 1, + 'match': None, + 'modified': '2011-06-09 16:42:37', + 'modified_by': 'Administrator', + 'name': 'PERM00716', + 'owner': 'Administrator', + 'parent': 'Home Control', + 'parentfield': 'permissions', + 'parenttype': 'DocType', + 'permlevel': 0, + 'read': 1, + 'role': 'Guest', + 'submit': None, + 'write': 1 + } +] \ No newline at end of file diff --git a/home/doctype/widget_control/__init__.py b/home/doctype/widget_control/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/doctype/widget_control/widget_control.py b/home/doctype/widget_control/widget_control.py new file mode 100644 index 0000000000..fa41cc9db2 --- /dev/null +++ b/home/doctype/widget_control/widget_control.py @@ -0,0 +1,45 @@ +import webnotes + +from webnotes.utils import nowdate +from webnotes.model.doc import Document +from webnotes.model.code import get_obj +from webnotes import session, form, msgprint + +sql = webnotes.conn.sql + +try: import json +except: import simplejson as json + +# ----------------------------------------------------------------------------------------- + + +class DocType: + def __init__(self,d,dl): + self.doc, self.doclist = d, dl + + def add_comment(self,args): + import time + args = eval(args) + if(args['comment']): + cmt = Document('Comment Widget Record') + for arg in args: + cmt.fields[arg] = args[arg] + cmt.comment_date = nowdate() + cmt.comment_time = time.strftime('%H:%M') + cmt.save(1) + + try: + get_obj('Feed Control').upate_comment_in_feed(args['comment_doctype'], args['comment_docname']) + except: + pass + + else: + raise Exception + + def remove_comment(self, args): + args = json.loads(args) + sql("delete from `tabComment Widget Record` where name=%s",args['id']) + + try: + get_obj('Feed Control').upate_comment_in_feed(args['dt'], args['dn']) + except: pass diff --git a/home/doctype/widget_control/widget_control.txt b/home/doctype/widget_control/widget_control.txt new file mode 100644 index 0000000000..638032082b --- /dev/null +++ b/home/doctype/widget_control/widget_control.txt @@ -0,0 +1,58 @@ +[ + { + '_last_update': None, + 'allow_attach': None, + 'allow_copy': None, + 'allow_email': None, + 'allow_print': None, + 'allow_rename': None, + 'allow_trash': None, + 'autoname': None, + 'change_log': None, + 'client_script': None, + 'client_script_core': '', + 'client_string': None, + 'colour': 'White:FFF', + 'creation': '2010-08-08 17:09:30', + 'description': None, + 'docstatus': 0, + 'doctype': 'DocType', + 'document_type': None, + 'dt_template': None, + 'hide_heading': None, + 'hide_toolbar': None, + 'idx': None, + 'in_create': None, + 'in_dialog': None, + 'is_transaction_doc': None, + 'issingle': 1, + 'istable': 0, + 'max_attachments': None, + 'menu_index': None, + 'modified': '2011-06-09 16:44:21', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'Widget Control', + 'name_case': None, + 'owner': 'Administrator', + 'parent': None, + 'parent_node': None, + 'parentfield': None, + 'parenttype': None, + 'print_outline': None, + 'read_only': None, + 'read_only_onload': None, + 'search_fields': None, + 'section_style': 'Simple', + 'server_code': None, + 'server_code_compiled': None, + 'server_code_core': None, + 'server_code_error': ' ', + 'show_in_menu': 0, + 'smallicon': None, + 'subject': None, + 'tag_fields': None, + 'use_template': None, + 'version': 28 + } +] \ No newline at end of file diff --git a/home/page/.DS_Store b/home/page/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 \ No newline at end of file diff --git a/home/page/event_updates/event_updates.js b/home/page/event_updates/event_updates.js new file mode 100644 index 0000000000..7a401de69f --- /dev/null +++ b/home/page/event_updates/event_updates.js @@ -0,0 +1,748 @@ +pscript['onload_Event Updates'] = function() { + if(user=='Guest') { + loadpage('Login Page'); + return; + } + + pscript.home_make_body(); + pscript.home_make_status(); + pscript.home_pre_process(); + pscript.home_make_widgets(); +} + +// ================================== + +pscript.home_make_body = function() { + var wrapper = page_body.pages['Event Updates']; + + // body + wrapper.main_tab = make_table(wrapper,1,2,'100%',['70%','30%']); + $y(wrapper.main_tab, {tableLayout:'fixed'}); + + wrapper.body = $a($td(wrapper.main_tab, 0, 0), 'div', 'layout_wrapper'); + + wrapper.head = $a(wrapper.body, 'div'); + + wrapper.banner_area = $a(wrapper.head, 'div'); + wrapper.toolbar_area = $a(wrapper.head, 'div'); + + + wrapper.system_message_area = $a(wrapper.body, 'div', '', + {marginBottom:'16px', padding:'8px', backgroundColor:'#FFD', border:'1px dashed #AA6', display:'none'}) + + +} + +// ================================== + +pscript.home_pre_process = function(wrapper) { + var wrapper = page_body.pages['Event Updates']; + var cp = locals['Control Panel']['Control Panel']; + + // banner + if(cp.client_name) { + var banner = $a(wrapper.banner_area, 'div', '', {paddingBottom:'4px'}) + banner.innerHTML = cp.client_name; + } + + // complete registration + if(in_list(user_roles,'System Manager')) { pscript.complete_registration(); } +} + +// Widgets +// ================================== + +pscript.home_make_widgets = function() { + var wrapper = page_body.pages['Event Updates']; + var cell = $td(wrapper.main_tab, 0, 1); + + // sidebar + sidebar = new wn.widgets.PageSidebar(cell, { + sections:[ + { + title: 'Calendar', + display: function() { return !has_common(user_roles, ['Guest','Customer','Vendor'])}, + render: function(wrapper) { + new HomeCalendar(new HomeWidget(wrapper, 'Calendar', 'Event'), wrapper); + } + }, + + { + title: 'To Do', + display: function() { return !has_common(user_roles, ['Guest','Customer','Vendor'])}, + render: function(wrapper) { + new HomeToDo(new HomeWidget(wrapper, 'To Do', 'Item')); + } + }, + + { + title: 'Online Users', + display: function() { return !has_common(user_roles, ['Guest','Customer','Vendor'])}, + render: function(wrapper) { + pscript.online_users_obj = new OnlineUsers(wrapper); + } + } + ] + }) + sidebar.refresh() + + /*$y(cell,{padding:'0px 8px'}); + + new HomeCalendar(new HomeWidget(cell, 'Calendar', 'Event')); + + + new HomeToDo(new HomeWidget(cell, 'To Do', 'Item'));*/ + + new FeedList(wrapper.body); +} + +OnlineUsers = function(wrapper) { + var me = this; + this.wrapper = wrapper; + + this.my_company_link = function() { + $a($a(wrapper, 'div', '', {marginBottom:'7px'}), 'span', 'link_type', + {color:'#777', 'color:hover':'#FFF', fontSize:'11px'}, + 'See all users', function() {loadpage('My Company'); }); + } + + this.render = function(online_users) { + me.my_company_link(); + + if(online_users.length) { + var max = online_users.length; max = (max > 10 ? 10 : max) + for(var i=0; i '; + $a($td(tab, 0, 1), 'span', 'social', {}, replace_newlines(det.description)); + + if(det.ref_type && det.ref_name && det.ref_name != 'None') { + var span=$a($a($td(tab, 0, 1),'div'),'span','link_type'); + span.innerHTML = det.ref_name; span.dt = det.ref_type; + span.onclick = function() { loaddoc(this.dt, this.innerHTML); } + } +} + +HomeCalendar.prototype.clear_dialog = function() { + this.set_dialog_values({event_date:get_today(), event_hour:'8:00', description:''}); +} + +HomeCalendar.prototype.set_dialog_values = function(det) { + var d = this.widget.dialog; + d.set_values(det); + d.det = det; +} + +HomeCalendar.prototype.save = function(btn) { + var d = this.widget.dialog; + var me = this; + var det = d.get_values(); + + if(!det) { + btn.done_working(); + return; + } + + det.name = d.det.name; + det.owner = user; + if(!det.event_type) + det.event_type = 'Private'; + + var callback = function(r,rt) { + btn.done_working(); + me.widget.dialog.hide(); + me.widget.refresh(); + } + $c_obj('Home Control','edit_event',JSON.stringify(det),callback); +} + +// Todo +// =========================== + +HomeToDo = function(widget) { + this.widget = widget; + + // methods + this.widget.get_list_method = 'get_todo_list'; + this.widget.delete_method = 'remove_todo_item'; + this.widget.no_items_message = 'Nothing to do?'; + this.widget.get_item_id = function(det) { return det[0]; } + + this.widget.decorator = this; + + this.widget.dialog_fields = [ + {fieldtype:'Date', fieldname:'date', label:'Event Date', reqd:1}, + {fieldtype:'Text', fieldname:'description', label:'Description', 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'} + ]; + + this.widget.refresh(); +} + +HomeToDo.prototype.render_item = function(item, det) { + + // priority tag + var tab = make_table($td(item.tab, 0, 0), 1, 2, '100%', ['48px', null], {padding:'2px'}); + $y(tab, {tableLayout:'fixed'}); + + var span = $a($td(tab, 0, 0), 'span', '', {padding:'2px',color:'#FFF',fontSize:'10px' + ,backgroundColor:(det[3]=='Low' ? '#888' : (det[3]=='High' ? '#EDA857' : '#687FD3'))}); + + $(span).css('-moz-border-radius','3px').css('-webkit-border-radius','3px'); + span.innerHTML = det[3]; + + // text + var span = $a($td(tab, 0, 1), 'span', 'social', {lineHeight:'1.5em'}, replace_newlines(det[1])); + if(det[4]) $y(span,{textDecoration:'line-through'}); + + // if expired & open, then in red + if(!det[4] && dateutil.str_to_obj(det[2]) < new Date()) { + $y(span,{color:'RED'}); + $a($td(tab, 0, 1), 'div', '', {fontSize:'10px', color:'#666'}, dateutil.str_to_user(det[2]) + ' (Overdue)'); + } else { + $a($td(tab, 0, 1), 'div', '', {fontSize:'10px', color:'#666'}, dateutil.str_to_user(det[2])); + } +} + +HomeToDo.prototype.clear_dialog = function() { + this.set_dialog_values(['','',get_today(),'Medium',0]); +} + +HomeToDo.prototype.set_dialog_values = function(det) { + var d = this.widget.dialog; + d.set_values({ + date: det[2], + priority: det[3], + description: det[1], + checked: det[4] + }); + d.det = det; +} + +HomeToDo.prototype.save = function(btn) { + var d = this.widget.dialog; + var me = this; + + var det = d.get_values() + if(!det) { + btn.done_working(); + return; + } + + det.name = d.det ? d.det[0] : ''; + + var callback = function(r,rt) { + btn.done_working(); + me.widget.dialog.hide(); + me.widget.refresh(); + } + $c_obj('Home Control','add_todo_item',JSON.stringify(det),callback); +} + +// Feed +// ================================== + + +FeedList = function(parent) { + // settings + this.auto_feed_off = cint(sys_defaults.auto_feed_off); + + this.wrapper = $a(parent, 'div'); + this.make_head(); + this.make_list(); + this.list.run(); +} + +FeedList.prototype.make_head = function() { + var me = this; + this.head = $a(this.wrapper, 'div', '', {marginBottom:'8px'}); + + // head + + $a(this.head,'h1','', {display:'inline'}, 'Home'); + $a(this.head,'span','link_type', {marginLeft:'7px'}, '[?]', function() { + msgprint('What appears here? This is where you get updates of everything you are allowed to access and generates an update') + }) + + // refresh + $a(this.head,'span','link_type', + {cursor:'pointer', marginLeft:'7px', fontSize:'11px'}, 'refresh', + function() { me.run(); } + ); +} + +FeedList.prototype.run = function() { + this.prev_date = null; + this.list.run(); +} + +FeedList.prototype.make_list = function() { + this.list_area = $a(this.wrapper,'div') + this.no_result = $a(this.wrapper, 'div','help_box',{display:'none'},'Nothing to show yet. Your feed will be updated as you start your activities') + + var l = new Listing('Feed List',1); + var me = this; + + // style + l.colwidths = ['100%']; l.page_len = 20; + l.opts.cell_style = {padding:'0px'}; + l.opts.hide_rec_label = 1; + + // build query + l.get_query = function(){ + this.query = repl('select \ + distinct t1.name, t1.doc_type, t1.doc_name, t1.subject, t1.modified_by, \ + concat(ifnull(t2.first_name,""), " ", ifnull(t2.last_name,"")), t1.modified, t1.color \ + from tabFeed t1, tabProfile t2, tabUserRole t3, tabDocPerm t4 \ + where t1.doc_type = t4.parent \ + and t2.name = t1.owner \ + and t3.parent = "%(user)s" \ + and t4.role = t3.role \ + and ifnull(t4.`read`,0) = 1 \ + order by t1.modified desc', {user:user}) + this.query_max = '' + } + + // render list ui + l.show_cell = function(cell,ri,ci,d){ me.render_feed(cell,ri,ci,d); } + + // onrun + l.onrun = function(){ $(me.wrapper).fadeIn(); if(me.after_run) me.after_run(); } + + // make + l.make(this.list_area); + $dh(l.btn_area); + + this.list = l; +} + +FeedList.prototype.after_run = function() { + this.list.has_data() ? $dh(this.no_result) : $ds(this.no_result) +} + +FeedList.prototype.render_feed = function(cell,ri,ci,d) { + new FeedItem(cell, d[ri], this); +} + +// Item +// ------------------------------- + +FeedItem = function(cell, det, feedlist) { + var me = this; + + this.det = det; this.feedlist = feedlist; + this.wrapper = $a(cell,'div','',{paddingBottom:'4px'}); + this.head = $a(this.wrapper,'div'); + + this.tab = make_table(this.wrapper, 1, 2, '100%', [(100/7)+'%', (600/7)+'%']); + $y(this.tab,{tableLayout:'fixed'}) + + // image + $y($td(this.tab,0,0),{textAlign:'right',paddingRight:'4px'}); + + // text + this.text_area = $a($td(this.tab,0,1), 'div'); + this.render_references(this.text_area, det); + + this.render_tag(det); + + // add day separator + this.add_day_sep(det); +} + +// Day separator +// ------------------------------------------------- + +FeedItem.prototype.add_day_sep = function(det) { + var me = this; + var prev_date = det[6].split(' ')[0]; + + var make_div = function() { + var div = $a(me.head, 'div', '', + {borderBottom:'1px solid #888', margin:'8px 0px', padding:'2px 0px', color:'#888', fontSize:'11px'}); + div.innerHTML = comment_when(det[6], 1); + + // today? + if(prev_date==get_today()) { + div.innerHTML = ''; + span = $a(div, 'span', '', {padding:'2px', color:'#000', fontWeight:'bold'}); + span.innerHTML = 'Today'; + } + } + + if(this.feedlist.prev_date && this.feedlist.prev_date != prev_date) { make_div(); } + if(!this.feedlist.prev_date) { make_div(); } + this.feedlist.prev_date = prev_date; +} + +// Tag +// ------------------------------------------------- + +FeedItem.prototype.render_tag = function(det) { + tag = $a($td(this.tab,0,0), 'div', '', + {color:'#FFF', padding:'3px', textAlign:'right', fontSize:'11px', whiteSpace:'nowrap', overflow:'hidden', cursor:'pointer'}); + $br(tag,'3px'); + $y(tag, {backgroundColor:(det[7] ? det[7] : '#273')}); + tag.innerHTML = get_doctype_label(det[1]); + tag.dt = det[1] + tag.onclick = function() { loaddocbrowser(this.dt); } +} + +FeedItem.prototype.render_references = function(div, det) { + // name + div.tab = make_table(div, 1, 2, '100%', [null, '15%']) + //div.innerHTML = '' + (strip(det[11]) ? det[11] : det[2]) + ' (' + cint(det[12]) + '): has ' + det[7] + ' '; + + var dt = det[1]; var dn = det[2] + + // link + var allow = in_list(profile.can_read, dt); + var span = $a($td(div.tab,0,0), 'span', (allow ? 'link_type': ''), null, det[2]); + span.dt = dt; span.dn = dn; + if(allow) span.onclick = function() { loaddoc(this.dt, this.dn); } + + // subject + if(det[3]) { + $a($td(div.tab,0,0), 'span', '', {marginLeft:'7px', color:'#444'}, det[3]); + } + + // by + $y($td(div.tab,0,1), {fontSize:'11px'}).innerHTML = (strip(det[5]) ? det[5] : det[4]); +} + +HomeStatusBar = function() { + var me = this; + var parent = page_body.pages['Event Updates']; + this.wrapper = $a($td(parent.main_tab, 0, 1), 'div', 'home-status', {}, 'Loading...'); + $br(this.wrapper, '3px'); + + this.render = function(r) { + this.wrapper.innerHTML = ''; + this.span = $a(this.wrapper, 'span', 'home-status-link') + this.span.onclick = function() { loadpage('My Company') } + + if(r.unread_messages) { + this.span.innerHTML = '' + r.unread_messages + ' unread message' + (cint(r.unread_messages) > 1 ? 's' : ''); + } else { + this.span.innerHTML = 'No unread messages.'; + } + } +} + +pscript.home_make_status = function() { + var home_status_bar = new HomeStatusBar() + var wrapper = page_body.pages['Event Updates']; + + // get values + $c_page('event_updates', 'event_updates', 'get_status_details', user, + function(r,rt) { + + home_status_bar.render(r.message); + + // system_messages + if(r.message.system_message) + pscript.show_system_message(wrapper, r.message.system_message); + + // trial + if(pscript.is_erpnext_saas && cint(r.message.is_trial) && in_list(user_roles, 'System Manager')) { + pscript.trial_box = $a(div, 'div', 'help_box', {margin:'2px 8px 2px 0px'}, "Your Free Trial expires in " + + r.message.days_to_expiry + " days. When you are satisfied, please please click here to convert to a paid account." + + "
To get help, view Getting Started with Your System (opens in a new page)"); + } + + // render online users + pscript.online_users_obj.render(r.message.online_users); + pscript.online_users = r.message.online_users; + } + ); +} + +// show system message +// ------------------- +pscript.convert_to_paid = function() { + var callback = function(r,rt) { + if(r.exc) { msgprint(r.exc); return; } + $(pscript.trial_box).slideUp(); + } + $c_page('event_updates','event_updates','convert_to_paid','',callback) +} + +// show system message +// ------------------- +pscript.show_system_message = function(wrapper, msg) { + $ds(wrapper.system_message_area); + var txt = $a(wrapper.system_message_area, 'div', '', {lineHeight:'1.6em'}); + txt.innerHTML = msg; + + var span = $ln($a(wrapper.system_message_area, 'div'), 'Dismiss', + function(me) { + me.set_working(); + $c_obj('Home Control', 'dismiss_message', '', function(r,rt) { + me.done_working(); + $(wrapper.system_message_area).slideUp(); + }); + }, {fontSize:'11px'} + ) +} + +// complete my company registration +// -------------------------------- +pscript.complete_registration = function() +{ + var reg_callback = function(r, rt){ + if(r.message == 'No'){ + var d = new Dialog(400, 200, "Please Complete Your Registration"); + if(user != 'Administrator'){ + d.no_cancel(); // Hide close image + $dh(page_body.wntoolbar.wrapper); + } + $($a(d.body,'div','', {margin:'8px', color:'#888'})).html('Company Name : '+locals['Control Panel']['Control Panel'].company_name); + + d.make_body( + [ + ['Data','Company Abbreviation'], + ['Select','Fiscal Year Start Date'], + ['Select','Default Currency'], + ['Button','Save'], + ]); + + //d.widgets['Save'].disabled = true; // disable Save button + pscript.make_dialog_field(d); + + // submit details + d.widgets['Save'].onclick = function() + { + d.widgets['Save'].set_working(); + + flag = pscript.validate_fields(d); + if(flag) + { + var args = [ + locals['Control Panel']['Control Panel'].company_name, + d.widgets['Company Abbreviation'].value, + d.widgets['Fiscal Year Start Date'].value, + d.widgets['Default Currency'].value + ]; + + $c_obj('Setup Control','setup_account',JSON.stringify(args),function(r, rt){ + sys_defaults = r.message; + d.hide(); + $ds(page_body.wntoolbar.wrapper); + }); + } + } + d.show(); + } + } + $c_obj('Home Control','registration_complete','',reg_callback); +} + +// make dialog fields +// ------------------ +pscript.make_dialog_field = function(d) +{ + // fiscal year format + fisc_format = d.widgets['Fiscal Year Start Date']; + add_sel_options(fisc_format, ['', '1st Jan', '1st Apr', '1st Jul', '1st Oct']); + + // default currency + currency_list = ['', 'AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AZN', 'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BRL', 'BSD', 'BTN', 'BYR', 'BZD', 'CAD', 'CDF', 'CFA', 'CFP', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CUC', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EEK', 'EGP', 'ERN', 'ETB', 'EUR', 'EURO', 'FJD', 'FKP', 'FMG', 'GBP', 'GEL', 'GHS', 'GIP', 'GMD', 'GNF', 'GQE', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LTL', 'LVL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRO', 'MUR', 'MVR', 'MWK', 'MXN', 'MYR', 'MZM', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NRs', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RMB', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SCR', 'SDG', 'SDR', 'SEK', 'SGD', 'SHP', 'SOS', 'SRD', 'STD', 'SYP', 'SZL', 'THB', 'TJS', 'TMT', 'TND', 'TRY', 'TTD', 'TWD', 'TZS', 'UAE', 'UAH', 'UGX', 'USD', 'USh', 'UYU', 'UZS', 'VEB', 'VND', 'VUV', 'WST', 'XAF', 'XCD', 'XDR', 'XOF', 'XPF', 'YEN', 'YER', 'YTL', 'ZAR', 'ZMK', 'ZWR']; + currency = d.widgets['Default Currency']; + add_sel_options(currency, currency_list); +} + + +// validate fields +// --------------- +pscript.validate_fields = function(d) +{ + var lst = ['Company Abbreviation', 'Fiscal Year Start Date', 'Default Currency']; + var msg = 'Please enter the following fields'; + var flag = 1; + for(var i=0; iAccount Settings to increase the number of users'); + } + $c_page('my_company', 'my_company', 'get_max_users', '', callback) +} + +// +// Add user dialog and server call +// +pscript.myc_add_user = function() { + var d = new wn.widgets.Dialog({ + title: 'Add User', + width: 400, + fields: [ + {fieldtype:'Data', fieldname:'user',reqd:1,label:'Email Id of the user to add'}, + {fieldtype:'Button', label:'Add', fieldname:'add'} + ] + }); + d.make(); + d.fields_dict.add.input.onclick = function() { + v = d.get_values(); + if(v) { + d.fields_dict.add.input.set_working(); + $c_page('my_company', 'my_company', 'add_user', v, function(r,rt) { + if(r.exc) { msgprint(r.exc); return; } + else { + d.hide(); + pscript.myc_refresh(); + } + }) + } + } + d.show(); +} + +pscript.myc_refresh = function() { + page_body.pages['My Company'].member_list.lst.run(); +} + +pscript.myc_make_list= function(wrapper) { + wrapper.member_list = new MemberList(wrapper) +} + +pscript.get_fullname=function(uid) { + if(uid=='Administrator') return uid; + return page_body.pages['My Company'].member_list.member_items[uid].fullname; +} + + + +//============================================= + +MemberList = function(parent) { + var me = this; + this.profiles = {}; + this.member_items = {}; + this.role_objects = {}; + this.cur_profile = null; + + this.list_wrapper = $a($td(parent.tab,0,0), 'div', '', {marginLeft:'11px'}); + this.profile_wrapper = $a($td(parent.tab,0,1), 'div', 'layout_wrapper', {marginLeft:'0px', height:'100%'}); + + this.no_user_selected = $a(this.profile_wrapper, 'div', 'help_box', null, 'Please select a user to view profile'); + + this.make_search(); + if(pscript.online_users) { + this.make_list(); + } else { + $c_page('event_updates', 'event_updates', 'get_online_users', '', function(r,rt) { + pscript.online_users = r.message; + me.make_list(); + }) + } +} + +// ---------------------- + +MemberList.prototype.make_search = function() { + var me = this; + this.search_area = $a(this.list_wrapper, 'div', '', {textAlign:'center', padding:'8px'}); + this.search_inp = $a(this.search_area, 'input', '', {fontSize:'14px', width:'80%'}); + this.search_inp.set_empty = function() { + this.value = 'Search'; $fg(this,'#888'); + } + this.search_inp.onfocus = function() { + $fg(this,'#000'); + if(this.value=='Search')this.value = ''; + } + this.search_inp.onchange = function() { + if(!this.value) this.set_empty(); + } + this.search_inp.set_empty(); +} + +// ---------------------- + +MemberList.prototype.make_list = function() { + var me = this; + this.lst_area = $a(this.list_wrapper, 'div'); + this.lst = new Listing('Profiles',1); + this.lst.colwidths = ['100%']; + this.lst.opts.cell_style = {padding:'0px'} + this.lst.get_query = function() { + var c1 = ''; + if(me.search_inp.value && me.search_inp.value != 'Search') { + var c1 = repl(' AND (first_name LIKE "%(txt)s" OR last_name LIKE "%(txt)s" OR name LIKE "%(txt)s")', {txt:'%' + me.search_inp.value + '%'}); + } + + this.query = repl("SELECT distinct ifnull(name,''), ifnull(concat_ws(' ', first_name, last_name),''), ifnull(messanger_status,''), ifnull(gender,''), ifnull(file_list,''), 0, enabled from tabProfile where docstatus != 2 AND name not in ('Guest','Administrator') %(cond)s ORDER BY name asc",{cond:c1}); + } + this.lst.make(this.lst_area); + this.lst.show_cell= function(cell, ri, ci, d) { + me.member_items[d[ri][0]] = new MemberItem(cell, d[ri], me); + } + this.lst.run(); +} + + +/* +Create / show profile +*/ +MemberList.prototype.show_profile = function(uid, member_item) { + $dh(this.no_user_selected); + + // if not exists, create + if(!this.profiles[uid]) { + if(!member_item) member_item = this.member_items[uid]; + this.profiles[uid] = new MemberProfile(this.profile_wrapper, uid, member_item); + } + + // hide current + if(this.cur_profile) + this.cur_profile.hide(); + + // show this + this.profiles[uid].show(); + this.cur_profile = this.profiles[uid]; +} + + +// Member Item +// List item of all profiles +// on the left hand sidebar of the page + +MemberItem = function(parent, det, mlist) { + var me = this; + this.det = det; + this.wrapper = $a(parent, 'div'); + this.enabled = det[6]; + + this.tab = make_table(this.wrapper, 1,2,'100%', ['20%', '70%'], {padding:'4px', overflow:'hidden'}); + $y(this.tab, {tableLayout:'fixed', borderCollapse:'collapse'}) + + this.is_online = function() { + for(var i=0;i') : ''; + this.bio_area.innerHTML += this.profile.bio ? this.profile.bio : 'No bio'; + + new MemberConversation(this.wrapper, this.profile.name, this.fullname); + } + + // refresh enable / disable + this.refresh_enable_disable = function() { + this.profile = locals['Profile'][this.uid] + + if(!this.profile.enabled) { + $fg(this.name_area,'#999'); + } else { + $fg(this.name_area,'#000'); + } + + this.member_item.enabled = this.profile.enabled; + this.member_item.refresh_name_link(); + + this.status_span.innerHTML = this.profile.enabled ? 'Enabled' : 'Disabled'; + + // set styles and buttons + if(has_common(['Administrator','System Manager'],user_roles)) { + this.set_enable_button(); + } + } + + // Load user profile (if not loaded) + this.load = function() { + if(locals['Profile'] && locals['Profile'][uid]) { + this.render(); + return; + } + var callback = function(r,rt) { + $dh(me.member_item.working_img); + $ds(me.wrapper); + me.loading = 0; + me.render(); + } + $ds(this.member_item.working_img); + $dh(this.wrapper); + this.loading = 1; + $c('webnotes.widgets.form.getdoc', {'name':this.uid, 'doctype':'Profile', 'user':user}, callback); // onload + } + + // show / hide + this.show = function() { + if(!this.loading)$ds(this.wrapper); + + // select profile + this.member_item.select(); + } + this.hide = function() { + $dh(this.wrapper); + + // select profile + this.member_item.deselect(); + } + + this.make_message_list = function() { + + } + + this.make(); + this.load(); +} + + + + +// Member conversation +// Between the current user and the displayed profile +// or if same, then the conversation with all other +// profiles +MemberConversation = function(parent, uid, fullname) { + var me = this; + this.wrapper = $a(parent, 'div', 'my-company-conversation'); + this.fullname = fullname; + this.make = function() { + if(user!=uid) { + this.make_input(); + } + this.make_list(); + + // set all messages + // as "read" (docstatus = 0) + if(user==uid) { + $c_page('my_company', 'my_company', 'set_read_all_messages', '', function(r,rt) { }); + } + } + + this.make_input = function() { + this.input_wrapper = $a(this.wrapper, 'div', 'my-company-input-wrapper'); + var tab = make_table(this.input_wrapper, 1, 2, '100%', ['64%','36%'], {padding: '3px'}) + this.input = $a($td(tab,0,0), 'textarea'); + $(this.input).add_default_text( 'Send a message to ' + fullname); + + // button + var div = $a(this.input_wrapper, 'div'); + this.post = $btn(div, 'Post'.bold(), function() { me.post_message(); }, {margin:'0px 13px 0px 3px'}) + this.post.set_disabled(); + this.input.onkeyup = this.input.onchange = function() { + if(this.value) { + me.post.set_enabled(); + } else { + me.post.set_disabled(); + } + } + + // notification check + this.notify_check = $a_input(div, 'checkbox', null); + $a(div, 'span', '', {marginLeft:'3px'}, 'Notify ' + fullname + ' by email') + } + + this.post_message = function() { + if(me.input.value==$(me.input).attr('default_text')) { + msgprint('Please write a message first!'); return; + } + this.post.set_working(); + $c_page('my_company', 'my_company', 'post_comment', { + uid: uid, + comment: $(me.input).val(), + notify: me.notify_check.checked ? 1 : 0 + }, function(r,rt) { + $(me.input).val("").blur(); + me.post.done_working(); + if(r.exc) { msgprint(r.exc); return; } + me.notify_check.checked = false; + me.refresh(); + }) + } + + this.make_list = function() { + this.lst_area = $a(this.wrapper, 'div', 'my-company-conversation', {padding:'7px 13px'}); + + if(user==uid) { + this.my_messages_box = $a(this.lst_area, 'div', 'my-company-conversation-head', {marginBottom:'7px'}, 'Messages by everyone to me
To send a message, click on the user on the left') + } + + this.lst = new wn.widgets.Listing({ + parent: this.lst_area, + no_result_message: (user==uid + ? 'No messages by anyone yet' + : 'No messages yet. To start a conversation post a new message'), + + get_query: function() { + if(uid==user) { + return repl("SELECT comment, owner, comment_docname, creation, docstatus " + + "FROM `tabComment Widget Record` "+ + "WHERE comment_doctype='My Company' " + + "AND comment_docname='%(user)s' " + + "ORDER BY creation DESC ", {user:user}); + + } else { + return repl("SELECT comment, owner, comment_docname, creation, docstatus " + + "FROM `tabComment Widget Record` "+ + "WHERE comment_doctype='My Company' " + + "AND ((owner='%(user)s' AND comment_docname='%(uid)s') " + + "OR (owner='%(uid)s' AND comment_docname='%(user)s')) " + + "ORDER BY creation DESC ", {uid:uid, user:user}); + + } + }, + render_row: function(parent, data) { + new MemberCoversationComment(parent, data, me); + }, + + }) + this.refresh(); + } + + this.refresh = function() { + me.lst.run() + } + + this.make(); +} + +MemberCoversationComment = function(cell, det, conv) { + var me = this; + this.det = det; + this.wrapper = $a(cell, 'div', 'my-company-comment-wrapper'); + this.comment = $a(this.wrapper, 'div', 'my-company-comment'); + + this.user = $a(this.comment, 'span', 'link_type', {fontWeight:'bold'}, pscript.get_fullname(det[1])); + this.user.onclick = function() { + page_body.pages['My Company'].member_list.show_profile(me.det[1]); + } + + var st = (!det[4] ? {fontWeight: 'bold'} : null); + this.msg = $a(this.comment, 'span', 'social', st, ': ' + det[0]); + + if(det[1]==user) { + $y(this.wrapper, {backgroundColor: '#D9D9F3'}); + } + this.timestamp = $a(this.wrapper, 'div', 'my-company-timestamp', '', comment_when(det[3])); +} + + + + + + + +// ========================== Role object ===================================== + +pscript.all_roles = null; + +RoleObj = function(profile_id){ + this.roles_dict = {}; + this.profile_id = profile_id; + this.setup_done = 0; + + var d = new Dialog(500,500,'Assign Roles'); + d.make_body([ + ['HTML','roles'] + ]); + + this.dialog = d; + this.make_role_body(profile_id); + this.make_help_body(); + + this.body.innerHTML = 'Loading... ' + var me=this; + + d.onshow = function() { + if(!me.setup_done) + me.get_all_roles(me.profile_id); + } +} + +// make role body +RoleObj.prototype.make_role_body = function(id){ + var me = this; + var d = this.dialog; + this.role_div = $a(d.widgets['roles'],'div'); + + this.head = $a(this.role_div,'div','',{marginLeft:'4px', marginBottom:'4px',fontWeight:'bold'}); + this.body = $a(this.role_div,'div'); + this.footer = $a(this.role_div,'div'); + + this.update_btn = $btn(this.footer,'Update',function() { me.update_roles(me.profile_id); },{marginRight:'4px'},'',1); +} + +// make help body +RoleObj.prototype.make_help_body = function(){ + var me = this; + + var d = this.dialog; + this.help_div = $a(d.widgets['roles'],'div'); + + var head = $a(this.help_div,'div'); this.help_div.head = head; + var body = $a(this.help_div,'div'); this.help_div.body = body; + var tail = $a(this.help_div,'div'); this.help_div.tail = tail; + + var back_btn = $btn(tail,'Back', function() { + // back to assign roles + $(me.role_div).slideToggle('medium'); + $(me.help_div).slideToggle('medium'); + }); + this.help_div.back_btn = back_btn; + $dh(this.help_div); +} + +// get all roles +RoleObj.prototype.get_all_roles = function(id){ + if(pscript.all_roles) { + this.make_roles(id); + return; + } + + var me = this; + var callback = function(r,rt){ + pscript.all_roles = r.message; + me.make_roles(id); + } + $c_obj('Company Control','get_all_roles','',callback); +} + +// make roles +RoleObj.prototype.make_roles = function(id){ + var me = this; + var list = pscript.all_roles; + me.setup_done = 1; + me.body.innerHTML = ''; + + var tbl = make_table( me.body, cint(list.length / 2) + 1,4,'100%',['5%','45%','5%','45%'],{padding:'4px'}); + var in_right = 0; var ridx = 0; + + for(i=0;i 1){ + var c = confirm("You have unchecked the System Manager role.\nYou will lose administrative rights and will not be able to set roles.\n\nDo you want to continue anyway?"); + if(!c) return; + } + else{ + var c = "There should be atleast one user with System Manager role."; + me.roles_dict['System Manager'].checked = 1; + } + } + me.set_roles(id); + } + $c_obj('Company Control','get_sm_count','',callback); + } + else{ + me.set_roles(id); + } +} + +// set roles +RoleObj.prototype.set_roles = function(id){ + + var me = this; + var role_list = []; + + for(d in me.roles_dict){ + if(me.roles_dict[d].checked){ + role_list.push(d); + } + } + + var callback = function(r,rt){ + me.update_btn.done_working(); + me.dialog.hide(); + } + var arg = {'usr':id, 'role_list':role_list}; + me.update_btn.set_working(); + $c_obj('Company Control','update_roles',docstring(arg), callback); + +} + +// get permission +RoleObj.prototype.get_permissions = function(role){ + var me = this; + + var callback = function(r,rt){ + $(me.help_div).slideToggle('medium'); + $(me.role_div).slideToggle('medium'); + me.set_permissions(r.message, role); + } + $c_obj('Company Control','get_permission',role,callback); +} + + +// set permission +RoleObj.prototype.set_permissions = function(perm, role){ + var me = this; + me.help_div.body.innerHTML =''; + + if(perm){ + me.help_div.head.innerHTML = 'Permissions for ' + role + ':

'; + + perm_tbl = make_table(me.help_div.body,cint(perm.length)+2,7,'100%',['30%','10%','10%','10%','10%','10%','10%'],{padding:'4px'}); + + var head_lst = ['Document','Read','Write','Create','Submit','Cancel','Amend']; + + for(var i=0; i<(head_lst.length-1);i++){ + $td(perm_tbl,0,i).innerHTML= ""+head_lst[i]+""; + } + var accept_img1 = 'images/icons/accept.gif'; + var cancel_img1 = 'images/icons/cancel.gif'; + + for(i=1; i
'; +} diff --git a/home/page/my_company/my_company.py b/home/page/my_company/my_company.py new file mode 100644 index 0000000000..cbdb8fced8 --- /dev/null +++ b/home/page/my_company/my_company.py @@ -0,0 +1,130 @@ +import webnotes + +from webnotes.utils import cint, load_json, cstr + +try: import json +except: import simplejson as json + +def get_account_settings_url(arg=''): + import server_tools.server_tools.gateway_utils + return server_tools.server_tools.gateway_utils.get_account_settings_url() + +# +# set max users +# +def get_max_users(arg=''): + from server_tools.server_tools.gateway_utils import get_max_users_gateway + return { + 'max_users': get_max_users_gateway(), + 'enabled': cint(webnotes.conn.sql("select count(*) from tabProfile where ifnull(enabled,0)=1 and name not in ('Administrator', 'Guest')")[0][0]) + } + +# +# enable profile in local +# +def enable_profile(arg=''): + webnotes.conn.sql("update tabProfile set enabled=1 where name=%s", arg) + return 1 + +# +# disable profile in local +# +def disable_profile(arg=''): + if arg=='Administrator': + return 'Cannot disable Administrator' + + webnotes.conn.sql("update tabProfile set enabled=0 where name=%s", arg) + return 0 + +# +# delete user +# +def delete_user(args): + args = json.loads(args) + webnotes.conn.sql("update tabProfile set enabled=0, docstatus=2 where name=%s", args['user']) + # erpnext-saas + if cint(webnotes.conn.get_value('Control Panel', None, 'sync_with_gateway')): + from server_tools.server_tools.gateway_utils import remove_user_gateway + remove_user_gateway(args['user']) + +# +# add user +# +def add_user(args): + args = json.loads(args) + add_profile(args['user']) + # erpnext-saas + if cint(webnotes.conn.get_value('Control Panel', None, 'sync_with_gateway')): + from server_tools.server_tools.gateway_utils import add_user_gateway + add_user_gateway(args['user']) + +# +# add profile record +# +def add_profile(email): + from webnotes.utils import validate_email_add + from webnotes.model.doc import Document + + sql = webnotes.conn.sql + + if not email: + email = webnotes.form_dict.get('user') + if not validate_email_add(email): + raise Exception + return 'Invalid Email Id' + + if sql("select name from tabProfile where name = %s", email): + # exists, enable it + sql("update tabProfile set enabled = 1, docstatus=0 where name = %s", email) + webnotes.msgprint('Profile exists, enabled it') + else: + # does not exist, create it! + pr = Document('Profile') + pr.name = email + pr.email = email + pr.enabled=1 + pr.user_type='System User' + pr.save(1) + +# +# post comment +# +def post_comment(arg): + arg = load_json(arg) + + from webnotes.model.doc import Document + d = Document('Comment Widget Record') + d.comment_doctype = 'My Company' + d.comment_docname = arg['uid'] # to + d.owner = webnotes.user.name + d.comment = arg['comment'] + d.save(1) + + if cint(arg['notify']): + fn = webnotes.conn.sql('select first_name, last_name from tabProfile where name=%s', webnotes.user.name)[0] + if fn[0] or f[1]: + fn = cstr(fn[0]) + (fn[0] and ' ' or '') + cstr(fn[1]) + else: + fn = webnotes.user.name + + from webnotes.utils.email_lib import sendmail + from settings.doctype.notification_control.notification_control import get_formatted_message + + message = '''A new comment has been posted on your page by %s: + + Comment: %s + + To answer, please login to your erpnext account! + ''' % (fn, arg['comment']) + + sendmail([arg['uid']], webnotes.user.name, get_formatted_message('New Comment', message), fn + ' has posted a new comment') + +# +# update read messages +# +def set_read_all_messages(arg=''): + webnotes.conn.sql("""UPDATE `tabComment Widget Record` + SET docstatus = 1 + WHERE comment_doctype = 'My Company' + AND comment_docname = %s + """, webnotes.user.name) diff --git a/home/page/my_company/my_company.txt b/home/page/my_company/my_company.txt new file mode 100644 index 0000000000..61aed51750 --- /dev/null +++ b/home/page/my_company/my_company.txt @@ -0,0 +1,64 @@ +[ + { + 'author': None, + 'category': None, + 'content': '', + 'creation': '2010-12-14 10:33:09', + 'docstatus': 0, + 'doctype': 'Page', + 'file_list': None, + 'icon': None, + 'idx': None, + 'keywords': None, + 'menu_index': None, + 'modified': '2010-12-01 17:09:46', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'My Company', + 'owner': 'Administrator', + 'page_name': 'My Company', + 'page_title': None, + 'parent': None, + 'parent_node': None, + 'parentfield': None, + 'parenttype': None, + 'publish': None, + 'script': None, + 'show_in_menu': 1, + 'site_description': None, + 'standard': 'Yes', + 'static_content': '', + 'style': '', + 'stylesheet': None, + 'template': None, + 'write_content': None + }, + { + 'creation': '2010-12-14 10:33:09', + 'docstatus': 0, + 'doctype': 'Page Role', + 'idx': 1, + 'modified': '2010-12-14 10:33:09', + 'modified_by': 'Administrator', + 'name': 'PR000235', + 'owner': 'Administrator', + 'parent': 'My Company', + 'parentfield': 'roles', + 'parenttype': 'Page', + 'role': 'Administrator' + }, + { + 'creation': '2010-12-14 10:33:09', + 'docstatus': 0, + 'doctype': 'Page Role', + 'idx': 2, + 'modified': '2010-12-14 10:33:09', + 'modified_by': 'Administrator', + 'name': 'PR000236', + 'owner': 'nabin@webnotestech.com', + 'parent': 'My Company', + 'parentfield': 'roles', + 'parenttype': 'Page', + 'role': 'All' + } +] \ No newline at end of file diff --git a/home/page/profile_settings/__init__.py b/home/page/profile_settings/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/page/profile_settings/profile_settings.js b/home/page/profile_settings/profile_settings.js new file mode 100644 index 0000000000..0e452764fa --- /dev/null +++ b/home/page/profile_settings/profile_settings.js @@ -0,0 +1,115 @@ +pscript['onload_profile-settings'] = function() { + var wrapper = page_body.pages['profile-settings']; + wrapper.className = 'layout_wrapper'; + pscript.myprofile = new MyProfile(wrapper) +} + +MyProfile = function(wrapper) { + this.wrapper = wrapper; + var me = this; + + this.make = function() { + this.head = new PageHeader(this.wrapper, 'My Profile Settings'); + this.head.add_button('Change Password', this.change_password) + this.tab = make_table($a(this.wrapper, 'div', '', {marginTop:'19px'}), + 1, 2, '90%', ['50%', '50%'], {padding:'11px'}) + this.img = $a($td(this.tab, 0, 0), 'img'); + set_user_img(this.img, user); + + $btn($a($td(this.tab, 0, 0), 'div', '', {marginTop:'11px'}), 'Change Image', this.change_image) + + this.make_form(); + this.load_details(); + } + + this.load_details = function() { + $c_page('event_updates','profile_settings','get_user_details','',function(r, rt) { + me.form.set_values(r.message); + }) + } + + // + // form + // + this.make_form = function() { + var div = $a($td(this.tab, 0, 1), 'div'); + this.form = new wn.widgets.FieldGroup() + this.form.make_fields(div, [ + {fieldname:'first_name', fieldtype:'Data',label:'First Name',reqd:1}, + {fieldname:'last_name', fieldtype:'Data',label:'Last Name',reqd:1}, + {fieldname:'bio', fieldtype:'Text',label:'Bio'}, + {fieldname:'update', fieldtype:'Button',label:'Update'} + ]); + + this.form.fields_dict.update.input.onclick = function() { + var v = me.form.get_values(); + if(v) { + this.set_working(); + var btn = this; + $c_page('event_updates','profile_settings','set_user_details',v,function(r, rt) { + btn.done_working(); + }) + } + } + } + + // + // change password + // + this.change_password = function() { + var d = new wn.widgets.Dialog({ + title:'Change Password', + width: 400, + fields: [ + {fieldname:'old_password', fieldtype:'Password', label:'Old Password', reqd:1 }, + {fieldname:'new_password', fieldtype:'Password', label:'New Password', reqd:1 }, + {fieldname:'new_password1', fieldtype:'Password', label:'Re-type New Password', reqd:1 }, + {fieldname:'change', fieldtype:'Button', label:'Change'} + ] + }) + d.make(); + d.fields_dict.change.input.onclick = function() { + var v = d.get_values(); + if(v) { + if(v.new_password != v.new_password1) { + msgprint('Passwords must match'); return; + } + this.set_working(); + $c_page('event_updates','profile_settings','change_password',v,function(r,rt) { + if(!r.message && r.exc) { msgprint(r.exc); return; } + d.hide(); + }) + } + } + d.show(); + } + + // + // change image + // + + this.change_image = function() { + if(!me.change_dialog) { + + var d = new Dialog(400,200,'Set Your Profile Image'); + d.make_body([ + ['HTML','wrapper'] + ]); + + var w = d.widgets['wrapper']; + me.uploader = new Uploader(w, {thumbnail:'80px', server_obj:'Company Control', method:'update_profile_image'}, pscript.user_image_upload) + me.change_dialog = d; + } + me.change_dialog.show(); + } + this.make(); +} + +pscript.user_image_upload = function(fid) { + msgprint('File Uploaded'); + + if(fid) { + pscript.myprofile.change_dialog.hide(); + set_user_img(pscript.myprofile.img, user, null, fid); + } +} \ No newline at end of file diff --git a/home/page/profile_settings/profile_settings.py b/home/page/profile_settings/profile_settings.py new file mode 100644 index 0000000000..3703d276d2 --- /dev/null +++ b/home/page/profile_settings/profile_settings.py @@ -0,0 +1,34 @@ +import webnotes + +from webnotes.utils import load_json, cint, nowdate + +# +# change profile (remote) +# +def change_password(arg): + arg = load_json(arg) + + if cint(webnotes.conn.get_value('Control Panel',None,'sync_with_gateway')): + import server_tools.server_tools.gateway_utils + webnotes.msgprint(server_tools.server_tools.gateway_utils.change_password(arg['old_password'], arg['new_password'])['message']) + else: + if not webnotes.conn.sql('select name from tabProfile where name=%s and password=password(%s)', (webnotes.session['user'], arg['old_password'])): + webnotes.msgprint('Old password is not correct', raise_exception=1) + + from webnotes.utils import nowdate + webnotes.conn.sql("update tabProfile set password=password(%s), password_last_updated=%s where name=%s",(arg['new_password'], nowdate(), webnotes.session['user'])) + webnotes.msgprint('Password Updated'); + +def get_user_details(arg=None): + "Returns user first name, last name and bio" + + return webnotes.conn.sql("select first_name, last_name, bio from tabProfile where name=%s", webnotes.user.name, as_dict=1)[0] + +def set_user_details(arg=None): + "updates user details given in argument" + from webnotes.model.doc import Document + + p = Document('Profile', webnotes.user.name) + p.fields.update(load_json(arg)) + p.save() + webnotes.msgprint('Updated') diff --git a/home/page/profile_settings/profile_settings.txt b/home/page/profile_settings/profile_settings.txt new file mode 100644 index 0000000000..2bd11e0658 --- /dev/null +++ b/home/page/profile_settings/profile_settings.txt @@ -0,0 +1,36 @@ +[ + { + 'author': None, + 'category': 'Standard', + 'content': None, + 'creation': '2011-04-13 12:08:59', + 'docstatus': 0, + 'doctype': 'Page', + 'file_list': None, + 'icon': None, + 'idx': None, + 'keywords': None, + 'menu_index': None, + 'modified': '2011-04-13 12:08:59', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'profile-settings', + 'owner': 'Administrator', + 'page_name': 'Profile Settings', + 'page_title': None, + 'parent': None, + 'parent_node': None, + 'parentfield': None, + 'parenttype': None, + 'publish': None, + 'script': None, + 'show_in_menu': None, + 'site_description': None, + 'standard': 'Yes', + 'static_content': None, + 'style': None, + 'stylesheet': None, + 'template': None, + 'write_content': None + } +] \ No newline at end of file diff --git a/home/search_criteria/__init__.py b/home/search_criteria/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/bills_to_be_paid/__init__.py b/home/search_criteria/bills_to_be_paid/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt b/home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt new file mode 100644 index 0000000000..d0df7aeb06 --- /dev/null +++ b/home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': None, + 'add_cond': '`tabPayable Voucher`.outstanding_amount!=0\n`tabPayable Voucher`.docstatus=1', + 'add_tab': None, + 'columns': 'Payable Voucher\x01ID,Payable Voucher\x01Voucher Date,Payable Voucher\x01Due Date,Payable Voucher\x01Credit To,Payable Voucher\x01Bill Date,Payable Voucher\x01Outstanding Amount', + 'creation': '2010-08-08 17:09:32', + 'criteria_name': 'Bills-To be paid', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Payable Voucher', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Payable Voucher\x01Submitted':1,'Payable Voucher\x01Is Opening':'','Payable Voucher\x01Fiscal Year':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-05-13 17:26:48', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'bills-to_be_paid', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabPayable Voucher`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/bills_to_be_submitted/__init__.py b/home/search_criteria/bills_to_be_submitted/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt b/home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt new file mode 100644 index 0000000000..69273bd03f --- /dev/null +++ b/home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': None, + 'add_cond': None, + 'add_tab': None, + 'columns': 'Payable Voucher\x01ID,Payable Voucher\x01Voucher Date,Payable Voucher\x01Due Date,Payable Voucher\x01Credit To,Payable Voucher\x01Bill No,Payable Voucher\x01Bill Date,Payable Voucher\x01Outstanding Amount', + 'creation': '2010-08-08 17:09:32', + 'criteria_name': 'Bills-To be submitted', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Payable Voucher', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Payable Voucher\x01Saved':1,'Payable Voucher\x01Is Opening':'','Payable Voucher\x01Fiscal Year':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-05-03 12:24:43', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'bills-to_be_submitted', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabPayable Voucher`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/delivery_note_to_be_billed/__init__.py b/home/search_criteria/delivery_note_to_be_billed/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt b/home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt new file mode 100644 index 0000000000..05fd4f4dd9 --- /dev/null +++ b/home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': None, + 'add_cond': 'ifnull(`tabDelivery Note`.per_billed, 0) < 100', + 'add_tab': None, + 'columns': 'Delivery Note\x01ID,Delivery Note\x01Owner,Delivery Note\x01Customer Name,Delivery Note\x01% Billed,Delivery Note\x01Company', + 'creation': '2010-08-08 17:09:32', + 'criteria_name': 'Delivery Note-To be billed', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Delivery Note', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'Submitted','Delivery Note\x01Fiscal Year':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-05-13 17:24:34', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'delivery_note-to_be_billed', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabDelivery Note`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/delivery_note_to_be_submitted/__init__.py b/home/search_criteria/delivery_note_to_be_submitted/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt b/home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt new file mode 100644 index 0000000000..1a7a1ef19f --- /dev/null +++ b/home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': None, + 'add_cond': None, + 'add_tab': None, + 'columns': 'Delivery Note\x01ID,Delivery Note\x01Owner,Delivery Note\x01Customer Name,Delivery Note\x01Posting Date,Delivery Note\x01Company', + 'creation': '2010-08-08 17:09:32', + 'criteria_name': 'Delivery Note-To be submitted', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Delivery Note', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Delivery Note\x01Saved':1,'Delivery Note\x01Status':'Draft','Delivery Note\x01Fiscal Year':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-05-13 17:17:58', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'delivery_note-to_be_submitted', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabDelivery Note`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/enquiry_quotations_to_be_sent/__init__.py b/home/search_criteria/enquiry_quotations_to_be_sent/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt b/home/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt new file mode 100644 index 0000000000..d65dd98c03 --- /dev/null +++ b/home/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': None, + 'add_cond': '`tabQuotation`.enq_no!=`tabEnquiry`.name\n', + 'add_tab': 'tabQuotation', + 'columns': 'Enquiry\x01ID,Enquiry\x01Owner', + 'creation': '2010-08-08 17:09:31', + 'criteria_name': 'Enquiry-Quotations to be sent', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Enquiry', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': '{}', + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-07-16 13:29:58', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'enquiry-quotations_to_be_sent', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabEnquiry`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/enquiry_to_follow_up/__init__.py b/home/search_criteria/enquiry_to_follow_up/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js b/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js new file mode 100644 index 0000000000..bb0e9e5414 --- /dev/null +++ b/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js @@ -0,0 +1,5 @@ +report.customize_filters = function() { + + this.filter_fields_dict['Enquiry'+FILTER_SEP +'Company'].df['report_default'] = sys_defaults.company; + this.filter_fields_dict['Enquiry'+FILTER_SEP +'Fiscal Year'].df['report_default'] = sys_defaults.fiscal_year; +} \ No newline at end of file diff --git a/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt b/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt new file mode 100644 index 0000000000..e16a8f63bd --- /dev/null +++ b/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': '', + 'add_cond': "`tabEnquiry`.name=`tabQuotation`.enq_no\n`tabEnquiry`.docstatus=1\n`tabQuotation`.status='Submitted'", + 'add_tab': None, + 'columns': 'Enquiry\x01ID,Enquiry\x01Owner,Enquiry\x01Company,Enquiry\x01Fiscal Year', + 'creation': '2010-09-01 15:47:57', + 'criteria_name': 'Enquiry-To follow up', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Enquiry', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Enquiry\x01Fiscal Year':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-08-30 12:08:00', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'enquiry-to_follow_up', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabEnquiry`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/indent_purchase_order_to_be_made/__init__.py b/home/search_criteria/indent_purchase_order_to_be_made/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt b/home/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt new file mode 100644 index 0000000000..31949d6c59 --- /dev/null +++ b/home/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': None, + 'add_cond': "`tabIndent`.status='Submitted'\nifnull(`tabIndent`.per_ordered,0)<100", + 'add_tab': '', + 'columns': 'Indent\x01ID,Indent\x01Indent Date,Indent\x01Requested By,Indent\x01Owner,Indent\x01% Ordered', + 'creation': '2010-08-08 17:09:32', + 'criteria_name': 'Indent-Purchase Order to be made', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Indent', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Indent\x01Submitted':1,'Indent\x01Status':'Submitted','Indent\x01Fiscal Year':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-05-13 17:37:18', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'indent-purchase_order_to_be_made', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabIndent`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/indent_to_be_submitted/__init__.py b/home/search_criteria/indent_to_be_submitted/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt b/home/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt new file mode 100644 index 0000000000..09768c0466 --- /dev/null +++ b/home/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': None, + 'add_cond': "`tabIndent`.status='Draft'", + 'add_tab': None, + 'columns': 'Indent\x01ID,Indent\x01Owner,Indent\x01Indent Date,Indent\x01Remarks', + 'creation': '2010-08-08 17:09:32', + 'criteria_name': 'Indent-To be submitted', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Indent', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Indent\x01Saved':1,'Indent\x01Status':'Draft','Indent\x01Fiscal Year':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-05-13 17:38:49', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'indent-to_be_submitted', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabIndent`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/invoices_overdue/__init__.py b/home/search_criteria/invoices_overdue/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/invoices_overdue/invoices_overdue.txt b/home/search_criteria/invoices_overdue/invoices_overdue.txt new file mode 100644 index 0000000000..077d3c1a1c --- /dev/null +++ b/home/search_criteria/invoices_overdue/invoices_overdue.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': None, + 'add_cond': '`tabReceivable Voucher`.due_datenow() \n`tabReceivable Voucher`.outstanding_amount!=0\n`tabReceivable Voucher`.docstatus=1', + 'add_tab': None, + 'columns': 'Receivable Voucher\x01ID,Receivable Voucher\x01Owner,Receivable Voucher\x01Debit To,Receivable Voucher\x01Voucher Date,Receivable Voucher\x01Due Date,Receivable Voucher\x01Outstanding Amount', + 'creation': '2010-08-08 17:09:31', + 'criteria_name': 'Invoices-To receive payment', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Receivable Voucher', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Receivable Voucher\x01Submitted':1,'Receivable Voucher\x01Is Opening':'','Receivable Voucher\x01Fiscal Year':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-04-30 16:54:26', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'invoices-to_receive_payment', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabReceivable Voucher`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/lead_to_follow_up/__init__.py b/home/search_criteria/lead_to_follow_up/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/lead_to_follow_up/lead_to_follow_up.js b/home/search_criteria/lead_to_follow_up/lead_to_follow_up.js new file mode 100644 index 0000000000..ff22521c74 --- /dev/null +++ b/home/search_criteria/lead_to_follow_up/lead_to_follow_up.js @@ -0,0 +1,5 @@ +report.customize_filters = function() { + this.filter_fields_dict['Lead'+FILTER_SEP +'Status'].df.filter_hide = 1; + this.filter_fields_dict['Lead'+FILTER_SEP +'Fiscal Year'].df['report_default'] = sys_defaults.fiscal_year; +} + \ No newline at end of file diff --git a/home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt b/home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt new file mode 100644 index 0000000000..2d4bd2804c --- /dev/null +++ b/home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': None, + 'add_cond': "`tabLead`.status!='Converted' \n`tabLead`.status!='Lead Lost' \n`tabLead`.status!='Not Interested'", + 'add_tab': None, + 'columns': 'Lead\x01ID,Lead\x01Status,Lead\x01Lead Name,Lead\x01Lead Date,Lead\x01Lead Owner,Lead\x01Next Contact Date', + 'creation': '2010-09-01 15:47:57', + 'criteria_name': 'Lead-To follow up', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Lead', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Lead\x01Status':'','Lead\x01Source':'','Lead\x01Expected Month':'','Lead\x01Industry':'','Lead\x01Market Segment':'','Lead\x01Rating':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-08-30 12:01:19', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'lead-to_follow_up', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabLead`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/lead_to_follow_up/sales_order_overdue.js b/home/search_criteria/lead_to_follow_up/sales_order_overdue.js new file mode 100644 index 0000000000..0f86a56ad0 --- /dev/null +++ b/home/search_criteria/lead_to_follow_up/sales_order_overdue.js @@ -0,0 +1,11 @@ +report.customize_filters = function() { + this.hide_all_filters(); + this.filter_fields_dict['Sales Order'+FILTER_SEP +'Customer'].df.filter_hide = 0; + this.filter_fields_dict['Sales Order'+FILTER_SEP +'ID'].df.filter_hide = 0; + this.filter_fields_dict['Sales Order'+FILTER_SEP +'Quotation No'].df.filter_hide = 0; + this.filter_fields_dict['Sales Order'+FILTER_SEP +'Company'].df.filter_hide = 0; + this.filter_fields_dict['Sales Order'+FILTER_SEP +'Sales Partner'].df.filter_hide = 0; + this.filter_fields_dict['Sales Order'+FILTER_SEP +'Fiscal Year'].df.filter_hide = 0; + this.filter_fields_dict['Sales Order'+FILTER_SEP +'From Sales Order Date'].df.filter_hide = 0; + this.filter_fields_dict['Sales Order'+FILTER_SEP +'To Sales Order Date'].df.filter_hide = 0; +} \ No newline at end of file diff --git a/home/search_criteria/purchase_order_to_be_billed/__init__.py b/home/search_criteria/purchase_order_to_be_billed/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt b/home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt new file mode 100644 index 0000000000..b9d28e3d76 --- /dev/null +++ b/home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': None, + 'add_cond': "ifnull(`tabPurchase Order`.per_billed,0)<100\n`tabPurchase Order`.status='Submitted'", + 'add_tab': None, + 'columns': 'Purchase Order\x01ID,Purchase Order\x01Supplier,Purchase Order\x01PO Date,Purchase Order\x01Company,Purchase Order\x01Grand Total', + 'creation': '2010-08-08 17:09:32', + 'criteria_name': 'Purchase Order-To be billed', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Purchase Order', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Purchase Order\x01Submitted':1,'Purchase Order\x01Status':'Submitted','Purchase Order\x01Fiscal Year':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-05-13 17:31:42', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'purchase_order-to_be_billed', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabPurchase Order`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/purchase_order_to_be_submitted/__init__.py b/home/search_criteria/purchase_order_to_be_submitted/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt b/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt new file mode 100644 index 0000000000..728d57615c --- /dev/null +++ b/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': None, + 'add_cond': None, + 'add_tab': None, + 'columns': 'Purchase Order\x01ID,Purchase Order\x01Supplier,Purchase Order\x01PO Date,Purchase Order\x01Company,Purchase Order\x01Grand Total', + 'creation': '2010-08-08 17:09:32', + 'criteria_name': 'Purchase Order-To be submitted', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Purchase Order', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Purchase Order\x01Saved':1,'Purchase Order\x01Submitted':0,'Purchase Order\x01Status':'Draft','Purchase Order\x01Fiscal Year':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-05-03 11:19:23', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'purchase_order-to_be_submitted', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabPurchase Order`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/purchase_order_to_receive_items/__init__.py b/home/search_criteria/purchase_order_to_receive_items/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt b/home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt new file mode 100644 index 0000000000..a40e17e038 --- /dev/null +++ b/home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': None, + 'add_cond': "ifnull(`tabPurchase Order`.per_received,0)<100\n`tabPurchase Order`.status='Submitted'", + 'add_tab': None, + 'columns': 'Purchase Order\x01ID,Purchase Order\x01Supplier,Purchase Order\x01PO Date,Purchase Order\x01Company,Purchase Order\x01% Received,Purchase Order\x01Grand Total', + 'creation': '2010-08-08 17:09:32', + 'criteria_name': 'Purchase Order-To receive items', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Purchase Order', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Purchase Order\x01Submitted':1,'Purchase Order\x01Status':'Submitted','Purchase Order\x01Fiscal Year':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-05-13 17:34:22', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'purchase_order-to_receive_items', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabPurchase Order`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/sales_order_overdue/__init__.py b/home/search_criteria/sales_order_overdue/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/sales_order_overdue/sales_order_overdue.txt b/home/search_criteria/sales_order_overdue/sales_order_overdue.txt new file mode 100644 index 0000000000..4c5101f1c1 --- /dev/null +++ b/home/search_criteria/sales_order_overdue/sales_order_overdue.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': None, + 'add_cond': '`tabSales Order`.delivery_date now()", + 'add_tab': None, + 'columns': 'Sales Order\x01ID,Sales Order\x01Owner,Sales Order\x01Status,Sales Order\x01Customer,Sales Order\x01Sales Order Date,Sales Order\x01Expected Delivery Date,Sales Order\x01Quotation No', + 'creation': '2010-08-08 17:09:31', + 'criteria_name': 'Sales Order-To be delivered', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Sales Order', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Sales Order\x01Saved':1,'Sales Order\x01Submitted':1,'Sales Order\x01Fiscal Year':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-05-13 17:53:29', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'sales_order-to_be_delivered', + 'owner': 'Administrator', + 'page_len': 100, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': '', + 'sort_by': '`tabSales Order`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/sales_order_to_be_submitted/__init__.py b/home/search_criteria/sales_order_to_be_submitted/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt b/home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt new file mode 100644 index 0000000000..c789c2c897 --- /dev/null +++ b/home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': None, + 'add_cond': "`tabSales Order`.status='Draft'", + 'add_tab': None, + 'columns': 'Sales Order\x01ID,Sales Order\x01Customer,Sales Order\x01Sales Order Date,Sales Order\x01Quotation No', + 'creation': '2010-08-08 17:09:31', + 'criteria_name': 'Sales Order-To be submitted', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Sales Order', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Sales Order\x01Saved':1,'Sales Order\x01Fiscal Year':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-05-13 17:47:45', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'sales_order-to_be_submitted', + 'owner': 'Administrator', + 'page_len': 100, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabSales Order`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/serial_no_amc_expiring_this_month/__init__.py b/home/search_criteria/serial_no_amc_expiring_this_month/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt b/home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt new file mode 100644 index 0000000000..336eaa70c3 --- /dev/null +++ b/home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': '', + 'add_cond': '`tab Serial No`.month(amc_expiry_date)=month(now()) \n`tab Serial No`.year(amc_expiry_date)=year(now())', + 'add_tab': None, + 'columns': 'Serial No\x01ID,Serial No\x01Status,Serial No\x01AMC Expiry Date,Serial No\x01Customer Name', + 'creation': '2010-08-08 17:09:32', + 'criteria_name': 'Serial No-AMC expiring this month', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Serial No', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Serial No\x01Saved':1,'Serial No\x01Submitted':1,'Serial No\x01Status':'','Serial No\x01Warranty Status':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-07-29 15:01:33', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'serial_no-amc_expiring_this_month', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabSerial No`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/serial_no_warranty_expiring_this_month/__init__.py b/home/search_criteria/serial_no_warranty_expiring_this_month/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt b/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt new file mode 100644 index 0000000000..f9713e0d96 --- /dev/null +++ b/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': '', + 'add_cond': "`tab Serial No`.docstatus!=2\n`tab Serial No`.maintenance_status='Under Warranty'\n`tab Serial No`.status!='Scrapped'\n`tab Serial No`.status!='Not in Use'\n`tab Serial No`.month(ifnull(warranty_expiry_date,0)) = month(now()) \n`tab Serial No`.yearmonth(ifnull(warranty_expiry_date,0)) = year(now())", + 'add_tab': None, + 'columns': 'Serial No\x01ID,Serial No\x01Status,Serial No\x01Warranty Expiry Date,Serial No\x01Customer Name', + 'creation': '2010-08-08 17:09:32', + 'criteria_name': 'Serial No-Warranty expiring this month', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Serial No', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Serial No\x01Saved':1,'Serial No\x01Submitted':1,'Serial No\x01Status':'Issued','Serial No\x01Maintenance Status':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-07-23 09:57:51', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'serial_no-warranty_expiring_this_month', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabSerial No`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file diff --git a/home/search_criteria/task_open/__init__.py b/home/search_criteria/task_open/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/home/search_criteria/task_open/task_open.txt b/home/search_criteria/task_open/task_open.txt new file mode 100644 index 0000000000..f82a3fc1ef --- /dev/null +++ b/home/search_criteria/task_open/task_open.txt @@ -0,0 +1,37 @@ +[ + { + 'add_col': None, + 'add_cond': "`tabTicket`.status='Open'", + 'add_tab': None, + 'columns': 'Ticket\x01ID,Ticket\x01Subject,Ticket\x01Priority,Ticket\x01Raised By,Ticket\x01Allocated To', + 'creation': '2010-08-08 17:09:32', + 'criteria_name': 'Task-Open', + 'custom_query': '', + 'description': None, + 'dis_filters': None, + 'disabled': None, + 'doc_type': 'Ticket', + 'docstatus': 0, + 'doctype': 'Search Criteria', + 'filters': "{'Ticket\x01Priority':''}", + 'graph_series': None, + 'graph_values': None, + 'group_by': None, + 'idx': None, + 'modified': '2010-07-16 13:03:49', + 'modified_by': 'Administrator', + 'module': 'Home', + 'name': 'task-open', + 'owner': 'Administrator', + 'page_len': 50, + 'parent': None, + 'parent_doc_type': None, + 'parentfield': None, + 'parenttype': None, + 'report_script': '', + 'server_script': None, + 'sort_by': '`tabTicket`.`name`', + 'sort_order': 'DESC', + 'standard': 'Yes' + } +] \ No newline at end of file From 5c520b6090b3c8adc50e163ef71db535193b5a64 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 13 Jun 2011 17:55:15 +0530 Subject: [PATCH 6/7] changed module link of event_updates and my_company to home --- home/page/event_updates/event_updates.js | 4 ++-- home/page/my_company/my_company.js | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/home/page/event_updates/event_updates.js b/home/page/event_updates/event_updates.js index 7a401de69f..4ae085796b 100644 --- a/home/page/event_updates/event_updates.js +++ b/home/page/event_updates/event_updates.js @@ -610,7 +610,7 @@ pscript.home_make_status = function() { var wrapper = page_body.pages['Event Updates']; // get values - $c_page('event_updates', 'event_updates', 'get_status_details', user, + $c_page('home', 'event_updates', 'get_status_details', user, function(r,rt) { home_status_bar.render(r.message); @@ -640,7 +640,7 @@ pscript.convert_to_paid = function() { if(r.exc) { msgprint(r.exc); return; } $(pscript.trial_box).slideUp(); } - $c_page('event_updates','event_updates','convert_to_paid','',callback) + $c_page('home','event_updates','convert_to_paid','',callback) } // show system message diff --git a/home/page/my_company/my_company.js b/home/page/my_company/my_company.js index ea436041c4..0384788b29 100644 --- a/home/page/my_company/my_company.js +++ b/home/page/my_company/my_company.js @@ -34,7 +34,7 @@ pscript.myc_show_erpnext_message = function() { + ' users enabled out of ' + r.message.max_user + '. Go to Account Settings to increase the number of users'); } - $c_page('my_company', 'my_company', 'get_max_users', '', callback) + $c_page('home', 'my_company', 'get_max_users', '', callback) } // @@ -54,7 +54,7 @@ pscript.myc_add_user = function() { v = d.get_values(); if(v) { d.fields_dict.add.input.set_working(); - $c_page('my_company', 'my_company', 'add_user', v, function(r,rt) { + $c_page('home', 'my_company', 'add_user', v, function(r,rt) { if(r.exc) { msgprint(r.exc); return; } else { d.hide(); @@ -99,7 +99,7 @@ MemberList = function(parent) { if(pscript.online_users) { this.make_list(); } else { - $c_page('event_updates', 'event_updates', 'get_online_users', '', function(r,rt) { + $c_page('home', 'event_updates', 'get_online_users', '', function(r,rt) { pscript.online_users = r.message; me.make_list(); }) @@ -333,7 +333,7 @@ MemberProfile = function(parent, uid, member_item) { pscript.myc_refresh() msgprint("User Deleted Successfully"); } - $c_page('my_company', 'my_company', 'delete_user', {'user': me.uid}, callback); + $c_page('home', 'my_company', 'delete_user', {'user': me.uid}, callback); } d.show(); } @@ -354,7 +354,7 @@ MemberProfile = function(parent, uid, member_item) { me.refresh_enable_disable(); } this.set_working(); - $c_page('my_company','my_company', this.innerHTML.toLowerCase()+'_profile',me.profile.name, callback); + $c_page('home','my_company', this.innerHTML.toLowerCase()+'_profile',me.profile.name, callback); }, null, null, 1); } if(this.uid==user) $dh(this.status_button); else $di(this.status_button); @@ -473,7 +473,7 @@ MemberConversation = function(parent, uid, fullname) { // set all messages // as "read" (docstatus = 0) if(user==uid) { - $c_page('my_company', 'my_company', 'set_read_all_messages', '', function(r,rt) { }); + $c_page('home', 'my_company', 'set_read_all_messages', '', function(r,rt) { }); } } @@ -505,7 +505,7 @@ MemberConversation = function(parent, uid, fullname) { msgprint('Please write a message first!'); return; } this.post.set_working(); - $c_page('my_company', 'my_company', 'post_comment', { + $c_page('home', 'my_company', 'post_comment', { uid: uid, comment: $(me.input).val(), notify: me.notify_check.checked ? 1 : 0 From b2e8f0c1323c32df4a9546e3695f8390d18d09be Mon Sep 17 00:00:00 2001 From: root Date: Mon, 13 Jun 2011 18:34:38 +0530 Subject: [PATCH 7/7] changed module link of event_updates and my_company to home --- accounts/doctype/form_16a/form_16a.py | 6 ------ home/page/profile_settings/profile_settings.js | 8 ++++---- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/accounts/doctype/form_16a/form_16a.py b/accounts/doctype/form_16a/form_16a.py index ef2c8acc1c..742c4540b3 100644 --- a/accounts/doctype/form_16a/form_16a.py +++ b/accounts/doctype/form_16a/form_16a.py @@ -98,9 +98,3 @@ class DocType: tot=flt(tot)+flt(d.total_tax_deposited) self.doc.total_amount = flt(tot) - - # on update - def on_update(self): - obj = get_obj('Feed Control', 'Feed Control') - - obj.make_feed(self.doc) diff --git a/home/page/profile_settings/profile_settings.js b/home/page/profile_settings/profile_settings.js index 0e452764fa..10b06d422a 100644 --- a/home/page/profile_settings/profile_settings.js +++ b/home/page/profile_settings/profile_settings.js @@ -23,7 +23,7 @@ MyProfile = function(wrapper) { } this.load_details = function() { - $c_page('event_updates','profile_settings','get_user_details','',function(r, rt) { + $c_page('home','profile_settings','get_user_details','',function(r, rt) { me.form.set_values(r.message); }) } @@ -46,7 +46,7 @@ MyProfile = function(wrapper) { if(v) { this.set_working(); var btn = this; - $c_page('event_updates','profile_settings','set_user_details',v,function(r, rt) { + $c_page('home','profile_settings','set_user_details',v,function(r, rt) { btn.done_working(); }) } @@ -75,7 +75,7 @@ MyProfile = function(wrapper) { msgprint('Passwords must match'); return; } this.set_working(); - $c_page('event_updates','profile_settings','change_password',v,function(r,rt) { + $c_page('home','profile_settings','change_password',v,function(r,rt) { if(!r.message && r.exc) { msgprint(r.exc); return; } d.hide(); }) @@ -112,4 +112,4 @@ pscript.user_image_upload = function(fid) { pscript.myprofile.change_dialog.hide(); set_user_img(pscript.myprofile.img, user, null, fid); } -} \ No newline at end of file +}