diff --git a/api/utils/rebate_checker.py b/api/utils/rebate_checker.py index b2d211d..c3ab4bd 100644 --- a/api/utils/rebate_checker.py +++ b/api/utils/rebate_checker.py @@ -1,5 +1,6 @@ from django.utils import timezone -from home.models.students import Student, LongRebate, Rebate, Allocation + +from home.models.students import Allocation, LongRebate, Rebate, Student def is_student_on_rebate(student: Student, allocation: Allocation): @@ -8,19 +9,16 @@ def is_student_on_rebate(student: Student, allocation: Allocation): """ today = timezone.localtime().date() - # Check if there is a TodayRebate for the given allocation + # Check if there is a ShortRebate for the given allocation if Rebate.objects.filter( allocation_id=allocation, start_date__lte=today, end_date__gte=today, - approved=True + approved=True, ).exists(): return True # Check if there is an approved LongRebate for the student within the date range return LongRebate.objects.filter( - email=student, - start_date__lte=today, - end_date__gte=today, - approved=True + email=student, start_date__lte=today, end_date__gte=today, approved=True ).exists() diff --git a/home/admin.py b/home/admin.py index c87dcb5..515b7ac 100644 --- a/home/admin.py +++ b/home/admin.py @@ -33,7 +33,6 @@ Semester, Student, StudentBills, - TodayRebate, UnregisteredStudent, Update, ) @@ -48,7 +47,7 @@ StudentResource, UnregisteredStudentResource, ) -from .utils.django_email_server import caterer_mail, long_rebate_query_mail +from .utils.django_email_server import long_rebate_query_mail from .utils.month import fill_periods, map_periods_to_long_rebate from .utils.rebate_bills_saver import ( fix_all_bills, @@ -642,52 +641,6 @@ def check_student(self, request, queryset): continue -@admin.register(TodayRebate) -class about_Admin(ImportExportModelAdmin, admin.ModelAdmin): - model = TodayRebate - search_fields = ("Caterer", "allocation_id", "date") - list_display = ("allocation_id", "date", "start_date", "end_date") - # list_filter = () - fieldsets = ( - ( - None, - { - "fields": ( - "date", - "Caterer", - "allocation_id", - "start_date", - "end_date", - ) - }, - ), - ) - - actions = ["send_mail"] - - @admin.action(description="Send mail to the caterer") - def send_mail(self, request, queryset): - text = "
  • {name} with {allocation_id} has applied from {start_date} to {end_date}
  • " - for caterer in Caterer.objects.all(): - print(caterer.name) - message_caterer = "" - for obj in queryset: - print(obj.Caterer) - if obj.Caterer != caterer.name: - continue - allocation = obj.allocation_id - message_caterer += text.format( - allocation_id=allocation.student_id, - name=allocation.email.name, - start_date=obj.start_date, - end_date=obj.end_date, - ) - obj.delete() - print(message_caterer) - if message_caterer: - caterer_mail(message_caterer, caterer.name, caterer.email, obj.date) - - rebate_fields = { "fields": ( "email", @@ -1244,14 +1197,6 @@ def Add(self, request, queryset): allocation.high_tea, allocation.caterer, ) - new_rebate = TodayRebate( - date=obj.date_applied, - Caterer=allocation.caterer, - allocation_id=allocation, - start_date=obj.start_date, - end_date=obj.end_date, - ) - new_rebate.save() print("Saved") short_rebate = Rebate( email=student_obj, diff --git a/home/apps.py b/home/apps.py index aeae5ec..00db6ea 100644 --- a/home/apps.py +++ b/home/apps.py @@ -15,14 +15,3 @@ def ready(self): import socket import home.signals - - # bind to port 47200, then check for it for every worker - try: - sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - sock.bind(("127.0.0.1", 47200)) - except socket.error: - print, "!!!scheduler already started, DO NOTHING" - else: - from .schedulers import start - - start() diff --git a/home/migrations/0002_delete_todayrebate.py b/home/migrations/0002_delete_todayrebate.py new file mode 100644 index 0000000..8665658 --- /dev/null +++ b/home/migrations/0002_delete_todayrebate.py @@ -0,0 +1,16 @@ +# Generated by Django 5.0.8 on 2024-11-17 07:35 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('home', '0001_initial'), + ] + + operations = [ + migrations.DeleteModel( + name='TodayRebate', + ), + ] diff --git a/home/models/__init__.py b/home/models/__init__.py index 1ac6463..b917faa 100644 --- a/home/models/__init__.py +++ b/home/models/__init__.py @@ -23,7 +23,6 @@ Rebate, Scan, Student, - TodayRebate, UnregisteredStudent, ) from .allocation import Allocation, Period, Semester diff --git a/home/models/students.py b/home/models/students.py index 67ffaec..1db5527 100644 --- a/home/models/students.py +++ b/home/models/students.py @@ -203,27 +203,6 @@ class Meta: verbose_name_plural = "Unregistered Students" -class TodayRebate(models.Model): - date = models.DateField(help_text="Date of the rebate", default=now) - Caterer = models.CharField(max_length=30, default="") - allocation_id = models.ForeignKey( - Allocation, on_delete=models.SET_NULL, null=True, blank=True - ) - start_date = models.DateField( - help_text="start date of the rebate", null=True, blank=True - ) - end_date = models.DateField( - help_text="end date of the rebate", null=True, blank=True - ) - - def __str__(self): - return str(self.date) + " " + str(self.allocation_id) - - class Meta: - verbose_name = "Today's Rebate" - verbose_name_plural = "Today's Rebate" - - class LeftLongRebate(models.Model): email = models.CharField(_("email"), max_length=30, default="") start_date = models.DateField( diff --git a/home/schedulers.py b/home/schedulers.py deleted file mode 100644 index feb23bc..0000000 --- a/home/schedulers.py +++ /dev/null @@ -1,14 +0,0 @@ -from apscheduler.schedulers.background import BackgroundScheduler -from django_apscheduler.jobstores import DjangoJobStore, register_events - -from .utils.django_email_server import __send__rebate__email__ - - -def start(): - scheduler = BackgroundScheduler() - if scheduler is None: - scheduler.add_jobstore(DjangoJobStore(), "default") - scheduler.add_job(__send__rebate__email__, "cron", hour=23, minute=59, second=0) - register_events(scheduler) - scheduler.start() - print(scheduler) diff --git a/home/signals.py b/home/signals.py index bf5c891..b4523e6 100644 --- a/home/signals.py +++ b/home/signals.py @@ -14,7 +14,6 @@ Semester, Student, StudentBills, - TodayRebate, UnregisteredStudent, ) from .utils.django_email_server import long_rebate_mail, rebate_mail @@ -49,14 +48,6 @@ def direct_update_bill(sender, instance, created, **kwargs): save_short_bill( email, allocation.period, days, allocation.high_tea, allocation.caterer ) - new_rebate = TodayRebate( - date=instance.date_applied, - Caterer=allocation.caterer.name, - allocation_id=allocation, - start_date=start_date, - end_date=end_date, - ) - new_rebate.save() rebate_mail( instance.start_date, instance.end_date, instance.approved, email.email ) @@ -85,14 +76,6 @@ def update_short_bill(sender, instance, **kwargs): allocation.high_tea, allocation.caterer, ) - new_rebate = TodayRebate( - date=instance.date_applied, - Caterer=allocation.caterer.name, - allocation_id=allocation, - start_date=start_date, - end_date=end_date, - ) - new_rebate.save() logger.info("Saved") else: save_short_bill( @@ -102,13 +85,6 @@ def update_short_bill(sender, instance, **kwargs): allocation.high_tea, allocation.caterer, ) - new_rebate = ( - TodayRebate.objects.filter( - allocation_id=allocation, start_date=start_date - ) - .last() - .delete() - ) logger.info("Deleted") rebate_mail( instance.start_date, instance.end_date, instance.approved, email.email diff --git a/home/utils/django_email_server.py b/home/utils/django_email_server.py index ffccbf7..99ae1a9 100644 --- a/home/utils/django_email_server.py +++ b/home/utils/django_email_server.py @@ -3,9 +3,6 @@ from django.core import mail from django.core.mail import send_mail -from ..models.caterer import Caterer -from ..models.students import TodayRebate - def send(subject, message, recipient): with mail.get_connection() as connection: @@ -119,31 +116,3 @@ def long_rebate_query_mail(start_date, end_date, recipient): subject = "Long Term Rebate Application Query" message = message_long_rebate_query.format(start_date=start_date, end_date=end_date) send(subject, message, recipient) - - -def __send__rebate__email__(): - from datetime import date - - today = date.today() - queryset = TodayRebate.objects.filter(date=today) - text = "
  • {name} with {allocation_id} has applied from {start_date} to {end_date}
  • " - for caterer in Caterer.objects.all(): - message_caterer = "" - date = today - print(caterer.name) - print(queryset) - for obj in queryset: - if obj.Caterer != caterer.name: - continue - allocation = obj.allocation_id - message_caterer += text.format( - allocation_id=allocation.student_id, - name=allocation.email.name, - start_date=obj.start_date, - end_date=obj.end_date, - ) - obj.delete() - print(message_caterer) - if message_caterer: - caterer_mail(message_caterer, caterer.name, caterer.email, date) - return diff --git a/messWebsite/settings.py b/messWebsite/settings.py index 31b80a3..edfd41e 100644 --- a/messWebsite/settings.py +++ b/messWebsite/settings.py @@ -43,16 +43,13 @@ "allauth.socialaccount.providers.google", "cloudinary_storage", "cloudinary", - "apscheduler", - "django_apscheduler", - 'rest_framework', - 'rest_framework.authtoken', - 'drf_yasg', - + "rest_framework", + "rest_framework.authtoken", + "drf_yasg", # Local apps "home.apps.HomeConfig", "qrscan.apps.QrscanConfig", - 'api', + "api", ] MIDDLEWARE = [ @@ -169,25 +166,19 @@ ) REST_FRAMEWORK = { - 'DEFAULT_AUTHENTICATION_CLASSES': [ - 'rest_framework.authentication.TokenAuthentication', + "DEFAULT_AUTHENTICATION_CLASSES": [ + "rest_framework.authentication.TokenAuthentication", ], - 'DEFAULT_PERMISSION_CLASSES': [ - 'rest_framework.permissions.IsAuthenticated', + "DEFAULT_PERMISSION_CLASSES": [ + "rest_framework.permissions.IsAuthenticated", ], } SWAGGER_SETTINGS = { - 'SECURITY_DEFINITIONS': { - 'Basic': { - 'type': 'basic' - }, - 'Token': { - 'type': 'apiKey', - 'name': 'Authorization', - 'in': 'header' - } - } + "SECURITY_DEFINITIONS": { + "Basic": {"type": "basic"}, + "Token": {"type": "apiKey", "name": "Authorization", "in": "header"}, + } } ACCOUNT_ADAPTER = "home.adapters.account_adapter.CustomAccountAdapter" diff --git a/requirements.txt b/requirements.txt index ae2c0a2..c930ddd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,8 +1,6 @@ -APScheduler==3.10.4 cloudinary==1.41.0 Django==5.0.9 django_allauth==0.54.0 -django_apscheduler==0.7.0 django_environ==0.10.0 django_import_export==3.2.0 djangorestframework==3.15.2