Kaynağa Gözat

Partial commit -- invoice item API

master
kj1352 3 yıl önce
ebeveyn
işleme
9150dc42b3
6 değiştirilmiş dosya ile 53 ekleme ve 5 silme
  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 Dosyayı Görüntüle

@@ -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 Dosyayı Görüntüle

@@ -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 Dosyayı Görüntüle

@@ -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 Dosyayı Görüntüle

@@ -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 Dosyayı Görüntüle

@@ -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 Dosyayı Görüntüle

@@ -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))
]))
])),
]