From da5f460fe4e9d78fa7fba2d4b9dab1878ed361da Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 23 Jan 2014 15:35:40 +0530 Subject: [PATCH] Fixes related to appification --- webnotes/core/page/messages/messages.py | 2 +- webnotes/model/bean.py | 6 +++--- webnotes/profile.py | 2 +- webnotes/webutils.py | 11 +++++++---- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/webnotes/core/page/messages/messages.py b/webnotes/core/page/messages/messages.py index b010b42f9d..903406e7a2 100644 --- a/webnotes/core/page/messages/messages.py +++ b/webnotes/core/page/messages/messages.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import webnotes -from core.doctype.notification_count.notification_count import delete_notification_count_for +from webnotes.core.doctype.notification_count.notification_count import delete_notification_count_for @webnotes.whitelist() diff --git a/webnotes/model/bean.py b/webnotes/model/bean.py index ad8e949431..cb3d3e1a14 100644 --- a/webnotes/model/bean.py +++ b/webnotes/model/bean.py @@ -225,7 +225,7 @@ class Bean: if hasattr(self.controller, 'custom_' + method): getattr(self.controller, 'custom_' + method)(*args, **kwargs) - notify(self, method) + notify(self, method, *args, **kwargs) self.set_doclist(self.controller.doclist) @@ -487,11 +487,11 @@ def clone(source_wrapper): return new_wrapper -def notify(bean, caller): +def notify(bean, caller, *args, **kwargs): for hook in webnotes.get_hooks().bean_event or []: doctype, trigger, handler = hook.split(":") if ((doctype=="*") or (doctype==bean.doc.doctype)) and caller==trigger: - webnotes.get_attr(handler)(bean, trigger) + webnotes.get_attr(handler)(bean, trigger, *args, **kwargs) # for bc def getlist(doclist, parentfield): diff --git a/webnotes/profile.py b/webnotes/profile.py index e84185659e..6a49367144 100644 --- a/webnotes/profile.py +++ b/webnotes/profile.py @@ -193,7 +193,7 @@ def get_system_managers(only_name=False): return [email.utils.formataddr((p.fullname, p.name)) for p in system_managers] def add_role(profile, role): - profile_wrapper = webnotes.bean("Profile", profile).get_controller().add_roles([role]) + profile_wrapper = webnotes.bean("Profile", profile).get_controller().add_roles(role) def add_system_manager(email, first_name=None, last_name=None): # add profile diff --git a/webnotes/webutils.py b/webnotes/webutils.py index 5cab49a234..810aaf60c5 100644 --- a/webnotes/webutils.py +++ b/webnotes/webutils.py @@ -7,6 +7,7 @@ import webnotes import json, os, time from webnotes import _ import webnotes.utils +from webnotes.model.controller import DocListController import mimetypes from webnotes.website.doctype.website_sitemap.website_sitemap import add_to_sitemap @@ -175,7 +176,6 @@ def get_website_settings(): return context - def clear_cache(page_name=None): if page_name: delete_page_cache(page_name) @@ -203,8 +203,11 @@ def is_signup_enabled(): webnotes.local.is_signup_enabled = False return webnotes.local.is_signup_enabled - -class WebsiteGenerator(object): + +def call_website_generator(bean, method): + getattr(WebsiteGenerator(bean.doc, bean.doclist), method)() + +class WebsiteGenerator(DocListController): def setup_generator(self): if webnotes.flags.in_install_app: return @@ -251,7 +254,7 @@ class WebsiteGenerator(object): def on_trash(self): self.setup_generator() remove_page(self.doc.fields[self._website_config.page_name_field]) - + def remove_page(page_name): if page_name: delete_page_cache(page_name)