Skip to content

Commit

Permalink
Merge pull request #66 from mintcoding/compliance_mgt_dev
Browse files Browse the repository at this point in the history
Compliance_mgt_dev to working
  • Loading branch information
mintcoding authored Nov 30, 2021
2 parents a16f0c2 + 6eac20c commit 2907522
Show file tree
Hide file tree
Showing 41 changed files with 1,672 additions and 50 deletions.
13 changes: 13 additions & 0 deletions wildlifecompliance/components/call_email/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,16 @@ class CallEmailAdmin(admin.ModelAdmin):
class ClassificationAdmin(admin.ModelAdmin):
pass


@admin.register(models.CallType)
class CallTypeAdmin(admin.ModelAdmin):
pass

@admin.register(models.WildcareSpeciesType)
class WildcareSpeciesTypeAdmin(admin.ModelAdmin):
list_display = ['call_type', 'species_name']

@admin.register(models.WildcareSpeciesSubType)
class WildcareSpeciesSubTypeAdmin(admin.ModelAdmin):
list_display = ['wildcare_species_type', 'species_sub_name']

129 changes: 123 additions & 6 deletions wildlifecompliance/components/call_email/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@
from wildlifecompliance.components.call_email.models import (
CallEmail,
Classification,
CallType,
WildcareSpeciesType,
WildcareSpeciesSubType,
Location,
ComplianceFormDataRecord,
ReportType,
Expand All @@ -62,6 +65,9 @@
from wildlifecompliance.components.call_email.serializers import (
CallEmailSerializer,
ClassificationSerializer,
CallTypeSerializer,
WildcareSpeciesTypeSerializer,
WildcareSpeciesSubTypeSerializer,
ComplianceFormDataRecordSerializer,
CallEmailLogEntrySerializer,
LocationSerializer,
Expand Down Expand Up @@ -284,6 +290,38 @@ def status_choices(self, request, *args, **kwargs):
res_json = json.dumps(res_obj)
return HttpResponse(res_json, content_type='application/json')

@list_route(methods=['GET', ])
def entangled_choices(self, request, *args, **kwargs):
res_obj = []
for choice in CallEmail.ENTANGLED_CHOICES:
res_obj.append({'id': choice[0], 'display': choice[1]});
res_json = json.dumps(res_obj)
return HttpResponse(res_json, content_type='application/json')

@list_route(methods=['GET', ])
def gender_choices(self, request, *args, **kwargs):
res_obj = []
for choice in CallEmail.GENDER_CHOICES:
res_obj.append({'id': choice[0], 'display': choice[1]});
res_json = json.dumps(res_obj)
return HttpResponse(res_json, content_type='application/json')

@list_route(methods=['GET', ])
def baby_kangaroo_choices(self, request, *args, **kwargs):
res_obj = []
for choice in CallEmail.BABY_KANGAROO_CHOICES:
res_obj.append({'id': choice[0], 'display': choice[1]});
res_json = json.dumps(res_obj)
return HttpResponse(res_json, content_type='application/json')

@list_route(methods=['GET', ])
def age_choices(self, request, *args, **kwargs):
res_obj = []
for choice in CallEmail.AGE_CHOICES:
res_obj.append({'id': choice[0], 'display': choice[1]});
res_json = json.dumps(res_obj)
return HttpResponse(res_json, content_type='application/json')

@detail_route(methods=['GET', ])
@renderer_classes((JSONRenderer,))
def get_allocated_group(self, request, *args, **kwargs):
Expand Down Expand Up @@ -612,11 +650,29 @@ def call_email_save_person(self, request, *args, **kwargs):
print(traceback.print_exc())
raise serializers.ValidationError(str(e))

@detail_route(methods=['POST', ])
@renderer_classes((JSONRenderer,))
def close(self, request, *args, **kwargs):
instance = self.get_object()
serializer_data, headers = self.common_save(instance, request, close=True)
return Response(
serializer_data,
status=status.HTTP_201_CREATED,
headers=headers
)

#@detail_route(methods=['POST', ])
#def call_email_save(self, request, *args, **kwargs):
def update(self, request, *args, **kwargs):
instance = self.get_object()
serializer_data, headers = self.common_save(instance, request)
return Response(
serializer_data,
status=status.HTTP_201_CREATED,
headers=headers
)

def common_save(self, instance, request, close=False):
try:
with transaction.atomic():
request_data = request.data
Expand All @@ -642,7 +698,7 @@ def update(self, request, *args, **kwargs):
if instance.report_type and 'report_type_id' in request.data.keys() and not request.data.get('report_type_id'):
del request.data['report_type_id']

serializer = SaveCallEmailSerializer(instance, data=request_data)
serializer = SaveCallEmailSerializer(instance, data=request_data, context={'close': close})
serializer.is_valid(raise_exception=True)
if serializer.is_valid():
saved_instance = serializer.save()
Expand All @@ -651,11 +707,7 @@ def update(self, request, *args, **kwargs):
instance.number), request)
headers = self.get_success_headers(serializer.data)
return_serializer = CallEmailSerializer(instance=saved_instance, context={'request': request})
return Response(
return_serializer.data,
status=status.HTTP_201_CREATED,
headers=headers
)
return return_serializer.data, headers

