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() )
class Current(object): """ This object holds the whole state of the app for passing to view methods (views/tasks) :type response: Response | None :type request: Request | None :type spec: WorkflowSpec | None :type session: Session | None """ 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 set_message(self, title, msg, typ, url=None): return self.msg_cache.set_message(title=title, msg=msg, typ=typ, url=url) @property def is_auth(self): if self.user_id is None: self.user_id = self.session.get('user_id', '') return bool(self.user_id) def has_permission(self, perm): return self.user.superuser or self.auth.has_permission(perm) def get_permissions(self): return self.auth.get_permissions() def msg_box(self, msg, title=None, typ='info'): """ Create a message box :param str msg: :param str title: :param str typ: 'info', 'error', 'warning' """ self.output['msgbox'] = { 'type': typ, "title": title or msg[:20], "msg": msg }
class Current(object): """ This object holds the whole state of the app for passing to view methods (views/tasks) :type response: Response | None :type request: Request | None :type spec: WorkflowSpec | None :type session: Session | None """ 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 set_message(self, title, msg, typ, url=None): return self.msg_cache.set_message(title=title, msg=msg, typ=typ, url=url) @property def is_auth(self): if self.user_id is None: self.user_id = self.session.get('user_id', '') return bool(self.user_id) def has_permission(self, perm): return self.user.superuser or self.auth.has_permission(perm) def get_permissions(self): return self.auth.get_permissions() def msg_box(self, msg, title=None, typ='info'): """ Create a message box :param str msg: :param str title: :param str typ: 'info', 'error', 'warning' """ self.output['msgbox'] = {'type': typ, "title": title or msg[:20], "msg": msg}