Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 47 additions & 8 deletions ietf/meeting/templatetags/session_filters.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,56 @@
# Copyright The IETF Trust 2023, All Rights Reserved
from django import template

from ietf.name.models import SessionStatusName

register = template.Library()


@register.filter
def presented_versions(session,doc):
sp = session.sessionpresentation_set.filter(document=doc)
if not sp:
return "Document not in session"
else:
rev = sp.first().rev
return rev if rev else "(current)"
def presented_versions(session, doc):
sp = session.sessionpresentation_set.filter(document=doc)
if not sp:
return "Document not in session"
else:
rev = sp.first().rev
return rev if rev else "(current)"


@register.filter
def can_manage_materials(session,user):
def can_manage_materials(session, user):
return session.can_manage_materials(user)


@register.filter
def describe_with_tz(session):
# Very similar to session.__str__, but doesn't treat interims differently from sessions at an IETF meeting
# and displays the timeslot in the meeting's timezone.

if session is None:
return ""

status_id = None
if hasattr(session, "current_status"):
status_id = session.current_status
elif session.pk is not None:
latest_event = session.schedulingevent_set.order_by("-time", "-id").first()
if latest_event:
status_id = latest_event.status_id

if status_id in ("canceled", "disappr", "notmeet", "deleted"):
ss0name = "(%s)" % SessionStatusName.objects.get(slug=status_id).name
else:
ss0name = "(unscheduled)"
ss = session.timeslotassignments.filter(
schedule__in=[
session.meeting.schedule,
session.meeting.schedule.base if session.meeting.schedule else None,
]
).order_by("timeslot__time")
if ss:
ss0name = ",".join(
x.timeslot.time.astimezone(session.meeting.tz()).strftime("%a-%H%M")
for x in ss
)
ss0name += f" {session.meeting.tz()}"
return f"{session.meeting}: {session.group.acronym} {session.name} {ss0name}"
7 changes: 4 additions & 3 deletions ietf/templates/meeting/edit_session.html
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
{% extends "base.html" %}
{# Copyright The IETF Trust 2021, All Rights Reserved #}
{# Copyright The IETF Trust 2023, All Rights Reserved #}
{% load origin %}
{% load django_bootstrap5 %}
{% load session_filters %}
{% block pagehead %}{{ form.media.css }}{% endblock %}
{% block title %}Edit session "{{ session }}"{% endblock %}
{% block title %}Edit session "{{ session|describe_with_tz }}"{% endblock %}
{% block content %}
{% origin %}
<h1>
Edit session
<br>
<small class="text-muted">{{ session }}</small>
<small class="text-muted">{{ session|describe_with_tz }}</small>
</h1>
<form class="session-details-form my-3" method="post">
{% csrf_token %}
Expand Down