Преглед на файлове

[refactor] fixes

version-14
Rushabh Mehta преди 11 години
родител
ревизия
d92caeb687
променени са 7 файла, в които са добавени 70 реда и са изтрити 68 реда
  1. +3
    -3
      frappe/boot.py
  2. +2
    -1
      frappe/core/doctype/comment/comment.py
  3. +53
    -0
      frappe/desk/desk_page.py
  4. +0
    -53
      frappe/desk/page/__init__.py
  5. +2
    -1
      frappe/desk/page/activity/activity.js
  6. +9
    -9
      frappe/desk/page/messages/messages.js
  7. +1
    -1
      frappe/public/js/frappe/views/pageview.js

+ 3
- 3
frappe/boot.py Целия файл

@@ -8,7 +8,7 @@ bootstrap client session


import frappe import frappe
import frappe.defaults import frappe.defaults
import frappe.desk.page
import frappe.desk.desk_page
from frappe.utils import get_gravatar from frappe.utils import get_gravatar


def get_bootinfo(): def get_bootinfo():
@@ -132,10 +132,10 @@ def add_home_page(bootinfo, docs):
return return
home_page = frappe.db.get_default("desktop:home_page") home_page = frappe.db.get_default("desktop:home_page")
try: try:
page = frappe.desk.page.get(home_page)
page = frappe.desk.desk_page.get(home_page)
except (frappe.DoesNotExistError, frappe.PermissionError): except (frappe.DoesNotExistError, frappe.PermissionError):
frappe.message_log.pop() frappe.message_log.pop()
page = frappe.desk.page.get('desktop')
page = frappe.desk.desk_page.get('desktop')


bootinfo['home_page'] = page.name bootinfo['home_page'] = page.name
docs.append(page) docs.append(page)


+ 2
- 1
frappe/core/doctype/comment/comment.py Целия файл

@@ -10,7 +10,8 @@ from frappe.model.document import Document


class Comment(Document): class Comment(Document):
def get_feed(self): 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): def validate(self):
if frappe.db.sql("""select count(*) from tabComment where comment_doctype=%s if frappe.db.sql("""select count(*) from tabComment where comment_doctype=%s


+ 53
- 0
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

+ 0
- 53
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

+ 2
- 1
frappe/desk/page/activity/activity.js Целия файл

@@ -44,7 +44,8 @@ frappe.ActivityFeed = Class.extend({
<i class="icon-fixed-width %(icon)s" style="margin-right: 5px;"></i>\ <i class="icon-fixed-width %(icon)s" style="margin-right: 5px;"></i>\
<a %(onclick)s class="label %(add_class)s">\ <a %(onclick)s class="label %(add_class)s">\
%(feed_type)s</a>\ %(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) { scrub_data: function(data) {
data.by = frappe.user_info(data.owner).fullname; data.by = frappe.user_info(data.owner).fullname;


+ 9
- 9
frappe/desk/page/messages/messages.js Целия файл

@@ -1,7 +1,7 @@
// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors // Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
// MIT License. See license.txt // MIT License. See license.txt


frappe.provide('frappe.core.pages.messages');
frappe.provide('frappe.desk.pages.messages');


frappe.pages.messages.onload = function(wrapper) { frappe.pages.messages.onload = function(wrapper) {
frappe.ui.make_app_page({ frappe.ui.make_app_page({
@@ -26,18 +26,18 @@ frappe.pages.messages.onload = function(wrapper) {


wrapper.appframe.add_module_icon("Messages"); 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() { $(frappe.pages.messages).bind('show', function() {
// remove alerts // remove alerts
$('#alert-container .alert').remove(); $('#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) { init: function(wrapper) {
this.wrapper = wrapper; this.wrapper = wrapper;
this.show_active_users(); this.show_active_users();
@@ -52,7 +52,7 @@ frappe.core.pages.messages = Class.extend({
var txt = $('#post-message textarea').val(); var txt = $('#post-message textarea').val();
if(txt) { if(txt) {
return frappe.call({ return frappe.call({
module: 'frappe.core',
module: 'frappe.desk',
page:'messages', page:'messages',
method:'post', method:'post',
args: { args: {
@@ -88,7 +88,7 @@ frappe.core.pages.messages = Class.extend({
}, },
// check for updates every 5 seconds if page is active // check for updates every 5 seconds if page is active
refresh: function() { refresh: function() {
setTimeout("frappe.core.pages.messages.refresh()", 5000);
setTimeout("frappe.desk.pages.messages.refresh()", 5000);
if(frappe.container.page.label != 'Messages') if(frappe.container.page.label != 'Messages')
return; return;
if(!frappe.session_alive) if(!frappe.session_alive)
@@ -131,7 +131,7 @@ frappe.core.pages.messages = Class.extend({
data.delete_html = ""; data.delete_html = "";
if(data.owner==user || data.comment.indexOf("assigned to")!=-1) { if(data.owner==user || data.comment.indexOf("assigned to")!=-1) {
data.delete_html = repl('<a class="close" \ 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); data-name="%(name)s">&times;</a>', data);
} }


@@ -167,7 +167,7 @@ frappe.core.pages.messages = Class.extend({
show_active_users: function() { show_active_users: function() {
var me = this; var me = this;
return frappe.call({ return frappe.call({
module:'frappe.core',
module:'frappe.desk',
page:'messages', page:'messages',
method:'get_active_users', method:'get_active_users',
callback: function(r,rt) { callback: function(r,rt) {


+ 1
- 1
frappe/public/js/frappe/views/pageview.js Целия файл

@@ -24,7 +24,7 @@ frappe.views.pageview = {
} else { } else {
// get fresh // get fresh
return frappe.call({ return frappe.call({
method: 'frappe.desk.page.getpage',
method: 'frappe.desk.desk_page.getpage',
args: {'name':name }, args: {'name':name },
callback: function(r) { callback: function(r) {
localStorage["_page:" + name] = JSON.stringify(r.docs); localStorage["_page:" + name] = JSON.stringify(r.docs);


Зареждане…
Отказ
Запис