diff --git a/ietf/meeting/migrations/0059_meeting_show_important_dates.py b/ietf/meeting/migrations/0059_meeting_show_important_dates.py new file mode 100644 index 000000000..5016ce251 --- /dev/null +++ b/ietf/meeting/migrations/0059_meeting_show_important_dates.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.8 on 2017-11-06 08:26 +from __future__ import unicode_literals + +import datetime + +from django.db import migrations, models + +def forwards(apps, schema_editor): + Meeting = apps.get_model('meeting', 'Meeting') + stop_date = datetime.date.today() + datetime.timedelta(days=180) + for m in Meeting.objects.filter(show_important_dates=False): + if m.date < today: + m.show_important_dates = True + m.save() + +def backwards(apps, schema_editor): + pass + + +class Migration(migrations.Migration): + + dependencies = [ + ('meeting', '0058_set_new_field_meeting_days_values'), + ] + + operations = [ + migrations.AddField( + model_name='meeting', + name='show_important_dates', + field=models.BooleanField(default=False), + ), + migrations.RunPython(forwards, backwards), + ] diff --git a/ietf/meeting/models.py b/ietf/meeting/models.py index f294c7cd4..d293b8441 100644 --- a/ietf/meeting/models.py +++ b/ietf/meeting/models.py @@ -93,6 +93,7 @@ class Meeting(models.Model): proceedings_final = models.BooleanField(default=False, help_text=u"Are the proceedings for this meeting complete?") acknowledgements = models.TextField(blank=True, help_text="Acknowledgements for use in meeting proceedings. Use ReStructuredText markup.") overview = models.ForeignKey(DBTemplate, related_name='overview', null=True, editable=False) + show_important_dates = models.BooleanField(default=False) def __unicode__(self): if self.type_id == "ietf": diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index 41114b500..08829d182 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -2181,16 +2181,22 @@ def api_import_recordings(request, number): def important_dates(request, num=None): assert num is None or num.isdigit() + preview_roles = ['Area Director', 'Secretariat', 'IETF Chair', 'IAD', ] meeting = get_ietf_meeting(num) if not meeting: raise Http404 base_num = int(meeting.number) - meetings=[meeting] + user = request.user + today = datetime.date.today() + meetings = [] + if meeting.show_important_dates or meeting.date < today: + meetings.append(meeting) for i in range(1,3): future_meeting = get_ietf_meeting(base_num+i) - if future_meeting: + if future_meeting and ( future_meeting.show_important_dates + or (user and user.is_authenticated and has_role(user, preview_roles))): meetings.append(future_meeting) context={'meetings':meetings} diff --git a/ietf/templates/base/menu.html b/ietf/templates/base/menu.html index 9b9078b2b..5cb4a9bf8 100644 --- a/ietf/templates/base/menu.html +++ b/ietf/templates/base/menu.html @@ -96,7 +96,8 @@
  • Agenda
  • Materials
  • -
  • Floor Plan
  • +
  • Floor plan
  • +
  • Important dates
  • Past proceedings
  • Upcoming
  • Past