diff --git a/ietf/meeting/models.py b/ietf/meeting/models.py index 6df3235ab..fc435f971 100644 --- a/ietf/meeting/models.py +++ b/ietf/meeting/models.py @@ -996,6 +996,9 @@ class Session(models.Model): unique_constraints_dict = None + def not_meeting(self): + return self.status_id == 'notmeet' + # Should work on how materials are captured so that deleted things are no longer associated with the session # (We can keep the information about something being added to and removed from a session in the document's history) def get_material(self, material_type, only_one): diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index 53d81757f..1f41d0e4e 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -21,7 +21,7 @@ from django.shortcuts import render, redirect, get_object_or_404 from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, Http404 from django.contrib import messages from django.core.urlresolvers import reverse,reverse_lazy -from django.db.models import Min, Max +from django.db.models import Min, Max, Q from django.conf import settings from django.forms.models import modelform_factory, inlineformset_factory from django.forms import ModelForm @@ -2026,12 +2026,12 @@ def proceedings(request, num=None): now = datetime.date.today() schedule = get_schedule(meeting, None) - sessions = Session.objects.filter(meeting__number=meeting.number, timeslotassignments__schedule=schedule).select_related() - plenaries = sessions.filter(name__icontains='plenary') + sessions = Session.objects.filter(meeting__number=meeting.number).filter(Q(timeslotassignments__schedule=schedule)|Q(status='notmeet')).select_related().order_by('-status_id') + plenaries = sessions.filter(name__icontains='plenary').exclude(status='notmeet') ietf = sessions.filter(group__parent__type__slug = 'area').exclude(group__acronym='edu') irtf = sessions.filter(group__parent__acronym = 'irtf') - training = sessions.filter(group__acronym__in=['edu','iaoc'], type_id__in=['session', 'other', ]) - iab = sessions.filter(group__parent__acronym = 'iab') + training = sessions.filter(group__acronym__in=['edu','iaoc'], type_id__in=['session', 'other', ]).exclude(status='notmeet') + iab = sessions.filter(group__parent__acronym = 'iab').exclude(status='notmeet') cache_version = Document.objects.filter(session__meeting__number=meeting.number).aggregate(Max('time'))["time__max"] return render(request, "meeting/proceedings.html", { diff --git a/ietf/templates/meeting/proceedings.html b/ietf/templates/meeting/proceedings.html index f97955a0f..04dce0082 100644 --- a/ietf/templates/meeting/proceedings.html +++ b/ietf/templates/meeting/proceedings.html @@ -69,26 +69,60 @@ {% regroup ietf|dictsort:"group.parent.acronym" by group.parent.name as areas %} {% for sessions in areas %} -

{{sessions.list.0.group.parent.acronym|upper}} {{ sessions.grouper }}

- - - - - - - - - - - - - {% for session in sessions.list|dictsort:"group.acronym" %} - {% ifchanged session.group.acronym %} - {% include "meeting/group_proceedings.html" %} - {% endifchanged %} - {% endfor %} - -
GroupArtifactsRecordingsSlidesDrafts
+ {% for sessions in areas %} +

{{sessions.list.0.group.parent.acronym|upper}} {{ sessions.grouper }}

+ {% regroup sessions.list by not_meeting as meet_or_not %} + {% for batch in meet_or_not %} + {% if not batch.grouper %} + + + + + + + + + + + + {% for session in batch.list|dictsort:"group.acronym" %} + {% ifchanged session.group.acronym %} + {% include "meeting/group_proceedings.html" %} + {% endifchanged %} + {% endfor %} + +
GroupArtifactsRecordingsSlidesDrafts
+ {% else %} +

{{sessions.grouper }} groups not meeting: + {% for session in batch.list|dictsort:"group.acronym" %} + {% ifchanged session.group.acronym %} + {{session.group.acronym}}{% if not forloop.last %},{% endif %} + {% endifchanged %} + {% endfor %} +

+ + + + + + + + + + + + {% for session in batch.list|dictsort:"group.acronym" %} + {% ifchanged session.group.acronym %} + {% if session.sessionpresentation_set.exists %} + {% include "meeting/group_proceedings.html" %} + {% endif %} + {% endifchanged %} + {% endfor %} + +
     
+ {% endif %} + {% endfor %} + {% endfor %} {% endfor %}