[refactor] fixes

This commit is contained in:
Rushabh Mehta 2014-09-09 17:19:06 +05:30
parent 474e565740
commit d92caeb687
7 changed files with 70 additions and 68 deletions

View file

@ -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)

View file

@ -10,7 +10,8 @@ from frappe.model.document import Document
class Comment(Document):
def get_feed(self):
return "<i>{0}</i>".format(self.comment)
return """<a href="#Form/{0}/{1}">{0} {1}</a>: <i>{2}</i>""".format(self.comment_doctype, self.comment_docname,
self.comment)
def validate(self):
if frappe.db.sql("""select count(*) from tabComment where comment_doctype=%s

53
frappe/desk/desk_page.py Normal file
View file

@ -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

View file

@ -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

View file

@ -44,7 +44,8 @@ frappe.ActivityFeed = Class.extend({
<i class="icon-fixed-width %(icon)s" style="margin-right: 5px;"></i>\
<a %(onclick)s class="label %(add_class)s">\
%(feed_type)s</a>\
%(subject)s <span class="user-info">%(by)s / %(when)s</span></div>', data));
<span class="small">%(subject)s</span>\
<span class="user-info">%(by)s / %(when)s</span></div>', data));
},
scrub_data: function(data) {
data.by = frappe.user_info(data.owner).fullname;

View file

@ -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('<a class="close" \
onclick="frappe.core.pages.messages.delete(this)"\
onclick="frappe.desk.pages.messages.delete(this)"\
data-name="%(name)s">&times;</a>', 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) {

View file

@ -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);