diff options
author | Alban Gruin | 2019-02-13 22:02:09 +0100 |
---|---|---|
committer | Alban Gruin | 2019-06-08 21:13:25 +0200 |
commit | 297632390e6ec051e315e6d9545d0110a41a8880 (patch) | |
tree | e4c89d25650ed8fda5e61f0dcb027f195bb35987 /management/parsers | |
parent | b2eaa3be85b30732c4e6c083c6f0413c02dbaec4 (diff) |
UPS2018: récupération du module (UE) correspondant à un cours
Il peut être intéressant de lister les cours par module (UE). Une
table est donc rajoutée pour stocker cette information et permettre
d’effectuer des recherches et des tris.
Signed-off-by: Alban Gruin <alban at pa1ch dot fr>
Diffstat (limited to 'management/parsers')
-rw-r--r-- | management/parsers/ups2018.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/management/parsers/ups2018.py b/management/parsers/ups2018.py index e3afbe5..afbfc4b 100644 --- a/management/parsers/ups2018.py +++ b/management/parsers/ups2018.py @@ -26,7 +26,7 @@ from django.utils import timezone import lxml.html import requests -from ...models import Course, Group, Room +from ...models import Course, Group, Module, Room from ...utils import get_current_week, get_week from .abstractparser import AbstractParser, ParserError @@ -137,6 +137,13 @@ class Parser(AbstractParser): # par un dictionnaire classique. names = OrderedDict.fromkeys(data[i - 1].split(';')) course.name = ", ".join(names.keys()) + + module_names = [t for t in event["tag"] + if len(t) > 0 and + any(n.startswith(t) for n in names.keys())] + if len(module_names) > 0: + module, _ = Module.objects.get_or_create(name=module_names[0]) + course.module = module else: course.name = "Sans nom" if i - 2 >= min_i: |