diff --git a/Lengow/urls.py b/Lengow/urls.py index 7b11d9f..888f706 100644 --- a/Lengow/urls.py +++ b/Lengow/urls.py @@ -26,8 +26,11 @@ router.register(r'orders', OrderViewSet) urlpatterns = [ url(r'^admin/', admin.site.urls), + url(r'^create/', views.OrderCreateView.as_view(), name='create'), + url(r'^api/', include(router.urls)), + url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), url(r'^$', views.OrderIndexView.as_view(), name='index'), url(r'^(?P[-\w]+)/$', views.OrderDetailView.as_view(), name='detail'), - url(r'^api/', include(router.urls)), - url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')) + url(r'^(?P[-\w]+)/delete/$', views.OrderDeleteView.as_view(), name='delete'), + url(r'^(?P[-\w]+)/update/$', views.OrderUpdateView.as_view(), name='update'), ] diff --git a/orders/models.py b/orders/models.py index 6338614..4d35c25 100644 --- a/orders/models.py +++ b/orders/models.py @@ -13,15 +13,15 @@ class Order(models.Model): order_id = models.CharField(max_length=20, primary_key=True) order_mrid = models.CharField(max_length=20) order_refid = models.CharField(max_length=20) - order_external_id = models.CharField(max_length=20, null=True) + order_external_id = models.CharField(max_length=20, null=True, blank=True) # Colonne unique pour le order_purchase_date et order_purchase_heure because DateTime - order_purchase = models.DateTimeField(null=True) + order_purchase = models.DateTimeField(null=True, blank=True) order_amount = models.FloatField() - order_tax = models.FloatField(null=True) + order_tax = models.FloatField(null=True, blank=True) order_shipping = models.FloatField() order_commission = models.FloatField() order_processing_fee = models.FloatField() - order_comments = models.TextField(null=True) - customer_id = models.CharField(max_length=20, null=True) - order_ip = models.GenericIPAddressField(null=True) + order_comments = models.TextField(null=True, blank=True) + customer_id = models.CharField(max_length=20, null=True, blank=True) + order_ip = models.GenericIPAddressField(null=True, blank=True) order_items = models.IntegerField() diff --git a/orders/views.py b/orders/views.py index c39e348..3429499 100644 --- a/orders/views.py +++ b/orders/views.py @@ -1,4 +1,5 @@ -from django.views.generic import ListView, DetailView +from django.core.urlresolvers import reverse_lazy +from django.views.generic import ListView, DetailView, DeleteView, UpdateView, CreateView from rest_framework import serializers, viewsets @@ -15,6 +16,30 @@ class OrderDetailView(DetailView): model = Order +class OrderDeleteView(DeleteView): + template_name = 'orders/order/delete.html' + model = Order + success_url = reverse_lazy('index') + + +class OrderUpdateView(UpdateView): + template_name = 'orders/order/update.html' + model = Order + success_url = reverse_lazy('index') + fields = ['marketplace', 'idFlux', 'order_mrid', 'order_refid', 'order_external_id', + 'order_purchase', 'order_amount', 'order_tax', 'order_shipping', 'order_commission', + 'order_processing_fee', 'order_comments', 'customer_id', 'order_ip', 'order_items'] + + +class OrderCreateView(CreateView): + template_name = 'orders/order/create.html' + model = Order + success_url = reverse_lazy('index') + fields = ['marketplace', 'idFlux', 'order_mrid', 'order_refid', 'order_external_id', + 'order_purchase', 'order_amount', 'order_tax', 'order_shipping', 'order_commission', + 'order_processing_fee', 'order_comments', 'customer_id', 'order_ip', 'order_items'] + + class OrderSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Order diff --git a/templates/orders/base.html b/templates/orders/base.html index b53278a..839ba49 100644 --- a/templates/orders/base.html +++ b/templates/orders/base.html @@ -14,6 +14,14 @@ + + {% block body %}{% endblock %} diff --git a/templates/orders/order/create.html b/templates/orders/order/create.html new file mode 100644 index 0000000..b878319 --- /dev/null +++ b/templates/orders/order/create.html @@ -0,0 +1,12 @@ +{% extends 'orders/base.html' %} + +{% block title %}Create an order{% endblock %} + +{% block body %} +
+
{% csrf_token %} + {{ form.as_p }} + +
+
+{% endblock %} diff --git a/templates/orders/order/delete.html b/templates/orders/order/delete.html new file mode 100644 index 0000000..fb36971 --- /dev/null +++ b/templates/orders/order/delete.html @@ -0,0 +1,12 @@ +{% extends 'orders/base.html' %} + +{% block title %}Confirm deletion of {{ object.order_id }}'s order{% endblock %} + +{% block body %} +
+
{% csrf_token %} +

Are you sure you want to delete order "{{ object.order_id }}"?

+ +
+
+{% endblock %} diff --git a/templates/orders/order/detail.html b/templates/orders/order/detail.html index 1689e59..070defd 100644 --- a/templates/orders/order/detail.html +++ b/templates/orders/order/detail.html @@ -4,7 +4,6 @@ {% block body %}
-

Order {{ object.order_id }}

    diff --git a/templates/orders/order/index.html b/templates/orders/order/index.html index f45a48d..3647a82 100644 --- a/templates/orders/order/index.html +++ b/templates/orders/order/index.html @@ -4,7 +4,11 @@ {% block body %}
    -

    Orders

    +

    + + Create new order + +

    @@ -49,7 +53,7 @@ diff --git a/templates/orders/order/update.html b/templates/orders/order/update.html new file mode 100644 index 0000000..8641148 --- /dev/null +++ b/templates/orders/order/update.html @@ -0,0 +1,14 @@ +{% extends 'orders/base.html' %} + +{% block title %}Update {{ object.order_id }}'s order{% endblock %} + +{% block body %} +
    +

    Order {{ object.order_id }}

    + +
    {% csrf_token %} + {{ form.as_p }} + + +
    +{% endblock %}
    {{ order.order_ip }} {{ order.order_items }} - +