Commit 5df9be91 authored by Skia's avatar Skia
Browse files

Move computing of start of semester to core/utils


Signed-off-by: Skia's avatarSkia <skia@libskia.so>
parent a96efafc
......@@ -27,11 +27,38 @@ import re
# Image utils
from io import BytesIO
from datetime import datetime, timezone, date
from PIL import Image, ExifTags
# from exceptions import IOError
import PIL
from django.conf import settings
from django.core.files.base import ContentFile
def get_start_of_semester(d=date.today()):
"""
This function computes the start date of the semester with respect to the given date (default is today),
and the start date given in settings.SITH_START_DATE.
It takes the nearest past start date.
Exemples: with SITH_START_DATE = (8, 15)
Today -> Start date
2015-03-17 -> 2015-02-15
2015-01-11 -> 2014-08-15
"""
today = d
year = today.year
start = date(year, settings.SITH_START_DATE[0], settings.SITH_START_DATE[1])
start2 = start.replace(month=(start.month+6)%12)
if start > start2:
start, start2 = start2, start
if today < start:
return start2.replace(year=year-1)
elif today < start2:
return start
else:
return start2
def scale_dimension(width, height, long_edge):
if width > height:
ratio = long_edge * 1. / width
......
......@@ -32,6 +32,7 @@ from django.core.urlresolvers import reverse
from django.contrib.auth.forms import PasswordResetForm
from core.models import User
from core.utils import get_start_of_semester
......@@ -147,18 +148,7 @@ class Subscription(models.Model):
"""
if duration <= 2: # Sliding subscriptions for 1 or 2 semesters
return d
today = d
year = today.year
start = date(year, settings.SITH_START_DATE[0], settings.SITH_START_DATE[1])
start2 = start.replace(month=(start.month+6)%12)
if start > start2:
start, start2 = start2, start
if today < start:
return start2.replace(year=year-1)
elif today < start2:
return start
else:
return start2
return get_start_of_semester(d)
@staticmethod
def compute_end(duration, start=None):
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment