Order view front end

pull/15/head
JamesRamm 2017-02-10 09:06:35 +00:00
rodzic cfc4e3ca1a
commit 5d432b31d3
5 zmienionych plików z 99 dodań i 1 usunięć

2
.gitignore vendored
Wyświetl plik

@ -52,4 +52,4 @@ docs/_build
webpack-stats.json
*bundle.js
*bundle.js*

Wyświetl plik

@ -0,0 +1,24 @@
from django.apps import apps
from django.db import transaction
from rest_framework.decorators import api_view, permission_classes
from rest_framework import permissions, status, viewsets
from rest_framework.response import Response
from longclaw.orders.models import Order
from longclaw.orders.serializers import OrderSerializer
@api_view(["POST"])
@permission_classes([permissions.AllowAny])
def fulfill_order(request, pk):
''' Get all basket items
'''
order = Order.objects.get(id=pk)
order.status = Order.FULFILLED
order.save()
return Response(status=status.HTTP_204_NO_CONTENT)
class OrderViewSet(viewsets.ModelViewSet):
serializer_class = OrderSerializer
permission_classes = [permissions.IsAdminUser]
queryset = Order.objects.all()

Wyświetl plik

@ -0,0 +1,32 @@
from django.apps import apps
from rest_framework import serializers
from longclaw.orders.models import Order, OrderItem, Address
from longclaw.products.serializers import ProductVariantSerializer
class AddressSerializer(serializers.ModelSerializer):
class Meta:
model = Address
fields = "__all__"
class OrderItemSerializer(serializers.ModelSerializer):
product = ProductVariantSerializer()
class Meta:
model = OrderItem
fields = "__all__"
class OrderSerializer(serializers.ModelSerializer):
items = OrderItemSerializer(many=True)
shipping_address = AddressSerializer()
total = serializers.SerializerMethodField()
class Meta:
model = Order
fields = "__all__"
def get_total(self, obj):
return obj.total

Wyświetl plik

@ -0,0 +1,17 @@
{% extends "modeladmin/inspect.html" %}
{% load i18n static %}
{% block content_main %}
<div class="nice-padding">
<p class="back"><a href="{{ view.index_url }}" class="icon icon-arrow-left">{% blocktrans with view.verbose_name as model_name %}Back to {{ model_name }} list{% endblocktrans %}</a></p>
<div id="order-app" data-order-id="{{ order_id }}"></div>
</div>
<script type="text/javascript" src="{% static 'longclaw.orders/js/vendors.bundle.js' %}"></script>
<script type="text/javascript" src="{% static 'longclaw.orders/js/orders.bundle.js' %}"></script>
{% endblock %}
{% block footer %}
{% endblock %}

Wyświetl plik

@ -0,0 +1,25 @@
from django.conf.urls import url
from django.conf import settings
# signals imported so that the post save receivers run..
from longclaw.orders import api
# Bookings
orders = api.OrderViewSet.as_view({
'get': 'retrieve',
})
urlpatterns = (
### VIEWS ###
url(
r'^order/(?P<pk>[0-9]+)/$',
orders,
name='orders'
),
url(
r'^order/(?P<pk>[0-9]+)/fulfill/$',
api.fulfill_order,
name='fulfill_order'
)
)