diff options
-rw-r--r-- | scripts/bp_create.py | 35 | ||||
-rw-r--r-- | scripts/bp_deactivate.py | 15 | ||||
-rw-r--r-- | web/views.py | 6 |
3 files changed, 53 insertions, 3 deletions
diff --git a/scripts/bp_create.py b/scripts/bp_create.py new file mode 100644 index 0000000..41d53b6 --- /dev/null +++ b/scripts/bp_create.py @@ -0,0 +1,35 @@ +import datetime +from django.utils import timezone + +from web.models import Event + + +start_date = timezone.now() # This should always be the first of a month or the day after the last event's end date +end_date = None +event_duration = 7 +events_to_create = 100 +participants = 5 + +current_month = start_date.strftime('%B') +current_month_count = 1 # change this to +1 of whatever the last band practice is + +for i in range(events_to_create): + if start_date.strftime('%B') != current_month: + current_month = start_date.strftime('%B') + current_month_count = 1 + + end_date = start_date + datetime.timedelta(days=event_duration) + name = f'[BP] {current_month} {current_month_count}' + + e = Event( + start_date=start_date, + end_date=end_date, + name=name, + participants=participants + ) + + e.save() + start_date = end_date + datetime.timedelta(days=1) + current_month_count += 1 + + diff --git a/scripts/bp_deactivate.py b/scripts/bp_deactivate.py new file mode 100644 index 0000000..1a125d5 --- /dev/null +++ b/scripts/bp_deactivate.py @@ -0,0 +1,15 @@ +from django.utils import timezone + +from web.models import Event + + +def deactivate(): + today = timezone.now() + + active_events = Event.objects.filter(active=True).all() + for event in active_events: + if 'BP' in event.name: + if event.end_date < today: + event.active = False + event.save() + diff --git a/web/views.py b/web/views.py index 7331b4d..e35396c 100644 --- a/web/views.py +++ b/web/views.py @@ -2,17 +2,17 @@ from datetime import timedelta from django.contrib.auth import update_session_auth_hash from django.contrib.auth.decorators import login_required from django.contrib.auth.forms import PasswordChangeForm -from django.contrib.auth.views import PasswordChangeView from django.shortcuts import get_object_or_404, redirect, render -from django.urls import reverse_lazy +from scripts.bp_deactivate import deactivate from web.models import Event, Availability @login_required() def index(request): + deactivate() parsed_events = [] - for active_event in Event.objects.filter(active=True).order_by('start_date'): + for active_event in Event.objects.filter(active=True).order_by('start_date')[:10]: data = { 'id': active_event.id, 'name': active_event.name, |