Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
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)
Esempio n. 5
0
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)
Esempio n. 6
0
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)
Esempio n. 7
0
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)
Esempio n. 8
0
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)
Esempio n. 9
0
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
    )
Esempio n. 10
0
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
    )
Esempio n. 11
0
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
    )
Esempio n. 12
0
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)
Esempio n. 13
0
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')
Esempio n. 14
0
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
    )
Esempio n. 15
0
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)
Esempio n. 16
0
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,
    )
Esempio n. 17
0
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
    )
Esempio n. 18
0
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)