Exemple #1
0
def make_order2(request, template_name='product_order/make_order2.html'):
    order_id = request.GET.get('order_id')
    role = request.GET.get('role', '')
    order_action = request.GET.get('action', '')
    item_action = request.GET.get('item_action', '')
    item_id = request.GET.get('item_id')
    refresh = request.GET.get('refresh')
    if not order_id:
        order_id = Order_System.create_order()  #use the default params
        refresh = 'y'
    print 'order_id:', order_id
    if refresh == 'y':
        return render_to_response(template_name,
                                  Order_System.get_status(order_id),
                                  context_instance=RequestContext(request))
    if not role:
        return render_to_response(template_name,
                                  Order_System.get_initial(),
                                  context_instance=RequestContext(request))
    else:
        return render_to_response(template_name,
                                  Order_System.goto_next(
                                      order_id, role, order_action,
                                      item_action, item_id),
                                  context_instance=RequestContext(request))
Exemple #2
0
def make_order3(request, template_name='product_order/make_order3.html'):
    request_params = request.GET.copy()
    request_params = request_params.dict()  #TODO:
    #print 'request.GET:', request.GET
    #print 'request_params:', request_params
    order_id = request_params.pop('order_id')
    role = request_params.pop('role', '')
    order_action = request_params.pop('action', '')
    item_action = request_params.pop('item_action', '')
    item_id = request_params.pop('item_id', '')
    #order = None
    refresh = request_params.pop('refresh', '')
    #TODO: testing below
    request_params['operator'] = request.user.username

    if refresh == 'y':
        return render_to_response(template_name,
                                  Order_System.get_status(order_id),
                                  context_instance=RequestContext(request))
    if not role:
        return render_to_response(template_name,
                                  Order_System.get_initial(),
                                  context_instance=RequestContext(request))
    else:
        return render_to_response(template_name,
                                  Order_System.goto_next(
                                      order_id, role, order_action,
                                      item_action, item_id, **request_params),
                                  context_instance=RequestContext(request))
Exemple #3
0
    def test_work_flow3(self): 
        """create product order -> pay the order -> provider ships the product -> buyer confirms
        """
        o_id = Order_System.create_order()
        o = get_object_or_404(Product_Order, id=o_id)  
        status = o.state
        self.assertEqual(status,  u'WP')                     
        status = o.get_state_display()
        self.assertEqual(status, u'Waiting for Payment')     

        o.goto_next(u'p', u'payment successful')             
        status = o.state
        self.assertEqual(status,  u'FP')  

        o.goto_next(u'S',u'ship the order')                  
        status = o.state
        self.assertEqual(status,  u'FS')

        o.goto_next(u'B',u'confirm reception of order')     
        status = o.state
        self.assertEqual(status,  u'ST')

        o.goto_next(u'P',u'no refund request')              
        status = o.state
        self.assertEqual(status,  u'WA')

        o.goto_next(u'P',u'finished accounting')            
        status = o.state
        self.assertEqual(status,  u'FA')
Exemple #4
0
    def test_work_flow3(self):
        """create product order -> pay the order -> provider ships the product -> buyer confirms
        """
        o_id = Order_System.create_order()
        o = get_object_or_404(Product_Order, id=o_id)
        status = o.state
        self.assertEqual(status, u'WP')
        status = o.get_state_display()
        self.assertEqual(status, u'Waiting for Payment')

        o.goto_next(u'p', u'payment successful')
        status = o.state
        self.assertEqual(status, u'FP')

        o.goto_next(u'S', u'ship the order')
        status = o.state
        self.assertEqual(status, u'FS')

        o.goto_next(u'B', u'confirm reception of order')
        status = o.state
        self.assertEqual(status, u'ST')

        o.goto_next(u'P', u'no refund request')
        status = o.state
        self.assertEqual(status, u'WA')

        o.goto_next(u'P', u'finished accounting')
        status = o.state
        self.assertEqual(status, u'FA')
Exemple #5
0
def make_order2(request, template_name='product_order/make_order2.html'):
    order_id = request.GET.get('order_id')
    role = request.GET.get('role','')
    order_action = request.GET.get('action','')
    item_action = request.GET.get('item_action','')
    item_id = request.GET.get('item_id')
    refresh = request.GET.get('refresh')
    if not order_id:
        order_id = Order_System.create_order() #use the default params
        refresh = 'y'
    print 'order_id:', order_id            
    if refresh == 'y':
        return render_to_response(template_name, Order_System.get_status(order_id) , context_instance=RequestContext(request))
    if not role:        
        return render_to_response(template_name, Order_System.get_initial(), context_instance=RequestContext(request))
    else:
        return render_to_response(template_name, Order_System.goto_next(order_id, role, order_action, item_action, item_id), 
            context_instance=RequestContext(request))
