fix: show meeting timezone when editing sessions (#5619)

* fix: show meeting timezone when editing sessions

* chore: run black on session_filters
This commit is contained in:
Robert Sparks 2023-05-15 14:50:10 -05:00 committed by GitHub
parent 962af9feb3
commit 7dbac2067f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 52 additions and 12 deletions

View file

@ -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)"
@register.filter
def can_manage_materials(session,user):
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):
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}"

View file

@ -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 %}