except serializers.ValidationError:
print(traceback.print_exc())
Expand All @@ -670,9 +722,11 @@ def update(self, request, *args, **kwargs):
@detail_route(methods=['POST', ])
@renderer_classes((JSONRenderer,))
def workflow_action(self, request, *args, **kwargs):
print("workflow_action")
print(request.data)
try:
with transaction.atomic():
#import ipdb; ipdb.set_trace()
instance = self.get_object()
comms_log_id = request.data.get('call_email_comms_log_id')
if comms_log_id and comms_log_id is not 'null':
Expand Down Expand Up @@ -809,6 +863,69 @@ def classification_choices(self, request, *args, **kwargs):
res_json = json.dumps(res_obj)
return HttpResponse(res_json, content_type='application/json')

class CallTypeViewSet(viewsets.ModelViewSet):
queryset = CallType.objects.all()
serializer_class = CallTypeSerializer

def get_queryset(self):
user = self.request.user
if is_internal(self.request):
return CallType.objects.all()
return CallType.objects.none()

@list_route(methods=['GET', ])
def call_type_choices(self, request, *args, **kwargs):
res_obj = []
#for choice in CallType.NAME_CHOICES:
# res_obj.append({'id': choice[0], 'display': choice[1]});
for choice in CallType.objects.all():
res_obj.append({'id': choice.id, 'display': choice.get_name_display()})
res_json = json.dumps(res_obj)
return HttpResponse(res_json, content_type='application/json')

class WildcareSpeciesTypeViewSet(viewsets.ModelViewSet):
queryset = WildcareSpeciesType.objects.all()
serializer_class = WildcareSpeciesTypeSerializer

def get_queryset(self):
user = self.request.user
if is_internal(self.request):
return WildcareSpeciesType.objects.all()
return WildcareSpeciesType.objects.none()

@list_route(methods=['GET', ])
def wildcare_species_type_choices(self, request, *args, **kwargs):
res_obj = []
for choice in WildcareSpeciesType.objects.all():
res_obj.append({
'id': choice.id,
'display': choice.get_species_name_display(),
'call_type_id': choice.call_type_id
})
res_json = json.dumps(res_obj)
return HttpResponse(res_json, content_type='application/json')

class WildcareSpeciesSubTypeViewSet(viewsets.ModelViewSet):
queryset = WildcareSpeciesSubType.objects.all()
serializer_class = WildcareSpeciesSubTypeSerializer

def get_queryset(self):
user = self.request.user
if is_internal(self.request):
return WildcareSpeciesSubType.objects.all()
return WildcareSpeciesSubType.objects.none()

@list_route(methods=['GET', ])
def wildcare_species_sub_type_choices(self, request, *args, **kwargs):
res_obj = []
for choice in WildcareSpeciesSubType.objects.all():
res_obj.append({
'id': choice.id,
'display': choice.get_species_sub_name_display(),
'wildcare_species_type_id': choice.wildcare_species_type_id
})
res_json = json.dumps(res_obj)
return HttpResponse(res_json, content_type='application/json')

class ReferrerViewSet(viewsets.ModelViewSet):
queryset = Referrer.objects.all()
Expand Down
Loading

0 comments on commit 2907522

Please sign in to comment.