Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eliminate settings.SENIOR_GRADUATION_YEAR #989

Merged
merged 1 commit into from May 14, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions intranet/apps/announcements/tests.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
from django.conf import settings
from django.contrib.auth import get_user_model
from django.urls import reverse

from ...test.ion_test import IonTestCase
from ...utils.date import get_senior_graduation_year
from ..users.models import Group


class AnnouncementTest(IonTestCase):
"""Tests for the announcements module."""

def setUp(self):
self.user = get_user_model().objects.get_or_create(username="awilliam", graduation_year=settings.SENIOR_GRADUATION_YEAR + 1)[0]
self.user = get_user_model().objects.get_or_create(username="awilliam", graduation_year=get_senior_graduation_year() + 1)[0]

def test_get_announcements(self):
self.login()
Expand Down
4 changes: 2 additions & 2 deletions intranet/apps/api/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
from oauth2_provider.models import AccessToken, get_application_model
from oauth2_provider.settings import oauth2_settings

from django.conf import settings
from django.contrib.auth import get_user_model
from django.urls import reverse
from django.utils import timezone

from ...test.ion_test import IonTestCase
from ...utils.date import get_senior_graduation_year
from ..bus.models import Route
from ..eighth.models import EighthActivity, EighthBlock, EighthRoom, EighthScheduledActivity, EighthSignup
from ..schedule.models import Block, Day, DayType, Time
Expand All @@ -22,7 +22,7 @@ class ApiTest(IonTestCase):
"""Tests for the api module."""

def setUp(self):
self.user = get_user_model().objects.get_or_create(username="awilliam", graduation_year=(settings.SENIOR_GRADUATION_YEAR + 1))[0]
self.user = get_user_model().objects.get_or_create(username="awilliam", graduation_year=(get_senior_graduation_year() + 1))[0]
self.application = Application(
name="Test Application",
redirect_uris="http://localhost http://example.com http://example.it",
Expand Down
5 changes: 3 additions & 2 deletions intranet/apps/auth/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
from django.views.decorators.debug import sensitive_post_parameters
from django.views.generic.base import View

from ...utils.date import get_senior_graduation_date, get_senior_graduation_year
from ...utils.helpers import dark_mode_enabled, get_ap_week_warning
from ..dashboard.views import dashboard_view, get_fcps_emerg
from ..eighth.models import EighthBlock
Expand Down Expand Up @@ -135,8 +136,8 @@ def index_view(request, auth_form=None, force_login=False, added_context=None, h
"bg_pattern": get_bg_pattern(request),
"theme": get_login_theme(),
"login_warning": login_warning,
"senior_graduation": settings.SENIOR_GRADUATION,
"senior_graduation_year": settings.SENIOR_GRADUATION_YEAR,
"senior_graduation": get_senior_graduation_date().strftime("%B %d %Y %H:%M:%S"),
"senior_graduation_year": get_senior_graduation_year(),
"sports_events": sports_events,
"school_events": school_events,
"should_not_index_page": has_next_page,
Expand Down
5 changes: 3 additions & 2 deletions intranet/apps/dashboard/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from django.urls import reverse
from django.utils import timezone

from ...utils.date import get_senior_graduation_date, get_senior_graduation_year
from ...utils.helpers import get_ap_week_warning, get_fcps_emerg
from ..announcements.models import Announcement, AnnouncementRequest
from ..eighth.models import EighthBlock, EighthScheduledActivity, EighthSignup
Expand Down Expand Up @@ -305,8 +306,8 @@ def add_widgets_context(request, context):
"schedule": schedule,
"last_displayed_block": schedule[-1] if schedule else None,
"no_signup_today": no_signup_today,
"senior_graduation": settings.SENIOR_GRADUATION,
"senior_graduation_year": settings.SENIOR_GRADUATION_YEAR,
"senior_graduation": get_senior_graduation_date().strftime("%B %d %Y %H:%M:%S"),
"senior_graduation_year": get_senior_graduation_year(),
}
)

Expand Down
23 changes: 13 additions & 10 deletions intranet/apps/dataimport/management/commands/year_cleanup.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import datetime
import sys

from django.conf import settings
from django.contrib.auth import get_user_model
from django.core.management.base import BaseCommand
from django.utils import timezone

from intranet.apps.eighth.models import EighthSignup
from intranet.utils.date import get_senior_graduation_year


class Command(BaseCommand):
Expand All @@ -15,6 +15,9 @@ class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument("--run", action="store_true", dest="run", default=False, help="Actually run.")
parser.add_argument("--confirm", action="store_true", dest="confirm", default=False, help="Skip confirmation.")
parser.add_argument(
"--senior-graduation-year", dest="senior_grad_year", type=int, default=get_senior_graduation_year(), help="The senior graduation year",
)

