Ver a proveniência

Added detailed invoice API

master
kj1352 há 3 anos
ascendente
cometimento
bbba08d204
4 ficheiros alterados com 22 adições e 2 eliminações
  1. +9
    -0
      invoice/serializers.py
  2. +1
    -0
      invoice/urls.py
  3. +8
    -1
      invoice/views.py
  4. +4
    -1
      project/serializers.py

+ 9
- 0
invoice/serializers.py Ver ficheiro

@@ -11,6 +11,15 @@ class ItemSerializer(serializers.ModelSerializer):




class InvoiceSerializer(WritableNestedModelSerializer): class InvoiceSerializer(WritableNestedModelSerializer):
items = ItemSerializer(many=True)

class Meta:
model = Invoice
fields = ['id', 'title', 'project', 'invoice_id', 'raised_date', 'due_date', 'paid_date', 'is_archived',
'invoice_total_with_tax', 'items']


class DetailedInvoiceSerializer(serializers.ModelSerializer):
project = ProjectSerializer(read_only=True) project = ProjectSerializer(read_only=True)
items = ItemSerializer(many=True) items = ItemSerializer(many=True)




+ 1
- 0
invoice/urls.py Ver ficheiro

@@ -6,6 +6,7 @@ from rest_framework import routers
router = routers.DefaultRouter() router = routers.DefaultRouter()
router.register(r'items', views.ItemViewSet) router.register(r'items', views.ItemViewSet)
router.register(r'invoices', views.InvoiceViewSet) router.register(r'invoices', views.InvoiceViewSet)
router.register(r'detailed-invoices', views.DetailedInvoiceViewSet)




urlpatterns = [ urlpatterns = [


+ 8
- 1
invoice/views.py Ver ficheiro

@@ -2,7 +2,7 @@ from rest_framework import viewsets
from rest_framework.authentication import TokenAuthentication, SessionAuthentication from rest_framework.authentication import TokenAuthentication, SessionAuthentication
from rest_framework.permissions import IsAuthenticated from rest_framework.permissions import IsAuthenticated
from .models import Item, Invoice from .models import Item, Invoice
from .serializers import ItemSerializer, InvoiceSerializer
from .serializers import ItemSerializer, InvoiceSerializer, DetailedInvoiceSerializer




class ItemViewSet(viewsets.ModelViewSet): class ItemViewSet(viewsets.ModelViewSet):
@@ -17,3 +17,10 @@ class InvoiceViewSet(viewsets.ModelViewSet):
serializer_class = InvoiceSerializer serializer_class = InvoiceSerializer
authentication_classes = [TokenAuthentication, SessionAuthentication] authentication_classes = [TokenAuthentication, SessionAuthentication]
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]


class DetailedInvoiceViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Invoice.objects.all()
serializer_class = DetailedInvoiceSerializer
authentication_classes = [TokenAuthentication, SessionAuthentication]
permission_classes = [IsAuthenticated]

+ 4
- 1
project/serializers.py Ver ficheiro

@@ -1,11 +1,14 @@
from rest_framework import serializers from rest_framework import serializers
from .models import Project from .models import Project
from client.serializers import ClientSerializer from client.serializers import ClientSerializer
from employee.serializers import EmployeeSerializer




class ProjectSerializer(serializers.ModelSerializer): class ProjectSerializer(serializers.ModelSerializer):
client = ClientSerializer(read_only=True) client = ClientSerializer(read_only=True)
employee_set = EmployeeSerializer(read_only=True, many=True)
class Meta: class Meta:
model = Project model = Project
fields = ['id', 'name', 'project_image', 'client', 'total_compensation', 'start_date', 'end_date']
fields = ['id', 'name', 'project_image', 'client', 'total_compensation', 'start_date', 'end_date',
'employee_set']