def __init__(self, **kwargs): self.task_data = {'cmd': None} self.request = kwargs.pop('request', {}) self.response = kwargs.pop('response', {}) try: self.session = self.request.env['session'] self.input = self.request.context['data'] self.output = self.request.context['result'] self.user_id = self.session.get('user_id') self.role_id = self.session.get('role_id') except AttributeError: # when we want to use engine functions independently, # we need to create a fake current object self.session = {} self.input = {} self.output = {} self.user_id = None self.role_id = None self.lang_code = self.input.get('lang_code', settings.DEFAULT_LANG) self.log = log self.pool = {} AuthBackend = get_object_from_path(settings.AUTH_BACKEND) self.auth = lazy_object_proxy.Proxy(lambda: AuthBackend(self)) self.user = lazy_object_proxy.Proxy(lambda: self.auth.get_user()) self.role = lazy_object_proxy.Proxy(lambda: self.auth.get_role()) self.msg_cache = Notify(self.user_id) log.debug("\n\nINPUT DATA: %s" % self.input) self.permissions = []
def send_message_for_lane_change(sender, *args, **kwargs): from zengine.lib.catalog_data import gettxt as _ from pyoko.lib.utils import get_object_from_path UserModel = get_object_from_path(settings.USER_MODEL) from zengine.notifications import Notify current = kwargs['current'] old_lane = kwargs['old_lane'] owners = kwargs['possible_owners'] if 'lane_change_invite' in current.task_data: msg_context = current.task_data.pop('lane_change_invite') else: msg_context = DEFAULT_LANE_CHANGE_INVITE_MSG for recipient in owners: if not isinstance(recipient, UserModel): recipient = recipient.get_user() Notify(recipient.key).set_message(title=_(msg_context['title']), body=_(msg_context['body']), type=Notify.TaskInfo, url=current.get_wf_url() )