Browse Source

Converted order management app to new structure

master
David Winterbottom 14 years ago
parent
commit
cccce7aa71

+ 3
- 1
oscar/app.py View File

@@ -6,6 +6,7 @@ from oscar.apps.customer.app import application as customer_app
6 6
 from oscar.apps.basket.app import application as basket_app
7 7
 from oscar.apps.checkout.app import application as checkout_app
8 8
 from oscar.apps.promotions.app import application as promotions_app
9
+from oscar.apps.order_management.app import application as order_management_app
9 10
 
10 11
 
11 12
 class Shop(Application):
@@ -15,13 +16,14 @@ class Shop(Application):
15 16
     basket_app = basket_app
16 17
     checkout_app = checkout_app
17 18
     promotions_app = promotions_app
19
+    order_management_app = order_management_app
18 20
     
19 21
     def get_urls(self):
20 22
         urlpatterns = patterns('',
21 23
             (r'products/', include(self.product_app.urls)),
22 24
             (r'basket/', include(self.basket_app.urls)),
23 25
             (r'checkout/', include(self.checkout_app.urls)),
24
-            (r'order-management/', include('oscar.apps.order_management.urls')),
26
+            (r'order-management/', include(self.order_management_app.urls)),
25 27
             (r'accounts/', include(self.customer_app.urls)),
26 28
             (r'reports/', include('oscar.apps.reports.urls')),
27 29
             (r'search/', include('oscar.apps.search.urls')),

+ 1
- 0
oscar/apps/checkout/forms.py View File

@@ -1,6 +1,7 @@
1 1
 from django.forms import ModelForm
2 2
 from django.db.models import get_model
3 3
 
4
+
4 5
 class ShippingAddressForm(ModelForm):
5 6
     
6 7
     def __init__(self, *args, **kwargs):

+ 8
- 2
oscar/apps/checkout/utils.py View File

@@ -17,12 +17,12 @@ class CheckoutSessionData(object):
17 17
         if namespace not in self.request.session[self.SESSION_KEY]:
18 18
             self.request.session[self.SESSION_KEY][namespace] = {}
19 19
           
20
-    def _get(self, namespace, key):
20
+    def _get(self, namespace, key, default=None):
21 21
         u"""Return session value or None"""
22 22
         self._check_namespace(namespace)
23 23
         if key in self.request.session[self.SESSION_KEY][namespace]:
24 24
             return self.request.session[self.SESSION_KEY][namespace][key]
25
-        return None
25
+        return default
26 26
             
27 27
     def _set(self, namespace, key, value):
28 28
         u"""Set session value"""
@@ -89,6 +89,12 @@ class CheckoutSessionData(object):
89 89
     def payment_method(self):
90 90
         return self._get('payment', 'method')
91 91
     
92
+    def billing_address_same_as_shipping(self):
93
+        self._set('payment', 'billing_address_same_as_shipping', True)
94
+        
95
+    def is_billing_address_same_as_shipping(self):
96
+        return self._get('payment', 'billing_address_same_as_shipping', False)
97
+    
92 98
     # Submission methods
93 99
     
94 100
     def set_submitted_basket(self, basket):

+ 21
- 0
oscar/apps/order_management/app.py View File

@@ -0,0 +1,21 @@
1
+from django.conf.urls.defaults import patterns, url
2
+from django.contrib.admin.views.decorators import staff_member_required
3
+
4
+from oscar.core.application import Application
5
+from oscar.apps.order_management.views import OrderListView, OrderDetailView
6
+
7
+
8
+class OrderManagementApplication(Application):
9
+    name = 'order-management'
10
+    
11
+    list_view = OrderListView
12
+    detail_view = OrderDetailView
13
+
14
+    def get_urls(self):
15
+        urlpatterns = patterns('oscar.order_management.views',
16
+            url(r'^$', staff_member_required(self.list_view.as_view()), name='list'),
17
+            url(r'^order/(?P<order_number>[\w-]*)/$', staff_member_required(self.detail_view.as_view()), name='detail'),
18
+        )
19
+        return urlpatterns
20
+
21
+application = OrderManagementApplication()

+ 2
- 2
oscar/apps/order_management/templates/order_management/browse.html View File

@@ -6,7 +6,7 @@
6 6
 <h2>Order management</h2>
7 7
 {% endblock header %}
8 8
 {% block content %}
9
-<form method="get" action="{% url oscar-order-management-list %}">
9
+<form method="get" action="{% url order-management:list %}">
10 10
     {{ order_simple_search_form.as_p }}
11 11
     <input type="submit" nane="simple_search" value="Search" />
12 12
 </form>
@@ -33,7 +33,7 @@
33 33
         <td>{{ order.billing_address }}</td>
34 34
         <td>{{ order.date_placed }}</td>
35 35
         <td>
36
-            <a href="{% url oscar-order-management-order order.number %}">View</a>
36
+            <a href="{% url order-management:detail order.number %}">View</a>
37 37
         </td>
38 38
     </tr>
39 39
     {% endfor %}

+ 3
- 3
oscar/apps/order_management/templates/order_management/order.html View File

@@ -38,7 +38,7 @@
38 38
 
39 39
 <h3>Order contents</h3>
40 40
 
41
-<form action="{% url oscar-order-management-order order.number %}" method="post">
41
+<form action="{% url order-management:detail order.number %}" method="post">
42 42
 {% csrf_token %}
43 43
 <input type="hidden" name="action" value="create_line_event" />
44 44
 <table>
@@ -86,7 +86,7 @@
86 86
 </table>
87 87
 </form>
88 88
 
89
-<form action="{% url oscar-order-management-order order.number %}" method="post">
89
+<form action="{% url order-management:detail order.number %}" method="post">
90 90
     {% csrf_token %}
91 91
     <input type="hidden" name="action" value="create_order_event" />
92 92
     Set entire order to:
@@ -159,7 +159,7 @@
159 159
 </table>
160 160
 {% endif %}
161 161
 
162
-<form method="post" action="{%url oscar-order-management-order order.number %}"/>
162
+<form method="post" action="{%url order-management:detail order.number %}"/>
163 163
     {% csrf_token %}
164 164
     <input type="hidden" name="action" value="add_note" />
165 165
     <label for="message">Message:</label>

+ 0
- 11
oscar/apps/order_management/urls.py View File

@@ -1,11 +0,0 @@
1
-from django.conf.urls.defaults import *
2
-from django.contrib.admin.views.decorators import staff_member_required
3
-
4
-from oscar.core.loading import import_module
5
-import_module('order_management.views', ['OrderListView', 'OrderView'], locals())
6
-
7
-urlpatterns = patterns('oscar.order_management.views',
8
-    url(r'^$', staff_member_required(OrderListView.as_view()), name='oscar-order-management-list'),
9
-    url(r'^order/(?P<order_number>[\w-]*)/$', staff_member_required(OrderView.as_view()), name='oscar-order-management-order'),
10
-)
11
-

+ 3
- 3
oscar/apps/order_management/views.py View File

@@ -60,7 +60,7 @@ class OrderListView(ListView):
60 60
         return response
61 61
         
62 62
         
63
-class OrderView(DetailView, PostActionMixin):
63
+class OrderDetailView(DetailView, PostActionMixin):
64 64
     u"""A detail view of an order"""
65 65
     template_name = "order_management/order.html"
66 66
     context_object_name = 'order'
@@ -70,7 +70,7 @@ class OrderView(DetailView, PostActionMixin):
70 70
         return get_object_or_404(Order, number=self.kwargs['order_number'])
71 71
     
72 72
     def get_context_data(self, **kwargs):
73
-        context = super(OrderView, self).get_context_data(**kwargs)
73
+        context = super(OrderDetailView, self).get_context_data(**kwargs)
74 74
         context['shipping_options'] = ShippingEventType._default_manager.all()
75 75
         context['payment_options'] = PaymentEventType._default_manager.all()
76 76
         return context
@@ -78,7 +78,7 @@ class OrderView(DetailView, PostActionMixin):
78 78
     def post(self, request, *args, **kwargs):
79 79
         order = self.get_object()
80 80
         self.response = HttpResponseRedirect(reverse('oscar-order-management-order', kwargs={'order_number': order.number}))
81
-        return super(OrderView, self).post(request, *args, **kwargs)
81
+        return super(OrderDetailView, self).post(request, *args, **kwargs)
82 82
    
83 83
     def do_create_order_event(self, order):
84 84
         self.create_shipping_event(order, order.lines.all())

Loading…
Cancel
Save