aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlban Gruin2017-09-10 11:54:38 +0200
committerAlban Gruin2017-09-10 11:54:38 +0200
commit7a7fa10880479cc63df5ae644314caac2462bd4c (patch)
treef19aaad03ad43bf04a08b180f01b1ceff47fa65b
parentdb9523587a8abc955a166ffb3636601164a792ab (diff)
La consolidation a lieu pour le parent d’un groupe mais aussi ses enfants
-rw-r--r--management/commands/_private.py31
1 files changed, 23 insertions, 8 deletions
diff --git a/management/commands/_private.py b/management/commands/_private.py
index 2b57599..c140f51 100644
--- a/management/commands/_private.py
+++ b/management/commands/_private.py
@@ -45,19 +45,34 @@ def add_time(date, time):
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.subgroup is not None:
+ group_content = dict(zip(group_content_key, group_content_list))
- if group_content_list[i] is not None:
- break
+ 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 "subgroup" in group_content:
- group.parent = Group.objects.filter(**group_content).first()
+ if group_content_list[i] is not None:
+ break
+
+ group.parent = Group.objects.filter(timetable=group.timetable,
+ **group_content).first()
group.save()
+ if group.tp is None:
+ group_content = dict(zip(group_content_key, group_content_list))
+ last_is_none = False
+
+ for i, key in enumerate(group_content_key):
+ if group_content_list[i] is None or last_is_none:
+ del group_content[key]
+ group_content[key + "__isnull"] = last_is_none
+ last_is_none = True
+
+ Group.objects.filter(timetable=group.timetable, parent__isnull=True,
+ **group_content).update(parent=group)
+
def consolidate_groups(groups):
for group in groups:
if group.parent == None: