diff --git a/frappe/boot.py b/frappe/boot.py index 8a55f0008e..ee020962ad 100644 --- a/frappe/boot.py +++ b/frappe/boot.py @@ -8,7 +8,7 @@ bootstrap client session import frappe import frappe.defaults -import frappe.desk.page +import frappe.desk.desk_page from frappe.utils import get_gravatar def get_bootinfo(): @@ -132,10 +132,10 @@ def add_home_page(bootinfo, docs): return home_page = frappe.db.get_default("desktop:home_page") try: - page = frappe.desk.page.get(home_page) + page = frappe.desk.desk_page.get(home_page) except (frappe.DoesNotExistError, frappe.PermissionError): frappe.message_log.pop() - page = frappe.desk.page.get('desktop') + page = frappe.desk.desk_page.get('desktop') bootinfo['home_page'] = page.name docs.append(page) diff --git a/frappe/core/doctype/comment/comment.py b/frappe/core/doctype/comment/comment.py index f1d60c3748..2312064863 100644 --- a/frappe/core/doctype/comment/comment.py +++ b/frappe/core/doctype/comment/comment.py @@ -10,7 +10,8 @@ from frappe.model.document import Document class Comment(Document): def get_feed(self): - return "{0}".format(self.comment) + return """{0} {1}: {2}""".format(self.comment_doctype, self.comment_docname, + self.comment) def validate(self): if frappe.db.sql("""select count(*) from tabComment where comment_doctype=%s diff --git a/frappe/desk/desk_page.py b/frappe/desk/desk_page.py new file mode 100644 index 0000000000..8e1e26cdc2 --- /dev/null +++ b/frappe/desk/desk_page.py @@ -0,0 +1,53 @@ +# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors +# MIT License. See license.txt + +from __future__ import unicode_literals +import frappe +from frappe.translate import send_translations + +@frappe.whitelist() +def get(name): + """ + Return the :term:`doclist` of the `Page` specified by `name` + """ + page = frappe.get_doc('Page', name) + if has_permission(page): + page.load_assets() + return page + else: + frappe.response['403'] = 1 + raise frappe.PermissionError, 'No read permission for Page %s' % \ + (page.title or name) + +@frappe.whitelist(allow_guest=True) +def getpage(): + """ + Load the page from `frappe.form` and send it via `frappe.response` + """ + page = frappe.form_dict.get('name') + doc = get(page) + + # load translations + if frappe.lang != "en": + send_translations(frappe.get_lang_dict("page", page)) + + frappe.response.docs.append(doc) + +def has_permission(page): + if frappe.user.name == "Administrator" or "System Manager" in frappe.user.get_roles(): + return True + + page_roles = [d.role for d in page.get("roles")] + if page_roles: + if frappe.session.user == "Guest" and "Guest" not in page_roles: + return False + elif not set(page_roles).intersection(set(frappe.get_roles())): + # check if roles match + return False + + if not frappe.has_permission("Page", ptype="read", doc=page): + # check if there are any user_permissions + return False + else: + # hack for home pages! if no page roles, allow everyone to see! + return True diff --git a/frappe/desk/page/__init__.py b/frappe/desk/page/__init__.py index 8e1e26cdc2..e69de29bb2 100644 --- a/frappe/desk/page/__init__.py +++ b/frappe/desk/page/__init__.py @@ -1,53 +0,0 @@ -# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors -# MIT License. See license.txt - -from __future__ import unicode_literals -import frappe -from frappe.translate import send_translations - -@frappe.whitelist() -def get(name): - """ - Return the :term:`doclist` of the `Page` specified by `name` - """ - page = frappe.get_doc('Page', name) - if has_permission(page): - page.load_assets() - return page - else: - frappe.response['403'] = 1 - raise frappe.PermissionError, 'No read permission for Page %s' % \ - (page.title or name) - -@frappe.whitelist(allow_guest=True) -def getpage(): - """ - Load the page from `frappe.form` and send it via `frappe.response` - """ - page = frappe.form_dict.get('name') - doc = get(page) - - # load translations - if frappe.lang != "en": - send_translations(frappe.get_lang_dict("page", page)) - - frappe.response.docs.append(doc) - -def has_permission(page): - if frappe.user.name == "Administrator" or "System Manager" in frappe.user.get_roles(): - return True - - page_roles = [d.role for d in page.get("roles")] - if page_roles: - if frappe.session.user == "Guest" and "Guest" not in page_roles: - return False - elif not set(page_roles).intersection(set(frappe.get_roles())): - # check if roles match - return False - - if not frappe.has_permission("Page", ptype="read", doc=page): - # check if there are any user_permissions - return False - else: - # hack for home pages! if no page roles, allow everyone to see! - return True diff --git a/frappe/desk/page/activity/activity.js b/frappe/desk/page/activity/activity.js index 4a816c3ec5..45407377c3 100644 --- a/frappe/desk/page/activity/activity.js +++ b/frappe/desk/page/activity/activity.js @@ -44,7 +44,8 @@ frappe.ActivityFeed = Class.extend({ \ \ %(feed_type)s\ - %(subject)s %(by)s / %(when)s', data)); + %(subject)s\ + %(by)s / %(when)s', data)); }, scrub_data: function(data) { data.by = frappe.user_info(data.owner).fullname; diff --git a/frappe/desk/page/messages/messages.js b/frappe/desk/page/messages/messages.js index 2ead4f45e9..bbb2a13a84 100644 --- a/frappe/desk/page/messages/messages.js +++ b/frappe/desk/page/messages/messages.js @@ -1,7 +1,7 @@ // Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors // MIT License. See license.txt -frappe.provide('frappe.core.pages.messages'); +frappe.provide('frappe.desk.pages.messages'); frappe.pages.messages.onload = function(wrapper) { frappe.ui.make_app_page({ @@ -26,18 +26,18 @@ frappe.pages.messages.onload = function(wrapper) { wrapper.appframe.add_module_icon("Messages"); - frappe.core.pages.messages = new frappe.core.pages.messages(wrapper); + frappe.desk.pages.messages = new frappe.desk.pages.messages(wrapper); } $(frappe.pages.messages).bind('show', function() { // remove alerts $('#alert-container .alert').remove(); - frappe.core.pages.messages.show(); - setTimeout("frappe.core.pages.messages.refresh()", 5000); + frappe.desk.pages.messages.show(); + setTimeout("frappe.desk.pages.messages.refresh()", 5000); }) -frappe.core.pages.messages = Class.extend({ +frappe.desk.pages.messages = Class.extend({ init: function(wrapper) { this.wrapper = wrapper; this.show_active_users(); @@ -52,7 +52,7 @@ frappe.core.pages.messages = Class.extend({ var txt = $('#post-message textarea').val(); if(txt) { return frappe.call({ - module: 'frappe.core', + module: 'frappe.desk', page:'messages', method:'post', args: { @@ -88,7 +88,7 @@ frappe.core.pages.messages = Class.extend({ }, // check for updates every 5 seconds if page is active refresh: function() { - setTimeout("frappe.core.pages.messages.refresh()", 5000); + setTimeout("frappe.desk.pages.messages.refresh()", 5000); if(frappe.container.page.label != 'Messages') return; if(!frappe.session_alive) @@ -131,7 +131,7 @@ frappe.core.pages.messages = Class.extend({ data.delete_html = ""; if(data.owner==user || data.comment.indexOf("assigned to")!=-1) { data.delete_html = repl('×', data); } @@ -167,7 +167,7 @@ frappe.core.pages.messages = Class.extend({ show_active_users: function() { var me = this; return frappe.call({ - module:'frappe.core', + module:'frappe.desk', page:'messages', method:'get_active_users', callback: function(r,rt) { diff --git a/frappe/public/js/frappe/views/pageview.js b/frappe/public/js/frappe/views/pageview.js index 7c984b50c8..90f284ff5a 100644 --- a/frappe/public/js/frappe/views/pageview.js +++ b/frappe/public/js/frappe/views/pageview.js @@ -24,7 +24,7 @@ frappe.views.pageview = { } else { // get fresh return frappe.call({ - method: 'frappe.desk.page.getpage', + method: 'frappe.desk.desk_page.getpage', args: {'name':name }, callback: function(r) { localStorage["_page:" + name] = JSON.stringify(r.docs);