kopia lustrzana https://github.com/longclawshop/longclaw
Order view front end
rodzic
cfc4e3ca1a
commit
5d432b31d3
|
|
@ -52,4 +52,4 @@ docs/_build
|
||||||
|
|
||||||
|
|
||||||
webpack-stats.json
|
webpack-stats.json
|
||||||
*bundle.js
|
*bundle.js*
|
||||||
|
|
@ -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()
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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 %}
|
||||||
|
|
@ -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'
|
||||||
|
)
|
||||||
|
)
|
||||||
Ładowanie…
Reference in New Issue