Exemple #6
0
 def test_state_machine(self):
     initials = Order_System.get_initial()
     self.assertDictEqual(
         initials, {
             'role_actions': {
                 u'B': [u'create order']
             },
             'current_state': '',
             'order': None
         })
Exemple #7
0
def make_order3(request, template_name='product_order/make_order3.html'):
    request_params = request.GET.copy()
    request_params = request_params.dict() #TODO:
    #print 'request.GET:', request.GET
    #print 'request_params:', request_params
    order_id = request_params.pop('order_id')
    role = request_params.pop('role','')
    order_action = request_params.pop('action','')
    item_action = request_params.pop('item_action','')
    item_id = request_params.pop('item_id', '')
    #order = None
    refresh = request_params.pop('refresh','')
    #TODO: testing below 
    request_params['operator'] = request.user.username 

    if refresh == 'y':
        return render_to_response(template_name, Order_System.get_status(order_id), context_instance=RequestContext(request))
    if not role:        
        return render_to_response(template_name, Order_System.get_initial(), context_instance=RequestContext(request))
    else:
        return render_to_response(template_name, Order_System.goto_next(order_id, role, order_action, item_action, item_id, **request_params), 
            context_instance=RequestContext(request))
Exemple #8
0
    def test_work_flow1(self):
        """create product order -> cancel this order
        """
        o_id = Order_System.create_order()
        o = get_object_or_404(Product_Order, id=o_id)  
        status = o.state
        self.assertEqual(status,  u'WP')                     
        status = o.get_state_display()
        self.assertEqual(status, u'Waiting for Payment') 

        o.goto_next(u'B', u'cancel order')                   
        status = o.state
        self.assertEqual(status, u'CT')                      
        actions =  o.get_role_actions()
        self.assertDictEqual(actions, {})
        status = o.get_state_display()    
        self.assertEqual(status, u'Closed Transatcion')
Exemple #9
0
    def test_work_flow1(self):
        """create product order -> cancel this order
        """
        o_id = Order_System.create_order()
        o = get_object_or_404(Product_Order, id=o_id)
        status = o.state
        self.assertEqual(status, u'WP')
        status = o.get_state_display()
        self.assertEqual(status, u'Waiting for Payment')

        o.goto_next(u'B', u'cancel order')
        status = o.state
        self.assertEqual(status, u'CT')
        actions = o.get_role_actions()
        self.assertDictEqual(actions, {})
        status = o.get_state_display()
        self.assertEqual(status, u'Closed Transatcion')
Exemple #10
0
def create_order(request, template_name='product_order/create_order.html'):
    if request.method == 'POST':
        item_id_list = request.POST.getlist('item_id')
        item_name_list = request.POST.getlist('item_name')
        #pdb.set_trace()
        request_params = request.POST.copy()
        request_params = request_params.dict()
        items = []
        for i, item_id in enumerate(item_id_list):
            items.append({'commodity_id':item_id, 'name':item_name_list[i]})
        #items_snapshot = {'order_type':'product', 'items':items}
        items_snapshot = items
        items_json = json.dumps(items_snapshot)  
        request_params['items_json'] = items_json

        o = Order_System.create_order(item_list=item_id_list, **request_params)
        
        return HttpResponseRedirect('/demo/make_order3/?order_id='+o+'&refresh=y') 
    cs = Commodity.objects.all()
    return render_to_response(template_name, {'items':cs}, 
            context_instance=RequestContext(request))
Exemple #11
0
def create_order(request, template_name='product_order/create_order.html'):
    if request.method == 'POST':
        item_id_list = request.POST.getlist('item_id')
        item_name_list = request.POST.getlist('item_name')
        #pdb.set_trace()
        request_params = request.POST.copy()
        request_params = request_params.dict()
        items = []
        for i, item_id in enumerate(item_id_list):
            items.append({'commodity_id': item_id, 'name': item_name_list[i]})
        #items_snapshot = {'order_type':'product', 'items':items}
        items_snapshot = items
        items_json = json.dumps(items_snapshot)
        request_params['items_json'] = items_json

        o = Order_System.create_order(item_list=item_id_list, **request_params)

        return HttpResponseRedirect('/demo/make_order3/?order_id=' + o +
                                    '&refresh=y')
    cs = Commodity.objects.all()
    return render_to_response(template_name, {'items': cs},
                              context_instance=RequestContext(request))
Exemple #12
0
 def test_state_machine(self):
     initials = Order_System.get_initial()
     self.assertDictEqual(initials, {'role_actions': {u'B': [u'create order']}, 'current_state': '', 'order': None})