mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-22 14:13:21 +00:00
Move computing of start of semester to core/utils
Signed-off-by: Skia <skia@libskia.so>
This commit is contained in:
parent
a96efafc8e
commit
5df9be9188
@ -27,11 +27,38 @@ import re
|
|||||||
# Image utils
|
# Image utils
|
||||||
|
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
|
from datetime import datetime, timezone, date
|
||||||
|
|
||||||
from PIL import Image, ExifTags
|
from PIL import Image, ExifTags
|
||||||
# from exceptions import IOError
|
|
||||||
import PIL
|
import PIL
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
from django.core.files.base import ContentFile
|
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):
|
def scale_dimension(width, height, long_edge):
|
||||||
if width > height:
|
if width > height:
|
||||||
ratio = long_edge * 1. / width
|
ratio = long_edge * 1. / width
|
||||||
|
@ -32,6 +32,7 @@ from django.core.urlresolvers import reverse
|
|||||||
from django.contrib.auth.forms import PasswordResetForm
|
from django.contrib.auth.forms import PasswordResetForm
|
||||||
|
|
||||||
from core.models import User
|
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
|
if duration <= 2: # Sliding subscriptions for 1 or 2 semesters
|
||||||
return d
|
return d
|
||||||
today = d
|
return get_start_of_semester(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
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def compute_end(duration, start=None):
|
def compute_end(duration, start=None):
|
||||||
|
Loading…
Reference in New Issue
Block a user