diff --git a/ietf/meeting/helpers.py b/ietf/meeting/helpers.py index 8fb35bf22..83f4f4368 100644 --- a/ietf/meeting/helpers.py +++ b/ietf/meeting/helpers.py @@ -195,6 +195,7 @@ def preprocess_assignments_for_agenda(assignments_queryset, meeting, extra_prefe for a in assignments: if a.session: a.session.historic_group = None + a.session.order_number = None if a.session.group and a.session.group not in groups: groups.append(a.session.group) @@ -212,6 +213,8 @@ def preprocess_assignments_for_agenda(assignments_queryset, meeting, extra_prefe if a.session.historic_group.parent_id: parent_id_set.add(a.session.historic_group.parent_id) + a.session.order_number = a.session.order_in_meeting() + parents = Group.objects.filter(pk__in=parent_id_set) parent_replacements = find_history_replacements_active_at(parents, meeting_time) diff --git a/ietf/meeting/models.py b/ietf/meeting/models.py index dd9ac7458..b9e36c255 100644 --- a/ietf/meeting/models.py +++ b/ietf/meeting/models.py @@ -1004,6 +1004,12 @@ class Session(models.Model): else: return [self] + def order_in_meeting(self): + if not hasattr(self, '_order_in_meeting'): + session_list = self.all_meeting_sessions_for_group() + self._order_in_meeting = session_list.index(self) + 1 + return self._order_in_meeting + def all_meeting_sessions_cancelled(self): return set(s.current_status for s in self.all_meeting_sessions_for_group()) == {'canceled'} diff --git a/ietf/utils/templatetags/textfilters.py b/ietf/utils/templatetags/textfilters.py index fed4144c7..87b4cbe02 100644 --- a/ietf/utils/templatetags/textfilters.py +++ b/ietf/utils/templatetags/textfilters.py @@ -31,10 +31,10 @@ def xslugify(value): @stringfilter def format(format, values): if not isinstance(values, dict): - tmp = {} - for f in values._meta.fields: - tmp[f.name] = getattr(values, f.name) - values = tmp + obj = values + values = obj.__dict__ + for f in obj._meta.fields: + values[f.name] = getattr(obj, f.name) return format.format(**values) # ----------------------------------------------------------------------