def assignment_schedule(event): """Handle Assignment schedule workflow event.""" assignment = event.obj order = assignment.order if order.state in ('assigned', 'received'): order.workflow.context = SystemUser kwargs = { 'fields': { 'scheduled_datetime': assignment.scheduled_datetime } } order.workflow.schedule(**kwargs) user = assignment.workflow.context if G['pm'].value in user.groups: to_role = 'professional_user' author_role = 'project_manager' elif G['professionals'].value in user.groups: to_role = 'project_manager' author_role = 'professional_user' else: to_role = 'professional_user' author_role = 'project_manager' create_comment_from_wf_transition(assignment, author_role, to_role)
def assignment_cancel(event): """Handle Assignment cancel workflow event.""" assignment = event.obj user = assignment.workflow.context # create the comment do_comment = True if G['customers'].value in user.groups: # this should not create a comment on the assignment only on the order do_comment = False elif G['pm'].value in user.groups: to_role = 'professional_user' author_role = 'project_manager' elif G['finance'].value in user.groups: to_role = 'professional_user' author_role = 'project_manager' else: # for now do not comment anything do_comment = False if do_comment: create_comment_from_wf_transition(assignment, author_role, to_role, internal=True)
def assignment_remove_schedule(event): """Handle Assignment remove_schedule workflow event.""" assignment = event.obj user = assignment.workflow.context # this should be always in the subscriber # to avoid loop with the order remove_schedule order = assignment.order message = assignment.state_history[-1]['message'] if order.state == 'scheduled': order.workflow.remove_schedule(message=message) # create the comment if applicable create_comment = False to_role = 'professional_user' author_role = 'project_manager' if G['pm'].value in user.groups: create_comment = True elif G['professionals'].value in user.groups: to_role = 'project_manager' author_role = 'professional_user' create_comment = True if create_comment: create_comment_from_wf_transition(assignment, author_role, to_role)
def assignment_complete(event): """Handle Assignment complete workflow event.""" assignment = event.obj user = assignment.workflow.context if G['pm'].value in user.groups: to_role = 'professional_user' author_role = 'project_manager' create_comment_from_wf_transition(assignment, author_role, to_role)
def assignment_invalidate_assets(event): """Handle Assignment validate or invalidate assets workflow event.""" assignment = event.obj author_role = 'qa_manager' to_role = 'professional_user' create_comment_from_wf_transition(assignment, author_role, to_role, internal=False)
def assignment_return_to_qa(event): """Handle Assignment return_to_qa workflow event.""" assignment = event.obj author_role = 'project_manager' to_role = 'qa_manager' create_comment_from_wf_transition(assignment, author_role, to_role, internal=True)
def assignment_retract_rejection(event): """Handle Assignment retract_rejection workflow event.""" assignment = event.obj author_role = 'project_manager' to_role = 'professional_user' create_comment_from_wf_transition(assignment, author_role, to_role, internal=True)
def assignment_approve(event): """Handle Assignment QA approve workflow event.""" assignment = event.obj author_role = 'qa_manager' to_role = 'professional_user' create_comment_from_wf_transition(assignment, author_role, to_role, internal=False)
def order_new_shoot_or_reshoot(event): """Handle Order new_shoot and reshoot workflow event.""" order = event.obj author_role = 'project_manager' to_role = 'customer_user' create_comment_from_wf_transition( order, author_role, to_role, internal=True )
def order_perm_refuse(event): """Handle Order perm_reject workflow event.""" order = event.obj to_role = 'customer_user' author_role = 'project_manager' create_comment_from_wf_transition( order, author_role, to_role, internal=True )
def order_unassign_reassign(event): """Handle Order unassign and reassign workflow event.""" order = event.obj author_role = 'project_manager' to_role = 'customer_user' create_comment_from_wf_transition( order, author_role, to_role, internal=True )
def order_remove_schedule(event): """Handle Order remove_schedule workflow event.""" order = event.obj user = order.workflow.context # this should be always in the subscriber # to avoid loop with the order remove_schedule assignment = order.assignments[-1] message = order.state_history[-1]['message'] if assignment.state in ['scheduled', 'awaiting_assets']: assignment.workflow.remove_schedule(message=message) # create the comment if applicable if G['customers'].value in user.groups: to_role = 'project_manager' author_role = 'customer_user' create_comment_from_wf_transition(order, author_role, to_role)
def assignment_refuse(event): """Handle Assignment refusal workflow event.""" assignment = event.obj author_role = 'project_manager' to_role = 'project_manager' user = assignment.workflow.context if G['customers'].value in user.groups: # this should not create a comment on the assignment only on the order author_role = 'customer_user' create_comment_from_wf_transition(assignment, author_role, to_role, internal=True, prefix='This is the customer feedback')
def order_accept(event): """Handle Order accept workflow event.""" order = event.obj user = order.workflow.context if G['customers'].value in user.groups: author_role = 'customer_user' to_role = 'project_manager' else: author_role = 'project_manager' to_role = 'customer_user' create_comment_from_wf_transition( order, author_role, to_role, internal=False )
def assignment_upload(event): """Handle Assignment upload workflow event.""" assignment = event.obj workflow = assignment.workflow user = workflow.context to_role = 'qa_manager' professional = Professional.get(user.id) if professional: author_role = 'professional_user' internal = False else: author_role = 'project_manager' internal = True create_comment_from_wf_transition(assignment, author_role, to_role, internal=internal)
def assignment_scheduling_issues(event): """Handle Assignment scheduling_issues workflow event.""" assignment = event.obj user = assignment.workflow.context to_role = 'project_manager' author_role = 'professional_user' internal = False professional = Professional.get(user.id) if not professional: author_role = 'project_manager' to_role = 'professional_user' internal = True create_comment_from_wf_transition( assignment, author_role, to_role, internal=internal, )
def order_cancel(event): """Handle Order cancel workflow event.""" order = event.obj user = order.workflow.context internal = False if G['customers'].value in user.groups: to_role = 'project_manager' author_role = 'customer_user' elif G['pm'].value in user.groups: to_role = 'customer_user' author_role = 'project_manager' else: to_role = 'customer_user' author_role = 'project_manager' internal = True create_comment_from_wf_transition( order, author_role, to_role, internal=internal )
def assignment_reject(event): """Handle Assignment reject workflow event.""" assignment = event.obj author_role = 'qa_manager' to_role = 'professional_user' create_comment_from_wf_transition(assignment, author_role, to_role)