aboutsummaryrefslogtreecommitdiff
path: root/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'utils.py')
-rw-r--r--utils.py27
1 files changed, 15 insertions, 12 deletions
diff --git a/utils.py b/utils.py
index cd7f1f8..26de36e 100644
--- a/utils.py
+++ b/utils.py
@@ -34,6 +34,8 @@ def get_current_or_next_week():
def get_week(year, week):
start = timezone.make_aware(datetime.datetime.strptime(
"{0}-W{1}-1".format(year, week), "%Y-W%W-%w"))
+ if datetime.datetime(year, 1, 4).isoweekday() > 4:
+ start -= datetime.timedelta(weeks=1)
end = start + datetime.timedelta(weeks=1)
return start, end
@@ -53,19 +55,20 @@ def group_courses(courses):
def parse_group(name):
# Explication de la regex
#
- # ^(.+?)\s*(s(\d)\s+(CM|TD|TP|G)(\w\d{0,3}))?(\s+\([^\(\)]+\))?$
- # ^ début de la ligne
- # (.+?) correspond à au moins un caractère
- # \s* éventuellement un ou plusieurs espaces
- # (s(\d)\s+ un s suivi d’un nombre et d’un ou plusieurs espaces
- # (CM|TD|TP|G) « CM » ou « TD » ou « TP » ou « G »
- # (\w\d{0,3}) suivi d’un caractère puis entre 0 et 3 chiffres
- # )? groupe optionnel
- # (\s+ un ou plusieurs espaces
- # \([^\(\)]+\))? un ou plusieurs caractères (exceptés des espaces) entre parenthèses
- # $ fin de la ligne
+ # ^(.+?)\s*(s(\d)\s+(CM|TD|TP|G)(\d?\w\d{0,3}))?(\s+\([^\(\)]+\))?$
+ #
+ # ^ début de la ligne
+ # (.+?) correspond à au moins un caractère
+ # \s* éventuellement un ou plusieurs espaces
+ # (s(\d)\s+ un s suivi d’un nombre et d’un ou plusieurs espaces
+ # (CM|TD|TP|G) « CM » ou « TD » ou « TP » ou « G »
+ # (\d?\w\d{0,3}) un chiffre optionnel, un caractère, entre 0 et 3 chiffres
+ # )? groupe optionnel
+ # (\s+ un ou plusieurs espaces
+ # \([^\(\)]+\))? un ou plusieurs caractères entre parenthèses
+ # $ fin de la ligne
group_regex = re.compile(
- r"^(.+?)\s*(s(\d)\s+(CM|TD|TP|G)(\w\d{0,3}))?(\s+\([^\(\)]+\))?$")
+ r"^(.+?)\s*(s(\d)\s+(CM|TD|TP|G)(\d?\w\d{0,3}))?(\s+\([^\(\)]+\))?$")
search = group_regex.search(name)
if search is None: