add team per room view, sort overview rooms
This commit is contained in:
parent
012cc6be1b
commit
84e944ae67
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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"),
|
||||||
|
|
|
@ -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")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue