From 0ad995460c3551175be9cfc0920d35b5c4873be8 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 22 Feb 2013 10:34:22 +0530 Subject: [PATCH 1/4] fixed tags in kb --- public/js/kb_common.js | 1 + utilities/page/question_view/question_view.js | 4 ++- utilities/page/questions/questions.js | 25 ++++++++++--------- website/templates/html/product_in_list.html | 2 +- website/templates/pages/attributions.html | 4 +-- 5 files changed, 19 insertions(+), 17 deletions(-) diff --git a/public/js/kb_common.js b/public/js/kb_common.js index 1e3fcba15a3..6dca3f8dbb6 100644 --- a/public/js/kb_common.js +++ b/public/js/kb_common.js @@ -108,6 +108,7 @@ EditableText = function(args) { this.set_display(me.text); if(me.height) me.$w.find('.ed-text-input').css('height', me.height); + if(me.width) me.$w.find('.ed-text-input').css('width', me.width); // edit me.$w.find('.ed-text-edit').click(function() { diff --git a/utilities/page/question_view/question_view.js b/utilities/page/question_view/question_view.js index ea1a2dc70a5..e479e131c55 100644 --- a/utilities/page/question_view/question_view.js +++ b/utilities/page/question_view/question_view.js @@ -90,6 +90,7 @@ KBQuestionView = function(w, qid, qtext) { $(w.add_answer_area, '

Add your Answer

\
In markdown format
'); this.input = $a(w.add_answer_area, 'textarea'); + $(this.input).css({width: "90%", height: "200px"}); //wn.tinymce.add_simple(this.input); this.btn = $btn($a(w.add_answer_area, 'div'), 'Post', function() { @@ -174,7 +175,8 @@ KBAnswer = function(body, data, ans_list) { text: data.answer, inp_class: 'qv-ans-input', disp_class: 'qv-ans-text', - height: '300px' + height: '300px', + width: '90%' }); $(edtxt.wrapper).addClass('well'); diff --git a/utilities/page/questions/questions.js b/utilities/page/questions/questions.js index 0e88728d22e..e7e99b5323a 100644 --- a/utilities/page/questions/questions.js +++ b/utilities/page/questions/questions.js @@ -25,19 +25,17 @@ pscript.onload_questions = function(wrapper) { // kb var kb = new KnowledgeBase(body); - // sidebar - this.sidebar = new wn.widgets.PageSidebar($(wrapper).find('.questions-tags').get(0), { - sections: [ - { - title: 'Top Tags', - render: function(body) { - new wn.widgets.TagCloud(body, 'Question', function(tag) - { kb.set_tag_filter(tag) }); - } + wn.model.with_doctype("Question", function() { + this.sidebar_stats = new wn.views.SidebarStats({ + doctype: "Question", + stats: ["_user_tags"], + parent: $(wrapper).find('.questions-tags'), + set_filter: function(fieldname, label) { + kb.set_filter(fieldname, label); + //me.set_filter(fieldname, label); } - ] - }); - set_title('Knowledge Base'); + }); + }) } // knowledge base object @@ -137,6 +135,9 @@ function KnowledgeBase(w) { } + this.set_filter = function(fieldname, label) { + this.set_tag_filter({label:label}); + } // add a tag filter to the search in the // main page this.set_tag_filter = function(tag) { diff --git a/website/templates/html/product_in_list.html b/website/templates/html/product_in_list.html index 5daa44e1678..43b0134c1d1 100644 --- a/website/templates/html/product_in_list.html +++ b/website/templates/html/product_in_list.html @@ -6,7 +6,7 @@ {% include 'html/product_missing_image.html' %} {% endif %} -
+

{{ item_name }}

Item Code: {{ name }}

diff --git a/website/templates/pages/attributions.html b/website/templates/pages/attributions.html index e587484377a..2d195ba9cd6 100644 --- a/website/templates/pages/attributions.html +++ b/website/templates/pages/attributions.html @@ -11,8 +11,7 @@ {% set title="ERPNext - Web Based, Open Source ERP" %} {% block content %} -
-
+

This website is made using these Awesome Open Source Projects


@@ -105,6 +104,5 @@

Note: A link to this page must be easily accessible.

-
{% endblock %} \ No newline at end of file From c359a58766c07abb047399df44548c5d088c0c71 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 22 Feb 2013 10:48:07 +0530 Subject: [PATCH 2/4] added Item Name in pending type query reports --- .../delivered_items_to_be_billed.txt | 6 +++--- .../ordered_items_to_be_billed.txt | 6 +++--- .../ordered_items_to_be_delivered.txt | 6 +++--- .../purchase_order_items_to_be_received.txt | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/accounts/report/delivered_items_to_be_billed/delivered_items_to_be_billed.txt b/accounts/report/delivered_items_to_be_billed/delivered_items_to_be_billed.txt index 9ee3b111ed7..88ff16a0232 100644 --- a/accounts/report/delivered_items_to_be_billed/delivered_items_to_be_billed.txt +++ b/accounts/report/delivered_items_to_be_billed/delivered_items_to_be_billed.txt @@ -1,8 +1,8 @@ [ { - "creation": "2012-11-28 11:24:29", + "creation": "2013-02-21 14:26:44", "docstatus": 0, - "modified": "2013-02-21 11:41:51", + "modified": "2013-02-22 10:46:13", "modified_by": "Administrator", "owner": "Administrator" }, @@ -10,7 +10,7 @@ "doctype": "Report", "is_standard": "Yes", "name": "__common__", - "query": "select \n `tabDelivery Note`.`name` as \"Delivery Note:Link/Delivery Note:120\",\n`tabDelivery Note`.`customer` as \"Customer:Link/Customer:120\",\n`tabDelivery Note`.`status` as \"Status\",\n `tabDelivery Note`.`posting_date` as \"Date:Date\",\n `tabDelivery Note`.`project_name` as \"Project\",\n `tabDelivery Note Item`.item_code as \"Item:Link/Item:120\",\n `tabDelivery Note Item`.description as \"Description:Data:120\",\n `tabDelivery Note Item`.amount as \"Amount:Currency:110\",\n (`tabDelivery Note Item`.billed_amt * ifnull(`tabDelivery Note`.conversion_rate, 1)) as \"Billed Amount:Currency:110\",\n (ifnull(`tabDelivery Note Item`.amount,0) - (ifnull(`tabDelivery Note Item`.billed_amt,0) * ifnull(`tabDelivery Note`.conversion_rate, 1))) as \"Pending Amount:Currency:120\"\nfrom\n `tabDelivery Note`, `tabDelivery Note Item`\nwhere\n `tabDelivery Note Item`.`parent` = `tabDelivery Note`.`name`\n and `tabDelivery Note`.docstatus = 1\n and `tabDelivery Note`.status != \"Stopped\"\n and ifnull(`tabDelivery Note Item`.billed_amt,0) < ifnull(`tabDelivery Note Item`.export_amount,0)\norder by `tabDelivery Note`.posting_date asc", + "query": "select \n `tabDelivery Note`.`name` as \"Delivery Note:Link/Delivery Note:120\",\n`tabDelivery Note`.`customer` as \"Customer:Link/Customer:120\",\n`tabDelivery Note`.`status` as \"Status\",\n `tabDelivery Note`.`posting_date` as \"Date:Date\",\n `tabDelivery Note`.`project_name` as \"Project\",\n `tabDelivery Note Item`.item_code as \"Item:Link/Item:120\",\n `tabDelivery Note Item`.amount as \"Amount:Currency:110\",\n (`tabDelivery Note Item`.billed_amt * ifnull(`tabDelivery Note`.conversion_rate, 1)) as \"Billed Amount:Currency:110\",\n (ifnull(`tabDelivery Note Item`.amount,0) - (ifnull(`tabDelivery Note Item`.billed_amt,0) * ifnull(`tabDelivery Note`.conversion_rate, 1))) as \"Pending Amount:Currency:120\",\n `tabDelivery Note Item`.item_name as \"Item Name::150\",\n `tabDelivery Note Item`.description as \"Description:Data:200\"\nfrom\n `tabDelivery Note`, `tabDelivery Note Item`\nwhere\n `tabDelivery Note Item`.`parent` = `tabDelivery Note`.`name`\n and `tabDelivery Note`.docstatus = 1\n and `tabDelivery Note`.status != \"Stopped\"\n and ifnull(`tabDelivery Note Item`.billed_amt,0) < ifnull(`tabDelivery Note Item`.export_amount,0)\norder by `tabDelivery Note`.posting_date asc", "ref_doctype": "Sales Invoice" }, { diff --git a/accounts/report/ordered_items_to_be_billed/ordered_items_to_be_billed.txt b/accounts/report/ordered_items_to_be_billed/ordered_items_to_be_billed.txt index 8e4c641382f..b251bd90c6a 100644 --- a/accounts/report/ordered_items_to_be_billed/ordered_items_to_be_billed.txt +++ b/accounts/report/ordered_items_to_be_billed/ordered_items_to_be_billed.txt @@ -1,8 +1,8 @@ [ { - "creation": "2012-12-14 14:27:05", + "creation": "2013-02-21 14:26:44", "docstatus": 0, - "modified": "2013-02-21 11:42:29", + "modified": "2013-02-22 10:47:24", "modified_by": "Administrator", "owner": "Administrator" }, @@ -10,7 +10,7 @@ "doctype": "Report", "is_standard": "Yes", "name": "__common__", - "query": "select \n `tabSales Order`.`name` as \"Sales Order:Link/Sales Order:120\",\n `tabSales Order`.`customer` as \"Customer:Link/Customer:120\",\n `tabSales Order`.`status` as \"Status\",\n `tabSales Order`.`transaction_date` as \"Date:Date\",\n `tabSales Order`.`project_name` as \"Project\",\n `tabSales Order Item`.item_code as \"Item:Link/Item:120\",\n `tabSales Order Item`.description as \"Description:Data:120\",\n `tabSales Order Item`.amount as \"Amount:Currency:110\",\n (`tabSales Order Item`.billed_amt * ifnull(`tabSales Order`.conversion_rate, 1)) as \"Billed Amount:Currency:110\",\n (ifnull(`tabSales Order Item`.amount, 0) - (ifnull(`tabSales Order Item`.billed_amt, 0) * ifnull(`tabSales Order`.conversion_rate, 1))) as \"Pending Amount:Currency:120\"\nfrom\n `tabSales Order`, `tabSales Order Item`\nwhere\n `tabSales Order Item`.`parent` = `tabSales Order`.`name`\n and `tabSales Order`.docstatus = 1\n and `tabSales Order`.status != \"Stopped\"\n and ifnull(`tabSales Order Item`.billed_amt,0) < ifnull(`tabSales Order Item`.export_amount,0)\norder by `tabSales Order`.transaction_date asc", + "query": "select \n `tabSales Order`.`name` as \"Sales Order:Link/Sales Order:120\",\n `tabSales Order`.`customer` as \"Customer:Link/Customer:120\",\n `tabSales Order`.`status` as \"Status\",\n `tabSales Order`.`transaction_date` as \"Date:Date\",\n `tabSales Order`.`project_name` as \"Project\",\n `tabSales Order Item`.item_code as \"Item:Link/Item:120\",\n `tabSales Order Item`.amount as \"Amount:Currency:110\",\n (`tabSales Order Item`.billed_amt * ifnull(`tabSales Order`.conversion_rate, 1)) as \"Billed Amount:Currency:110\",\n (ifnull(`tabSales Order Item`.amount, 0) - (ifnull(`tabSales Order Item`.billed_amt, 0) * ifnull(`tabSales Order`.conversion_rate, 1))) as \"Pending Amount:Currency:120\",\n `tabSales Order Item`.item_name as \"Item Name::150\",\n `tabSales Order Item`.description as \"Description::200\"\nfrom\n `tabSales Order`, `tabSales Order Item`\nwhere\n `tabSales Order Item`.`parent` = `tabSales Order`.`name`\n and `tabSales Order`.docstatus = 1\n and `tabSales Order`.status != \"Stopped\"\n and ifnull(`tabSales Order Item`.billed_amt,0) < ifnull(`tabSales Order Item`.export_amount,0)\norder by `tabSales Order`.transaction_date asc", "ref_doctype": "Sales Invoice" }, { diff --git a/stock/report/ordered_items_to_be_delivered/ordered_items_to_be_delivered.txt b/stock/report/ordered_items_to_be_delivered/ordered_items_to_be_delivered.txt index bf2c0ffd497..afcaef08af4 100644 --- a/stock/report/ordered_items_to_be_delivered/ordered_items_to_be_delivered.txt +++ b/stock/report/ordered_items_to_be_delivered/ordered_items_to_be_delivered.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-02-02 22:33:12", + "creation": "2013-02-21 14:26:49", "docstatus": 0, - "modified": "2013-02-21 11:40:05", + "modified": "2013-02-22 10:43:27", "modified_by": "Administrator", "owner": "Administrator" }, @@ -10,7 +10,7 @@ "doctype": "Report", "is_standard": "Yes", "name": "__common__", - "query": "select \n `tabSales Order`.`name` as \"Sales Order:Link/Sales Order:120\",\n `tabSales Order`.`customer` as \"Customer:Link/Customer:120\",\n `tabSales Order`.`status` as \"Status\",\n `tabSales Order`.`transaction_date` as \"Date:Date\",\n `tabSales Order`.`project_name` as \"Project\",\n `tabSales Order Item`.item_code as \"Item:Link/Item:120\",\n `tabSales Order Item`.description as \"Description\",\n `tabSales Order Item`.qty as \"Qty:Float\",\n `tabSales Order Item`.delivered_qty as \"Delivered Qty:Float\",\n (`tabSales Order Item`.qty - ifnull(`tabSales Order Item`.delivered_qty, 0)) as \"Qty to Deliver:Float\"\nfrom\n `tabSales Order`, `tabSales Order Item`\nwhere\n `tabSales Order Item`.`parent` = `tabSales Order`.`name`\n and `tabSales Order`.docstatus = 1\n and `tabSales Order`.status != \"Stopped\"\n and ifnull(`tabSales Order Item`.delivered_qty,0) < ifnull(`tabSales Order Item`.qty,0)\norder by `tabSales Order`.transaction_date asc", + "query": "select \n `tabSales Order`.`name` as \"Sales Order:Link/Sales Order:120\",\n `tabSales Order`.`customer` as \"Customer:Link/Customer:120\",\n `tabSales Order`.`status` as \"Status\",\n `tabSales Order`.`transaction_date` as \"Date:Date\",\n `tabSales Order`.`project_name` as \"Project\",\n `tabSales Order Item`.item_code as \"Item:Link/Item:120\",\n `tabSales Order Item`.qty as \"Qty:Float\",\n `tabSales Order Item`.delivered_qty as \"Delivered Qty:Float\",\n (`tabSales Order Item`.qty - ifnull(`tabSales Order Item`.delivered_qty, 0)) as \"Qty to Deliver:Float\",\n `tabSales Order Item`.item_name as \"Item Name::150\",\n `tabSales Order Item`.description as \"Description::200\"\nfrom\n `tabSales Order`, `tabSales Order Item`\nwhere\n `tabSales Order Item`.`parent` = `tabSales Order`.`name`\n and `tabSales Order`.docstatus = 1\n and `tabSales Order`.status != \"Stopped\"\n and ifnull(`tabSales Order Item`.delivered_qty,0) < ifnull(`tabSales Order Item`.qty,0)\norder by `tabSales Order`.transaction_date asc", "ref_doctype": "Delivery Note" }, { diff --git a/stock/report/purchase_order_items_to_be_received/purchase_order_items_to_be_received.txt b/stock/report/purchase_order_items_to_be_received/purchase_order_items_to_be_received.txt index 0d3fbb145a4..fe4b84487a6 100644 --- a/stock/report/purchase_order_items_to_be_received/purchase_order_items_to_be_received.txt +++ b/stock/report/purchase_order_items_to_be_received/purchase_order_items_to_be_received.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-02-02 22:33:12", + "creation": "2013-02-21 14:26:49", "docstatus": 0, - "modified": "2013-02-21 11:40:58", + "modified": "2013-02-22 10:44:34", "modified_by": "Administrator", "owner": "Administrator" }, @@ -10,7 +10,7 @@ "doctype": "Report", "is_standard": "Yes", "name": "__common__", - "query": "select \n `tabPurchase Order`.`name` as \"Purchase Order:Link/Purchase Order:120\",\n `tabPurchase Order`.`transaction_date` as \"Date:Date:100\",\n `tabPurchase Order`.`supplier` as \"Supplier:Link/Supplier:120\",\n `tabPurchase Order`.`project_name` as \"Project\",\n `tabPurchase Order Item`.item_code as \"Item Code:Link/Item:120\",\n `tabPurchase Order Item`.description as \"Description::180\",\n `tabPurchase Order Item`.qty as \"Qty:Float:100\",\n `tabPurchase Order Item`.received_qty as \"Received Qty:Float:100\", \n (`tabPurchase Order Item`.qty - ifnull(`tabPurchase Order Item`.received_qty, 0)) as \"Qty to Receive:Float:100\"\nfrom\n `tabPurchase Order`, `tabPurchase Order Item`\nwhere\n `tabPurchase Order Item`.`parent` = `tabPurchase Order`.`name`\n and `tabPurchase Order`.docstatus = 1\n and `tabPurchase Order`.status != \"Stopped\"\n and ifnull(`tabPurchase Order Item`.received_qty, 0) < ifnull(`tabPurchase Order Item`.qty, 0)\norder by `tabPurchase Order`.transaction_date asc", + "query": "select \n `tabPurchase Order`.`name` as \"Purchase Order:Link/Purchase Order:120\",\n `tabPurchase Order`.`transaction_date` as \"Date:Date:100\",\n `tabPurchase Order`.`supplier` as \"Supplier:Link/Supplier:120\",\n `tabPurchase Order`.`project_name` as \"Project\",\n `tabPurchase Order Item`.item_code as \"Item Code:Link/Item:120\",\n `tabPurchase Order Item`.qty as \"Qty:Float:100\",\n `tabPurchase Order Item`.received_qty as \"Received Qty:Float:100\", \n (`tabPurchase Order Item`.qty - ifnull(`tabPurchase Order Item`.received_qty, 0)) as \"Qty to Receive:Float:100\",\n `tabPurchase Order Item`.item_name as \"Item Name::150\",\n `tabPurchase Order Item`.description as \"Description::200\"\nfrom\n `tabPurchase Order`, `tabPurchase Order Item`\nwhere\n `tabPurchase Order Item`.`parent` = `tabPurchase Order`.`name`\n and `tabPurchase Order`.docstatus = 1\n and `tabPurchase Order`.status != \"Stopped\"\n and ifnull(`tabPurchase Order Item`.received_qty, 0) < ifnull(`tabPurchase Order Item`.qty, 0)\norder by `tabPurchase Order`.transaction_date asc", "ref_doctype": "Purchase Receipt" }, { From d196ab4254c7957523da1f35549f3b190b72b350 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 22 Feb 2013 11:06:45 +0530 Subject: [PATCH 3/4] remove customer details from Project --- projects/doctype/project/project.txt | 107 ++++----------------------- 1 file changed, 14 insertions(+), 93 deletions(-) diff --git a/projects/doctype/project/project.txt b/projects/doctype/project/project.txt index 11d473e73b4..326a47ae903 100644 --- a/projects/doctype/project/project.txt +++ b/projects/doctype/project/project.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-01-10 16:34:17", + "creation": "2013-01-29 19:25:50", "docstatus": 0, - "modified": "2013-01-29 17:01:19", + "modified": "2013-02-22 11:06:22", "modified_by": "Administrator", "owner": "Administrator" }, @@ -25,20 +25,13 @@ "permlevel": 0 }, { - "amend": 0, - "cancel": 1, - "create": 1, "doctype": "DocPerm", "name": "__common__", "parent": "Project", "parentfield": "permissions", "parenttype": "DocType", - "permlevel": 0, "read": 1, - "report": 1, - "role": "Projects User", - "submit": 0, - "write": 1 + "role": "Projects User" }, { "doctype": "DocType", @@ -289,88 +282,6 @@ "reqd": 0, "search_index": 1 }, - { - "doctype": "DocField", - "fieldname": "customer_name", - "fieldtype": "Data", - "in_filter": 1, - "label": "Customer Name", - "no_copy": 0, - "oldfieldname": "customer_name", - "oldfieldtype": "Data", - "read_only": 1, - "search_index": 1 - }, - { - "doctype": "DocField", - "fieldname": "customer_address", - "fieldtype": "Small Text", - "label": "Customer Address", - "no_copy": 0, - "oldfieldname": "customer_address", - "oldfieldtype": "Small Text", - "read_only": 1, - "search_index": 0 - }, - { - "doctype": "DocField", - "fieldname": "contact_person", - "fieldtype": "Link", - "in_filter": 1, - "label": "Contact Person", - "no_copy": 0, - "oldfieldname": "contact_person", - "oldfieldtype": "Link", - "options": "Contact", - "reqd": 0, - "search_index": 0 - }, - { - "doctype": "DocField", - "fieldname": "territory", - "fieldtype": "Link", - "in_filter": 1, - "label": "Territory", - "oldfieldname": "territory", - "oldfieldtype": "Link", - "options": "Territory", - "reqd": 0, - "search_index": 0 - }, - { - "doctype": "DocField", - "fieldname": "contact_no", - "fieldtype": "Data", - "label": "Contact No", - "no_copy": 0, - "oldfieldname": "contact_no", - "oldfieldtype": "Data", - "read_only": 1, - "search_index": 0 - }, - { - "doctype": "DocField", - "fieldname": "email_id", - "fieldtype": "Data", - "label": "Email Id", - "no_copy": 0, - "oldfieldname": "email_id", - "oldfieldtype": "Data", - "read_only": 1, - "search_index": 0 - }, - { - "doctype": "DocField", - "fieldname": "customer_group", - "fieldtype": "Link", - "label": "Customer Group", - "no_copy": 0, - "oldfieldname": "customer_group", - "oldfieldtype": "Link", - "options": "Customer Group", - "read_only": 1, - "search_index": 0 - }, { "doctype": "DocField", "fieldname": "trash_reason", @@ -394,6 +305,16 @@ "search_index": 0 }, { - "doctype": "DocPerm" + "cancel": 1, + "create": 1, + "doctype": "DocPerm", + "permlevel": 0, + "report": 1, + "submit": 0, + "write": 1 + }, + { + "doctype": "DocPerm", + "permlevel": 1 } ] \ No newline at end of file From 25af38e5097bcd619c0941b7089482e19068807d Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 22 Feb 2013 11:43:14 +0530 Subject: [PATCH 4/4] show leave block day warning --- .../leave_application/leave_application.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/hr/doctype/leave_application/leave_application.py b/hr/doctype/leave_application/leave_application.py index 07086dcc4de..32e0a650edb 100755 --- a/hr/doctype/leave_application/leave_application.py +++ b/hr/doctype/leave_application/leave_application.py @@ -36,6 +36,7 @@ class DocType(DocListController): self.validate_balance_leaves() self.validate_leave_overlap() self.validate_max_days() + self.show_block_day_warning() self.validate_block_days() def on_update(self): @@ -60,6 +61,17 @@ class DocType(DocListController): # notify leave applier about cancellation self.notify_employee("cancelled") + def show_block_day_warning(self): + from hr.doctype.leave_block_list.leave_block_list import get_applicable_block_dates + + block_dates = get_applicable_block_dates(self.doc.from_date, self.doc.to_date, + self.doc.employee, self.doc.company, all_lists=True) + + if block_dates: + webnotes.msgprint(_("Warning: Leave application contains following block dates") + ":") + for d in block_dates: + webnotes.msgprint(formatdate(d.block_date) + ": " + d.reason) + def validate_block_days(self): from hr.doctype.leave_block_list.leave_block_list import get_applicable_block_dates @@ -67,11 +79,8 @@ class DocType(DocListController): self.doc.employee, self.doc.company) if block_dates: - webnotes.msgprint(_("Following dates are blocked for Leave") + ":") - for d in block_dates: - webnotes.msgprint(formatdate(d.block_date) + ": " + d.reason) - if self.doc.status == "Approved": + webnotes.msgprint(_("Cannot approve leave as you are not authorized to approve leaves on Block Dates.")) raise LeaveDayBlockedError def get_holidays(self):