Commit 4695d626 authored by John Red Medrano's avatar John Red Medrano

pulled cms

parent 4e294247
from app.entities import models
from rest_framework import serializers
from django.db.models import Q
from app.applicationlayer.management.changerequest.utils_cr import logged_user
class ChangeRequestTemplatesSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestTemplateHeader
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'template_no']
class ChangeRequestTemplateApproversSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestTemplateApprovers
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
class ChangeRequestTemplateStakeHoldersSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestTemplateStakeHolders
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
class ChangeRequestTemplateAttachmentsSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestTemplateAttachments
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
class ChangeRequestTemplateDetailsSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestTemplateDetails
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
class ChangeRequestFormHeaderSerializer(
serializers.ModelSerializer
):
def to_representation(self, instance):
ret = super().to_representation(instance)
try:
# id_number = self.context.get('request').META.get('user')
id_number = "USER-20190909-0000005"
current_level = models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=ret['form_code']) &
Q(deleted_at=None) &
(Q(action='') | Q(action=None))
).order_by('level')
if current_level.first()['user'] == id_number:
if instance.status.lower() == 'rejected':
approver = 'No'
elif instance.status.lower() == 'cancelled':
approver = 'No'
elif instance.status.lower() == 'closed':
approver = 'No'
else:
approver = 'Yes'
else:
approver = 'No'
ret['action'] = approver
return ret
except Exception as e:
ret['action'] = "No"
return ret
class Meta:
model = models.ChangeRequestFormHeader
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'form_code']
class ChangeRequestFormApproversSerializer(
serializers.ModelSerializer
):
# def to_representation(self, instance):
# ret = super().to_representation(instance)
# try:
# user = instance.user
# user_details = get_account_details(user)
# name = user_details['name']
# group = user_details['groups'][0]['name']
# company = user_details['groups'][0]['company__name']
# ret['name'] = name
# ret['department'] = group
# ret['company'] = company
# return ret
# except Exception as e:
# ret['name'] = "none"
# ret['department'] = "none"
# ret['company'] = "none"
# return ret
class Meta:
model = models.ChangeRequestFormApprovers
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
class ChangeRequestFormStakeHoldersSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestFormStakeHolders
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
class ChangeRequestFormAttachmentsSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestFormAttachments
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
class ChangeRequestFormDetailsSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestFormDetails
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
from app.entities import models
from rest_framework import serializers
from django.db.models import Q
from app.applicationlayer.cms.utils_cr import logged_user
from drf_writable_nested import WritableNestedModelSerializer
class ChangeRequestFormApproversSerializer(
serializers.ModelSerializer
):
# def to_representation(self, instance):
# ret = super().to_representation(instance)
# try:
# user = instance.user
# user_details = get_account_details(user)
# name = user_details['name']
# group = user_details['groups'][0]['name']
# company = user_details['groups'][0]['company__name']
# ret['name'] = name
# ret['department'] = group
# ret['company'] = company
# return ret
# except Exception as e:
# ret['name'] = "none"
# ret['department'] = "none"
# ret['company'] = "none"
# return ret
class Meta:
model = models.ChangeRequestFormApprovers
fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code']
class ChangeRequestFormStakeHoldersSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestFormStakeHolders
fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code']
class ChangeRequestFormAttachmentsSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestFormAttachments
fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code']
class ChangeRequestFormDetailsSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestFormDetails
fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code']
class ChangeRequestFormHeaderSerializer(
WritableNestedModelSerializer
):
frm_approvers = ChangeRequestFormApproversSerializer(
many=True, required=False)
frm_stakes = ChangeRequestFormStakeHoldersSerializer(
many=True, required=False)
frm_attachments = ChangeRequestFormAttachmentsSerializer(
many=True, required=False)
frm_details = ChangeRequestFormDetailsSerializer(
many=True, required=False)
def to_representation(self, instance):
ret = super().to_representation(instance)
try:
# id_number = self.context.get('request').META.get('user')
user = self.context['request'].user
print(user)
# id_number = "USER-20190909-0000005"
current_level = models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=ret['form_code']) &
Q(archived_at=None) &
(Q(action='') | Q(action=None))
).order_by('level')
if current_level.first()['user'] == id_number:
if instance.status.lower() == 'rejected':
approver = 'No'
elif instance.status.lower() == 'cancelled':
approver = 'No'
elif instance.status.lower() == 'closed':
approver = 'No'
else:
approver = 'Yes'
else:
approver = 'No'
ret['action'] = approver
return ret
except Exception as e:
ret['action'] = "No"
return ret
class Meta:
model = models.ChangeRequestFormHeader
# fields = '__all__'
fields = ('form_code', 'requested_to_template_name', 'requested_to_objective',
'requested_to_target_date', 'requested_to_priority',
'description', 'created', 'cancel_date', 'status',
'company_desc', 'department_desc', 'requested_desc',
'requested_to_template_id', 'requested_to_company',
'requested_to_department', 'requested_to_user',
'requested_by_user', 'requested_by_department',
'template_no', 'frm_approvers', 'frm_stakes',
'frm_attachments', 'frm_details')
read_only_fields = ['created', 'archived_at', 'form_code']
from app.entities import models
from rest_framework import serializers
from django.db.models import Q
from drf_writable_nested import WritableNestedModelSerializer
class ChangeRequestTemplateApproversSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestTemplateApprovers
fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code']
class ChangeRequestTemplateStakeHoldersSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestTemplateStakeHolders
fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code']
class ChangeRequestTemplateAttachmentsSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestTemplateAttachments
fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code']
class ChangeRequestTemplateDetailsSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestTemplateDetails
fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code']
# comment
class ChangeRequestTemplatesSerializer(
WritableNestedModelSerializer
):
tmp_approvers = ChangeRequestTemplateApproversSerializer(
many=True, required=False)
tmp_stakes = ChangeRequestTemplateStakeHoldersSerializer(
many=True, required=False)
tmp_attachments = ChangeRequestTemplateAttachmentsSerializer(
many=True, required=False)
tmp_details = ChangeRequestTemplateDetailsSerializer(
many=True, required=False)
class Meta:
model = models.ChangeRequestTemplateHeader
# fields = '__all__'
fields = ('template_no', 'requested_to_template_name',
'requested_to_objective', 'requested_to_target_date',
'requested_to_priority', 'description', 'created',
'requested_to_template_id', 'requested_to_company',
'requested_to_department', 'requested_to_user',
'created_by_user', 'created_by_department', 'tmp_approvers',
'tmp_stakes', 'tmp_attachments', 'tmp_details')
read_only_fields = ['created', 'archived_at', 'template_no']
\ No newline at end of file
This diff is collapsed.
......@@ -3,27 +3,28 @@ from rest_framework import routers
from django.conf.urls import url
from app.applicationlayer.management.notification.views import NotificationsViewset
from app.applicationlayer.management.changerequest import views as crviews
from app.applicationlayer.cms.template import views as crtemplate_views
from app.applicationlayer.cms.form import views as crform_views
router = routers.DefaultRouter()
router.register(r'notifications', NotificationsViewset)
router.register(r'template', crviews.ChangeRequestTemplatesViewset)
router.register(r'template-approvers', crviews.ChangeRequestTemplateApproversViewset)
router.register(r'template-attachments', crviews.ChangeRequestTemplateAttachmentsViewset)
router.register(r'template-stakeholders', crviews.ChangeRequestTemplateStakeHoldersViewset)
router.register(r'template-details', crviews.ChangeRequestTemplateDetailsViewset)
router.register(r'template', crtemplate_views.ChangeRequestTemplatesViewset)
router.register(r'template-approvers', crtemplate_views.ChangeRequestTemplateApproversViewset)
router.register(r'template-attachments', crtemplate_views.ChangeRequestTemplateAttachmentsViewset)
router.register(r'template-stakeholders', crtemplate_views.ChangeRequestTemplateStakeHoldersViewset)
router.register(r'template-details', crtemplate_views.ChangeRequestTemplateDetailsViewset)
router.register(r'form', crviews.ChangeRequestFormsViewset)
router.register(r'form-approvers', crviews.ChangeRequestFormApproversViewset)
router.register(r'form-stakeholders', crviews.ChangeRequestFormStakeHoldersViewset)
router.register(r'form-attachments', crviews.ChangeRequestFormAttachmentsViewset)
router.register(r'form-details', crviews.ChangeRequestFormDetailsViewset)
router.register(r'form', crform_views.ChangeRequestFormsViewset)
router.register(r'form-approvers', crform_views.ChangeRequestFormApproversViewset)
router.register(r'form-stakeholders', crform_views.ChangeRequestFormStakeHoldersViewset)
router.register(r'form-attachments', crform_views.ChangeRequestFormAttachmentsViewset)
router.register(r'form-details', crform_views.ChangeRequestFormDetailsViewset)
urlpatterns = (
path('', include(router.urls)),
path('template-post/', crviews.ChangeRequestTemplatePost.as_view()),
path('form-post/', crviews.ChangeRequestFormPost.as_view()),
path('template-post/', crtemplate_views.ChangeRequestTemplatePost.as_view()),
path('form-post/', crform_views.ChangeRequestFormPost.as_view()),
)
......@@ -22,19 +22,19 @@ def list_by_user(user_id_number):
approver = models.ChangeRequestFormApprovers.objects.filter(
Q(user=user_id_number) &
Q(deleted_at=None)
Q(archived_at=None)
)
approver = [data.form_code for data in approver]
stake = models.ChangeRequestFormStakeHolders.objects.filter(
Q(user=user_id_number) &
Q(deleted_at=None)
Q(archived_at=None)
)
stake = [data.form_code for data in stake]
headers = models.ChangeRequestFormHeader.objects.filter(
deleted_at=None,
archived_at=None,
requested_by_user=user_id_number
)
headers = [data.form_code for data in headers]
......@@ -52,7 +52,7 @@ def list_by_user(user_id_number):
# priviledgedList = models.ChangeRequestFormHeader.objects.filter(
# requested_to_department__in=crViews,
# deleted_at=None,
# archived_at=None,
# )
# priviledgedCrs = [data['form_code'] for data in priviledgedList]
......@@ -62,7 +62,7 @@ def list_by_user(user_id_number):
return_queryset = models.ChangeRequestFormHeader.objects.filter(
form_code__in=form_code,
deleted_at=None,
archived_at=None,
)
exclude = return_queryset.filter(
status__iexact='Draft',
......@@ -179,28 +179,12 @@ def filter_overdue(base_queryset):
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
)
if (query.requested_to_target_date < now):
overdue.append(query.form_code)
return_queryset
return_queryset = return_queryset.filter(
form_code__in=overdue
)
except Exception as e:
pass
......@@ -236,19 +220,25 @@ def filter_awaiting(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:
first_level = current_level.first()
if current_level[0]['user'] == user_id_number:
awaiting_included.append(query.form_code)
first_user = models.ChangeRequestFormApprovers.objects.filter(
code=first_level).values('user')
print(first_user.user)
# if x == user_id_number:
# awaiting_included.append(query.form_code)
return_queryset = return_queryset.filter(form_code__in=awaiting_included)
......
# Generated by Django 2.2 on 2019-09-11 11:02
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0006_emaillogs_is_sent'),
]
operations = [
migrations.AlterField(
model_name='changerequestformheader',
name='requested_to_template_id',
field=models.CharField(max_length=255),
),
]
# Generated by Django 2.2 on 2019-09-11 17:15
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0007_auto_20190911_1102'),
]
operations = [
migrations.AlterField(
model_name='changerequesthistory',
name='form_code',
field=models.CharField(blank=True, max_length=255, null=True),
),
]
# Generated by Django 2.2 on 2019-09-11 18:45
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('entities', '0008_auto_20190911_1715'),
]
operations = [
migrations.RenameField(
model_name='changerequestformapprovers',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequestformattachments',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequestformdetails',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequestformheader',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequestformstakeholders',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequesttemplateapprovers',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequesttemplateattachments',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequesttemplatedetails',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequesttemplateheader',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequesttemplatestakeholders',
old_name='deleted_at',
new_name='archived_at',
),
]
# Generated by Django 2.2 on 2019-09-13 11:43
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('entities', '0009_auto_20190911_1845'),
]
operations = [
migrations.RemoveField(
model_name='changerequestformapprovers',
name='archived_at',
),
migrations.RemoveField(
model_name='changerequestformattachments',
name='archived_at',
),
migrations.RemoveField(
model_name='changerequestformdetails',
name='archived_at',
),
migrations.RemoveField(
model_name='changerequestformheader',
name='archived_at',
),
migrations.RemoveField(
model_name='changerequestformstakeholders',
name='archived_at',
),
]
......@@ -354,8 +354,7 @@ class BaseHeader(models.Model):
to_field='code')
requested_to_template_name = models.CharField(max_length=255)
requested_to_template_id = models.CharField(max_length=255, unique=True)
requested_to_objective = models.CharField(
max_length=255,
blank=True,
......@@ -374,10 +373,6 @@ class BaseHeader(models.Model):
created = models.DateTimeField(auto_now_add=True)
deleted_at = models.DateTimeField(
blank=True,
null=True)
class Meta:
abstract = True
......@@ -399,9 +394,6 @@ class BaseApprover(models.Model):
created = models.DateTimeField(
blank=True,
null=True)
deleted_at = models.DateTimeField(
blank=True,
null=True)
class Meta:
abstract = True
......@@ -421,9 +413,6 @@ class BaseStakeholder(models.Model):
created = models.DateTimeField(
blank=True,
null=True)
deleted_at = models.DateTimeField(
blank=True,
null=True)
class Meta:
abstract = True
......@@ -452,9 +441,6 @@ class BaseAttachment(models.Model):
created = models.DateTimeField(
blank=True,
null=True)
deleted_at = models.DateTimeField(
blank=True,
null=True)
class Meta:
abstract = True
......@@ -469,9 +455,6 @@ class BaseDetails(models.Model):
created = models.DateTimeField(
blank=True,
null=True)
deleted_at = models.DateTimeField(
blank=True,
null=True)
class Meta:
abstract = True
......@@ -487,6 +470,10 @@ class ChangeRequestTemplateHeader(BaseHeader):
template_no = models.CharField(
unique=True,
max_length=255)
requested_to_template_id = models.CharField(
max_length=255,
unique=True)
created_by_user = models.ForeignKey(
User,
......@@ -500,6 +487,10 @@ class ChangeRequestTemplateHeader(BaseHeader):
to_field='code',
related_name='created_by_department')
archived_at = models.DateTimeField(
blank=True,
null=True)
class Meta:
db_table = 'change_request_template_headers'
......@@ -515,7 +506,7 @@ class ChangeRequestTemplateHeader(BaseHeader):
self.save()
def delete(self):
self.deleted_at = datetime.utcnow
self.archived_at = datetime.utcnow
self.save()
......@@ -528,6 +519,9 @@ class ChangeRequestTemplateApprovers(BaseApprover):
on_delete=models.DO_NOTHING,
to_field='template_no',
related_name='tmp_approvers')
archived_at = models.DateTimeField(
blank=True,
null=True)
class Meta:
db_table = 'change_request_template_approvers'
......@@ -544,6 +538,10 @@ class ChangeRequestTemplateApprovers(BaseApprover):
self.created = datetime.now()
self.save()
def delete(self):
self.archived_at = datetime.utcnow
self.save()
class ChangeRequestTemplateStakeHolders(BaseStakeholder):
code = models.CharField(
unique=True,
......@@ -553,6 +551,9 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder):
on_delete=models.DO_NOTHING,
to_field='template_no',
related_name='tmp_stakes')
archived_at = models.DateTimeField(
blank=True,
null=True)
class Meta:
db_table = 'change_request_template_stakeholders'
......@@ -568,6 +569,10 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder):
self.code = code
self.created = datetime.now()
self.save()
def delete(self):
self.archived_at = datetime.utcnow
self.save()
class ChangeRequestTemplateAttachments(BaseAttachment):
......@@ -579,6 +584,9 @@ class ChangeRequestTemplateAttachments(BaseAttachment):
on_delete=models.DO_NOTHING,
to_field='template_no',
related_name='tmp_attachments')
archived_at = models.DateTimeField(
blank=True,
null=True)
class Meta:
db_table = 'change_request_template_attachments'
......@@ -594,6 +602,10 @@ class ChangeRequestTemplateAttachments(BaseAttachment):
self.code = code
self.created = datetime.now()
self.save()
def delete(self):
self.archived_at = datetime.utcnow
self.save()
class ChangeRequestTemplateDetails(BaseDetails):
......@@ -605,6 +617,9 @@ class ChangeRequestTemplateDetails(BaseDetails):
on_delete=models.DO_NOTHING,
to_field='template_no',
related_name='tmp_details')
archived_at = models.DateTimeField(
blank=True,
null=True)
class Meta:
db_table = 'change_request_template_details'
......@@ -620,6 +635,10 @@ class ChangeRequestTemplateDetails(BaseDetails):
self.code = code
self.created = datetime.now()
self.save()
def delete(self):
self.archived_at = datetime.utcnow
self.save()
'''
*****
......@@ -666,6 +685,8 @@ class ChangeRequestFormHeader(BaseHeader):
max_length=255,
null=True,
blank=True)
requested_to_template_id = models.CharField(
max_length=255)
class Meta:
db_table = 'change_request_form_headers'
......@@ -840,7 +861,10 @@ class ChangeRequestHistory(AuditClass):
(tag.value, tag.value) for tag in enums.CREntitiesEnum],
default=enums.CREntitiesEnum.CR_FRM_HEADER.value,
max_length=50)
form_code = models.IntegerField()
form_code = models.CharField(
max_length=255,
blank=True,
null=True)
fromValue = models.TextField(blank=True, null=True)
toValue = models.TextField(blank=True, null=True)
......
This diff is collapsed.
......@@ -19,6 +19,7 @@ Django==2.2
django-cors-headers==2.5.2
django-filter==2.1.0
djangorestframework==3.9.2
drf-writable-nested==0.5.1
gevent==1.4.0
greenlet==0.4.15
hiredis==1.0.0
......
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