Skip to content

Commit cb17667

Browse files
author
ninjadev999
committed
Merge pull request #112 from goldenstar999/backend
added logging function and updated admin part
2 parents 2426472 + 972d089 commit cb17667

File tree

75 files changed

+1914
-412
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+1914
-412
lines changed

backend/.idea/workspace.xml

Lines changed: 53 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/agency/casting_request_views.py

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from casting_request_talent.models import CastingRequestTalent
66
from casting_request_talent.details_by_talent_serializers import CastingRequestTalentDetailByTalentSerializer
77
from agency.casting_request_serializers import CastingRequestSearchSerializer, CastingRequestSetStatusSerializer
8+
from user_note.models import UserNoteManager
89
from django.http import Http404
910
from rest_framework.views import APIView
1011
from rest_framework.response import Response
@@ -57,13 +58,32 @@ def put(self, request, pk, format=None):
5758
serializer = CastingRequestSerializer(casting_request, data=request.data)
5859
if serializer.is_valid():
5960
serializer.save()
61+
62+
agency = request.user
63+
client_user = casting_request.client.user
64+
UserNoteManager.casting_request_logger(
65+
agency, agency, client_user,
66+
'updated casting reqeust.',
67+
casting_request
68+
)
69+
6070
return Response(serializer.data)
6171
return Response({'error': serializer.errors}, status=status.HTTP_400_BAD_REQUEST)
6272

6373
@swagger_auto_schema(responses={200: 'OK'})
6474
def delete(self, request, pk, format=None):
6575
casting_request = self.get_object(pk)
76+
77+
agency = request.user
78+
client_user = casting_request.client.user
79+
UserNoteManager.casting_request_logger(
80+
agency, agency, client_user,
81+
'deteled casting reqeust.',
82+
casting_request
83+
)
84+
6685
casting_request.delete()
86+
6787
return Response(status=status.HTTP_204_NO_CONTENT)
6888

6989

@@ -82,12 +102,39 @@ def get_object(self, pk):
82102
def put(self, request, pk, format=None):
83103
casting_request = self.get_object(pk)
84104

85-
CastingRequestSerializer
86105
serializer = CastingRequestSetStatusSerializer(casting_request, data=request.data)
87106
if serializer.is_valid():
88107
casting_request.status = request.data['status']
89108
casting_request.status_updated_date = request.data['status_updated_date']
90109
casting_request.save()
110+
111+
agency_user = request.user
112+
if agency_user:
113+
client_user = casting_request.client.user
114+
status = casting_request.status
115+
if status == 'Requested':
116+
note = '{client_user} requested.'.format(client_user=client_user.first_name)
117+
elif status == 'Reviewing':
118+
note = 'Reviewing'
119+
elif status == 'In Progress':
120+
note = 'Contracted to confirm request.'
121+
elif status == 'Accepted.':
122+
note = 'Accepted'
123+
elif status == 'Declined.':
124+
note = 'Declined'
125+
elif status == 'Canceled.':
126+
note = '{client_user} canceled.'.format(client_user=client_user)
127+
elif status == 'Completed':
128+
note = 'Completed.'
129+
130+
UserNoteManager.casting_request_logger(agency_user.first_name, client_user, client_user, note, casting_request)
131+
132+
casting_request_talents = CastingRequestTalent.objects.filter(casting_request=casting_request)
133+
if len(casting_request_talents) > 0:
134+
for casting_request_talent in casting_request_talents:
135+
talent_user = casting_request_talent.talent.user
136+
UserNoteManager.casting_request_talent_logger(agency_user.first_name, client_user, talent_user, note, casting_request_talent)
137+
91138
new_serializer = CastingRequestDetailSerializer(casting_request)
92139
return Response(new_serializer.data)
93140
# serializer.save()

backend/authentication/urls.py

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,11 @@
11
from django.conf.urls import include, url
22

3-
from rest_framework_jwt.views import obtain_jwt_token
4-
from rest_framework_jwt.views import obtain_jwt_token
53
from rest_framework_jwt.views import refresh_jwt_token
64
from rest_framework_jwt.views import verify_jwt_token
7-
8-
from rest_framework import status
9-
from rest_framework.views import APIView
10-
from rest_framework.authtoken.views import ObtainAuthToken
11-
from rest_framework.authtoken.models import Token
12-
from rest_framework.response import Response
13-
from rest_framework.permissions import AllowAny
145
from rest_framework.routers import DefaultRouter
156
from .serializers import RegistrationSerializer
167
from .models import User
17-
from .views import RegistrationAPIView, RegisterViewSet
18-
from rest_framework_jwt.settings import api_settings
19-
from drf_yasg.utils import swagger_auto_schema
20-
21-
jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
22-
jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
23-
8+
from .views import RegistrationAPIView, RegisterViewSet, CustomAuthToken, Logout
249

2510

2611
router = DefaultRouter()
@@ -30,25 +15,9 @@
3015
'post': 'create'
3116
})
3217

