Commit 8b488af7 authored by Gladys Forte's avatar Gladys Forte

auto email

parent efc46f5b
...@@ -29,7 +29,7 @@ class ReminderTriggerAPIView(views.APIView): ...@@ -29,7 +29,7 @@ class ReminderTriggerAPIView(views.APIView):
# print(today_mail) # print(today_mail)
list_of_emails = [] list_of_emails = []
for data in today_mail: for data in today_mail:
if data.frm_approver.is_action == True: if data.frm_approver.is_action == True and data.form_code.status == 'Pending':
# common details # common details
cr_link = f'{CR_FRONT_LINK}/{data.frm_approver.form_code}' cr_link = f'{CR_FRONT_LINK}/{data.frm_approver.form_code}'
......
...@@ -31,7 +31,8 @@ from app.applicationlayer.cms.utils_cr import (number_generator, ...@@ -31,7 +31,8 @@ from app.applicationlayer.cms.utils_cr import (number_generator,
crhistory_create_save, crhistory_create_save,
entity_log_bulk, entity_log_bulk,
reminder_trigger_save, reminder_trigger_save,
overdue_trigger_save) overdue_trigger_save,
reset_autoemail_tables)
from app.entities import enums from app.entities import enums
from app.applicationlayer.utils import model_to_dict from app.applicationlayer.utils import model_to_dict
...@@ -725,8 +726,6 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet): ...@@ -725,8 +726,6 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
self.perform_update(serializer) self.perform_update(serializer)
new_instance = serializer.data new_instance = serializer.data
print(new_instance['action'])
crhistory_save( crhistory_save(
batchno, batchno,
enums.CREnum.ACTION.value, enums.CREnum.ACTION.value,
...@@ -786,7 +785,7 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet): ...@@ -786,7 +785,7 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
is_action=False is_action=False
) )
reminder_trigger_save(form_code, date_now, reminder_trigger_save(form_code, date_now,
approver_instance.date_sent) approver_instance.date_sent)
elif action.lower() == 'rejected': elif action.lower() == 'rejected':
...@@ -978,6 +977,8 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet): ...@@ -978,6 +977,8 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
).update( ).update(
is_action=False is_action=False
) )
reset_autoemail_tables(form_code)
message = status_message_response( message = status_message_response(
200, 'success', 200, 'success',
......
...@@ -551,7 +551,8 @@ def reminder_trigger_save(form_code, ...@@ -551,7 +551,8 @@ def reminder_trigger_save(form_code,
date_to_send=date_from.strftime('%Y-%m-%d 00:00:00.000'), date_to_send=date_from.strftime('%Y-%m-%d 00:00:00.000'),
auto_cancel_date=auto_cancel_date.strftime('%Y-%m-%d 00:00:00.000'), auto_cancel_date=auto_cancel_date.strftime('%Y-%m-%d 00:00:00.000'),
date_submitted_last_approver=date_submitted_last_approver, date_submitted_last_approver=date_submitted_last_approver,
is_sent=False is_sent=False,
form_code=form_instance
) )
if counter == 0: if counter == 0:
...@@ -560,7 +561,8 @@ def reminder_trigger_save(form_code, ...@@ -560,7 +561,8 @@ def reminder_trigger_save(form_code,
auto_cancel_date=auto_cancel_date.strftime('%Y-%m-%d 00:00:00.000'), auto_cancel_date=auto_cancel_date.strftime('%Y-%m-%d 00:00:00.000'),
date_submitted_last_approver=date_submitted_last_approver, date_submitted_last_approver=date_submitted_last_approver,
is_sent=False, is_sent=False,
frm_approver=approver frm_approver=approver,
cancel_type='from_approval'
) )
counter = counter + 1 counter = counter + 1
...@@ -575,6 +577,8 @@ def overdue_trigger_save(form_code): ...@@ -575,6 +577,8 @@ def overdue_trigger_save(form_code):
requested_to_target_date = form_instance.requested_to_target_date requested_to_target_date = form_instance.requested_to_target_date
overdue_date = requested_to_target_date + timedelta(days=1) overdue_date = requested_to_target_date + timedelta(days=1)
auto_cancel_date = overdue_date + timedelta(days=30)
models.OverdueTrigger.objects.create( models.OverdueTrigger.objects.create(
form_code=form_instance, form_code=form_instance,
...@@ -582,4 +586,30 @@ def overdue_trigger_save(form_code): ...@@ -582,4 +586,30 @@ def overdue_trigger_save(form_code):
is_sent=False is_sent=False
) )
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=None,
is_sent=False,
frm_approver=None,
cancel_type='from_target_date'
)
return True
def reset_autoemail_tables(form_code):
models.ReminderTrigger.objects.filter(
form_code=form_code
).delete()
models.CancelTrigger.objects.filter(
form_code=form_code
).delete()
models.OverdueTrigger.objects.filter(
form_code=form_code
).delete()
return True return True
\ No newline at end of file
# Generated by Django 2.2 on 2019-10-29 11:26
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('entities', '0027_assetgroup'),
]
operations = [
migrations.AddField(
model_name='remindertrigger',
name='form_code',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.PROTECT, to='entities.ChangeRequestFormHeader', to_field='form_code'),
preserve_default=False,
),
]
# Generated by Django 2.2 on 2019-10-29 14:55
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('entities', '0028_remindertrigger_form_code'),
]
operations = [
migrations.AddField(
model_name='canceltrigger',
name='cancel_type',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AlterField(
model_name='canceltrigger',
name='frm_approver',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='entities.ChangeRequestFormApprovers', to_field='code'),
),
]
...@@ -1052,6 +1052,10 @@ class ReminderTrigger(models.Model): ...@@ -1052,6 +1052,10 @@ class ReminderTrigger(models.Model):
blank=True) blank=True)
is_sent = models.BooleanField( is_sent = models.BooleanField(
default=False) default=False)
form_code = models.ForeignKey(
ChangeRequestFormHeader,
on_delete=models.PROTECT,
to_field='form_code')
class Meta: class Meta:
db_table = 'reminder_trigger' db_table = 'reminder_trigger'
...@@ -1065,7 +1069,9 @@ class CancelTrigger(models.Model): ...@@ -1065,7 +1069,9 @@ class CancelTrigger(models.Model):
frm_approver = models.ForeignKey( frm_approver = models.ForeignKey(
ChangeRequestFormApprovers, ChangeRequestFormApprovers,
on_delete=models.PROTECT, on_delete=models.PROTECT,
to_field='code') to_field='code',
blank=True,
null=True)
auto_cancel_date = models.DateTimeField( auto_cancel_date = models.DateTimeField(
null=True, null=True,
blank=True) blank=True)
...@@ -1074,6 +1080,10 @@ class CancelTrigger(models.Model): ...@@ -1074,6 +1080,10 @@ class CancelTrigger(models.Model):
date_submitted_last_approver = models.DateTimeField( date_submitted_last_approver = models.DateTimeField(
null=True, null=True,
blank=True) blank=True)
cancel_type = models.CharField(
null=True,
blank=True,
max_length=255)
class Meta: class Meta:
db_table = 'cancel_trigger' db_table = 'cancel_trigger'
......
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