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):
cr_number, cr_name, company_requestedto, department_requestedto,
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)
# requestor details
......
......@@ -32,8 +32,7 @@ class ChangeRequestFormAttachmentsSerializer(
class ChangeRequestFormAttachmentsFileUploadSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestFormAttachments
fields = (
......
......@@ -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.stakeholder.serializers import ChangeRequestFormStakeHoldersSerializer
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 (
ChangeRequestFormHeaderSerializer,
ChangeRequestFormHeaderSerializerList)
......
......@@ -85,7 +85,8 @@ urlpatterns = [
path('form-user-list/', UserListForm.as_view(), name="User List"),
path('template-user-list/', UserListTemplate.as_view(), name="User List"),
# 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)
......
......@@ -534,12 +534,15 @@ def reminder_trigger_save(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_to = date_now + timedelta(days=29)
auto_cancel_date = date_now + timedelta(days=30)
# create log for auto_email
counter = 0
for approver in approver_instance:
models.ReminderTrigger.objects.create(
frm_approver=approver,
......@@ -550,5 +553,15 @@ def reminder_trigger_save(form_code,
date_submitted_last_approver=date_submitted_last_approver,
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
# 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
import django.db.models.deletion
......@@ -12,45 +12,45 @@ class Migration(migrations.Migration):
operations = [
migrations.CreateModel(
name='CancelTrigger',
name='ReminderTrigger',
fields=[
('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)),
('is_sent', models.BooleanField(default=False)),
('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={
'db_table': 'cancel_trigger',
'db_table': 'reminder_trigger',
},
),
migrations.CreateModel(
name='OverdueTrigger',
fields=[
('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)),
('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={
'db_table': 'overdue_trigger',
},
),
migrations.CreateModel(
name='ReminderTrigger',
name='CancelTrigger',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('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)),
('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')),
],
options={
'db_table': 'reminder_trigger',
'db_table': 'cancel_trigger',
},
),
]
......@@ -1034,10 +1034,14 @@ class ReminderTrigger(models.Model):
class CancelTrigger(models.Model):
form_code = models.CharField(
null=True,
blank=True,
max_length=255)
form_code = models.ForeignKey(
ChangeRequestFormHeader,
on_delete=models.PROTECT,
to_field='form_code')
frm_approver = models.ForeignKey(
ChangeRequestFormApprovers,
on_delete=models.PROTECT,
to_field='code')
auto_cancel_date = models.DateTimeField(
null=True,
blank=True)
......@@ -1046,20 +1050,16 @@ class CancelTrigger(models.Model):
date_submitted_last_approver = models.DateTimeField(
null=True,
blank=True)
approver_pending_action = models.CharField(
null=True,
blank=True,
max_length=255)
class Meta:
db_table = 'cancel_trigger'
class OverdueTrigger(models.Model):
form_code = models.CharField(
null=True,
blank=True,
max_length=255)
form_code = models.ForeignKey(
ChangeRequestFormHeader,
on_delete=models.PROTECT,
to_field='form_code')
overdue_date = models.DateTimeField(
null=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