2
0
Fork 0

free shifts in team view, eye candy

This commit is contained in:
Andreas (@xAndy) Zimmermann 2022-04-21 01:42:18 +02:00
parent bf3b276e39
commit 4048c7d9ac
6 changed files with 31 additions and 7 deletions

View File

@ -0,0 +1,3 @@
<li class="box"><b>{{ shift.room.name }}</b> {{ shift.start_at }} ({{ shift.shiftregistration_set.count }}/{{ shift.room.required_helpers }})
<a class="button is-info is-small" href="{% url 'team:shift' shift.id %}">Details</a>
</li>

View File

@ -1,11 +1,11 @@
{% extends "team_base.html" %} {% extends "team_base.html" %}
{% block title %}Alle Schichten{% endblock %} {% block title %}{{title}}{% endblock %}
{% block content %} {% block content %}
<h2>Schichten</h2> <h3 class="title is-3">{{title}}</h3>
<ul> <ul>
{% for shift in object_list %} {% for shift in object_list %}
<li>{{ shift.room.name }} {{ shift.start_at }}({{ shift.shiftregistration_set.count }}/{{ shift.room.required_helpers }})<a href="{% url 'team:shift' shift.id %}">Details</a></li> {% include "partials/shift_list_item.html" %}
{% endfor %} {% endfor %}
</ul> </ul>
{% endblock %} {% endblock %}

View File

@ -3,17 +3,18 @@
{% block title %}Schichtübersicht{% endblock %} {% block title %}Schichtübersicht{% endblock %}
{% block content %} {% block content %}
{% if running_shifts %} {% if running_shifts %}
<h2>Laufende Schichten</h2> <h3 class="title is-3">Laufende Schichten</h3>
<ul> <ul>
{% for shift in running_shifts %} {% for shift in running_shifts %}
<li>{{ shift.room.name }} {{ shift.start_at }}({{ shift.shiftregistration_set.count }}/{{ shift.room.required_helpers }})<a href="{% url 'team:shift' shift.id %}">Details</a></li> {% include "partials/shift_list_item.html" %}
{% endfor %} {% endfor %}
</ul> </ul>
{% endif %} {% endif %}
<h2>Nächste Schichten</h2> <hr/>
<h3 class="title is-3">Nächste Schichten pro Raum</h3>
<ul> <ul>
{% for shift in next_shifts %} {% for shift in next_shifts %}
<li>{{ shift.room.name }} {{ shift.start_at }}({{ shift.shiftregistration_set.count }}/{{ shift.room.required_helpers }})<a href="{% url 'team:shift' shift.id %}">Details</a></li> {% include "partials/shift_list_item.html" %}
{% endfor %} {% endfor %}
</ul> </ul>
{% endblock %} {% endblock %}

View File

@ -4,6 +4,7 @@
{% block navbar %} {% block navbar %}
<a class="navbar-item" href="{% url 'team:shift_overview' %}">Schichtübersicht</a> <a class="navbar-item" href="{% url 'team:shift_overview' %}">Schichtübersicht</a>
<a class="navbar-item" href="{% url 'team:shift_free' %}">Freie Schichten</a>
<a class="navbar-item" href="{% url 'team:shift_all' %}">Alle Schichten</a> <a class="navbar-item" href="{% url 'team:shift_all' %}">Alle Schichten</a>
{% endblock %} {% endblock %}

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("free_shifts/", views.FreeShiftList.as_view(), name="shift_free"),
path("shift/<int:pk>", views.ShiftDetail.as_view(), name="shift"), path("shift/<int:pk>", views.ShiftDetail.as_view(), name="shift"),
path("helper/<int:pk>", views.HelperDetail.as_view(), name="helper"), path("helper/<int:pk>", views.HelperDetail.as_view(), name="helper"),
] ]

View File

@ -51,3 +51,21 @@ class HelperDetail(LoginRequiredMixin, DetailView):
class ShiftList(LoginRequiredMixin, ListView): class ShiftList(LoginRequiredMixin, ListView):
template_name = "shift_list.html" template_name = "shift_list.html"
model = Shift model = Shift
title = "Alle Schichten"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["title"] = self.title
return context
def get_ordering(self):
return ("start_at", "room_id")
class FreeShiftList(ShiftList):
title = "Freie Schichten"
def get_queryset(self):
return Shift.objects.annotate(reg_count=Count("shiftregistration")).filter(
start_at__gt=timezone.now(), room__required_helpers__gt=F("reg_count")
)