feat: use star ratings in favor of average value

This commit is contained in:
Björn Fromme
2024-03-13 15:24:28 +01:00
parent cafee11e03
commit 2f5d62c370
10 changed files with 30 additions and 29 deletions
+1 -1
View File
@@ -7,5 +7,5 @@ use Symfony\UX\TwigComponent\Attribute\AsTwigComponent;
#[AsTwigComponent(template: 'components/rating_stars.html.twig')]
class RatingStars
{
public ?int $averageRating;
public ?int $rating;
}
@@ -47,7 +47,7 @@
<span>{{ application.teamer }}</span>
{{ icon('info', 'w-4 h-4') }}
</button>
<twig:RatingStars averageRating="{{ application.teamer.averageRating }}" />
<twig:RatingStars rating="{{ application.teamer.averageRating }}" />
</td>
<td>
{{ application.pickup|bpn_pickup_label|default('-') }}
@@ -138,7 +138,7 @@
<span>{{ disposition.teamer }}</span>
{{ icon('info', 'w-4 h-4') }}
</button>
<twig:RatingStars averageRating="{{ disposition.teamer.averageRating }}" />
<twig:RatingStars rating="{{ disposition.teamer.averageRating }}" />
</td>
<td>
{{ disposition.remarks|nl2br|default('-') }}
@@ -152,7 +152,7 @@
hx-target="body"
hx-swap="beforeend">
<span class="whitespace-nowrap">{{ disposition.teamer }}</span>
<twig:RatingStars averageRating="{{ disposition.teamer.averageRating }}" />
<twig:RatingStars rating="{{ disposition.teamer.averageRating }}" />
</div>
</li>
{% endfor %}
@@ -54,11 +54,7 @@
{{ feedback.hotel|default('-') }}
</td>
<td>
{% if feedback.averageRating %}
{{ feedback.averageRating|format_rating }}
{% else %}
-
{% endif %}
<twig:RatingStars rating="{{ feedback.averageRating }}" />
</td>
<td>
<button type="button"
@@ -17,7 +17,7 @@
{{ entry.rating }}
</td>
<td class="text-center">
{{ entry.mark }}
<twig:RatingStars rating="{{ entry.mark * 100 }}"/>
</td>
</tr>
{% endfor %}
@@ -66,7 +66,7 @@
{{ icon('user', 'w-10 h-10 text-gray-200') }}
</div>
{% endif %}
<twig:RatingStars averageRating="{{ teamer.averageRating }}" />
<twig:RatingStars rating="{{ teamer.averageRating }}" />
</div>
</td>
<td>
@@ -45,7 +45,7 @@
{{ icon('user', 'w-32 h-32 text-gray-200') }}
</div>
{% endif %}
<twig:RatingStars averageRating="{{ teamer.averageRating }}"/>
<twig:RatingStars rating="{{ teamer.averageRating }}"/>
<ul class="pb-8 divide-y divide-gray-200">
{% if teamer.communication.phone %}
<li class="py-2">
+2 -2
View File
@@ -1,5 +1,5 @@
<div class="inline-flex items-center"{% if averageRating %}{{ stimulus_controller('tooltip', { content: averageRating|format_rating|raw, placement: 'top' }) }}{% endif %}>
<div class="inline-flex items-center">
{% for grade in range(1, 5) %}
{{ icon('star', html_classes('w-4 h-4', { 'text-gray-200': averageRating < grade * 100, 'text-primary': averageRating >= grade * 100 })) }}
{{ icon('star', html_classes('w-4 h-4', { 'text-gray-200': rating < grade * 100, 'text-primary': rating >= grade * 100 })) }}
{% endfor %}
</div>
+1 -1
View File
@@ -120,7 +120,7 @@
hx-target="body"
hx-swap="beforeend">
<span class="whitespace-nowrap">{{ disposition.teamer }}</span>
<twig:RatingStars averageRating="{{ disposition.teamer.averageRating }}" />
<twig:RatingStars rating="{{ disposition.teamer.averageRating }}" />
</div>
</li>
{% endfor %}
+19 -14
View File
@@ -1,20 +1,25 @@
{% extends 'htmx_modal.html.twig' %}
{% block title %}{{ feedback.destinationName ~ ' ' ~ feedback.assignmentDate|date('m.Y') }}{% endblock %}
{% block title %}Feedback zu {{ feedback.teamer }}{% endblock %}
{% block content %}
<h2 class=" font-bold text-lg pb-2">
Durchschnittsnote: {{ feedback.averageRating|format_rating }}
</h2>
<ul class="divide-y divide-gray-200 pb-4">
{% for item in feedback.ratings %}
<li class="py-2 first:pt-0 last:pb-0 flex items-start">
<span class="flex-1">{{ item.rating }}</span>
<strong>Note {{ item.mark }}</strong>
</li>
<div class="text-lg pb-4">
Einsatz: {{ feedback.destinationName }}
<br>
Einsatzzeitraum: {{ feedback.assignmentDateFrom|date('d.m.Y') }} - {{ feedback.assignmentDateTo|date('d.m.Y') }}
<br>
Feedback von: {{ feedback.author }}
</div>
<table>
{% for entry in feedback.ratings %}
<tr>
<td class="border-r border-gray-300">
{{ entry.rating }}
</td>
<td class="text-center">
<twig:RatingStars rating="{{ entry.mark * 100 }}"/>
</td>
</tr>
{% endfor %}
</ul>
<p>
abgegeben von {{ feedback.author }} (<a href="mailto:{{ feedback.createdBy }}" class="underline">{{ feedback.createdBy }}</a>)
</p>
</table>
{% endblock %}