def ask(self, q):
if input("{} [Yy]: ".format(q)).lower() != "y":
Expand Down Expand Up @@ -49,9 +52,9 @@ def handle(self, *args, **options):
turnover_date = datetime.datetime(current_year, 7, 1)
self.stdout.write("Turnover date set to: {}".format(turnover_date.strftime("%c")))

if not self.chk(
"SENIOR_GRADUATION_YEAR = {} in settings/__init__.py".format(new_senior_year), settings.SENIOR_GRADUATION_YEAR == new_senior_year
):
senior_grad_year = options["senior_grad_year"]

if not self.chk("senior_grad_year = {}".format(new_senior_year), senior_grad_year == new_senior_year):
return
"""
EIGHTH:
Expand All @@ -76,11 +79,11 @@ def handle(self, *args, **options):

self.stdout.write("Deleting graduated users")
if do_run:
self.handle_delete()
self.handle_delete(senior_grad_year=senior_grad_year)

self.stdout.write("Archiving admin comments")
if do_run:
self.archive_admin_comments()
self.archive_admin_comments(senior_grad_year=senior_grad_year)

def clear_absences(self):
absents = EighthSignup.objects.filter(was_absent=True)
Expand All @@ -92,12 +95,12 @@ def clear_absences(self):
def update_welcome(self):
get_user_model().objects.all().update(seen_welcome=False)

def archive_admin_comments(self):
for usr in get_user_model().objects.filter(user_type="student", graduation_year__gte=settings.SENIOR_GRADUATION_YEAR):
def archive_admin_comments(self, *, senior_grad_year: int):
for usr in get_user_model().objects.filter(user_type="student", graduation_year__gte=senior_grad_year):
usr.archive_admin_comments()

def handle_delete(self):
for usr in get_user_model().objects.filter(graduation_year__lt=settings.SENIOR_GRADUATION_YEAR).exclude(user_type="alum"):
def handle_delete(self, *, senior_grad_year: int):
for usr in get_user_model().objects.filter(graduation_year__lt=senior_grad_year).exclude(user_type="alum"):
if not usr.is_superuser and not usr.is_staff:
usr.handle_delete()
self.stdout.write(str(usr.delete()))
Expand Down
5 changes: 2 additions & 3 deletions intranet/apps/dataimport/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,11 @@ def test_year_cleanup(self):
out = StringIO()
year = timezone.now().year
turnover_date = datetime(year, 7, 1)
with self.settings(SENIOR_GRADUATION_YEAR=year + 1):
call_command("year_cleanup", stdout=out)
call_command("year_cleanup", stdout=out, senior_grad_year=year + 1)
output = [
"In pretend mode.",
"Turnover date set to: {}".format(turnover_date.strftime("%c")),
"OK: SENIOR_GRADUATION_YEAR = {} in settings/__init__.py".format(year + 1),
"OK: senior_grad_year = {}".format(year + 1),
"Resolving absences",
"Updating welcome state",
"Deleting graduated users",
Expand Down
16 changes: 8 additions & 8 deletions intranet/apps/eighth/tests.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import datetime

from django.conf import settings
from django.contrib.auth import get_user_model
from django.urls import reverse
from django.utils import timezone
from django.utils.http import urlencode

from ...test.ion_test import IonTestCase
from ...utils.date import get_senior_graduation_year
from ..groups.models import Group
from ..users.models import Email
from .exceptions import SignupException
Expand Down Expand Up @@ -39,7 +39,7 @@ class EighthTest(EighthAbstractTest):
"""

def setUp(self):
self.user = get_user_model().objects.get_or_create(username="awilliam", graduation_year=settings.SENIOR_GRADUATION_YEAR + 1, id=8889)[0]
self.user = get_user_model().objects.get_or_create(username="awilliam", graduation_year=get_senior_graduation_year() + 1, id=8889)[0]

def create_sponsor(self):
user = get_user_model().objects.get_or_create(username="ateacher", first_name="A", last_name="Teacher", user_type="teacher")[0]
Expand Down Expand Up @@ -140,7 +140,7 @@ def test_signups(self):
"""Do some sample signups."""

self.make_admin()
user1 = get_user_model().objects.create(username="user1", graduation_year=settings.SENIOR_GRADUATION_YEAR + 1)
user1 = get_user_model().objects.create(username="user1", graduation_year=get_senior_graduation_year() + 1)
block1 = self.add_block(date="2015-01-01", block_letter="A")
room1 = self.add_room(name="room1", capacity=1)

