2
0
Fork 0

add team per room view, sort overview rooms

This commit is contained in:
Andreas (@xAndy) Zimmermann 2023-05-08 23:37:17 +02:00
parent 012cc6be1b
commit 84e944ae67
4 changed files with 30 additions and 5 deletions

View File

@ -3,7 +3,9 @@
{% block title %}Schichtdetails{% endblock %} {% block title %}Schichtdetails{% endblock %}
{% block content %} {% block content %}
<h3 class="title is-spaced">{% if shift.deleted %}(gelöscht) {% endif %}{{ shift.room.name }} {{ shift.start_at }} ({{ shift.registration_count }}/{{ shift.required_helpers|default:shift.room.required_helpers }})</h3> <h3 class="title is-spaced">{% if shift.deleted %}(gelöscht) {% endif %}
<a href="{% url 'team:shift_room' shift.room.name %}">{{ shift.room.name }}</a>
{{ shift.start_at }} ({{ shift.registration_count }}/{{ shift.required_helpers|default:shift.room.required_helpers }})</h3>
{% if shift.room.description %} {% if shift.room.description %}
<div class="description"> <div class="description">
<strong>Beschreibung:</strong> <strong>Beschreibung:</strong>

View File

@ -16,7 +16,7 @@
<div class="columns is-multiline"> <div class="columns is-multiline">
{% for shift in next_shifts %} {% for shift in next_shifts %}
<div class="column is-one-quarter"> <div class="column is-one-quarter">
<h5 class="subtitle">{{ shift.room.name }}</h5> <h5 class="subtitle"><a href="{% url 'team:shift_room' shift.room.name %}">{{ shift.room.name }}</a></h5>
<a class="" href="{% url 'team:shift' shift.id %}"> <a class="" href="{% url 'team:shift' shift.id %}">
{% include "partials/shift_box.html" %} {% include "partials/shift_box.html" %}
</a> </a>

View File

@ -7,6 +7,7 @@ urlpatterns = [
path("", views.shift_overview, name="index"), path("", views.shift_overview, name="index"),
path("overview/", views.shift_overview, name="shift_overview"), path("overview/", views.shift_overview, name="shift_overview"),
path("shifts/", views.ShiftList.as_view(), name="shift_all"), path("shifts/", views.ShiftList.as_view(), name="shift_all"),
path("room_shifts/<path:pk>", views.RoomShiftList.as_view(), name="shift_room"),
path("free_shifts/", views.FreeShiftList.as_view(), name="shift_free"), path("free_shifts/", views.FreeShiftList.as_view(), name="shift_free"),
path("shift/<int:pk>", views.shift_detail, name="shift"), path("shift/<int:pk>", views.shift_detail, name="shift"),
path("helper/<int:pk>", views.HelperDetail.as_view(), name="helper"), path("helper/<int:pk>", views.HelperDetail.as_view(), name="helper"),

View File

@ -40,7 +40,7 @@ def shift_overview(request):
Shift.objects.filter(room=room, start_at__gt=timezone.now(), deleted=False) Shift.objects.filter(room=room, start_at__gt=timezone.now(), deleted=False)
.order_by("start_at") .order_by("start_at")
.first() .first()
for room in Room.objects.all() for room in Room.objects.all().order_by("name")
), ),
) )
@ -187,7 +187,7 @@ class ShiftList(LoginRequiredMixin, ListView):
return context return context
def get_ordering(self): def get_ordering(self):
return ("start_at", "room_id") return ("start_at", "room__name")
class FreeShiftList(ShiftList): class FreeShiftList(ShiftList):
@ -210,7 +210,29 @@ class FreeShiftList(ShiftList):
end_at__gte=timezone.now(), end_at__gte=timezone.now(),
deleted=False, deleted=False,
) )
.order_by("start_at", "room_id") .order_by("start_at", "room__name")
)
class RoomShiftList(ShiftList):
def get_context_data(self, **kwargs):
room = get_object_or_404(Room, pk=self.kwargs["pk"])
context = super().get_context_data(**kwargs)
context["title"] = f"Schichten fuer {room.name}"
return context
def get_queryset(self):
room = get_object_or_404(Room, pk=self.kwargs["pk"])
help_wanted = Q(required_helpers__gt=F("reg_count")) | Q(
required_helpers=0
) & Q(room__required_helpers__gt=F("reg_count"))
return (
Shift.with_reg_count()
.filter(
deleted=False,
room=room,
)
.order_by("start_at", "room__name")
) )