33-
34-
class CustomAuthToken(ObtainAuthToken):
35-
36-
def post(self, request, *args, **kwargs):
37-
serializer = self.serializer_class(
38-
data=request.data,
39-
context={'request': request}
40-
)
41-
serializer.is_valid(raise_exception=True)
42-
user = serializer.validated_data['user']
43-
payload = jwt_payload_handler(user)
44-
payload['type'] = user.type
45-
token = jwt_encode_handler(payload)
46-
return Response({'token': token})
47-
48-
4918
urlpatterns = [
5019
url(r'^login/', CustomAuthToken.as_view()), #obtain_jwt_token
51-
url(r'^logout/', refresh_jwt_token),
20+
url(r'^logout/', Logout.as_view()), #refresh_jwt_token
5221
url(r'^token/refresh/', refresh_jwt_token),
5322
url(r'^token/verify/', verify_jwt_token),
5423
url(r'^register', register, name='register')

backend/authentication/views.py

Lines changed: 51 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
1+
from .models import User
2+
from .serializers import RegistrationSerializer
3+
from user_note.models import UserNoteManager
4+
from talent.models import Talent
15
from django.shortcuts import render
2-
3-
# Create your views here.
6+
from django.core.exceptions import ObjectDoesNotExist
47
from rest_framework import status
58
from rest_framework.permissions import AllowAny
69
from rest_framework.response import Response
710
from rest_framework.views import APIView
11+
from rest_framework.authtoken.views import ObtainAuthToken
812
from rest_framework.decorators import api_view
913
from rest_framework import viewsets
10-
from .models import User
11-
from .serializers import RegistrationSerializer
12-
from talent.models import Talent
14+
from rest_framework_jwt.settings import api_settings
15+
from rest_framework.authtoken.models import Token
16+
from rest_framework.permissions import AllowAny
17+
from datetime import datetime
18+
from pytz import timezone
19+
20+
jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
21+
jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
1322

1423

1524
class RegisterViewSet(viewsets.ModelViewSet):
@@ -44,4 +53,40 @@ def post(self, request):
4453

4554
# return super(RegistrationAPIView, self).post(request, *args, **kwargs)
4655

47-
return Response(serializer.data, status=status.HTTP_201_CREATED)
56+
return Response(serializer.data, status=status.HTTP_201_CREATED)
57+
58+
59+
class CustomAuthToken(ObtainAuthToken):
60+
def post(self, request, *args, **kwargs):
61+
serializer = self.serializer_class(
62+
data=request.data,
63+
context={'request': request}
64+
)
65+
serializer.is_valid(raise_exception=True)
66+
user = serializer.validated_data['user']
67+
payload = jwt_payload_handler(user)
68+
payload['type'] = user.type
69+
token = jwt_encode_handler(payload)
70+
UserNoteManager.login_logger(
71+
None, None, user,
72+
'{now} logged in'.format(now=UserNoteManager.get_current_time()),
73+
user
74+
)
75+
return Response({'token': token})
76+
77+
78+
class Logout(APIView):
79+
def post(self, request, *args, **kwargs):
80+
# simply delete the token to force a login
81+
user = request.user
82+
UserNoteManager.logout_logger(
83+
None, None, user,
84+
'{now} logged out'.format(now=UserNoteManager.get_current_time()),
85+
user
86+
)
87+
try:
88+
user.auth_token.delete()
89+
except (AttributeError, ObjectDoesNotExist):
90+
pass
91+
92+
return Response(status=status.HTTP_200_OK)

backend/casting_request/views.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from casting_request.models import CastingRequest
44
from casting_request.serializers import CastingRequestSerializer, CastingRequestCreateSerializer
55
from casting_request.detail_serializers import CastingRequestDetailSerializer
6+
from user_note.models import UserNoteManager
67
from django.http import Http404
78
from rest_framework.views import APIView
89
from rest_framework.response import Response
@@ -46,13 +47,27 @@ def put(self, request, pk, format=None):
4647
serializer = CastingRequestSerializer(casting_request, data=request.data)
4748
if serializer.is_valid():
4849
serializer.save()
50+
user = request.user
51+
if user:
52+
note = '{client} updated casting reqeust.'.format(client=user.first_name)
53+
if casting_request.status == 'Requested':
54+
note = '{client} submited.'.format(client=user.first_name)
55+
UserNoteManager.casting_request_logger(None, None, user, note, casting_request)
56+
4957
return Response(serializer.data)
5058
return Response({'error': serializer.errors}, status=status.HTTP_400_BAD_REQUEST)
5159

5260
@swagger_auto_schema(responses={200: 'OK'})
5361
def delete(self, request, pk, format=None):
5462
casting_request = self.get_object(pk)
5563
casting_request.delete()
64+
user = request.user
65+
if user:
66+
UserNoteManager.casting_request_logger(
67+
None, None, user,
68+
'{client} deleted this casting reqeust.'.format(client=user.first_name),
69+
casting_request
70+
)
5671
return Response(status=status.HTTP_204_NO_CONTENT)
5772

5873

@@ -93,6 +108,14 @@ def post(self, request, format=None):
93108
comments=data['comments']
94109
)
95110
new_casting_request.save()
111+
UserNoteManager.casting_request_logger(
112+
None, None, client.user,
113+
'{client} created a new casting reqeust.'.format(
114+
client=client.user.first_name,
115+
casting_request_id=new_casting_request.id
116+
),
117+
new_casting_request
118+
)
96119

97120
return Response(serializer.data, status=status.HTTP_201_CREATED)
98121
return Response({'error': serializer.errors}, status=status.HTTP_400_BAD_REQUEST)

0 commit comments

Comments
 (0)