Expand All @@ -154,7 +154,7 @@ def test_blacklist(self):
"""Make sure users cannot sign up for blacklisted activities."""

self.make_admin()
user1 = get_user_model().objects.create(username="user1", graduation_year=settings.SENIOR_GRADUATION_YEAR)
user1 = get_user_model().objects.create(username="user1", graduation_year=get_senior_graduation_year())
block1 = self.add_block(date="2015-01-01", block_letter="A")
room1 = self.add_room(name="room1", capacity=1)

Expand Down Expand Up @@ -213,7 +213,7 @@ def test_room_formatting(self):
def test_both_blocks(self):
"""Make sure that signing up for a both blocks activity works."""
self.make_admin()
user1 = get_user_model().objects.create(username="user1", graduation_year=settings.SENIOR_GRADUATION_YEAR + 1)
user1 = get_user_model().objects.create(username="user1", graduation_year=get_senior_graduation_year() + 1)
group1 = Group.objects.create(name="group1")
user1.groups.add(group1)
block1 = self.add_block(date="2015-01-01", block_letter="A")
Expand Down Expand Up @@ -245,7 +245,7 @@ def test_both_blocks(self):

def test_signup_status_email(self):
self.make_admin()
user1 = get_user_model().objects.create(username="user1", graduation_year=settings.SENIOR_GRADUATION_YEAR + 1)
user1 = get_user_model().objects.create(username="user1", graduation_year=get_senior_graduation_year() + 1)
Email.objects.get_or_create(address="awilliam@tjhsst.edu", user=user1)
block1 = self.add_block(date="2015-01-01", block_letter="A")
block2 = self.add_block(date="2015-01-01", block_letter="B")
Expand Down Expand Up @@ -311,7 +311,7 @@ def test_take_attendance_zero(self):
def test_take_attendance_cancelled(self):
""" Make sure students in a cancelled activity are marked as absent when the button is pressed. """
self.make_admin()
user1 = get_user_model().objects.create(username="user1", graduation_year=settings.SENIOR_GRADUATION_YEAR + 1)
user1 = get_user_model().objects.create(username="user1", graduation_year=get_senior_graduation_year() + 1)
block1 = self.add_block(date="3000-11-11", block_letter="A")

room1 = self.add_room(name="room1", capacity=1)
Expand Down Expand Up @@ -343,7 +343,7 @@ def test_take_attendance_cancelled(self):
def test_switch_cancelled_sticky(self):
"""Make sure users can switch out of cancelled activities even if they are stickied in."""
self.make_admin()
user1 = get_user_model().objects.create(username="user1", graduation_year=settings.SENIOR_GRADUATION_YEAR + 1)
user1 = get_user_model().objects.create(username="user1", graduation_year=get_senior_graduation_year() + 1)

EighthActivity.objects.all().delete()
EighthBlock.objects.all().delete()
Expand Down
6 changes: 3 additions & 3 deletions intranet/apps/eighth/views/activities.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from django.shortcuts import get_object_or_404, render
from django.utils import timezone

