summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--workshop_app/reminder_script.py87
-rw-r--r--workshop_app/reminder_script.sh11
-rw-r--r--workshop_app/script.py92
-rw-r--r--workshop_app/script.sh5
4 files changed, 195 insertions, 0 deletions
diff --git a/workshop_app/reminder_script.py b/workshop_app/reminder_script.py
new file mode 100644
index 0000000..71ff671
--- /dev/null
+++ b/workshop_app/reminder_script.py
@@ -0,0 +1,87 @@
+import django
+import os
+import sys
+import datetime as dt
+from textwrap import dedent
+from django.core.mail import send_mail
+from time import sleep
+
+#Setting Up Django Environment Using Existing settings
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "workshop_portal.settings")
+base_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+sys.path.append(base_path)
+django.setup()
+#Importing required email credentials
+from workshop_portal.settings import (
+ EMAIL_HOST,
+ EMAIL_PORT,
+ EMAIL_HOST_USER,
+ EMAIL_HOST_PASSWORD,
+ EMAIL_USE_TLS,
+ PRODUCTION_URL,
+ SENDER_EMAIL,
+ ADMIN_EMAIL
+ )
+from workshop_app.models import *
+from datetime import datetime, date
+
+
+def send_email():
+ tomorrow = date.today() + dt.timedelta(days=5)
+ upcoming_requested_workshops = RequestedWorkshop.objects.filter(
+ requested_workshop_date=tomorrow,
+ status='ACCEPTED'
+ )
+
+ upcoming_proposed_workshops = ProposeWorkshopDate.objects.filter(
+ proposed_workshop_date=tomorrow,
+ status='ACCEPTED'
+ )
+ for w in upcoming_proposed_workshops:
+ sleep(1)
+ message = dedent("""\
+ Dear {0},
+
+ This is to remind you that
+ you have a workshop on {1},
+ for {2}.
+
+ Create Course and Quiz for your workshop.
+
+ Get in touch with your coordinator so that participants
+ can be instructed for enrollment.
+
+ Thank You.
+ """.format(w.proposed_workshop_instructor.get_full_name(),
+ w.proposed_workshop_date, w.proposed_workshop_title))
+ send_mail(
+ "Gentle Reminder about workshop on {0}"
+ .format(w.proposed_workshop_date),message, SENDER_EMAIL,
+ [w.proposed_workshop_instructor.email], fail_silently=False
+ )
+
+ for w in upcoming_requested_workshops:
+ sleep(1)
+ message = dedent("""\
+ Dear {0},
+
+ This is to remind you that
+ you have a workshop on {1},
+ for {2}.
+
+ Create Course and Quiz for your workshop.
+
+ Get in touch with your coordinator so that participants
+ can be instructed for enrollment.
+
+ Thank You.
+ """.format(w.requested_workshop_instructor.get_full_name(),
+ w.requested_workshop_date, w.requested_workshop_title))
+ send_mail(
+ "Gentle Reminder about workshop on {0}"
+ .format(w.requested_workshop_date),message, SENDER_EMAIL,
+ [w.requested_workshop_instructor.email], fail_silently=False
+ )
+
+
+send_email() \ No newline at end of file
diff --git a/workshop_app/reminder_script.sh b/workshop_app/reminder_script.sh
new file mode 100644
index 0000000..ee656fd
--- /dev/null
+++ b/workshop_app/reminder_script.sh
@@ -0,0 +1,11 @@
+path=$1 #command line argument
+
+DIR="$( cd "$( dirname "$0" )" && pwd )"
+cd $DIR
+
+#Activate virtual environment
+source $1bin/activate
+#Run script to send reminder mails
+python reminder_script.py
+#Deactivate Virtual environment
+deactivate \ No newline at end of file
diff --git a/workshop_app/script.py b/workshop_app/script.py
new file mode 100644
index 0000000..0d9179e
--- /dev/null
+++ b/workshop_app/script.py
@@ -0,0 +1,92 @@
+import django
+import os
+import sys
+import datetime as dt
+from textwrap import dedent
+from django.core.mail import send_mail
+from time import sleep
+
+#Setting Up Django Environment Using Existing settings
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "workshop_portal.settings")
+base_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+sys.path.append(base_path)
+django.setup()
+#Importing required email credentials
+from workshop_portal.settings import (
+ EMAIL_HOST,
+ EMAIL_PORT,
+ EMAIL_HOST_USER,
+ EMAIL_HOST_PASSWORD,
+ EMAIL_USE_TLS,
+ PRODUCTION_URL,
+ SENDER_EMAIL,
+ ADMIN_EMAIL
+ )
+from workshop_app.models import *
+from datetime import datetime, date
+class ReminderEmail():
+ """docstring for ReminderEmail"""
+
+ def fetch(self):
+ self.tomorrow = date.today() + dt.timedelta(days=3)
+ self.upcoming_requested_workshops = RequestedWorkshop.objects.filter(
+ requested_workshop_date=self.tomorrow,
+ status='ACCEPTED'
+ )
+
+ self.upcoming_proposed_workshops = ProposeWorkshopDate.objects.filter(
+ proposed_workshop_date=self.tomorrow,
+ status='ACCEPTED'
+ )
+
+ def send_email(self):
+ for w in self.upcoming_proposed_workshops:
+ sleep(1)
+ message = dedent("""\
+ Dear {0},
+
+ This is to remind you that
+ you have a workshop on {1},
+ for {2}.
+
+ Create Course and Quiz for your workshop.
+
+ Get in touch with your coordinator so that participants
+ can be instructed for enrollment.
+
+ Thank You.
+ """.format(w.proposed_workshop_instructor.get_full_name(),
+ w.proposed_workshop_date, w.proposed_workshop_title))
+ send_mail(
+ "Gentle Reminder about workshop on {0}"
+ .format(w.proposed_workshop_date),message, SENDER_EMAIL,
+ [w.proposed_workshop_instructor.email], fail_silently=False
+ )
+
+ for w in self.upcoming_requested_workshops:
+ sleep(1)
+ message = dedent("""\
+ Dear {0},
+
+ This is to remind you that
+ you have a workshop on {1},
+ for {2}.
+
+ Create Course and Quiz for your workshop.
+
+ Get in touch with your coordinator so that participants
+ can be instructed for enrollment.
+
+ Thank You.
+ """.format(w.requested_workshop_instructor.get_full_name(),
+ w.requested_workshop_date, w.requested_workshop_title))
+ send_mail(
+ "Gentle Reminder about workshop on {0}"
+ .format(w.requested_workshop_date),message, SENDER_EMAIL,
+ [w.requested_workshop_instructor.email], fail_silently=False
+ )
+
+if __name__ == '__main__':
+ reminderObj = ReminderEmail()
+ reminderObj.fetch()
+ reminderObj.send_email() \ No newline at end of file
diff --git a/workshop_app/script.sh b/workshop_app/script.sh
new file mode 100644
index 0000000..cf9a544
--- /dev/null
+++ b/workshop_app/script.sh
@@ -0,0 +1,5 @@
+DIR="$( cd "$( dirname "$0" )" && pwd )"
+cd $DIR
+source ../../workshop_env/bin/activate
+python script.py
+deactivate \ No newline at end of file