diff --git a/changelog b/changelog index 8b05b5fcd..109b8d0a1 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,26 @@ +ietfdb (5.0.0) ietf; urgency=medium + + With this release, a journey which started in 2008 with a *major* redesign + of the IETF database schema has reached its goal. We've now converted the + datatracker completely to the schema designed then, swapping out all the + models that were changed, converted the database, swapped out all the GUI + code that was built against the old models, and polished off a host of minor + issues arising from the conversion. All this while completing and + integrating 10 major functionality enhancement projects and releasing more + than 50 minor releases, with not a single day of downtime. A history of + release notes is available here: https://datatracker.ietf.org/release/ + + In addition to bringing in the last scheduled polishing of the conversion, + this release also brings in an upgrade of the Django framework from version + 1.2 to 1.6, which gives us a number of new tools and possibilities for + future work. + + There are still some parts of the schema that need an overhaul, and plans + exist for addressing those, but overall we should be in good shape for the + near future, with some room to grow :-) + + -- Henrik Levkowetz 28 Jan 2014 0:04:11 +0100 + ietfdb (4.95) ietf; urgency=medium This release upgrades Django from version 1.2 to version 1.6, including a diff --git a/ietf/secr/proceedings/proc_utils.py b/ietf/secr/proceedings/proc_utils.py index 694f8f2a2..68e957030 100644 --- a/ietf/secr/proceedings/proc_utils.py +++ b/ietf/secr/proceedings/proc_utils.py @@ -7,7 +7,8 @@ from django.conf import settings from django.shortcuts import render_to_response from ietf.group.models import Group, Role from ietf.group.utils import get_charter_text -from ietf.meeting.models import Session, TimeSlot, Meeting +from ietf.meeting.helpers import get_schedule, meeting_updated +from ietf.meeting.models import Session, TimeSlot, Meeting, ScheduledSession from ietf.doc.models import Document, RelatedDocument, DocEvent from itertools import chain from ietf.secr.proceedings.models import Registration @@ -248,9 +249,12 @@ def create_proceedings(meeting, group, is_final=False): if not os.path.exists(target): os.makedirs(target) - shutil.copy(source,target) + try: + shutil.copy(source,target) + rfc.bytes = os.path.getsize(source) + except IOError: + pass rfc.url = url_root + "rfc/%s" % filename - rfc.bytes = os.path.getsize(source) rfc.num = "RFC %s" % rfc_num # check related documents # check obsoletes @@ -372,16 +376,12 @@ def gen_acknowledgement(context): def gen_agenda(context): meeting = context['meeting'] - - timeslots = TimeSlot.objects.filter(meeting=meeting) - - # sort by area:group then time - sort1 = sorted(timeslots, key = mycomp) - sort2 = sorted(sort1, key = lambda a: a.time) + schedule = get_schedule(meeting) + scheduledsessions = ScheduledSession.objects.filter(schedule=schedule).exclude(session__isnull=True) html = render_to_response('proceedings/agenda.html',{ 'meeting': meeting, - 'timeslots': sort2} + 'scheduledsessions': scheduledsessions} ) path = os.path.join(settings.SECR_PROCEEDINGS_DIR,meeting.number,'agenda.html') diff --git a/ietf/secr/proceedings/views.py b/ietf/secr/proceedings/views.py index 5483c7064..838c2c2a4 100644 --- a/ietf/secr/proceedings/views.py +++ b/ietf/secr/proceedings/views.py @@ -19,7 +19,7 @@ from ietf.secr.sreq.forms import GroupSelectForm from ietf.secr.utils.decorators import check_permissions, sec_only from ietf.secr.utils.document import get_rfc_num, get_full_path from ietf.secr.utils.group import get_my_groups, groups_by_session -from ietf.secr.utils.meeting import get_upload_root, get_proceedings_path, get_material +from ietf.secr.utils.meeting import get_upload_root, get_proceedings_path, get_material, get_timeslot from ietf.doc.models import Document, DocAlias, DocEvent, State, NewRevisionDocEvent, RelatedDocument from ietf.group.models import Group @@ -82,9 +82,9 @@ def get_extras(meeting): Gather "extras" which are one off groups. ie iab-wcit(86) ''' groups = [] - sessions = Session.objects.filter(meeting=meeting).exclude(group__parent__acronym__in=('app','gen','int','ops','rai','rtg','sec','tsv','irtf')).filter(timeslot__type='session') + sessions = Session.objects.filter(meeting=meeting).exclude(group__parent__acronym__in=('app','gen','int','ops','rai','rtg','sec','tsv','irtf')) for session in sessions: - if session.materials.all(): + if get_timeslot(session).type.slug == 'session' and session.materials.all(): groups.append(session.group) return groups @@ -226,7 +226,8 @@ def ajax_generate_proceedings(request, meeting_num): context = {'meeting':meeting, 'areas':areas, 'others':others, - 'extras':extras} + 'extras':extras, + 'request':request} proceedings_url = get_proceedings_url(meeting) # the acknowledgement page can be edited manually so only produce if it doesn't already exist diff --git a/ietf/secr/templates/proceedings/agenda.html b/ietf/secr/templates/proceedings/agenda.html index 9c5fb4c6d..9d4173a11 100644 --- a/ietf/secr/templates/proceedings/agenda.html +++ b/ietf/secr/templates/proceedings/agenda.html @@ -11,50 +11,50 @@ *** Click on a name of the group to get a meeting agenda ***

