Skip to content

Commit 19eb5de

Browse files
committed
Merged in [17044] from valery@smyslov.net:
Make it clearer that a chair can't revise materials for a meeting once the proceedings deadline has passed Fixes issue ietf-tools#2612. - Legacy-Id: 17067 Note: SVN reference [17044] has been migrated to Git commit 182dae2
2 parents d5f18de + 182dae2 commit 19eb5de

7 files changed

Lines changed: 24 additions & 13 deletions

File tree

ietf/doc/views_doc.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1349,12 +1349,12 @@ def all_presentations(request, name):
13491349
sessions = doc.session_set.filter(status__in=['sched','schedw','appr','canceled'],
13501350
type__in=['session','plenary','other'])
13511351

1352-
future, in_progress, past = group_sessions(sessions)
1352+
future, in_progress, recent, past = group_sessions(sessions)
13531353

13541354
return render(request, 'doc/material/all_presentations.html', {
13551355
'user': request.user,
13561356
'doc': doc,
13571357
'future': future,
13581358
'in_progress': in_progress,
1359-
'past' : past,
1359+
'past' : past+recent,
13601360
})

ietf/group/utils.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,9 @@ def milestone_reviewer_for_group_type(group_type):
135135
def can_manage_materials(user, group):
136136
return has_role(user, 'Secretariat') or group.has_role(user, group.features.matman_roles)
137137

138+
def can_manage_session_materials(user, group, session):
139+
return has_role(user, 'Secretariat') or (group.has_role(user, group.features.matman_roles) and not session.is_material_submission_cutoff())
140+
138141
def can_provide_status_update(user, group):
139142
if not group.features.acts_like_wg:
140143
return False

ietf/group/views.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@
112112
from ietf.doc.models import LastCallDocEvent
113113

114114

115-
116115
from ietf.name.models import ReviewAssignmentStateName
117116
from ietf.utils.mail import send_mail_text, parse_preformatted, get_payload
118117

@@ -754,17 +753,20 @@ def meetings(request, acronym=None, group_type=None):
754753
meeting__date__gt=four_years_ago,
755754
type__in=['session','plenary','other'])
756755

757-
future, in_progress, past = group_sessions(sessions)
756+
future, in_progress, recent, past = group_sessions(sessions)
758757

759-
can_edit = has_role(request.user,["Secretariat","Area Director"]) or group.has_role(request.user,["Chair","Secretary"])
758+
can_edit = group.has_role(request.user,["Chair","Secretary"])
759+
can_always_edit = has_role(request.user,["Secretariat","Area Director"])
760760

761761
return render(request,'group/meetings.html',
762762
construct_group_menu_context(request, group, "meetings", group_type, {
763763
'group':group,
764764
'future':future,
765765
'in_progress':in_progress,
766+
'recent':recent,
766767
'past':past,
767768
'can_edit':can_edit,
769+
'can_always_edit':can_always_edit,
768770
}))
769771

770772
def chair_photos(request, group_type=None):

ietf/meeting/utils.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,20 +39,23 @@ def sort_key(session):
3939
today = datetime.date.today()
4040
future = []
4141
in_progress = []
42+
recent = []
4243
past = []
4344
for s in sessions:
4445
if s.meeting.date > today:
4546
future.append(s)
4647
elif s.meeting.end_date() >= today:
4748
in_progress.append(s)
49+
elif not s.is_material_submission_cutoff():
50+
recent.append(s)
4851
else:
4952
past.append(s)
5053

5154
# List future and in_progress meetings with ascending time, but past
5255
# meetings with descending time
5356
past.reverse()
5457

55-
return future, in_progress, past
58+
return future, in_progress, recent, past
5659

5760
def get_upcoming_manageable_sessions(user):
5861
""" Find all the sessions for meetings that haven't ended that the user could affect """

ietf/meeting/views.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
from ietf.doc.fields import SearchableDocumentsField
4949
from ietf.doc.models import Document, State, DocEvent, NewRevisionDocEvent, DocAlias
5050
from ietf.group.models import Group
51-
from ietf.group.utils import can_manage_materials
51+
from ietf.group.utils import can_manage_session_materials
5252
from ietf.ietfauth.utils import role_required, has_role
5353
from ietf.mailtrigger.utils import gather_address_lists
5454
from ietf.meeting.models import Meeting, Session, Schedule, FloorPlan, SessionPresentation, TimeSlot, SlideSubmission
@@ -1120,8 +1120,8 @@ def session_details(request, num, acronym ):
11201120
session.type_counter.update([p.document.type.slug for p in qs])
11211121

11221122
# we somewhat arbitrarily use the group of the last session wet get from
1123-
# get_sessions() above when checking can_manage_materials()
1124-
can_manage = can_manage_materials(request.user, session.group)
1123+
# get_sessions() above when checking can_manage_session_materials()
1124+
can_manage = can_manage_session_materials(request.user, session.group, session)
11251125

11261126
scheduled_sessions=[s for s in sessions if s.status_id=='sched']
11271127
unscheduled_sessions = [s for s in sessions if s.status_id!='sched']

ietf/templates/group/meetings-row.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
<td>{% if s.minutes %}<a href="{{ s.minutes.get_absolute_url }}">Minutes</a>{% endif %}</td>
5151
<td>
5252
<a href="{% url 'ietf.meeting.views.session_details' num=s.meeting.number acronym=s.group.acronym %}">
53-
{% if can_edit %}Edit {% endif %}Materials
53+
{% if can_always_edit or can_edit_materials %}Edit {% endif %}Materials
5454
</a>
5555
</td>
5656
{% endfor %}

ietf/templates/group/meetings.html

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
Meetings in progress
2424
</div>
2525
<div class="panel-body">
26-
{% with sessions=in_progress show_request=True show_ical=True %}
26+
{% with sessions=in_progress show_request=True show_ical=True can_edit_materials=can_edit %}
2727
{% include "group/meetings-row.html" %}
2828
{% endwith %}
2929
</div>
@@ -37,7 +37,7 @@
3737
<a class="regular pull-right" title="icalendar entry for all scheduled future {{group.acronym}} meetings" href="{% url 'ietf.meeting.views.upcoming_ical' %}?filters={{group.acronym}}"><span class="fa fa-calendar"></span></a>
3838
</div>
3939
<div class="panel-body">
40-
{% with sessions=future show_request=True show_ical=True %}
40+
{% with sessions=future show_request=True show_ical=True can_edit_materials=can_edit %}
4141
{% include "group/meetings-row.html" %}
4242
{% endwith %}
4343
</div>
@@ -50,7 +50,10 @@
5050
Past Meetings
5151
</div>
5252
<div class="panel-body">
53-
{% with past as sessions %}
53+
{% with sessions=recent can_edit_materials=can_edit %}
54+
{% include "group/meetings-row.html" %}
55+
{% endwith %}
56+
{% with sessions=past can_edit_materials=False %}
5457
{% include "group/meetings-row.html" %}
5558
{% endwith %}
5659
</div>

0 commit comments

Comments
 (0)