from ....utils.date import get_date_range_this_year
from ....utils.date import get_date_range_this_year, get_senior_graduation_year
from ....utils.serialization import safe_json
from ...auth.decorators import deny_restricted
from ..models import EighthActivity, EighthBlock, EighthScheduledActivity
Expand Down Expand Up @@ -200,7 +200,7 @@ def calculate_statistics(activity, start_date=None, all_years=False, year=None,

old_blocks = 0

if year is not None and year == settings.SENIOR_GRADUATION_YEAR:
if year is not None and year == get_senior_graduation_year():
start_date = datetime.today()

if start_date is None or future:
Expand All @@ -211,7 +211,7 @@ def calculate_statistics(activity, start_date=None, all_years=False, year=None,
past_start_date = activities.count() - filtered_activities.count()

if not all_years:
if year is None or year == settings.SENIOR_GRADUATION_YEAR:
if year is None or year == get_senior_graduation_year():
year_start, year_end = get_date_range_this_year()
else:
year_start, year_end = get_date_range_this_year(datetime(year, 1, 1))
Expand Down
4 changes: 2 additions & 2 deletions intranet/apps/emailfwd/tests.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
from django.conf import settings
from django.contrib.auth import get_user_model
from django.urls import reverse

from ...test.ion_test import IonTestCase
from ...utils.date import get_senior_graduation_year


class EmailFwdTest(IonTestCase):
def test_email_fwd(self):
"""Email Forward sanity check."""
get_user_model().objects.get_or_create(username="awilliam", graduation_year=settings.SENIOR_GRADUATION_YEAR)
get_user_model().objects.get_or_create(username="awilliam", graduation_year=get_senior_graduation_year())
self.login()

response = self.client.get(reverse("senior_emailfwd"))
Expand Down
6 changes: 3 additions & 3 deletions intranet/apps/parking/tests.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from django.conf import settings
from django.contrib.auth import get_user_model
from django.urls import reverse

from ...test.ion_test import IonTestCase
from ...utils.date import get_senior_graduation_year
from .models import CarApplication, ParkingApplication


Expand All @@ -16,7 +16,7 @@ def login_with_args(self, uname, grad_year):
return user

def test_parking_form_junior(self):
user = self.login_with_args("awilliam", settings.SENIOR_GRADUATION_YEAR + 1)
user = self.login_with_args("awilliam", get_senior_graduation_year() + 1)

response = self.client.post(reverse("parking_form"), data={"email": user.tj_email, "mentorship": False})

Expand All @@ -41,7 +41,7 @@ def test_parking_form_junior(self):
self.assertTrue(parking_apps[0].cars.count(), 1)

def test_invalid_user(self):
user = self.login_with_args("bwilliam", settings.SENIOR_GRADUATION_YEAR + 2)
user = self.login_with_args("bwilliam", get_senior_graduation_year() + 2)

response = self.client.post(reverse("parking_form"), data={"email": user.tj_email, "mentorship": False})

Expand Down
4 changes: 2 additions & 2 deletions intranet/apps/polls/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
from collections import OrderedDict

from django import http
from django.conf import settings
from django.contrib import messages
from django.contrib.auth import get_user_model
from django.contrib.auth.decorators import login_required
from django.core.serializers import serialize
from django.shortcuts import get_object_or_404, redirect, render
from django.utils import timezone

from ...utils.date import get_senior_graduation_year
from ...utils.html import safe_html
from ..auth.decorators import deny_restricted
from .forms import PollForm
Expand Down Expand Up @@ -311,7 +311,7 @@ def generate_choice(name, votes, total_count, do_gender=True, show_answers=False
}

for yr in range(9, 14):
yr_votes = votes.filter(user__graduation_year=settings.SENIOR_GRADUATION_YEAR + 12 - yr)
yr_votes = votes.filter(user__graduation_year=get_senior_graduation_year() + 12 - yr)
choice["votes"][yr] = {
"all": yr_votes.count(),
"male": yr_votes.filter(user__gender=True).count() if do_gender else 0,
Expand Down
4 changes: 2 additions & 2 deletions intranet/apps/preferences/tests.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
from django.conf import settings
from django.contrib.auth import get_user_model
from django.test.client import RequestFactory
from django.urls import reverse

from ...test.ion_test import IonTestCase
from ...utils.date import get_senior_graduation_year
from ..bus.models import Route
from .forms import EmailForm
from .views import save_bus_route


class PreferencesTest(IonTestCase):
def setUp(self):
self.user = get_user_model().objects.get_or_create(username="awilliam", id="99999", graduation_year=settings.SENIOR_GRADUATION_YEAR + 1)[0]
self.user = get_user_model().objects.get_or_create(username="awilliam", id="99999", graduation_year=get_senior_graduation_year() + 1)[0]
route_names = ["JT-002", "JT-001"]
for route_name in route_names:
Route.objects.get_or_create(route_name=route_name, space="", bus_number="")
Expand Down
4 changes: 3 additions & 1 deletion intranet/apps/seniors/models.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from django.conf import settings
from django.db import models

from ...utils.date import get_senior_graduation_year


class College(models.Model):
name = models.CharField(max_length=1000)
Expand All @@ -15,7 +17,7 @@ class Meta:

class SeniorManager(models.Manager):
def filled(self):
return Senior.objects.exclude(college=None, major=None).filter(user__graduation_year=settings.SENIOR_GRADUATION_YEAR)
return Senior.objects.exclude(college=None, major=None).filter(user__graduation_year=get_senior_graduation_year())


class Senior(models.Model):
Expand Down
4 changes: 2 additions & 2 deletions intranet/apps/seniors/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from django.contrib.auth.decorators import login_required
from django.shortcuts import redirect, render

from ...settings import SENIOR_GRADUATION_YEAR
from ...utils.date import get_senior_graduation_year
from ..auth.decorators import deny_restricted
from .forms import SeniorForm
from .models import Senior
Expand All @@ -17,7 +17,7 @@
def seniors_home_view(request):
seniors = (
Senior.objects.exclude(college=None, major=None)
.filter(user__graduation_year=SENIOR_GRADUATION_YEAR)
.filter(user__graduation_year=get_senior_graduation_year())
.order_by("user__last_name", "user__first_name")
)
try:
Expand Down
Loading