diff --git a/frappe/boot.py b/frappe/boot.py index f1877c35c1..5531d844cd 100644 --- a/frappe/boot.py +++ b/frappe/boot.py @@ -70,6 +70,7 @@ def get_bootinfo(): bootinfo.error_report_email = frappe.get_hooks("error_report_email") bootinfo.default_background_image = get_url("/assets/frappe/images/ui/into-the-dawn.jpg") + bootinfo.calendars = sorted(frappe.get_hooks("calendars")) return bootinfo diff --git a/frappe/hooks.py b/frappe/hooks.py index 4af90fef30..6bc6432700 100644 --- a/frappe/hooks.py +++ b/frappe/hooks.py @@ -59,6 +59,8 @@ website_generators = ["Web Page", "Blog Post", "Blog Category", "Web Form"] email_append_to = ["Event", "ToDo", "Communication"] +calendars = ["Event"] + # login on_session_creation = [ diff --git a/frappe/public/js/frappe/ui/page.html b/frappe/public/js/frappe/ui/page.html index f5f549fcf1..188d79290c 100644 --- a/frappe/public/js/frappe/ui/page.html +++ b/frappe/public/js/frappe/ui/page.html @@ -2,37 +2,39 @@
- -

-
- -

+ +

+
+ +

- -
- + +
+ - - - -
- - -
- + + + +
+ + +
+
diff --git a/frappe/public/js/frappe/views/calendar.js b/frappe/public/js/frappe/views/calendar.js index 58a2ffaae4..7d19b15fc2 100644 --- a/frappe/public/js/frappe/views/calendar.js +++ b/frappe/public/js/frappe/views/calendar.js @@ -65,7 +65,17 @@ frappe.views.Calendar = frappe.views.CalendarBase.extend({ frappe.set_route("Form", me.doctype, doc.name); }); - var me = this; + // add links to other calendars + $.each(frappe.boot.calendars, function(i, doctype) { + if(frappe.model.can_read(doctype)) { + me.page.add_menu_item(__(doctype), function() { + frappe.set_route("Calendar", doctype); + }); + } + }); + + this.page.page_actions.find(".menu-btn-group-label").text(__("Type")); + $(this.parent).on("show", function() { me.$cal.fullCalendar("refetchEvents"); }) diff --git a/frappe/utils/formatters.py b/frappe/utils/formatters.py index 2d618d743e..1d2b1783cb 100644 --- a/frappe/utils/formatters.py +++ b/frappe/utils/formatters.py @@ -48,4 +48,3 @@ def format_value(value, df, doc=None, currency=None): return value.replace("\n", "
") return value -