diff --git a/frappe/hooks.py b/frappe/hooks.py index abd2a2a343..86631df0b8 100644 --- a/frappe/hooks.py +++ b/frappe/hooks.py @@ -55,10 +55,10 @@ doc_events = { "on_trash": "frappe.core.doctype.notification_count.notification_count.clear_doctype_notifications" }, "User Vote": { - "after_insert": "frappe.templates.generators.website_group.clear_cache_on_doc_event" + "after_insert": "frappe.website.doctype.website_group.website_group.clear_cache_on_doc_event" }, "Website Route Permission": { - "on_update": "frappe.templates.generators.website_group.clear_cache_on_doc_event" + "on_update": "frappe.website.doctype.website_group.website_group.clear_cache_on_doc_event" } } @@ -71,6 +71,6 @@ scheduler_events = { "frappe.sessions.clear_expired_sessions", ], "hourly": [ - "frappe.templates.generators.website_group.clear_event_cache" + "frappe.website.doctype.website_group.website_group.clear_event_cache" ] } diff --git a/frappe/templates/website_group/forum.py b/frappe/templates/website_group/forum.py index 70fae3ee97..61f5263d02 100644 --- a/frappe/templates/website_group/forum.py +++ b/frappe/templates/website_group/forum.py @@ -8,58 +8,58 @@ from frappe.website.permissions import get_access @frappe.whitelist(allow_guest=True) def get_post_list_html(group, view, limit_start=0, limit_length=20): - from frappe.templates.generators.website_group import get_views - + from frappe.website.doctype.website_group.website_group import get_views + # verify permission for paging if frappe.local.form_dict.cmd == "get_post_list_html": - pathname = frappe.db.get_value("Website Route", + pathname = frappe.db.get_value("Website Route", {"ref_doctype": "Website Group", "docname": group}) access = get_access(pathname) - + if not access.get("read"): return frappe.PermissionError - + conditions = "" values = [group] - + group_type = frappe.db.get_value("Website Group", group, "group_type") if group_type == "Events": # should show based on time upto precision of hour # because the current hour should also be in upcoming values.append(now_datetime().replace(minute=0, second=0, microsecond=0)) - + if view in ("feed", "closed"): order_by = "p.creation desc" - + if view == "closed": conditions += " and p.is_task=1 and p.status='Closed'" - + elif view in ("popular", "open"): now = get_datetime_str(now_datetime()) - order_by = """(p.upvotes + post_reply_count - (timestampdiff(hour, p.creation, \"{}\") / 2)) desc, + order_by = """(p.upvotes + post_reply_count - (timestampdiff(hour, p.creation, \"{}\") / 2)) desc, p.creation desc""".format(now) - + if view == "open": conditions += " and p.is_task=1 and p.status='Open'" - + elif view == "upcoming": conditions += " and p.is_event=1 and p.event_datetime >= %s" order_by = "p.event_datetime asc" - + elif view == "past": conditions += " and p.is_event=1 and p.event_datetime < %s" order_by = "p.event_datetime desc" - + values += [int(limit_start), int(limit_length)] - + posts = frappe.db.sql("""select p.*, pr.user_image, pr.first_name, pr.last_name, (select count(pc.name) from `tabPost` pc where pc.parent_post=p.name) as post_reply_count from `tabPost` p, `tabUser` pr - where p.website_group = %s and pr.name = p.owner and ifnull(p.parent_post, '')='' + where p.website_group = %s and pr.name = p.owner and ifnull(p.parent_post, '')='' {conditions} order by {order_by} limit %s, %s""".format(conditions=conditions, order_by=order_by), tuple(values), as_dict=True, debug=True) - + context = { "posts": posts, "limit_start": limit_start, "view": get_views(group_type)[view] } - + return frappe.get_template("templates/includes/post_list.html").render(context) - + diff --git a/frappe/templates/website_group/post.py b/frappe/templates/website_group/post.py index 93fbe6221b..0eef5fbcb2 100644 --- a/frappe/templates/website_group/post.py +++ b/frappe/templates/website_group/post.py @@ -7,7 +7,7 @@ from frappe import _ from frappe.utils import get_fullname from frappe.website.permissions import get_access from frappe.utils.file_manager import save_file -from frappe.templates.generators.website_group import get_pathname +from frappe.website.doctype.website_group.website_group import get_pathname def get_post_context(context): post = frappe.get_doc("Post", frappe.form_dict.name) @@ -130,7 +130,7 @@ def save_post(post, content, picture=None, picture_name=None, title=None, return post.parent_post or post.name def process_picture(post, picture_name, picture): - from frappe.templates.generators.website_group import clear_cache + from frappe.website.doctype.website_group.website_group import clear_cache post.picture_url = save_file(picture_name, picture, "Post", post.name, decode=True).file_url frappe.db.set_value("Post", post.name, "picture_url", post.picture_url) diff --git a/frappe/templates/website_group/settings.py b/frappe/templates/website_group/settings.py index d7397f7be9..aa072e193b 100644 --- a/frappe/templates/website_group/settings.py +++ b/frappe/templates/website_group/settings.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals import frappe from frappe.website.permissions import get_access, clear_permissions -from frappe.templates.generators.website_group import get_pathname +from frappe.website.doctype.website_group.website_group import get_pathname from frappe.utils.email_lib.bulk import send @frappe.whitelist() @@ -12,17 +12,17 @@ def suggest_user(term, group): pathname = get_pathname(group) if not get_access(pathname).get("admin"): raise frappe.PermissionError - - users = frappe.db.sql("""select pr.name, pr.first_name, pr.last_name, + + users = frappe.db.sql("""select pr.name, pr.first_name, pr.last_name, pr.user_image, pr.location - from `tabUser` pr + from `tabUser` pr where (pr.first_name like %(term)s or pr.last_name like %(term)s) and pr.user_type = "Website User" and pr.user_image is not null and pr.enabled=1 - and not exists(select wsp.name from `tabWebsite Route Permission` wsp - where wsp.website_route=%(group)s and wsp.user=pr.name)""", + and not exists(select wsp.name from `tabWebsite Route Permission` wsp + where wsp.website_route=%(group)s and wsp.user=pr.name)""", {"term": "%{}%".format(term), "group": pathname}, as_dict=True) - + template = frappe.get_template("templates/includes/user_display.html") return [{ "value": "{} {}".format(pr.first_name or "", pr.last_name or ""), @@ -35,7 +35,7 @@ def add_sitemap_permission(group, user): pathname = get_pathname(group) if not get_access(pathname).get("admin"): raise frappe.PermissionError - + permission = frappe.get_doc({ "doctype": "Website Route Permission", "website_route": pathname, @@ -43,11 +43,11 @@ def add_sitemap_permission(group, user): "read": 1 }) permission.insert(ignore_permissions=True) - + user = permission.as_dict() - user.update(frappe.db.get_value("User", user.user, + user.update(frappe.db.get_value("User", user.user, ["name", "first_name", "last_name", "user_image", "location"], as_dict=True)) - + return frappe.get_template("templates/includes/sitemap_permission.html").render({ "user": user }) @@ -57,18 +57,18 @@ def update_permission(group, user, perm, value): pathname = get_pathname(group) if not get_access(pathname).get("admin"): raise frappe.PermissionError - + permission = frappe.get_doc("Website Route Permission", {"website_route": pathname, "user": user}) permission.set(perm, int(value)) permission.save(ignore_permissions=True) - + # send email if perm=="admin" and int(value): group_title = frappe.db.get_value("Website Route", pathname, "page_title") - + subject = "You have been made Administrator of Group " + group_title - - send(recipients=[user], + + send(recipients=[user], subject= subject, add_unsubscribe_link=False, message="""

Group Notification

\

%s

\ @@ -82,15 +82,15 @@ def update_description(group, description): group = frappe.get_doc("Website Group", group) group.group_description = description group.save(ignore_permissions=True) - + @frappe.whitelist() def add_website_group(group, new_group, public_read, public_write, group_type="Forum"): if not get_access(get_pathname(group)).get("admin"): raise frappe.PermissionError - - parent_website_route = frappe.db.get_value("Website Route", + + parent_website_route = frappe.db.get_value("Website Route", {"ref_doctype": "Website Group", "docname": group}) - + frappe.get_doc({ "doctype": "Website Group", "group_name": group + "-" + new_group, @@ -99,4 +99,4 @@ def add_website_group(group, new_group, public_read, public_write, group_type="F "group_type": group_type, "public_read": int(public_read), "public_write": int(public_write) - }).insert(ignore_permissions=True) \ No newline at end of file + }).insert(ignore_permissions=True) diff --git a/frappe/website/doctype/post/post.py b/frappe/website/doctype/post/post.py index ffef478662..556aa08884 100644 --- a/frappe/website/doctype/post/post.py +++ b/frappe/website/doctype/post/post.py @@ -39,7 +39,7 @@ class Post(Document): def on_update(self): from frappe.templates.website_group.post import clear_post_cache - from frappe.templates.generators.website_group import clear_cache + from frappe.website.doctype.website_group.website_group import clear_cache clear_cache(website_group=self.website_group) clear_post_cache(self.parent_post or self.name)