def get_sobjects(server, event_data): """ Get the required variables for this trigger. Accounts for when the triggering sobject is a work order or a task. :param server: a tactic server stub object :param event_data: the event dictionary :return: work order sobject, task sobject """ sobject = event_data.get('sobject') sobject_type = ctu.get_sobject_type(sobject.get('__search_key__')) work_order = {} task = {} if sobject_type == 'work_order': work_order = sobject results = server.query('sthpw/task', filters=[('code', work_order.get('task_code'))]) if results: task = results[0] elif sobject_type == 'task' and 'WORK_ORDER' in sobject.get('lookup_code'): task = sobject results = server.query('twog/work_order', filters=[('code', task.get('lookup_code'))]) if results: work_order = results[0] return work_order, task
def get_display(self): """ Get the code for displaying this widget. :return: the sobject edit widget """ search_type = self.kwargs.get('search_type') sobject_code = self.kwargs.get('sobject_code') if not (search_type and sobject_code): return DivWdg('Could not display [{0}]: [{1}]'.format(search_type, sobject_code)) mode = 'view' user_groups = Environment.get_group_names() if 'scheduling' in user_groups: mode = 'edit' sobject_type = ctu.get_sobject_type(search_type) # TODO: get a relevant display name display_name = sobject_code title = '{0} {1}: {2}'.format(mode.title(), sobject_type.title(), display_name) edit_widget = EditWdg(search_type=search_type, code=sobject_code, title=title, mode=mode, view='edit', show_header='true') return edit_widget