From 3e85495ab8ed5a9e7b8b580ed6bfa4a0d0f10199 Mon Sep 17 00:00:00 2001 From: kartikvirendrar Date: Tue, 12 Nov 2024 17:26:54 +0530 Subject: [PATCH 1/5] add send users active tasks email --- backend/backend/celery.py | 4 +++ backend/user_reports.py | 61 +++++++++++++++++++++++++++++++++++++++ backend/users/tasks.py | 3 ++ 3 files changed, 68 insertions(+) diff --git a/backend/backend/celery.py b/backend/backend/celery.py index 3be85514..ccc31c48 100644 --- a/backend/backend/celery.py +++ b/backend/backend/celery.py @@ -32,6 +32,10 @@ "task": "send_completed_tasks_mail", "schedule": crontab(minute=0, hour="*/6"), # execute 4 times in a day }, + "Send_mail_to_users_active": { + "task": "send_active_tasks_mail", + "schedule": crontab(minute=40, hour=17), + }, "Send_mail_to_managers_new": { "task": "send_new_tasks_mail", "schedule": crontab(minute=0, hour=1), # execute everyday at 1 am diff --git a/backend/user_reports.py b/backend/user_reports.py index d715d966..e3067fe0 100644 --- a/backend/user_reports.py +++ b/backend/user_reports.py @@ -129,6 +129,67 @@ def get_completed_tasks(): else: html_table_df_tasks = "" +def get_active_tasks(): + users = User.objects.filter(id=64) + for member in list(users): + tasks_managed = [] + tasks = ( + Task.objects + .filter(status__in=["INPROGRESS", "SELECTED_SOURCE"]) + .filter(is_active=True) + .filter(user=member) + ) + for task in tasks: + tasks_managed.append( + { + "Project Name": task.video.project_id.title, + "Project Id": task.video.project_id.id, + "Task ID": task.id, + "Task Type": task.get_task_type_label, + } + ) + if len(tasks_managed) > 0: + df = pd.DataFrame.from_records(tasks_managed) + blankIndex = [""] * len(df) + df.index = blankIndex + html_table_df_tasks = build_table( + df, + "orange_light", + font_size="medium", + text_align="left", + width="auto", + index=False, + ) + message = ( + "Hope you are doing great " + + str(member.first_name + " " + member.last_name) + + ",\n Following tasks are active now." + ) + + email_to_send = ( + "

" + + message + + "


Active Tasks Reports

" + + html_table_df_tasks + ) + logging.info("Sending Mail to %s", member.email) + + compiled_msg = send_email_template_with_attachment( + subject=f"{app_name} - Active Tasks Report", + username=[member.email], + message=email_to_send, + ) + msg = EmailMultiAlternatives( + f"{app_name} - Active Tasks Report", + compiled_msg, + settings.DEFAULT_FROM_EMAIL, + [member.email], + ) + email_content = compiled_msg + html_table_df_tasks + msg.attach_alternative(email_content, "text/html") + msg.send() + else: + html_table_df_tasks = "" def get_new_tasks(): logging.info("Calculate Reports...") diff --git a/backend/users/tasks.py b/backend/users/tasks.py index 25953839..4632106e 100644 --- a/backend/users/tasks.py +++ b/backend/users/tasks.py @@ -12,6 +12,9 @@ def send_completed_tasks_mail(): get_completed_tasks() +@shared_task(name="send_active_tasks_mail") +def send_active_tasks_mail(): + get_active_tasks() @shared_task(name="send_new_tasks_mail") def send_new_tasks_mail(): From 5cda612e8402d9bc98e1184847aaf532665994d2 Mon Sep 17 00:00:00 2001 From: kartikvirendrar Date: Tue, 12 Nov 2024 17:36:04 +0530 Subject: [PATCH 2/5] add send users active tasks email --- backend/backend/celery.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/backend/celery.py b/backend/backend/celery.py index ccc31c48..af657ba6 100644 --- a/backend/backend/celery.py +++ b/backend/backend/celery.py @@ -34,7 +34,7 @@ }, "Send_mail_to_users_active": { "task": "send_active_tasks_mail", - "schedule": crontab(minute=40, hour=17), + "schedule": crontab(minute=50, hour=17), }, "Send_mail_to_managers_new": { "task": "send_new_tasks_mail", From f8585e10c9f87351d851c9e790d6ca4111de43ff Mon Sep 17 00:00:00 2001 From: kartikvirendrar Date: Tue, 12 Nov 2024 17:47:49 +0530 Subject: [PATCH 3/5] add send users active tasks email --- backend/backend/celery.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/backend/celery.py b/backend/backend/celery.py index af657ba6..bca3a097 100644 --- a/backend/backend/celery.py +++ b/backend/backend/celery.py @@ -34,7 +34,7 @@ }, "Send_mail_to_users_active": { "task": "send_active_tasks_mail", - "schedule": crontab(minute=50, hour=17), + "schedule": crontab(minute=0, hour=18), }, "Send_mail_to_managers_new": { "task": "send_new_tasks_mail", From 8f05e04b5b9d27efa8d08654b9126122bae3da28 Mon Sep 17 00:00:00 2001 From: kartikvirendrar Date: Tue, 12 Nov 2024 18:14:36 +0530 Subject: [PATCH 4/5] add send users active tasks email --- backend/backend/celery.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/backend/celery.py b/backend/backend/celery.py index bca3a097..28a36c51 100644 --- a/backend/backend/celery.py +++ b/backend/backend/celery.py @@ -34,7 +34,7 @@ }, "Send_mail_to_users_active": { "task": "send_active_tasks_mail", - "schedule": crontab(minute=0, hour=18), + "schedule": crontab(minute=45, hour=18), }, "Send_mail_to_managers_new": { "task": "send_new_tasks_mail", From d8ab8c6d947db6acd20141a3065b71ca6b40efe3 Mon Sep 17 00:00:00 2001 From: kartikvirendrar Date: Tue, 12 Nov 2024 18:15:13 +0530 Subject: [PATCH 5/5] add send users active tasks email --- backend/user_reports.py | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/user_reports.py b/backend/user_reports.py index e3067fe0..d6ccdfa6 100644 --- a/backend/user_reports.py +++ b/backend/user_reports.py @@ -148,6 +148,7 @@ def get_active_tasks(): "Task Type": task.get_task_type_label, } ) + logging.info(tasks_managed) if len(tasks_managed) > 0: df = pd.DataFrame.from_records(tasks_managed) blankIndex = [""] * len(df)