datatracker/ietf/templates/meeting/requests.html
Sasha Romijn a227813dc5 Add support for the timerange, wg_adjacent and time_relation constraints.
This adds three new constraints to the database and relevant UIs:
- timerange: "This WG can't meet during these timeframes"
- wg_adjacent: "Schedule adjacent to another WG (directly following,
  no breaks, same room)"
- time_relation: schedule the two sessions of one WG on subsequent
  days or with at least one day seperation
 - Legacy-Id: 17289
2020-02-12 10:42:38 +00:00

142 lines
5.1 KiB
HTML

{% extends "base.html" %}
{# Copyright The IETF Trust 2015, All Rights Reserved #}
{% load origin %}
{% load ietf_filters staticfiles %}
{% block pagehead %}
<link rel="stylesheet" href="{% static "jquery.tablesorter/css/theme.bootstrap.min.css" %}">
{% endblock %}
{% block bodyAttrs %}data-spy="scroll" data-target="#affix"{% endblock %}
{% block title %}IETF {{ meeting.number }} timeslot requests{% endblock %}
{% block content %}
{% origin %}
<div class="row">
<div class="col-md-10">
<h1 class="title">IETF {{ meeting.number }} timeslot requests<br>
<small>{{meeting.city}}, {{meeting.country}} -- {{meeting.venue_name}}</small>
</h1>
{% regroup sessions by group.parent as area_sessions %}
{% for area in area_sessions %}
<h2 class="anchor-target" id="{{area.grouper.acronym}}">
{{area.grouper.acronym|upper}} <small>{{area.grouper.name}}</small>
</h2>
<p class="alert alert-info">
<b>No timeslot request received for:</b>
{% for group in groups_not_meeting %}
{% if group.parent.id == area.grouper.id %}
{{ group.acronym }}
{% endif %}
{% endfor %}
</p>
<table class="table table-condensed table-striped tablesorter">
<thead>
<tr>
<th>Group</th>
<th>Length</th>
<th>Size</th>
<th>Requester</th>
<th>AD</th>
<th>Constraints</th>
<th>Special requests</th>
</tr>
</thead>
<tbody>
{% for session in area.list %}
{% ifchanged %}
</tbody>
<tbody>
<tr><th class="warning" colspan="7">{{session.current_status_name|capfirst}}</th></tr>
</tbody>
<tbody>
{% endifchanged %}
<tr>
<th>
<a href="{% url "ietf.secr.sreq.views.edit" num=meeting.number acronym=session.group.acronym %}">
{{session.group.acronym}}
</a>
</th>
<td class="text-right">
{% if session.requested_duration %}
{{session.requested_duration|stringformat:"s"|slice:"0:4"}}
{% endif %}
</td>
<td class="text-right">{{session.attendees|default:""}}</td>
<td>
<a href="mailto:{{session.requested_by_person.email_address}}">{{session.requested_by_person}}</a>
</td>
<td>
{% if session.group.ad_role %}
<a href="mailto:{{ session.group.ad_role.email.address }}">{{ session.group.ad_role.person }}</a>
{% endif %}
</td>
<td>
{% if session.requested_duration %}
{% regroup session.constraints by name as prioritized_constraints %}
{% for grouped_constraint in prioritized_constraints %}
{% if not forloop.first %}
{% ifchanged grouped_constraint.grouper %}<br>{% endifchanged %}
{% endif %}
{% for constraint in grouped_constraint.list %}
{% with constraint.target.parent.id as constraint_target_parent_id %}
{% with constraint.source.parent.id as constraint_source_parent_id %}
{% with constraint.person as constraint_person %}
{% if constraint_target_parent_id == constraint_source_parent_id and not constraint_person %}
<b>
{% endif %}
{% if constraint.name.slug == "bethere" %}
{{constraint.brief_display|clean_whitespace}}{% if not forloop.last %}, {% endif %}
{% else %}
{% with constraint.name.slug as constraint_name_slug %}
<span class="{% if constraint_name_slug == "conflict" %}text-danger{% elif constraint_name_slug == "conflic2" %}text-warning{% elif constraint_name_slug == "conflic3" %}text-success{% else %}{{constraint_name_slug}}{% endif %}">
{% endwith %}
{{constraint.brief_display}}
</span>
{% endif %}
{% if constraint_target_parent_id == constraint_source_parent_id and not constraint_person %}
</b>
{% endif %}
{% endwith %}
{% endwith %}
{% endwith %}
{% endfor %}
{% endfor %}
{% endif %}
</td>
<td>
{% if session.comments %}{{session.comments|linebreaksbr}}{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endfor %}
</div>
<div class="col-md-2 hidden-print bs-docs-sidebar" id="affix">
<ul class="nav nav-pills nav-stacked small" data-spy="affix">
{% for area in area_sessions %}
<li><a href="#{{area.grouper.acronym}}">{{ area.grouper.acronym|upper }}</a></li>
{% endfor %}
</ul>
</div>
</div>
{% endblock %}
{% block js %}
<script src="{% static "jquery.tablesorter/js/jquery.tablesorter.combined.min.js" %}"></script>
{% endblock %}