-{% for slot in timeslots %} +{% for ss in scheduledsessions %} {% ifchanged %} {% endifchanged %} {% ifchanged %} {% endifchanged %} - {% if slot.type.name = 'Session' %} {% if slot.session.group %} - - - + {% if ss.timeslot.type.name = 'Session' %} {% if ss.session.group %} + + + + {% if ss.session.group.charter %}{{ss.session.group.acronym}} + {% else %}{{ss.session.group.acronym}}{% endif %} + {% if ss.session.agenda %}{{ss.session.group.name}} + {% else %}{{ss.session.group.name}}{% endif %} + {% if ss.session.group.state.name = "BOF" %} BOF {% endif %} + {% if ss.session.agenda_note %} +
{{ss.session.agenda_note}}{% endif %} {% endif %} {% endif %} - {% if slot.type.name = 'Plenary' %} + {% if ss.timeslot.type.name = 'Plenary' %} - + - {% endif %} diff --git a/ietf/secr/templates/proceedings/overview.html b/ietf/secr/templates/proceedings/overview.html index 11186ab2e..0a5bec291 100644 --- a/ietf/secr/templates/proceedings/overview.html +++ b/ietf/secr/templates/proceedings/overview.html @@ -96,11 +96,11 @@ Fremont, California.The IETF Executive Director is Alexa Morris - + - +
-

{{ slot.time|date:"l"|upper }}, {{ slot.time|date:"F j, Y" }}

+

{{ ss.timeslot.time|date:"l"|upper }}, {{ ss.timeslot.time|date:"F j, Y" }}

- {{slot.time|date:"Hi"}}-{{slot.end_time|date:"Hi"}} + {{ss.timeslot.time|date:"Hi"}}-{{ss.timeslot.end_time|date:"Hi"}} - {{slot.name}} - {% if slot.type.name != 'Session' %} - {% if slot.show_location %} - {{slot.get_location}}{% endif %} + {{ss.timeslot.name}} + {% if ss.timeslot.type.name != 'Session' %} + {% if ss.timeslot.show_location %} - {{ss.timeslot.get_location}}{% endif %} {% endif %}
{% if slot.show_location %}{{slot.get_location}}{% endif %}{{slot.session.group.parent.acronym|upper}}
{% if ss.timeslot.show_location %}{{ss.timeslot.get_location}}{% endif %}{{ss.session.group.parent.acronym|upper}} - {% if slot.session.group.charter %}{{slot.session.group.acronym}} - {% else %}{{slot.session.group.acronym}}{% endif %} - {% if slot.session.agenda %}{{slot.session.group.name}} - {% else %}{{slot.session.group.name}}{% endif %} - {% if slot.session.group.state.name = "BOF" %} BOF {% endif %} - {% if slot.session.agenda_note %} -
{{slot.session.agenda_note}}{% endif %}
{% if slot.show_location %}{{slot.get_location}}{% endif %}{% if ss.timeslot.show_location %}{{ss.timeslot.get_location}}{% endif %} {% if slot.session.agenda %}Agenda - {% else %}{{slot.session.group.name}}{% endif %} + {% if ss.session.agenda %}Agenda + {% else %}{{ss.session.group.name}}{% endif %}
Project ManagerWanda Lo Stephanie McCammon
Meeting RegistrarStephanie McCammonMaddy Conner
Project Manager