Skip to content

Commit 0af9452

Browse files
authored
Merge pull request #101 from thakurpriya1990/compliance_mgt_dev
priya/compliance_mgt_dev=>dbca/compliance_mgt_dev
2 parents f2d08d3 + 75964fc commit 0af9452

41 files changed

Lines changed: 1672 additions & 50 deletions

Some content is hidden

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

wildlifecompliance/components/call_email/admin.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,16 @@ class CallEmailAdmin(admin.ModelAdmin):
3434
class ClassificationAdmin(admin.ModelAdmin):
3535
pass
3636

37+
38+
@admin.register(models.CallType)
39+
class CallTypeAdmin(admin.ModelAdmin):
40+
pass
41+
42+
@admin.register(models.WildcareSpeciesType)
43+
class WildcareSpeciesTypeAdmin(admin.ModelAdmin):
44+
list_display = ['call_type', 'species_name']
45+
46+
@admin.register(models.WildcareSpeciesSubType)
47+
class WildcareSpeciesSubTypeAdmin(admin.ModelAdmin):
48+
list_display = ['wildcare_species_type', 'species_sub_name']
49+

wildlifecompliance/components/call_email/api.py

Lines changed: 123 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@
5151
from wildlifecompliance.components.call_email.models import (
5252
CallEmail,
5353
Classification,
54+
CallType,
55+
WildcareSpeciesType,
56+
WildcareSpeciesSubType,
5457
Location,
5558
ComplianceFormDataRecord,
5659
ReportType,
@@ -62,6 +65,9 @@
6265
from wildlifecompliance.components.call_email.serializers import (
6366
CallEmailSerializer,
6467
ClassificationSerializer,
68+
CallTypeSerializer,
69+
WildcareSpeciesTypeSerializer,
70+
WildcareSpeciesSubTypeSerializer,
6571
ComplianceFormDataRecordSerializer,
6672
CallEmailLogEntrySerializer,
6773
LocationSerializer,
@@ -284,6 +290,38 @@ def status_choices(self, request, *args, **kwargs):
284290
res_json = json.dumps(res_obj)
285291
return HttpResponse(res_json, content_type='application/json')
286292

293+
@list_route(methods=['GET', ])
294+
def entangled_choices(self, request, *args, **kwargs):
295+
res_obj = []
296+
for choice in CallEmail.ENTANGLED_CHOICES:
297+
res_obj.append({'id': choice[0], 'display': choice[1]});
298+
res_json = json.dumps(res_obj)
299+
return HttpResponse(res_json, content_type='application/json')
300+
301+
@list_route(methods=['GET', ])
302+
def gender_choices(self, request, *args, **kwargs):
303+
res_obj = []
304+
for choice in CallEmail.GENDER_CHOICES:
305+
res_obj.append({'id': choice[0], 'display': choice[1]});
306+
res_json = json.dumps(res_obj)
307+
return HttpResponse(res_json, content_type='application/json')
308+
309+
@list_route(methods=['GET', ])
310+
def baby_kangaroo_choices(self, request, *args, **kwargs):
311+
res_obj = []
312+
for choice in CallEmail.BABY_KANGAROO_CHOICES:
313+
res_obj.append({'id': choice[0], 'display': choice[1]});
314+
res_json = json.dumps(res_obj)
315+
return HttpResponse(res_json, content_type='application/json')
316+
317+
@list_route(methods=['GET', ])
318+
def age_choices(self, request, *args, **kwargs):
319+
res_obj = []
320+
for choice in CallEmail.AGE_CHOICES:
321+
res_obj.append({'id': choice[0], 'display': choice[1]});
322+
res_json = json.dumps(res_obj)
323+
return HttpResponse(res_json, content_type='application/json')
324+
287325
@detail_route(methods=['GET', ])
288326
@renderer_classes((JSONRenderer,))
289327
def get_allocated_group(self, request, *args, **kwargs):
@@ -612,11 +650,29 @@ def call_email_save_person(self, request, *args, **kwargs):
612650
print(traceback.print_exc())
613651
raise serializers.ValidationError(str(e))
614652

653+
@detail_route(methods=['POST', ])
654+
@renderer_classes((JSONRenderer,))
655+
def close(self, request, *args, **kwargs):
656+
instance = self.get_object()
657+
serializer_data, headers = self.common_save(instance, request, close=True)
658+
return Response(
659+
serializer_data,
660+
status=status.HTTP_201_CREATED,
661+
headers=headers
662+
)
615663

616664
#@detail_route(methods=['POST', ])
617665
#def call_email_save(self, request, *args, **kwargs):
618666
def update(self, request, *args, **kwargs):
619667
instance = self.get_object()
668+
serializer_data, headers = self.common_save(instance, request)
669+
return Response(
670+
serializer_data,
671+
status=status.HTTP_201_CREATED,
672+
headers=headers
673+
)
674+
675+
def common_save(self, instance, request, close=False):
620676
try:
621677
with transaction.atomic():
622678
request_data = request.data
@@ -642,7 +698,7 @@ def update(self, request, *args, **kwargs):
642698
if instance.report_type and 'report_type_id' in request.data.keys() and not request.data.get('report_type_id'):
643699
del request.data['report_type_id']
644700

645-
serializer = SaveCallEmailSerializer(instance, data=request_data)
701+
serializer = SaveCallEmailSerializer(instance, data=request_data, context={'close': close})
646702
serializer.is_valid(raise_exception=True)
647703
if serializer.is_valid():
648704
saved_instance = serializer.save()
@@ -651,11 +707,7 @@ def update(self, request, *args, **kwargs):
651707
instance.number), request)
652708
headers = self.get_success_headers(serializer.data)
653709
return_serializer = CallEmailSerializer(instance=saved_instance, context={'request': request})
654-
return Response(
655-
return_serializer.data,
656-
status=status.HTTP_201_CREATED,
657-
headers=headers
658-
)
710+
return return_serializer.data, headers
659711

