Commit e913cfde authored by Gladys Forte's avatar Gladys Forte

clean code for save and submit

parent 8b1ed17e
This diff is collapsed.
......@@ -285,7 +285,15 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
template_no
)
return Response(serializer.data)
serializer = self.get_serializer(instance)
message = status_message_response(
200, 'success',
'Change Request Template successfully updated',
serializer.data
)
return Response(message, status=status.HTTP_200_OK)
return Response(
"Unable to edit due to existing transaction",
......
......@@ -427,4 +427,24 @@ def crhistory_save(batch_no, main_action,
toValue=toValue
)
return True
\ No newline at end of file
return True
def crhistory_log_bulk_delete(queryset, entity, tbl, form_code,
batch_no, main_action):
try:
# print(entity)
for data in queryset:
test = model_to_dict(data)
crhistory_save(batch_no,
main_action,
enums.CREnum.DELETED.value,
entity,
form_code,
test,
'')
tbl.objects.filter(id=test['id']).delete()
return True
except IntegrityError as exc:
raise APIException(detail=exc)
\ No newline at end of file
......@@ -13,6 +13,14 @@ from django.http import Http404
from django.db.models import Q
from app.applicationlayer.cms.utils_cr import (
number_generator, crhistory_save, entity_log_bulk, crhistory_log_bulk_delete
)
from django.forms.models import model_to_dict
from app.entities import enums, models
from app.applicationlayer.utils import log_save, CustomPagination
from app.applicationlayer.cms.template import serializers
def list_by_user(user_id_number):
......@@ -242,3 +250,78 @@ def filter_awaiting(base_queryset,
pass
return return_queryset
def form_add_edit_delete(form_request_body,
queryset,
entity,
serializer_data,
partial,
self,
form_code,
batch_no,
main_action):
# delete ids not in request body
request_ids = [i['id'] for i in form_request_body if "id" in i]
delete_query = queryset.objects.filter(
form_code=form_code
).exclude(
id__in=request_ids
)
if delete_query.count() > 0:
crhistory_log_bulk_delete(delete_query,
entity,
queryset,
form_code,
batch_no,
main_action
)
# update or create
for i in form_request_body:
if "id" in i:
frm_instance = queryset.objects.get(
pk=i['id']
)
serializer = serializer_data(frm_instance,
data=i,
partial=partial)
serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(frm_instance)
self.perform_update(serializer)
new_instance = serializer.data
crhistory_save(
batch_no,
main_action,
enums.CREnum.UPDATE.value,
entity,
form_code,
old_instance,
new_instance
)
else:
serializer = serializer_data(data=i)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
new_instance = serializer.data
crhistory_save(
batch_no,
main_action,
enums.CREnum.ADD.value,
entity,
form_code,
None,
new_instance
)
return True
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment