Ejemplo n.º 1
0
def make_order(request, template_name='product_order/make_order.html'):
    order_id = request.GET.get('order_id')
    role = request.GET.get('role')
    action = request.GET.get('action')
    if not role:
        return render_to_response(
            template_name, {
                'order': None,
                'role_actions': Order_State_Machine.get_initial_role_actions(),
                'current_state': Order_State_Machine.get_initial_state()
            },
            context_instance=RequestContext(request))
    else:
        if role == 'B' and action == 'create order':
            order_id = Order.create_order()
            order = get_object_or_404(Order, id=order_id)
        else:
            order = get_object_or_404(Order, id=order_id)
            order.goto_next(role, action)

    return render_to_response(
        template_name, {
            'order': order.product_order,
            'role_actions': order.product_order.get_role_actions(),
            'current_state': order.state
        },
        context_instance=RequestContext(request))
Ejemplo n.º 2
0
def order_state_machine(request,  template_name='product_order/order_state_machine.html'):
    role = request.GET.get('role')
    action = request.GET.get('action')
    c_state = request.GET.get('current_state')
    if not (role or action or c_state):
        #initial state
        next_state = Order_State_Machine.get_initial_state()
        ras = Order_State_Machine.get_initial_role_actions()
        print 'ras:', ras
    else:
        next_state, post_action = Order_State_Machine.get_next(role, action, c_state)
        ras = Order_State_Machine.get_role_actions(next_state)
    return render_to_response(template_name, {'roles':ras.keys(), 'role_actions':ras, 'current_state':next_state},
        context_instance=RequestContext(request))
Ejemplo n.º 3
0
def make_order(request, template_name='product_order/make_order.html'):
    order_id = request.GET.get('order_id')
    role = request.GET.get('role')
    action = request.GET.get('action')
    if not role:        
        return render_to_response(template_name, {'order': None, 'role_actions':Order_State_Machine.get_initial_role_actions(),
           'current_state':Order_State_Machine.get_initial_state()},
            context_instance=RequestContext(request))
    else:
        if role == 'B' and action == 'create order': 
            order_id = Order.create_order()  
            order = get_object_or_404(Order, id=order_id)        
        else:
            order = get_object_or_404(Order, id=order_id)
            order.goto_next(role, action)           

    return render_to_response(template_name, {'order': order.product_order, 'role_actions':order.product_order.get_role_actions(), 'current_state':order.state},
        context_instance=RequestContext(request))
Ejemplo n.º 4
0
def order_state_machine(request,
                        template_name='product_order/order_state_machine.html'
                        ):
    role = request.GET.get('role')
    action = request.GET.get('action')
    c_state = request.GET.get('current_state')
    if not (role or action or c_state):
        #initial state
        next_state = Order_State_Machine.get_initial_state()
        ras = Order_State_Machine.get_initial_role_actions()
        print 'ras:', ras
    else:
        next_state, post_action = Order_State_Machine.get_next(
            role, action, c_state)
        ras = Order_State_Machine.get_role_actions(next_state)
    return render_to_response(template_name, {
        'roles': ras.keys(),
        'role_actions': ras,
        'current_state': next_state
    },
                              context_instance=RequestContext(request))
Ejemplo n.º 5
0
 def get_initial(cls):
     return {
         'order': None,
         'role_actions': Order_State_Machine.get_initial_role_actions(),
         'current_state': Order_State_Machine.get_initial_state()
     }
Ejemplo n.º 6
0
def get_actions(request, role):
    c_state = request.REQUEST.get('current_state','')
    ras = Order_State_Machine.get_role_actions(c_state)
    actions = ras.get(role, None)
    return HttpResponse(json.dumps(actions, "application/json"))
Ejemplo n.º 7
0
 def get_initial(cls):
     return {'order': None, 'role_actions':Order_State_Machine.get_initial_role_actions(),
                'current_state':Order_State_Machine.get_initial_state()} 
Ejemplo n.º 8
0
def get_actions(request, role):
    c_state = request.REQUEST.get('current_state', '')
    ras = Order_State_Machine.get_role_actions(c_state)
    actions = ras.get(role, None)
    return HttpResponse(json.dumps(actions, "application/json"))