660712
except serializers.ValidationError:
661713
print(traceback.print_exc())
@@ -670,9 +722,11 @@ def update(self, request, *args, **kwargs):
670722
@detail_route(methods=['POST', ])
671723
@renderer_classes((JSONRenderer,))
672724
def workflow_action(self, request, *args, **kwargs):
725+
print("workflow_action")
673726
print(request.data)
674727
try:
675728
with transaction.atomic():
729+
#import ipdb; ipdb.set_trace()
676730
instance = self.get_object()
677731
comms_log_id = request.data.get('call_email_comms_log_id')
678732
if comms_log_id and comms_log_id is not 'null':
@@ -809,6 +863,69 @@ def classification_choices(self, request, *args, **kwargs):
809863
res_json = json.dumps(res_obj)
810864
return HttpResponse(res_json, content_type='application/json')
811865

866+
class CallTypeViewSet(viewsets.ModelViewSet):
867+
queryset = CallType.objects.all()
868+
serializer_class = CallTypeSerializer
869+
870+
def get_queryset(self):
871+
user = self.request.user
872+
if is_internal(self.request):
873+
return CallType.objects.all()
874+
return CallType.objects.none()
875+
876+
@list_route(methods=['GET', ])
877+
def call_type_choices(self, request, *args, **kwargs):
878+
res_obj = []
879+
#for choice in CallType.NAME_CHOICES:
880+
# res_obj.append({'id': choice[0], 'display': choice[1]});
881+
for choice in CallType.objects.all():
882+
res_obj.append({'id': choice.id, 'display': choice.get_name_display()})
883+
res_json = json.dumps(res_obj)
884+
return HttpResponse(res_json, content_type='application/json')
885+
886+
class WildcareSpeciesTypeViewSet(viewsets.ModelViewSet):
887+
queryset = WildcareSpeciesType.objects.all()
888+
serializer_class = WildcareSpeciesTypeSerializer
889+
890+
def get_queryset(self):
891+
user = self.request.user
892+
if is_internal(self.request):
893+
return WildcareSpeciesType.objects.all()
894+
return WildcareSpeciesType.objects.none()
895+
896+
@list_route(methods=['GET', ])
897+
def wildcare_species_type_choices(self, request, *args, **kwargs):
898+
res_obj = []
899+
for choice in WildcareSpeciesType.objects.all():
900+
res_obj.append({
901+
'id': choice.id,
902+
'display': choice.get_species_name_display(),
903+
'call_type_id': choice.call_type_id
904+
})
905+
res_json = json.dumps(res_obj)
906+
return HttpResponse(res_json, content_type='application/json')
907+
908+
class WildcareSpeciesSubTypeViewSet(viewsets.ModelViewSet):
909+
queryset = WildcareSpeciesSubType.objects.all()
910+
serializer_class = WildcareSpeciesSubTypeSerializer
911+
912+
def get_queryset(self):
913+
user = self.request.user
914+
if is_internal(self.request):
915+
return WildcareSpeciesSubType.objects.all()
916+
return WildcareSpeciesSubType.objects.none()
917+
918+
@list_route(methods=['GET', ])
919+
def wildcare_species_sub_type_choices(self, request, *args, **kwargs):
920+
res_obj = []
921+
for choice in WildcareSpeciesSubType.objects.all():
922+
res_obj.append({
923+
'id': choice.id,
924+
'display': choice.get_species_sub_name_display(),
925+
'wildcare_species_type_id': choice.wildcare_species_type_id
926+
})
927+
res_json = json.dumps(res_obj)
928+
return HttpResponse(res_json, content_type='application/json')
812929

813930
class ReferrerViewSet(viewsets.ModelViewSet):
814931
queryset = Referrer.objects.all()

0 commit comments

Comments
 (0)