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:
parent
962af9feb3
commit
7dbac2067f
|
@ -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}"
|
||||
|
|
|
@ -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 %}
|
||||
|
|
Loading…
Reference in a new issue