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 #2612.
- Legacy-Id: 17067
Note: SVN reference [17044] has been migrated to Git commit 182dae28a8
This commit is contained in:
commit
19eb5de983
|
@ -1349,12 +1349,12 @@ def all_presentations(request, name):
|
|||
sessions = doc.session_set.filter(status__in=['sched','schedw','appr','canceled'],
|
||||
type__in=['session','plenary','other'])
|
||||
|
||||
future, in_progress, past = group_sessions(sessions)
|
||||
future, in_progress, recent, past = group_sessions(sessions)
|
||||
|
||||
return render(request, 'doc/material/all_presentations.html', {
|
||||
'user': request.user,
|
||||
'doc': doc,
|
||||
'future': future,
|
||||
'in_progress': in_progress,
|
||||
'past' : past,
|
||||
'past' : past+recent,
|
||||
})
|
||||
|
|
|
@ -135,6 +135,9 @@ def milestone_reviewer_for_group_type(group_type):
|
|||
def can_manage_materials(user, group):
|
||||
return has_role(user, 'Secretariat') or group.has_role(user, group.features.matman_roles)
|
||||
|
||||
def can_manage_session_materials(user, group, session):
|
||||
return has_role(user, 'Secretariat') or (group.has_role(user, group.features.matman_roles) and not session.is_material_submission_cutoff())
|
||||
|
||||
def can_provide_status_update(user, group):
|
||||
if not group.features.acts_like_wg:
|
||||
return False
|
||||
|
|
|
@ -112,7 +112,6 @@ from ietf.review.utils import (can_manage_review_requests_for_team,
|
|||
from ietf.doc.models import LastCallDocEvent
|
||||
|
||||
|
||||
|
||||
from ietf.name.models import ReviewAssignmentStateName
|
||||
from ietf.utils.mail import send_mail_text, parse_preformatted, get_payload
|
||||
|
||||
|
@ -754,17 +753,20 @@ def meetings(request, acronym=None, group_type=None):
|
|||
meeting__date__gt=four_years_ago,
|
||||
type__in=['session','plenary','other'])
|
||||
|
||||
future, in_progress, past = group_sessions(sessions)
|
||||
future, in_progress, recent, past = group_sessions(sessions)
|
||||
|
||||
can_edit = has_role(request.user,["Secretariat","Area Director"]) or group.has_role(request.user,["Chair","Secretary"])
|
||||
can_edit = group.has_role(request.user,["Chair","Secretary"])
|
||||
can_always_edit = has_role(request.user,["Secretariat","Area Director"])
|
||||
|
||||
return render(request,'group/meetings.html',
|
||||
construct_group_menu_context(request, group, "meetings", group_type, {
|
||||
'group':group,
|
||||
'future':future,
|
||||
'in_progress':in_progress,
|
||||
'recent':recent,
|
||||
'past':past,
|
||||
'can_edit':can_edit,
|
||||
'can_always_edit':can_always_edit,
|
||||
}))
|
||||
|
||||
def chair_photos(request, group_type=None):
|
||||
|
|
|
@ -39,12 +39,15 @@ def group_sessions(sessions):
|
|||
today = datetime.date.today()
|
||||
future = []
|
||||
in_progress = []
|
||||
recent = []
|
||||
past = []
|
||||
for s in sessions:
|
||||
if s.meeting.date > today:
|
||||
future.append(s)
|
||||
elif s.meeting.end_date() >= today:
|
||||
in_progress.append(s)
|
||||
elif not s.is_material_submission_cutoff():
|
||||
recent.append(s)
|
||||
else:
|
||||
past.append(s)
|
||||
|
||||
|
@ -52,7 +55,7 @@ def group_sessions(sessions):
|
|||
# meetings with descending time
|
||||
past.reverse()
|
||||
|
||||
return future, in_progress, past
|
||||
return future, in_progress, recent, past
|
||||
|
||||
def get_upcoming_manageable_sessions(user):
|
||||
""" Find all the sessions for meetings that haven't ended that the user could affect """
|
||||
|
|
|
@ -48,7 +48,7 @@ from django.views.generic import RedirectView
|
|||
from ietf.doc.fields import SearchableDocumentsField
|
||||
from ietf.doc.models import Document, State, DocEvent, NewRevisionDocEvent, DocAlias
|
||||
from ietf.group.models import Group
|
||||
from ietf.group.utils import can_manage_materials
|
||||
from ietf.group.utils import can_manage_session_materials
|
||||
from ietf.ietfauth.utils import role_required, has_role
|
||||
from ietf.mailtrigger.utils import gather_address_lists
|
||||
from ietf.meeting.models import Meeting, Session, Schedule, FloorPlan, SessionPresentation, TimeSlot, SlideSubmission
|
||||
|
@ -1120,8 +1120,8 @@ def session_details(request, num, acronym ):
|
|||
session.type_counter.update([p.document.type.slug for p in qs])
|
||||
|
||||
# we somewhat arbitrarily use the group of the last session wet get from
|
||||
# get_sessions() above when checking can_manage_materials()
|
||||
can_manage = can_manage_materials(request.user, session.group)
|
||||
# get_sessions() above when checking can_manage_session_materials()
|
||||
can_manage = can_manage_session_materials(request.user, session.group, session)
|
||||
|
||||
scheduled_sessions=[s for s in sessions if s.status_id=='sched']
|
||||
unscheduled_sessions = [s for s in sessions if s.status_id!='sched']
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
<td>{% if s.minutes %}<a href="{{ s.minutes.get_absolute_url }}">Minutes</a>{% endif %}</td>
|
||||
<td>
|
||||
<a href="{% url 'ietf.meeting.views.session_details' num=s.meeting.number acronym=s.group.acronym %}">
|
||||
{% if can_edit %}Edit {% endif %}Materials
|
||||
{% if can_always_edit or can_edit_materials %}Edit {% endif %}Materials
|
||||
</a>
|
||||
</td>
|
||||
{% endfor %}
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
Meetings in progress
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{% with sessions=in_progress show_request=True show_ical=True %}
|
||||
{% with sessions=in_progress show_request=True show_ical=True can_edit_materials=can_edit %}
|
||||
{% include "group/meetings-row.html" %}
|
||||
{% endwith %}
|
||||
</div>
|
||||
|
@ -37,7 +37,7 @@
|
|||
<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>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{% with sessions=future show_request=True show_ical=True %}
|
||||
{% with sessions=future show_request=True show_ical=True can_edit_materials=can_edit %}
|
||||
{% include "group/meetings-row.html" %}
|
||||
{% endwith %}
|
||||
</div>
|
||||
|
@ -50,7 +50,10 @@
|
|||
Past Meetings
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{% with past as sessions %}
|
||||
{% with sessions=recent can_edit_materials=can_edit %}
|
||||
{% include "group/meetings-row.html" %}
|
||||
{% endwith %}
|
||||
{% with sessions=past can_edit_materials=False %}
|
||||
{% include "group/meetings-row.html" %}
|
||||
{% endwith %}
|
||||
</div>
|
||||
|
|
Loading…
Reference in a new issue