Commit 9ac77de2 authored by Gladys Forte's avatar Gladys Forte

post api form

parent 03ea872b
......@@ -45,7 +45,7 @@ class ChangeRequestTemplateDetailsSerializer(
class Meta:
model = models.ChangeRequestTemplateDetails
fields = '__all__'
read_only_fields = ['created', 'deleted_at']
read_only_fields = ['created', 'deleted_at', 'code']
class ChangeRequestFormHeaderSerializer(
......@@ -82,7 +82,7 @@ class ChangeRequestFormHeaderSerializer(
class Meta:
model = models.ChangeRequestFormHeader
fields = '__all__'
read_only_fields = ['created', 'deleted_at']
read_only_fields = ['created', 'deleted_at', 'form_code']
class ChangeRequestFormApproversSerializer(
......@@ -112,7 +112,7 @@ class ChangeRequestFormApproversSerializer(
class Meta:
model = models.ChangeRequestFormApprovers
fields = '__all__'
read_only_fields = ['created', 'deleted_at']
read_only_fields = ['created', 'deleted_at', 'code']
class ChangeRequestFormStakeHoldersSerializer(
......@@ -121,7 +121,7 @@ class ChangeRequestFormStakeHoldersSerializer(
class Meta:
model = models.ChangeRequestFormStakeHolders
fields = '__all__'
read_only_fields = ['created', 'deleted_at']
read_only_fields = ['created', 'deleted_at', 'code']
class ChangeRequestFormAttachmentsSerializer(
......@@ -130,7 +130,7 @@ class ChangeRequestFormAttachmentsSerializer(
class Meta:
model = models.ChangeRequestFormAttachments
fields = '__all__'
read_only_fields = ['created', 'deleted_at']
read_only_fields = ['created', 'deleted_at', 'code']
class ChangeRequestFormDetailsSerializer(
......@@ -139,4 +139,4 @@ class ChangeRequestFormDetailsSerializer(
class Meta:
model = models.ChangeRequestFormDetails
fields = '__all__'
read_only_fields = ['created', 'deleted_at']
read_only_fields = ['created', 'deleted_at', 'code']
......@@ -19,14 +19,8 @@ from django.db.models import Q
import requests
from django.conf import settings
from rest_framework.exceptions import ValidationError
# from app.applicationlayer.management.changerequest.utilities import (
# logged_user, number_generator,
# QuerySetHelper, get_group_details,
# get_account_details, get_companies_details,
# cancel_overdue,
# send_mail_requestor, send_mail_vendor,
# get_allowed_company, next_appover_email
# )
from django.db import transaction, IntegrityError, connection
from app.applicationlayer.utils import QuerySetHelper
class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
......@@ -87,88 +81,106 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
status=status.HTTP_500_INTERNAL_SERVER_ERROR)
# @transaction.atomic
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
if not template_no.lower() == 'tmp':
print('not tmp')
form = request.data['template_no']
prefix = request.data['requested_to_template_id']
instance = models.ChangeRequestTemplateHeader.objects.filter(
Q(requested_to_template_id=prefix) &
Q(deleted_at=None)
).first()
# def create(self, request, *args, **kwargs):
# serializer = self.get_serializer(data=request.data)
# serializer.is_valid(raise_exception=True)
# if not template_no.lower() == 'tmp':
# print('not tmp')
# form = request.data['template_no']
# prefix = request.data['requested_to_template_id']
# instance = models.ChangeRequestTemplateHeader.objects.filter(
# Q(requested_to_template_id=prefix) &
# Q(deleted_at=None)
# ).first()
if instance and instance.template_no != request.data['template_no']:
return Response(
{'message': "CR number prefix already exist"},
status=status.HTTP_400_BAD_REQUEST
)
else:
models.ChangeRequestTemplateHeader.objects.filter(
template_no=template_no
).update(
deleted_at=datetime.now()
)
models.ChangeRequestTemplateStakeHolders.objects.filter(
template_no=template_no
).update(
deleted_at=datetime.now()
)
models.ChangeRequestTemplateAttachments.objects.filter(
template_no=template_no
).update(
deleted_at=datetime.now()
)
models.ChangeRequestTemplateDetails.objects.filter(
template_no=template_no
).update(
deleted_at=datetime.now()
)
models.ChangeRequestTemplateApprovers.objects.filter(
template_no=template_no
).update(
deleted_at=datetime.now()
)
series = template_no
template_id = request.data['requested_to_template_id']
check_prefix = models.ChangeRequestTemplateHeader.objects.filter(
Q(requested_to_template_id=template_id) &
Q(deleted_at=None)
)
if check_prefix.count() > 0 and template_no.lower() == 'tmp':
return Response(
{'message': "CR number prefix already exist"},
status=status.HTTP_400_BAD_REQUEST
)
self.perform_create(serializer)
if template_no.lower() == 'tmp':
id = serializer.data['id']
db_counter = models.ChangeRequestTemplateHeader.objects.filter(
deleted_at=None
).count()
db_counter = db_counter + 2
db_counter = db_counter - 1
models.ChangeRequestTemplateHeader.objects.filter(id=id).update(
set__template_no=number_generator("TMP", db_counter)
)
series = number_generator("TMP", db_counter)
headers = self.get_success_headers(serializer.data)
return Response(
data={"code": series},
status=status.HTTP_201_CREATED, headers=headers
)
# if instance and instance.template_no != request.data['template_no']:
# return Response(
# {'message': "CR number prefix already exist"},
# status=status.HTTP_400_BAD_REQUEST
# )
# else:
# models.ChangeRequestTemplateHeader.objects.filter(
# template_no=template_no
# ).update(
# deleted_at=datetime.now()
# )
# models.ChangeRequestTemplateStakeHolders.objects.filter(
# template_no=template_no
# ).update(
# deleted_at=datetime.now()
# )
# models.ChangeRequestTemplateAttachments.objects.filter(
# template_no=template_no
# ).update(
# deleted_at=datetime.now()
# )
# models.ChangeRequestTemplateDetails.objects.filter(
# template_no=template_no
# ).update(
# deleted_at=datetime.now()
# )
# models.ChangeRequestTemplateApprovers.objects.filter(
# template_no=template_no
# ).update(
# deleted_at=datetime.now()
# )
# series = template_no
# template_id = request.data['requested_to_template_id']
# check_prefix = models.ChangeRequestTemplateHeader.objects.filter(
# Q(requested_to_template_id=template_id) &
# Q(deleted_at=None)
# )
# if check_prefix.count() > 0 and template_no.lower() == 'tmp':
# return Response(
# {'message': "CR number prefix already exist"},
# status=status.HTTP_400_BAD_REQUEST
# )
# self.perform_create(serializer)
# if template_no.lower() == 'tmp':
# id = serializer.data['id']
# db_counter = models.ChangeRequestTemplateHeader.objects.filter(
# deleted_at=None
# ).count()
# db_counter = db_counter + 2
# db_counter = db_counter - 1
# models.ChangeRequestTemplateHeader.objects.filter(id=id).update(
# set__template_no=number_generator("TMP", db_counter)
# )
# series = number_generator("TMP", db_counter)
# headers = self.get_success_headers(serializer.data)
# return Response(
# data={"code": series},
# status=status.HTTP_201_CREATED, headers=headers
# )
class ChangeRequestTemplateApproversViewset(meviewsets.ModelViewSet):
queryset = models.ChangeRequestTemplateApprovers.objects.all()
serializer_class = serializers.ChangeRequestTemplateApproversSerializer
pagination_class = paginators.SimplePageNumberPagination
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(deleted_at=None)
self.queryset = QuerySetHelper.Sort(self)
# self.queryset = QuerySetHelper.Filter(self)
return super(ChangeRequestTemplateApproversViewset, self).list(request)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(deleted_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
class ChangeRequestTemplatePost(APIView):
# @transaction.atomic()
@transaction.atomic()
def post(self, request):
template_header = request.data
......@@ -176,6 +188,7 @@ class ChangeRequestTemplatePost(APIView):
data_list_approver = []
data_list_stake = []
data_list_attach = []
data_list_detail = []
template_header_data = {
'requested_to_template_name': template_header['requested_to_template_name'],
......@@ -194,8 +207,9 @@ class ChangeRequestTemplatePost(APIView):
tmp_approvers = template_header['tmp_approvers']
tmp_stakes = template_header['tmp_stakes']
tmp_attachments = template_header['tmp_attachments']
tmp_details = template_header['tmp_details']
# sp1 = transaction.savepoint() # nothing will save to db
sp1 = transaction.savepoint() # nothing will save to db
serializer = serializers.ChangeRequestTemplatesSerializer(
data=template_header_data)
......@@ -243,7 +257,15 @@ class ChangeRequestTemplatePost(APIView):
# create template details
for tmp_detail in tmp_details:
tmp_detail['template_no'] = tmp_id
data_list_detail.append(tmp_detail)
serializerDetail = serializers.ChangeRequestTemplateDetailsSerializer(
data=data_list_detail, many=True)
if serializerDetail.is_valid(raise_exception=True):
serializerDetail.save()
message = {
'code': 201,
......@@ -254,6 +276,131 @@ class ChangeRequestTemplatePost(APIView):
return Response(message, status=status.HTTP_201_CREATED)
except ValidationError as e:
transaction.savepoint_rollback(sp1)
message = {
'code': 400,
'status': 'failed',
'message': str(e),
}
return Response(message, status=status.HTTP_400_BAD_REQUEST)
except Exception as e:
transaction.savepoint_rollback(sp1)
message = {
'code': 500,
'status': 'failed',
'message': 'Request was not able to process' + str(e),
}
return Response(message,
status=status.HTTP_500_INTERNAL_SERVER_ERROR)
class ChangeRequestFormPost(APIView):
# @transaction.atomic()
def post(self, request):
form_header = request.data
try:
data_list_approver = []
data_list_stake = []
data_list_attach = []
data_list_detail = []
form_header_data = {
'requested_to_template_name': form_header['requested_to_template_name'],
'requested_to_template_id': form_header['requested_to_template_id'],
'requested_to_objective': form_header['requested_to_objective'],
'requested_to_target_date': form_header['requested_to_target_date'],
'requested_to_priority': form_header['requested_to_priority'],
'description': form_header['description'],
'status': form_header['status'],
'company_desc': form_header['company_desc'],
'department_desc': form_header['department_desc'],
'requested_desc': form_header['requested_desc'],
'old_form_code': form_header['old_form_code'],
'requested_by_department': form_header['requested_by_department'],
'requested_by_user': form_header['requested_by_user'],
'requested_to_company': form_header['requested_to_company'],
'requested_to_department': form_header['requested_to_department'],
'requested_to_user': form_header['requested_to_user'],
'template_no': form_header['template_no']
}
frm_approvers = form_header['frm_approvers']
frm_stakes = form_header['frm_stakes']
frm_attachments = form_header['frm_attachments']
frm_details = form_header['frm_details']
# sp1 = transaction.savepoint() # nothing will save to db
serializer = serializers.ChangeRequestFormHeaderSerializer(
data=form_header_data)
if serializer.is_valid(raise_exception=True):
serializer.save()
frm_id = serializer.data['form_code']
print(frm_id)
# create template approvers
for frm_approver in frm_approvers:
frm_approver['form_code'] = frm_id
data_list_approver.append(frm_approver)
serializerApprover = serializers.ChangeRequestFormApproversSerializer(
data=data_list_approver, many=True)
if serializerApprover.is_valid(raise_exception=True):
serializerApprover.save()
# create template stakes
for frm_stake in frm_stakes:
frm_stake['form_code'] = frm_id
data_list_stake.append(frm_stake)
serializerStake = serializers.ChangeRequestFormStakeHoldersSerializer(
data=data_list_stake, many=True)
if serializerStake.is_valid(raise_exception=True):
serializerStake.save()
# create template attachments
for frm_attachment in frm_attachments:
frm_attachment['form_code'] = frm_id
data_list_attach.append(frm_attachment)
serializerAttach = serializers.ChangeRequestFormAttachmentsSerializer(
data=data_list_attach, many=True)
if serializerAttach.is_valid(raise_exception=True):
serializerAttach.save()
# create template details
for frm_detail in frm_details:
frm_detail['form_code'] = frm_id
data_list_detail.append(frm_detail)
serializerDetail = serializers.ChangeRequestFormDetailsSerializer(
data=data_list_detail, many=True)
if serializerDetail.is_valid(raise_exception=True):
serializerDetail.save()
message = {
'code': 201,
'status': 'success',
'message': 'Form Details successfully saved!',
'results': serializer.data
}
return Response(message, status=status.HTTP_201_CREATED)
except ValidationError as e:
# transaction.savepoint_rollback(sp1)
message = {
......
......@@ -19,7 +19,7 @@ router.register(r'modules', ModuleViewSet)
router.register(r'notifications', NotificationsViewset)
router.register(r'template', crviews.ChangeRequestTemplatesViewset)
# router.register(r'template-approvers', crviews.ChangeRequestTemplateApproversViewset)
router.register(r'template-approvers', crviews.ChangeRequestTemplateApproversViewset)
# router.register(r'template-stakeholders', crviews.ChangeRequestTemplateStakeHoldersViewset)
# router.register(r'template-attachments', crviews.ChangeRequestTemplateAttachmentsViewset)
# router.register(r'template-details', crviews.ChangeRequestTemplateDetailsViewset)
......@@ -35,4 +35,5 @@ urlpatterns = (
path('', include(router.urls)),
path('template-post/', crviews.ChangeRequestTemplatePost.as_view()),
path('form-post/', crviews.ChangeRequestFormPost.as_view()),
)
......@@ -65,4 +65,47 @@ def status_message_response(code, status, message, results):
'message': message,
'results': results
}
return message
\ No newline at end of file
return message
class QuerySetHelper:
@staticmethod
def Sort(context):
sort_field = context.request.query_params.get('sort_field')
sort_order = context.request.query_params.get('sort_order')
if sort_field and sort_order:
if sort_order.lower() == 'asc':
context.queryset = context.queryset.order_by(sort_field)
else:
context.queryset = context.queryset.order_by(f"-{sort_field}")
return context.queryset
@staticmethod
def Search(context):
search_field = context.request.query_params.get('search-field')
search_key = context.request.query_params.get('search-key')
if search_field and search_key:
context.queryset = context.queryset(
__raw__={f"{search_field}" : {"$regex" : f".*{search_key.lower()}.*"}}
)
return context.queryset
@staticmethod
def Filter(context):
if int(len(context.request.query_params)) > 0:
filtering_kwargs = {}
with_params = []
common_params = (
'page', 'page-size', 'page_size', 'sort_order', 'sort_field'
)
for field, value in context.request.GET.items():
filtering_kwargs = {}
if value and field.lower() not in common_params:
filtering_kwargs[field] = {"$regex" : f".*{value.lower()}.*"}
filtering_kwargs[field] = {"$regex" : f".*{value}.*"}
# filtering_kwargs[field] = {"$regex" : f".*{value.lower()}.*"}
with_params.append(filtering_kwargs)
raw_query = {"$or": with_params}
context.queryset = context.queryset(__raw__=raw_query)
return context.queryset
\ No newline at end of file
from django.shortcuts import render
from app.entities import models
from app.applicationlayer import paginators
from datetime import datetime
from rest_framework.response import Response
from rest_framework import status, views
from rest_framework.decorators import action
from django.http import Http404
from django.db.models import Q
def list_by_user(user_id_number):
return_queryset = None
try:
approver = models.ChangeRequestFormApprovers.objects.filter(
Q(user=user_id_number) &
Q(deleted_at=None)
)
approver = [data['form_code'] for data in approver]
stake = models.ChangeRequestFormStakeHolders.objects.filter(
Q(user=user_id_number) &
Q(deleted_at=None)
)
stake = [data['form_code'] for data in stake]
headers = models.ChangeRequestFormHeader.objects.filter(
deleted_at=None,
requested_by_user=user_id_number
)
headers = [data['form_code'] for data in headers]
# # TODO: Include priviledges here
# req = get_allowed_company(user_id_number)
# results = req.json()['results']
# # Get the list of distincted group_no
# crViews = list(set(
# map(lambda x: x['group_pivots'],
# list(filter(lambda x: x['view_all_change_request'], results))
# )
# ))
# priviledgedList = models.ChangeRequestFormHeader.objects.filter(
# requested_to_department__in=crViews,
# deleted_at=None,
# )
# priviledgedCrs = [data['form_code'] for data in priviledgedList]
# form_code = list(set(stake + approver + headers + priviledgedCrs))
form_code = list(set(stake + approver + headers))
return_queryset = models.ChangeRequestFormHeader.objects.filter(
form_code__in=form_code,
deleted_at=None,
)
exclude = return_queryset.filter(
status__iexact='Draft',
requested_by_user__ne=user_id_number
)
exclude = [data['form_code'] for data in exclude]
return_queryset = return_queryset.filter(
form_code__nin=exclude
)
except Exception as e:
pass
return return_queryset
def filter_base(base_queryset,
company_requested_to,
department_requested_to,
date_modified_from,
date_modified_to,
date_required_from,
date_required_to,
form_type):
return_queryset = base_queryset
try:
if company_requested_to:
return_queryset = return_queryset.filter(requested_to_company__exact=company_requested_to)
if department_requested_to:
return_queryset = return_queryset.filter(requested_to_department__exact=department_requested_to)
if form_type == 'open':
return_queryset = return_queryset.filter(status__ne='Closed')
elif form_type == 'closed':
return_queryset = return_queryset.filter(status='Closed')
date_modified = []
date_modified_not = []
if date_modified_from and date_modified_to:
for query in return_queryset:
created = datetime.strftime(query.created, "%Y-%m-%d")
if created >= date_modified_from and created <= date_modified_to:
date_modified.append(query.id)
return_queryset = return_queryset.filter(id__in=date_modified)
else:
date_modified_not.append(query.id)
return_queryset = return_queryset.filter(id__nin=date_modified_not)
date_required = []
date_required_not = []
if date_required_from and date_required_to:
for query in return_queryset:
try:
if query.requested_to_target_date:
requested_to_target_date = datetime.strptime(query.requested_to_target_date[:-1], "%Y-%m-%dT%H:%M:%S.%f")
requested_to_target_date = datetime.strftime(requested_to_target_date, "%Y-%m-%d")
if requested_to_target_date >= date_required_from and requested_to_target_date <= date_required_to:
date_required.append(query.id)
return_queryset = return_queryset.filter(id__in=date_required)
else:
date_required_not.append(query.id)
return_queryset = return_queryset.filter(id__nin=date_required_not)
else:
date_required_not.append(query.id)
return_queryset = return_queryset.filter(id__nin=date_required_not)
except ValueError:
if query.requested_to_target_date:
requested_to_target_date = datetime.strptime(query.requested_to_target_date[:-1], "%Y-%m-%d %H:%M:%S")
requested_to_target_date = datetime.strftime(requested_to_target_date, "%Y-%m-%d")
if requested_to_target_date >= date_required_from and requested_to_target_date <= date_required_to:
date_required.append(query.id)
return_queryset = return_queryset.filter(id__in=date_required)
else:
date_required_not.append(query.id)
return_queryset = return_queryset.filter(id__nin=date_required_not)
else:
date_required_not.append(query.id)
return_queryset = return_queryset.filter(id__nin=date_required_not)
return_queryset
except Exception as e:
pass
return return_queryset
def filter_overdue(base_queryset):
return_queryset = base_queryset
try:
now = datetime.now()
overdue = []
for query in return_queryset:
try:
if query.requested_to_target_date:
requested_to_target_date = datetime.strptime(query.requested_to_target_date[:-1], "%Y-%m-%dT%H:%M:%S.%f")
if (requested_to_target_date < now):
overdue.append(query.form_code)
except ValueError:
#convert now
if query.requested_to_target_date:
requested_to_target_date = datetime.strptime(query.requested_to_target_date[:-1], "%Y-%m-%d %H:%M:%S")
if (requested_to_target_date < now):
overdue.append(query.form_code)
return_queryset = return_queryset.filter(
form_code__in=overdue
)
return_queryset
except Exception as e:
pass
return return_queryset
def filter_status(base_queryset,
status):
return_queryset = base_queryset
try:
if status:
return_queryset = return_queryset.filter(
status__iexact=status
)
return_queryset
except Exception as e:
pass
return return_queryset
def filter_awaiting(base_queryset,
user_id_number):
return_queryset = base_queryset
try:
awaiting_included = []
for query in return_queryset:
current_level = models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=query.form_code) &
Q(deleted_at=None) &
(Q(action='') | Q(action=None))
).order_by('level')
if current_level:
if current_level[0]['user'] == user_id_number:
awaiting_included.append(query.form_code)
return_queryset = return_queryset.filter(form_code__in=awaiting_included)
except Exception as e:
pass
return return_queryset
from app.entities import models
def get_template(self, code):
try:
template = {}
header = models.ChangeRequestTemplateHeader.objects.filter(
template_no=code
).values()
approve = models.ChangeRequestTemplateApprovers.objects.filter(
template_no=code
).values()
stakeholder = models.ChangeRequestTemplateStakeHolders.objects.filter(
template_no=code
).values()
attachment = models.ChangeRequestTemplateAttachments.objects.filter(
template_no=code
).values()
details = models.ChangeRequestTemplateDetails.objects.filter(
template_no=code
).values()
task = models.ChangeRequestTemplateTasks.objects.filter(
template_no=code
).values()
template['header'] = header
template['aprrove'] = approve
template['stakeholder'] = stakeholder
template['attachment'] = attachment
template['details'] = details
template['task'] = task
return template
except ChangeRequestTemplateHeader.DoesNotExist:
raise Http404
except ChangeRequestTemplateApprovers.DoesNotExist:
raise Http404
except ChangeRequestTemplateStakeHolders.DoesNotExist:
raise Http404
except ChangeRequestTemplateAttachments.DoesNotExist:
raise Http404
except ChangeRequestTemplateDetails.DoesNotExist:
raise Http404
except ChangeRequestTemplateTasks.DoesNotExist:
raise Http404
# Generated by Django 2.2 on 2019-09-06 14:29
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('entities', '0011_auto_20190905_1756'),
]
operations = [
migrations.AddField(
model_name='changerequestformapprovers',
name='tmp_approver',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='entities.ChangeRequestTemplateApprovers', to_field='code'),
),
migrations.AddField(
model_name='changerequestformattachments',
name='tmp_attach',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='entities.ChangeRequestTemplateAttachments', to_field='code'),
),
migrations.AddField(
model_name='changerequestformdetails',
name='tmp_detail',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='entities.ChangeRequestTemplateDetails', to_field='code'),
),
migrations.AddField(
model_name='changerequestformstakeholders',
name='tmp_stake',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='entities.ChangeRequestTemplateStakeHolders', to_field='code'),
),
migrations.AlterField(
model_name='changerequestformapprovers',
name='delegation',
field=models.CharField(blank=True, max_length=50, null=True),
),
migrations.AlterField(
model_name='changerequestformapprovers',
name='user',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL, to_field='code'),
),
migrations.AlterField(
model_name='changerequestformstakeholders',
name='user',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL, to_field='code'),
),
migrations.AlterField(
model_name='changerequesttemplateapprovers',
name='delegation',
field=models.CharField(blank=True, max_length=50, null=True),
),
migrations.AlterField(
model_name='changerequesttemplateapprovers',
name='user',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL, to_field='code'),
),
migrations.AlterField(
model_name='changerequesttemplatestakeholders',
name='user',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL, to_field='code'),
),
]
......@@ -389,10 +389,12 @@ class BaseApprover(models.Model):
user = models.ForeignKey(
User,
blank=True,
null=True,
on_delete=models.DO_NOTHING,
to_field='code')
delegation = models.CharField(max_length=50)
delegation = models.CharField(max_length=50, blank=True, null=True)
created = models.DateTimeField(
blank=True,
null=True)
......@@ -407,6 +409,8 @@ class BaseApprover(models.Model):
class BaseStakeholder(models.Model):
user = models.ForeignKey(
User,
blank=True,
null=True,
on_delete=models.DO_NOTHING,
to_field='code')
delegation = models.CharField(
......@@ -661,7 +665,11 @@ class ChangeRequestFormHeader(BaseHeader):
def save(self, *args, **kwargs):
super(ChangeRequestFormHeader, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.FORM.value, self.id)
ChangeRequestFormHeader.objects.filter(id=self.id).update(form_code=code)
# ChangeRequestFormHeader.objects.filter(id=self.id).update(form_code=code)
if self.form_code == '':
self.form_code = code
self.save()
class ChangeRequestFormApprovers(BaseApprover):
......@@ -684,6 +692,12 @@ class ChangeRequestFormApprovers(BaseApprover):
date_sent = models.DateTimeField(
blank=True,
null=True)
tmp_approver = models.ForeignKey(
ChangeRequestTemplateApprovers,
null=True,
blank=True,
on_delete=models.DO_NOTHING,
to_field='code')
class Meta:
db_table = 'change_request_form_approvers'
......@@ -691,9 +705,12 @@ class ChangeRequestFormApprovers(BaseApprover):
def save(self, *args, **kwargs):
super(ChangeRequestFormApprovers, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.FORM_APPROVER.value, self.id)
ChangeRequestFormApprovers.objects.filter(id=self.id).update(code=code)
# ChangeRequestFormApprovers.objects.filter(id=self.id).update(code=code)
pass
if self.code == '':
self.code = code
self.created = datetime.now()
self.save()
class ChangeRequestFormDetails(BaseDetails):
......@@ -705,6 +722,12 @@ class ChangeRequestFormDetails(BaseDetails):
on_delete=models.DO_NOTHING,
to_field='form_code',
related_name='frm_details')
tmp_detail = models.ForeignKey(
ChangeRequestTemplateDetails,
null=True,
blank=True,
on_delete=models.DO_NOTHING,
to_field='code')
class Meta:
db_table = 'change_request_form_details'
......@@ -712,9 +735,12 @@ class ChangeRequestFormDetails(BaseDetails):
def save(self, *args, **kwargs):
super(ChangeRequestFormDetails, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.FORM_DETAIL.value, self.id)
ChangeRequestFormDetails.objects.filter(id=self.id).update(code=code)
# ChangeRequestFormDetails.objects.filter(id=self.id).update(code=code)
pass
if self.code == '':
self.code = code
self.created = datetime.now()
self.save()
class ChangeRequestFormStakeHolders(BaseStakeholder):
......@@ -729,6 +755,12 @@ class ChangeRequestFormStakeHolders(BaseStakeholder):
date_added = models.DateTimeField(
blank=True,
null=True)
tmp_stake = models.ForeignKey(
ChangeRequestTemplateStakeHolders,
null=True,
blank=True,
on_delete=models.DO_NOTHING,
to_field='code')
class Meta:
db_table = 'change_request_form_stakeholders'
......@@ -736,9 +768,12 @@ class ChangeRequestFormStakeHolders(BaseStakeholder):
def save(self, *args, **kwargs):
super(ChangeRequestFormStakeHolders, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.FORM_STAKE.value, self.id)
ChangeRequestFormStakeHolders.objects.filter(id=self.id).update(code=code)
# ChangeRequestFormStakeHolders.objects.filter(id=self.id).update(code=code)
pass
if self.code == '':
self.code = code
self.created = datetime.now()
self.save()
class ChangeRequestFormAttachments(BaseAttachment):
......@@ -750,6 +785,12 @@ class ChangeRequestFormAttachments(BaseAttachment):
on_delete=models.DO_NOTHING,
to_field='form_code',
related_name='frm_attachments')
tmp_attach = models.ForeignKey(
ChangeRequestTemplateAttachments,
null=True,
blank=True,
on_delete=models.DO_NOTHING,
to_field='code')
class Meta:
db_table = 'change_request_form_attachments'
......@@ -757,9 +798,12 @@ class ChangeRequestFormAttachments(BaseAttachment):
def save(self, *args, **kwargs):
super(ChangeRequestFormAttachments, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.FORM_ATTACH.value, self.id)
ChangeRequestFormAttachments.objects.filter(id=self.id).update(code=code)
# ChangeRequestFormAttachments.objects.filter(id=self.id).update(code=code)
pass
if self.code == '':
self.code = code
self.created = datetime.now()
self.save()
"""
......
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