Commit b2e2c61c authored by Gladys Forte's avatar Gladys Forte

cronjob

parent e61ce357
...@@ -10,11 +10,14 @@ from django.conf import settings ...@@ -10,11 +10,14 @@ from django.conf import settings
from datetime import timedelta from datetime import timedelta
from app.helper.email_service import sender from app.helper.email_service import sender
from app.applicationlayer.utils import main_threading from app.applicationlayer.utils import main_threading
from rest_framework.permissions import AllowAny
CR_FRONT_LINK = settings.CR_FRONT_LINK CR_FRONT_LINK = settings.CR_FRONT_LINK
class CancelTriggerAPIView(views.APIView): class CancelTriggerAPIView(views.APIView):
permission_classes = (AllowAny,)
def get(self, request): def get(self, request):
date_now = datetime.now() date_now = datetime.now()
today_mail = models.CancelTrigger.objects.filter( today_mail = models.CancelTrigger.objects.filter(
......
...@@ -10,28 +10,32 @@ from django.conf import settings ...@@ -10,28 +10,32 @@ from django.conf import settings
from datetime import timedelta from datetime import timedelta
from app.helper.email_service import sender from app.helper.email_service import sender
from app.applicationlayer.utils import main_threading from app.applicationlayer.utils import main_threading
from rest_framework.permissions import AllowAny
CR_FRONT_LINK = settings.CR_FRONT_LINK CR_FRONT_LINK = settings.CR_FRONT_LINK
class OverdueTriggerAPIView(views.APIView): class OverdueTriggerAPIView(views.APIView):
permission_classes = (AllowAny,)
def get(self, request): def get(self, request):
date_now = datetime.now() date_now = datetime.now()
today_mail = models.CancelTrigger.objects.filter( today_mail = models.OverdueTrigger.objects.filter(
Q(auto_cancel_date=date_now.strftime('%Y-%m-%d 00:00:00.000')) Q(overdue_date=date_now.strftime('%Y-%m-%d 00:00:00.000')) &
Q(is_sent=False)
) )
list_of_emails = [] list_of_emails = []
for data in today_mail: for data in today_mail:
if data.is_sent == False and data.form_code.status == 'Pending' and data.frm_approver.is_action == True: if data.is_sent == False and (data.form_code.status == 'Pending' or
data.form_code.status == 'Approved' or
data.form_code.status == 'Rejected'):
cr_link = f'{CR_FRONT_LINK}/{data.form_code}' cr_link = f'{CR_FRONT_LINK}/{data.form_code}'
requestor_name = data.form_code.requested_by_user.name requestor_name = data.form_code.requested_by_user.name
auto_cancel_date = data.auto_cancel_date.strftime('%B %d, %Y') target_date = data.form_code.requested_to_target_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_number = data.form_code.requested_to_template_id
cr_name = data.form_code.requested_to_template_name cr_name = data.form_code.requested_to_template_name
company_requestedto = data.form_code.requested_to_company.name company_requestedto = data.form_code.requested_to_company.name
...@@ -42,17 +46,12 @@ class OverdueTriggerAPIView(views.APIView): ...@@ -42,17 +46,12 @@ class OverdueTriggerAPIView(views.APIView):
requestor_recipient = data.form_code.requested_by_user.email requestor_recipient = data.form_code.requested_by_user.email
admin = 'Test' admin = 'Test'
args_requestor = [requestor_name, auto_cancel_date, args_requestor = [requestor_name, target_date,
date_submitted_last_approver, approver_pending_action,
cr_number, cr_name, company_requestedto, cr_number, cr_name, company_requestedto,
department_requestedto, priority_level, form_status, url, department_requestedto, priority_level, form_status, url,
requestor_recipient, admin] requestor_recipient, admin]
main_threading(args_requestor, sender.routing_table_cancelled) main_threading(args_requestor, sender.routing_table_overdue)
cancel = models.ChangeRequestFormHeader.objects.filter(
form_code=data.form_code
).update(status='Cancelled')
list_of_emails.append(data.form_code.form_code) list_of_emails.append(data.form_code.form_code)
......
...@@ -30,7 +30,8 @@ from app.applicationlayer.cms.utils_cr import (number_generator, ...@@ -30,7 +30,8 @@ from app.applicationlayer.cms.utils_cr import (number_generator,
generate_template_id, generate_template_id,
crhistory_create_save, crhistory_create_save,
entity_log_bulk, entity_log_bulk,
reminder_trigger_save) reminder_trigger_save,
overdue_trigger_save)
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
...@@ -1233,6 +1234,9 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet): ...@@ -1233,6 +1234,9 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
is_action=True is_action=True
) )
# save details for overdue and auto cancellation
overdue_trigger_save(form_code)
serializer = self.get_serializer(instance) serializer = self.get_serializer(instance)
message = status_message_response( message = status_message_response(
...@@ -1552,6 +1556,9 @@ class ChangeRequestFormPost(APIView): ...@@ -1552,6 +1556,9 @@ class ChangeRequestFormPost(APIView):
is_action=True is_action=True
) )
# save details for overdue and auto cancellation
overdue_trigger_save(frm_id)
message = { message = {
'code': 201, 'code': 201,
'status': 'success', 'status': 'success',
......
...@@ -86,7 +86,8 @@ urlpatterns = [ ...@@ -86,7 +86,8 @@ urlpatterns = [
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()), path('cancelled/', cancel.CancelTriggerAPIView.as_view()),
path('overdue/', overdue.OverdueTriggerAPIView.as_view()),
] ]
# urlpatterns += format_suffix_patterns(urlpatterns) # urlpatterns += format_suffix_patterns(urlpatterns)
......
...@@ -565,3 +565,21 @@ def reminder_trigger_save(form_code, ...@@ -565,3 +565,21 @@ def reminder_trigger_save(form_code,
counter = counter + 1 counter = counter + 1
return True return True
def overdue_trigger_save(form_code):
form_instance = models.ChangeRequestFormHeader.objects.get(
form_code=form_code)
requested_to_target_date = form_instance.requested_to_target_date
overdue_date = requested_to_target_date + timedelta(days=1)
models.OverdueTrigger.objects.create(
form_code=form_instance,
overdue_date=overdue_date.strftime('%Y-%m-%d 00:00:00.000'),
is_sent=False
)
return True
\ No newline at end of file
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