aboutsummaryrefslogtreecommitdiff
path: root/management/commands/_private.py
diff options
context:
space:
mode:
authorAlban Gruin2017-09-04 22:13:31 +0200
committerAlban Gruin2017-09-04 22:13:31 +0200
commitab9df7a174e2debbf9c644c8ec3e2127eeeaa3cf (patch)
treebf9510823644aa1c5dba0ab39277633c0f18ad49 /management/commands/_private.py
parentce0ed9347adde9ca80c11efe79766c966d5749ba (diff)
parent4b3fc9e4c41e2247bf0fa0fe2629b2b57fc174b0 (diff)
Merge branch 'stable/0.y.z' into prod/pa1ch/0.y.zv0.8.0-pa1chprod/pa1ch/0.8.z
Diffstat (limited to 'management/commands/_private.py')
-rw-r--r--management/commands/_private.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/management/commands/_private.py b/management/commands/_private.py
index 3cd23ca..c31eb34 100644
--- a/management/commands/_private.py
+++ b/management/commands/_private.py
@@ -41,6 +41,27 @@ def add_time(date, time):
delta = datetime.timedelta(hours=time.hour, minutes=time.minute)
return date + delta
+def consolidate_group(group):
+ group_content_key = ("mention", "subgroup", "td", "tp")
+ group_content_list = group.group_info[1:]
+ group_content = dict(zip(group_content_key, group_content_list))
+
+ for i in range(len(group_content_list))[::-1]:
+ del group_content[group_content_key[i]]
+ group_content[group_content_key[i] + "__isnull"] = True
+
+ if group_content_list[i] is not None:
+ break
+
+ if "subgroup" in group_content:
+ group.parent = Group.objects.filter(**group_content).first()
+ group.save()
+
+def consolidate_groups(groups):
+ for group in groups:
+ if group.parent == None:
+ consolidate_group(group)
+
def delete_courses_in_week(timetable, year, week):
start, end = get_week(year, week)
Course.objects.filter(begin__gte=start, begin__lt=end,
@@ -79,6 +100,7 @@ def get_events(timetable, year, week, soup, weeks_in_soup):
groups = [get_from_db_or_create(Group, timetable=timetable,
celcat_name=item.text)
for item in event.resources.group.find_all("item")]
+ consolidate_groups(groups)
if event.notes is not None:
notes = event.notes.text