Commit 72ba88eb authored by Gladys Forte's avatar Gladys Forte

added form attachment serializer

parent 7b51b52b
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 django.db.models import Q
import requests
from django.conf import settings
from datetime import timedelta
from app.helper.email_service import sender
from app.applicationlayer.utils import main_threading
CR_FRONT_LINK = settings.CR_FRONT_LINK
class CancelTriggerAPIView(views.APIView):
def get(self, request):
date_now = datetime.now()
today_mail = models.CancelTrigger.objects.filter(
Q(auto_cancel_date=date_now.strftime('%Y-%m-%d 00:00:00.000'))
)
list_of_emails = []
for data in today_mail:
if data.is_sent == False and data.form_code.status == 'Pending' and data.frm_approver.is_action == True:
cr_link = f'{CR_FRONT_LINK}/{data.form_code}'
requestor_name = data.form_code.requested_by_user.name
auto_cancel_date = data.auto_cancel_date.strftime('%B %d, %Y')
date_submitted_last_approver = data.date_submitted_last_approver.strftime('%B %d, %Y')
approver_pending_action = data.frm_approver.user.name
cr_number = data.form_code.requested_to_template_id
cr_name = data.form_code.requested_to_template_name
company_requestedto = data.form_code.requested_to_company.name
department_requestedto = data.form_code.requested_to_department.name
priority_level = data.form_code.requested_to_priority
form_status = data.form_code.status
url = cr_link
requestor_recipient = data.form_code.requested_by_user.email
admin = 'Test'
args_requestor = [requestor_name, auto_cancel_date,
date_submitted_last_approver, approver_pending_action,
cr_number, cr_name, company_requestedto,
department_requestedto, priority_level, form_status, url,
requestor_recipient, admin]
main_threading(args_requestor, sender.routing_table_cancelled)
cancel = models.ChangeRequestFormHeader.objects.filter(
form_code=data.form_code
).update(status='Cancelled')
list_of_emails.append(data.form_code.form_code)
today_mail.update(is_sent=True)
return Response(
{"list of emails": list_of_emails},
status=status.HTTP_200_OK
)
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 django.db.models import Q
import requests
from django.conf import settings
from datetime import timedelta
from app.helper.email_service import sender
from app.applicationlayer.utils import main_threading
CR_FRONT_LINK = settings.CR_FRONT_LINK
class OverdueTriggerAPIView(views.APIView):
def get(self, request):
date_now = datetime.now()
today_mail = models.CancelTrigger.objects.filter(
Q(auto_cancel_date=date_now.strftime('%Y-%m-%d 00:00:00.000'))
)
list_of_emails = []
for data in today_mail:
if data.is_sent == False and data.form_code.status == 'Pending' and data.frm_approver.is_action == True:
cr_link = f'{CR_FRONT_LINK}/{data.form_code}'
requestor_name = data.form_code.requested_by_user.name
auto_cancel_date = data.auto_cancel_date.strftime('%B %d, %Y')
date_submitted_last_approver = data.date_submitted_last_approver.strftime('%B %d, %Y')
approver_pending_action = data.frm_approver.user.name
cr_number = data.form_code.requested_to_template_id
cr_name = data.form_code.requested_to_template_name
company_requestedto = data.form_code.requested_to_company.name
department_requestedto = data.form_code.requested_to_department.name
priority_level = data.form_code.requested_to_priority
form_status = data.form_code.status
url = cr_link
requestor_recipient = data.form_code.requested_by_user.email
admin = 'Test'
args_requestor = [requestor_name, auto_cancel_date,
date_submitted_last_approver, approver_pending_action,
cr_number, cr_name, company_requestedto,
department_requestedto, priority_level, form_status, url,
requestor_recipient, admin]
main_threading(args_requestor, sender.routing_table_cancelled)
cancel = models.ChangeRequestFormHeader.objects.filter(
form_code=data.form_code
).update(status='Cancelled')
list_of_emails.append(data.form_code.form_code)
today_mail.update(is_sent=True)
return Response(
{"list of emails": list_of_emails},
status=status.HTTP_200_OK
)
...@@ -51,7 +51,7 @@ class ReminderTriggerAPIView(views.APIView): ...@@ -51,7 +51,7 @@ class ReminderTriggerAPIView(views.APIView):
cr_number, cr_name, company_requestedto, department_requestedto, cr_number, cr_name, company_requestedto, department_requestedto,
priority_level, form_status, url, recipient, admin] priority_level, form_status, url, recipient, admin]
result = main_threading(args_approver, sender.routing_table_reminder_approver) main_threading(args_approver, sender.routing_table_reminder_approver)
list_of_emails.append(data.frm_approver.code) list_of_emails.append(data.frm_approver.code)
# requestor details # requestor details
......
...@@ -33,7 +33,6 @@ class ChangeRequestFormAttachmentsFileUploadSerializer( ...@@ -33,7 +33,6 @@ class ChangeRequestFormAttachmentsFileUploadSerializer(
serializers.ModelSerializer serializers.ModelSerializer
): ):
class Meta: class Meta:
model = models.ChangeRequestFormAttachments model = models.ChangeRequestFormAttachments
fields = ( fields = (
......
...@@ -46,7 +46,9 @@ from app.businesslayer.changerequest.change_request import ( ...@@ -46,7 +46,9 @@ from app.businesslayer.changerequest.change_request import (
from app.applicationlayer.cms.form.approver.serializers import ChangeRequestFormApproversSerializer from app.applicationlayer.cms.form.approver.serializers import ChangeRequestFormApproversSerializer
from app.applicationlayer.cms.form.stakeholder.serializers import ChangeRequestFormStakeHoldersSerializer from app.applicationlayer.cms.form.stakeholder.serializers import ChangeRequestFormStakeHoldersSerializer
from app.applicationlayer.cms.form.details.serializers import ChangeRequestFormDetailsSerializer from app.applicationlayer.cms.form.details.serializers import ChangeRequestFormDetailsSerializer
from app.applicationlayer.cms.form.attachment.serializers import ChangeRequestFormAttachmentsFileUploadSerializer from app.applicationlayer.cms.form.attachment.serializers import (
ChangeRequestFormAttachmentsFileUploadSerializer,
ChangeRequestFormAttachmentsSerializer)
from app.applicationlayer.cms.form.header.serializers import ( from app.applicationlayer.cms.form.header.serializers import (
ChangeRequestFormHeaderSerializer, ChangeRequestFormHeaderSerializer,
ChangeRequestFormHeaderSerializerList) ChangeRequestFormHeaderSerializerList)
......
...@@ -85,7 +85,8 @@ urlpatterns = [ ...@@ -85,7 +85,8 @@ urlpatterns = [
path('form-user-list/', UserListForm.as_view(), name="User List"), path('form-user-list/', UserListForm.as_view(), name="User List"),
path('template-user-list/', UserListTemplate.as_view(), name="User List"), path('template-user-list/', UserListTemplate.as_view(), name="User List"),
# filter endpoints under Allowed Companies table # filter endpoints under Allowed Companies table
path('reminder/', reminder.ReminderTriggerAPIView.as_view()), # path('reminder/', reminder.ReminderTriggerAPIView.as_view()),
# path('cancelled/', cancel.CancelTriggerAPIView.as_view()),
] ]
# urlpatterns += format_suffix_patterns(urlpatterns) # urlpatterns += format_suffix_patterns(urlpatterns)
......
...@@ -534,12 +534,15 @@ def reminder_trigger_save(form_code, ...@@ -534,12 +534,15 @@ def reminder_trigger_save(form_code,
approver_instance = get_approver_details(form_code) approver_instance = get_approver_details(form_code)
form_instance = models.ChangeRequestFormHeader.objects.get(
form_code=form_code)
date_from = date_now + timedelta(days=7) date_from = date_now + timedelta(days=7)
date_to = date_now + timedelta(days=29) date_to = date_now + timedelta(days=29)
auto_cancel_date = date_now + timedelta(days=30) auto_cancel_date = date_now + timedelta(days=30)
# create log for auto_email # create log for auto_email
counter = 0
for approver in approver_instance: for approver in approver_instance:
models.ReminderTrigger.objects.create( models.ReminderTrigger.objects.create(
frm_approver=approver, frm_approver=approver,
...@@ -551,4 +554,14 @@ def reminder_trigger_save(form_code, ...@@ -551,4 +554,14 @@ def reminder_trigger_save(form_code,
is_sent=False is_sent=False
) )
if counter == 0:
models.CancelTrigger.objects.create(
form_code=form_instance,
auto_cancel_date=auto_cancel_date.strftime('%Y-%m-%d 00:00:00.000'),
date_submitted_last_approver=date_submitted_last_approver,
is_sent=False,
frm_approver=approver
)
counter = counter + 1
return True return True
# Generated by Django 2.2 on 2019-10-13 20:18 # Generated by Django 2.2 on 2019-10-14 16:31
from django.db import migrations, models from django.db import migrations, models
import django.db.models.deletion import django.db.models.deletion
...@@ -12,45 +12,45 @@ class Migration(migrations.Migration): ...@@ -12,45 +12,45 @@ class Migration(migrations.Migration):
operations = [ operations = [
migrations.CreateModel( migrations.CreateModel(
name='CancelTrigger', name='ReminderTrigger',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('form_code', models.CharField(blank=True, max_length=255, null=True)),
('auto_cancel_date', models.DateTimeField(blank=True, null=True)), ('auto_cancel_date', models.DateTimeField(blank=True, null=True)),
('is_sent', models.BooleanField(default=False)),
('date_submitted_last_approver', models.DateTimeField(blank=True, null=True)), ('date_submitted_last_approver', models.DateTimeField(blank=True, null=True)),
('approver_pending_action', models.CharField(blank=True, max_length=255, null=True)), ('date_from', models.DateTimeField(blank=True, null=True)),
('date_to', models.DateTimeField(blank=True, null=True)),
('date_to_send', models.DateTimeField(blank=True, null=True)),
('is_sent', models.BooleanField(default=False)),
('frm_approver', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='entities.ChangeRequestFormApprovers', to_field='code')),
], ],
options={ options={
'db_table': 'cancel_trigger', 'db_table': 'reminder_trigger',
}, },
), ),
migrations.CreateModel( migrations.CreateModel(
name='OverdueTrigger', name='OverdueTrigger',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('form_code', models.CharField(blank=True, max_length=255, null=True)),
('overdue_date', models.DateTimeField(blank=True, null=True)), ('overdue_date', models.DateTimeField(blank=True, null=True)),
('is_sent', models.BooleanField(default=False)), ('is_sent', models.BooleanField(default=False)),
('form_code', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='entities.ChangeRequestFormHeader', to_field='form_code')),
], ],
options={ options={
'db_table': 'overdue_trigger', 'db_table': 'overdue_trigger',
}, },
), ),
migrations.CreateModel( migrations.CreateModel(
name='ReminderTrigger', name='CancelTrigger',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('auto_cancel_date', models.DateTimeField(blank=True, null=True)), ('auto_cancel_date', models.DateTimeField(blank=True, null=True)),
('date_submitted_last_approver', models.DateTimeField(blank=True, null=True)),
('date_from', models.DateTimeField(blank=True, null=True)),
('date_to', models.DateTimeField(blank=True, null=True)),
('date_to_send', models.DateTimeField(blank=True, null=True)),
('is_sent', models.BooleanField(default=False)), ('is_sent', models.BooleanField(default=False)),
('date_submitted_last_approver', models.DateTimeField(blank=True, null=True)),
('form_code', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='entities.ChangeRequestFormHeader', to_field='form_code')),
('frm_approver', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='entities.ChangeRequestFormApprovers', to_field='code')), ('frm_approver', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='entities.ChangeRequestFormApprovers', to_field='code')),
], ],
options={ options={
'db_table': 'reminder_trigger', 'db_table': 'cancel_trigger',
}, },
), ),
] ]
...@@ -1034,10 +1034,14 @@ class ReminderTrigger(models.Model): ...@@ -1034,10 +1034,14 @@ class ReminderTrigger(models.Model):
class CancelTrigger(models.Model): class CancelTrigger(models.Model):
form_code = models.CharField( form_code = models.ForeignKey(
null=True, ChangeRequestFormHeader,
blank=True, on_delete=models.PROTECT,
max_length=255) to_field='form_code')
frm_approver = models.ForeignKey(
ChangeRequestFormApprovers,
on_delete=models.PROTECT,
to_field='code')
auto_cancel_date = models.DateTimeField( auto_cancel_date = models.DateTimeField(
null=True, null=True,
blank=True) blank=True)
...@@ -1046,20 +1050,16 @@ class CancelTrigger(models.Model): ...@@ -1046,20 +1050,16 @@ class CancelTrigger(models.Model):
date_submitted_last_approver = models.DateTimeField( date_submitted_last_approver = models.DateTimeField(
null=True, null=True,
blank=True) blank=True)
approver_pending_action = models.CharField(
null=True,
blank=True,
max_length=255)
class Meta: class Meta:
db_table = 'cancel_trigger' db_table = 'cancel_trigger'
class OverdueTrigger(models.Model): class OverdueTrigger(models.Model):
form_code = models.CharField( form_code = models.ForeignKey(
null=True, ChangeRequestFormHeader,
blank=True, on_delete=models.PROTECT,
max_length=255) to_field='form_code')
overdue_date = models.DateTimeField( overdue_date = models.DateTimeField(
null=True, null=True,
blank=True) blank=True)
......
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