ソースを参照

Partial commit -- invoice item API

master
kj1352 3年前
コミット
9150dc42b3
6個のファイルの変更53行の追加5行の削除
  1. +3
    -1
      invoice/admin.py
  2. +1
    -1
      invoice/models.py
  3. +14
    -0
      invoice/serializers.py
  4. +7
    -0
      invoice/urls.py
  5. +25
    -2
      invoice/views.py
  6. +3
    -1
      workx_backend/urls.py

+ 3
- 1
invoice/admin.py ファイルの表示

@@ -1,3 +1,5 @@
from django.contrib import admin
from .models import *

# Register your models here.

admin.site.register([Invoice, Item])

+ 1
- 1
invoice/models.py ファイルの表示

@@ -25,4 +25,4 @@ class Item(models.Model):
return self.amount * self.quantity

def __str__(self):
return self.name
return self.id

+ 14
- 0
invoice/serializers.py ファイルの表示

@@ -0,0 +1,14 @@
from rest_framework import serializers
from .models import Item, Invoice


class ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields = ['id', 'name', 'amount', 'quantity', 'invoice', 'item_total']


class InvoiceSerializer(serializers.ModelSerializer):
class Meta:
model = Invoice
fields = ['id', 'project', 'invoice_id', 'raised_date', 'due_date', 'paid_date', 'is_archived']

+ 7
- 0
invoice/urls.py ファイルの表示

@@ -0,0 +1,7 @@
from django.urls import path
from . import views

urlpatterns = [
path('invoices/', views.InvoiceList.as_view()),
path('invoice-items/', views.ItemList.as_view()),
]

+ 25
- 2
invoice/views.py ファイルの表示

@@ -1,3 +1,26 @@
from django.shortcuts import render
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.authentication import TokenAuthentication, SessionAuthentication
from rest_framework.permissions import IsAuthenticated
from .models import Item, Invoice
from .serializers import ItemSerializer, InvoiceSerializer

# Create your views here.

class ItemList(APIView):
authentication_classes = [TokenAuthentication, SessionAuthentication]
permission_classes = [IsAuthenticated]

def get(self, request):
items = Item.objects.filter(pk=Item.invoice)
serializer = ItemSerializer(items, many=True)
return Response(serializer.data)


class InvoiceList(APIView):
authentication_classes = [TokenAuthentication, SessionAuthentication]
permission_classes = [IsAuthenticated]

def get(self, request):
items = Invoice.objects.all()
serializer = InvoiceSerializer(items, many=True)
return Response(serializer.data)

+ 3
- 1
workx_backend/urls.py ファイルの表示

@@ -7,6 +7,7 @@ from client import urls as clientUrls
from employee import urls as employeeUrls
from project import urls as projectUrls
from representative import urls as representativeUrls
from invoice import urls as invoiceUrls


schema_view = get_schema_view(
@@ -33,7 +34,8 @@ urlpatterns = [
path('', include(clientUrls)),
path('', include(employeeUrls)),
path('', include(projectUrls)),
path('', include(representativeUrls))
path('', include(representativeUrls)),
path('', include(invoiceUrls))
]))
])),
]