瀏覽代碼

Made payment method form field into ChoiceField for searching orders.

master
David Winterbottom 13 年之前
父節點
當前提交
6df60a5a03
共有 5 個文件被更改,包括 14 次插入10 次删除
  1. 5
    1
      oscar/apps/dashboard/orders/forms.py
  2. 5
    5
      oscar/apps/dashboard/orders/tests.py
  3. 3
    3
      oscar/apps/dashboard/orders/views.py
  4. 0
    1
      run_tests.py
  5. 1
    0
      tests/config.py

+ 5
- 1
oscar/apps/dashboard/orders/forms.py 查看文件

@@ -4,6 +4,7 @@ from django.db.models.loading import get_model
4 4
 Order = get_model('order', 'Order')
5 5
 OrderNote = get_model('order', 'OrderNote')
6 6
 ShippingAddress = get_model('order', 'ShippingAddress')
7
+SourceType = get_model('payment', 'SourceType')
7 8
 
8 9
 
9 10
 class OrderSearchForm(forms.Form):
@@ -20,7 +21,10 @@ class OrderSearchForm(forms.Form):
20 21
     date_to = forms.DateField(required=False, label="Date to", input_formats=date_formats)
21 22
 
22 23
     voucher = forms.CharField(required=False, label="Voucher code")
23
-    payment_method = forms.CharField(label="Payment method", required=False)
24
+
25
+    method_choices = (('', '---------'),) + tuple([(src.code, src.name) for src in SourceType.objects.all()])
26
+    payment_method = forms.ChoiceField(label="Payment method", required=False,
27
+                                       choices=method_choices)
24 28
 
25 29
     format_choices = (('html', 'HTML'),
26 30
                       ('csv', 'CSV'),)

+ 5
- 5
oscar/apps/dashboard/orders/tests.py 查看文件

@@ -1,17 +1,15 @@
1 1
 import httplib
2
-from django_dynamic_fixture import new, get, F
3 2
 
4 3
 from django.test import TestCase
5
-from django.test.client import Client
6 4
 from django.contrib.auth.models import User
7 5
 from django.core.urlresolvers import reverse
8 6
 from django.template import Template, Context
7
+from django_dynamic_fixture import get
8
+
9 9
 
10 10
 from oscar.test import ClientTestCase
11 11
 from oscar.test.helpers import create_order
12 12
 from oscar.apps.order.models import Order, OrderNote
13
-from oscar.apps.dashboard.orders.forms import OrderSearchForm
14
-from oscar.templatetags.dashboard_tags import get_num_user_orders
15 13
 
16 14
 
17 15
 class OrderSummaryTests(ClientTestCase):
@@ -29,6 +27,8 @@ class OrderListTests(ClientTestCase):
29 27
     is_staff = True
30 28
 
31 29
     def test_searching_for_valid_order_number_redirects_to_order_page(self):
30
+        # Importing here as the import makes DB queries
31
+        from oscar.apps.dashboard.orders.forms import OrderSearchForm
32 32
         order = create_order()
33 33
         fields = OrderSearchForm.base_fields.keys()
34 34
         pairs = dict(zip(fields, ['']*len(fields)))
@@ -65,7 +65,7 @@ class OrderDetailTests(ClientTestCase):
65 65
     def test_order_status_change_creates_system_note(self):
66 66
         params = {'order_action': 'change_order_status',
67 67
                   'new_status': 'B'}
68
-        response = self.client.post(self.url, params)
68
+        self.client.post(self.url, params)
69 69
         notes = self.order.notes.all()
70 70
         self.assertEqual(1, len(notes))
71 71
         self.assertEqual(OrderNote.SYSTEM, notes[0].note_type)

+ 3
- 3
oscar/apps/dashboard/orders/views.py 查看文件

@@ -1,4 +1,5 @@
1 1
 import csv
2
+import datetime
2 3
 from decimal import Decimal as D, InvalidOperation
3 4
 
4 5
 from django.contrib import messages
@@ -11,7 +12,6 @@ from django.shortcuts import get_object_or_404
11 12
 from django.template.defaultfilters import date as format_date
12 13
 from django.utils.datastructures import SortedDict
13 14
 from django.views.generic import ListView, DetailView, UpdateView, FormView
14
-from django.contrib import messages
15 15
 
16 16
 from oscar.core.loading import get_class
17 17
 from oscar.apps.dashboard.orders import forms
@@ -75,7 +75,7 @@ class OrderListView(ListView, BulkEditMixin):
75 75
     current_view = 'dashboard:order-list'
76 76
 
77 77
     def get(self, request, *args, **kwargs):
78
-        if 'order_number' in request.GET:
78
+        if 'order_number' in request.GET and request.GET.get('response_format', None) == 'html':
79 79
             try:
80 80
                 order = Order.objects.get(number=request.GET['order_number'])
81 81
             except Order.DoesNotExist:
@@ -384,7 +384,7 @@ class OrderDetailView(DetailView):
384 384
         except InvalidOperation:
385 385
             messages.error(request, "Please choose a valid amount")
386 386
             return self.reload_page_response()
387
-        return self._create_payment_event(request, order)
387
+        return self._create_payment_event(request, order, amount)
388 388
 
389 389
     def _create_payment_event(self, request, order, amount, lines=None,
390 390
                               quantities=None):

+ 0
- 1
run_tests.py 查看文件

@@ -1,6 +1,5 @@
1 1
 #!/usr/bin/env python
2 2
 import sys
3
-import os
4 3
 import logging
5 4
 from optparse import OptionParser
6 5
 from coverage import coverage

+ 1
- 0
tests/config.py 查看文件

@@ -14,6 +14,7 @@ if not settings.configured:
14 14
             DATABASES={
15 15
                 'default': {
16 16
                     'ENGINE': 'django.db.backends.sqlite3',
17
+                    'NAME': ':memory:',
17 18
                     }
18 19
                 },
19 20
             INSTALLED_APPS=[

Loading…
取消
儲存