| @@ -2,7 +2,7 @@ from rest_framework import serializers | |||||
| from .models import Project | from .models import Project | ||||
| class ProjectSerializers(serializers.ModelSerializer): | |||||
| class ProjectSerializer(serializers.ModelSerializer): | |||||
| 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'] | ||||
| @@ -3,7 +3,7 @@ from rest_framework.views import APIView | |||||
| 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 Project | from .models import Project | ||||
| from .serializers import ProjectSerializers | |||||
| from .serializers import ProjectSerializer | |||||
| class ProjectList(APIView): | class ProjectList(APIView): | ||||
| @@ -12,5 +12,5 @@ class ProjectList(APIView): | |||||
| def get(self, request): | def get(self, request): | ||||
| projects = Project.objects.all() | projects = Project.objects.all() | ||||
| serializer = ProjectSerializers(projects, many=True) | |||||
| serializer = ProjectSerializer(projects, many=True) | |||||
| return Response(serializer.data) | return Response(serializer.data) | ||||
| @@ -1,3 +1,5 @@ | |||||
| from django.contrib import admin | from django.contrib import admin | ||||
| from .models import * | |||||
| # Register your models here. | |||||
| admin.site.register([Representative, Role]) | |||||
| @@ -17,7 +17,4 @@ class Representative(models.Model): | |||||
| phone = PhoneNumberField() | phone = PhoneNumberField() | ||||
| role = models.ForeignKey(Role, on_delete=models.CASCADE) | role = models.ForeignKey(Role, on_delete=models.CASCADE) | ||||
| projects = models.ManyToManyField(Project) | projects = models.ManyToManyField(Project) | ||||
| clients = models.ForeignKey(Client, on_delete=models.CASCADE) | |||||
| def __str__(self): | |||||
| return self.user.name | |||||
| client = models.ForeignKey(Client, on_delete=models.CASCADE) | |||||
| @@ -0,0 +1,14 @@ | |||||
| from rest_framework import serializers | |||||
| from .models import Role, Representative | |||||
| class RoleSerializer(serializers.ModelSerializer): | |||||
| class Meta: | |||||
| model = Role | |||||
| fields = ['id', 'name'] | |||||
| class RepresentativeSerializer(serializers.ModelSerializer): | |||||
| class Meta: | |||||
| model = Representative | |||||
| fields = ['id', 'user', 'phone', 'role', 'projects', 'client'] | |||||
| @@ -0,0 +1,7 @@ | |||||
| from django.urls import path | |||||
| from . import views | |||||
| urlpatterns = [ | |||||
| path('representative-roles/', views.RoleList.as_view()), | |||||
| path('representatives/', views.RepresentativeList.as_view()), | |||||
| ] | |||||
| @@ -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 Representative, Role | |||||
| from .serializers import RoleSerializer, RepresentativeSerializer | |||||
| # Create your views here. | |||||
| class RoleList(APIView): | |||||
| authentication_classes = [TokenAuthentication, SessionAuthentication] | |||||
| permission_classes = [IsAuthenticated] | |||||
| def get(self, request): | |||||
| roles = Role.objects.all() | |||||
| serializer = RoleSerializer(roles, many=True) | |||||
| return Response(serializer.data) | |||||
| class RepresentativeList(APIView): | |||||
| authentication_classes = [TokenAuthentication, SessionAuthentication] | |||||
| permission_classes = [IsAuthenticated] | |||||
| def get(self, request): | |||||
| representatives = Representative.objects.all() | |||||
| serializer = RepresentativeSerializer(representatives, many=True) | |||||
| return Response(serializer.data) | |||||
| @@ -6,6 +6,7 @@ from drf_yasg import openapi | |||||
| from client import urls as clientUrls | from client import urls as clientUrls | ||||
| from employee import urls as employeeUrls | from employee import urls as employeeUrls | ||||
| from project import urls as projectUrls | from project import urls as projectUrls | ||||
| from representative import urls as representativeUrls | |||||
| schema_view = get_schema_view( | schema_view = get_schema_view( | ||||
| @@ -31,7 +32,8 @@ urlpatterns = [ | |||||
| path('api/', include([ | path('api/', include([ | ||||
| path('', include(clientUrls)), | path('', include(clientUrls)), | ||||
| path('', include(employeeUrls)), | path('', include(employeeUrls)), | ||||
| path('', include(projectUrls)) | |||||
| path('', include(projectUrls)), | |||||
| path('', include(representativeUrls)) | |||||
| ])) | ])) | ||||
| ])), | ])), | ||||
| ] | ] | ||||