Task: Improve layout

This commit is contained in:
Björn Fromme
2023-10-21 16:41:57 +02:00
parent bf2e5600d0
commit 847af5341c
14 changed files with 278 additions and 174 deletions
+35
View File
@@ -0,0 +1,35 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20231021133634 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE application ADD remarks_by_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE application ADD CONSTRAINT FK_A45BDDC1DF01D017 FOREIGN KEY (remarks_by_id) REFERENCES user (id)');
$this->addSql('CREATE INDEX IDX_A45BDDC1DF01D017 ON application (remarks_by_id)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE application DROP FOREIGN KEY FK_A45BDDC1DF01D017');
$this->addSql('DROP INDEX IDX_A45BDDC1DF01D017 ON application');
$this->addSql('ALTER TABLE application DROP remarks_by_id');
}
}
+15
View File
@@ -40,6 +40,9 @@ class Application implements TimestampableEntityInterface
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $remarks = null;
#[ORM\ManyToOne]
private ?User $remarksBy = null;
public function __construct(Assignment $assignment, Teamer $teamer)
{
$this->uuid = Uuid::v4();
@@ -143,4 +146,16 @@ class Application implements TimestampableEntityInterface
return $count === $requiredTrainings->count();
}
public function getRemarksBy(): ?User
{
return $this->remarksBy;
}
public function setRemarksBy(?User $remarksBy): static
{
$this->remarksBy = $remarksBy;
return $this;
}
}
+8 -6
View File
@@ -2,6 +2,7 @@
namespace App\Repository;
use App\Entity\Application;
use App\Entity\Assignment;
use App\Entity\Teamer;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
@@ -37,14 +38,15 @@ class AssignmentRepository extends ServiceEntityRepository
if (null !== $teamer) {
$qb
->leftJoin('assignment.applications', 'application', Join::WITH, 'application.teamer = :teamer')
->leftJoin('assignment.dispositions', 'disposition', Join::WITH, 'disposition.teamer = :teamer')
->leftJoin('assignment.applications', 'application', Join::WITH, $qb->expr()->eq('application.teamer', ':teamer'))
->leftJoin('assignment.dispositions', 'disposition', Join::WITH, $qb->expr()->eq('disposition.teamer', ':teamer'))
->setParameter('teamer', $teamer)
;
} else {
$qb
->leftJoin('assignment.applications', 'application')
->leftJoin('assignment.applications', 'application', Join::WITH, $qb->expr()->neq('application.status', ':status'))
->leftJoin('assignment.dispositions', 'disposition')
->setParameter('status', Application::STATUS_REJECTED)
;
}
@@ -59,9 +61,9 @@ class AssignmentRepository extends ServiceEntityRepository
->select('assignment', 'destination', 'job_profile', 'application', 'disposition')
->innerJoin('assignment.destination', 'destination')
->innerJoin('assignment.jobProfile', 'job_profile')
->innerJoin('assignment.teamers', 'teamer', Join::WITH, 'teamer = :teamer')
->leftJoin('assignment.applications', 'application', Join::WITH, 'application.teamer = :teamer')
->leftJoin('assignment.dispositions', 'disposition', Join::WITH, 'disposition.teamer = :teamer')
->innerJoin('assignment.teamers', 'teamer', Join::WITH, $qb->expr()->eq('teamer', ':teamer'))
->leftJoin('assignment.applications', 'application', Join::WITH, $qb->expr()->eq('application.teamer', ':teamer'))
->leftJoin('assignment.dispositions', 'disposition', Join::WITH, $qb->expr()->eq('disposition.teamer', ':teamer'))
->where($qb->expr()->isNull('assignment.deletedAt'))
->setParameter('teamer', $teamer)
;
+65 -41
View File
@@ -1,52 +1,76 @@
<div class="grid grid-cols-2 gap-x-4 gap-y-3">
<div class="font-bold text-xl">
Jobprofil
<dl class="divide-y divide-gray-100">
<div class="py-6 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4">
<dt class="text-sm font-bold leading-6 text-gray-900">
Jobprofil
</dt>
<dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
{{ assignment.jobProfile.name }}
</dd>
</div>
<div class="font-bold text-xl">
{{ assignment.jobProfile.name }}
<div class="py-6 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4">
<dt class="text-sm font-bold leading-6 text-gray-900">
Destination
</dt>
<dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
{{ assignment.destination.product }}, {{ assignment.destination.hotel }}
</dd>
</div>
<div>
Destination
</div>
<div>
{{ assignment.destination.product }}
<br>
{{ assignment.destination.hotel }}
</div>
<div>
Einsatztermin
</div>
<div>
{{ assignment.effectivePeriod.start|date('d.m.Y') }} - {{ assignment.effectivePeriod.end|date('d.m.Y') }}
<div class="py-6 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4">
<dt class="text-sm font-bold leading-6 text-gray-900">
Einsatztermin
</dt>
<dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
{{ assignment.effectivePeriod.start|date('d.m.Y') }} - {{ assignment.effectivePeriod.end|date('d.m.Y') }}
</dd>
</div>
{% if assignment.pickup and assignment.pickupDate %}
<div>
Busabfahrt
<div class="py-6 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4">
<dt class="text-sm font-bold leading-6 text-gray-900">
Busabfahrt
</dt>
<dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
{{ assignment.pickupDate|date('d.m.Y') }}
</dd>
</div>
<div>
{{ assignment.pickupDate|date('d.m.Y') }}
</div>
<div>
Busbegleitung
</div>
<div>
{{ assignment.pickup|bpn_pickup_label }}
<div class="py-6 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4">
<dt class="text-sm font-bold leading-6 text-gray-900">
Busbegleitung
</dt>
<dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
{{ assignment.pickup|bpn_pickup_label }}
</dd>
</div>
{% endif %}
<div>
Du bekommst
</div>
<div>
{{ assignment.benefits|nl2list }}
<div class="py-6 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4">
<dt class="text-sm font-bold leading-6 text-gray-900">
Du bekommst
</dt>
<dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
{{ assignment.benefits|nl2list }}
</dd>
</div>
{% if assignment.fees|length %}
<div>
Honorar
</div>
<div>
{% for fee in assignment.fees %}
{{ fee.name }} {{ fee.value|format_money }}
{% endfor %}
<div class="py-6 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4">
<dt class="text-sm font-bold leading-6 text-gray-900">
Honorar
</dt>
<dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
{% for fee in assignment.fees %}
{{ fee.name }} {{ fee.value|format_money }}
{% endfor %}
</dd>
</div>
{% endif %}
</div>
{% if additional is defined %}
{% for item in additional %}
<div class="py-6 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4">
<dt class="text-sm font-bold leading-6 text-gray-900">
{{ item.type }}
</dt>
<dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
{{ item.description|raw }}
</dd>
</div>
{% endfor %}
{% endif %}
</dl>
@@ -1,49 +1,62 @@
<div class="grid lg:grid-cols-2 gap-x-8 gap-y-4">
<div class="lg:col-span-2 font-bold text-xl">
Jobprofil {{ assignment.jobProfile.name }}
</div>
<div class="grid grid-cols-2 gap-x-4 gap-y-3">
<div class="font-bold">
Destination
<dl class="divide-y divide-gray-100">
<div class="py-6 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4">
<dt class="text-sm font-bold leading-6 text-gray-900">
Jobprofil
</dt>
<dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
{{ assignment.jobProfile.name }}
</dd>
</div>
<div>
{{ assignment.destination.product }}
<br>
{{ assignment.destination.hotel }}
<div class="py-6 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4">
<dt class="text-sm font-bold leading-6 text-gray-900">
Destination
</dt>
<dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
{{ assignment.destination.product }}, {{ assignment.destination.hotel }}
</dd>
</div>
<div class="font-bold">
Einsatztermin
<div class="py-6 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4">
<dt class="text-sm font-bold leading-6 text-gray-900">
Einsatztermin
</dt>
<dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
{{ assignment.effectivePeriod.start|date('d.m.Y') }} - {{ assignment.effectivePeriod.end|date('d.m.Y') }}
</dd>
</div>
<div>
{{ assignment.effectivePeriod.start|date('d.m.Y') }} - {{ assignment.effectivePeriod.end|date('d.m.Y') }}
</div>
</div>
<div class="grid grid-cols-2 gap-x-4 gap-y-3">
</dl>
<dl class="divide-y divide-gray-100">
{% if assignment.pickup and assignment.pickupDate %}
<div class="font-bold">
Busabfahrt
<div class="py-6 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4">
<dt class="text-sm font-bold leading-6 text-gray-900">
Busabfahrt
</dt>
<dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
{{ assignment.pickupDate|date('d.m.Y') }}
</dd>
</div>
<div>
{{ assignment.pickupDate|date('d.m.Y') }}
</div>
<div class="font-bold">
Busbegleitung
</div>
<div>
{{ assignment.pickup|bpn_pickup_label }}
<div class="py-6 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4">
<dt class="text-sm font-bold leading-6 text-gray-900">
Busbegleitung
</dt>
<dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
{{ assignment.pickup|bpn_pickup_label }}
</dd>
</div>
{% endif %}
<div class="font-bold">
Honorar
<div class="py-6 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4">
<dt class="text-sm font-bold leading-6 text-gray-900">
Honorar
</dt>
<dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
{% if assignment.fees|length %}
{% for fee in assignment.fees %}
{{ fee.name }} {{ fee.value|format_money }}
{% endfor %}
{% else %}
-
{% endif %}
</dd>
</div>
<div>
{% if assignment.fees|length %}
{% for fee in assignment.fees %}
{{ fee.name }} {{ fee.value|format_money }}
{% endfor %}
{% else %}
-
{% endif %}
</div>
</div>
</dl>
</div>
@@ -1,5 +1,5 @@
<ul class="pb-8 divide-y divide-gray-200">
{% if assignment.pickup and assignment.effectivePickupDate %}
{% if assignment.pickup and assignment.effectivePickupDate %}
<li class="py-2">
<div class="flex items-center justify-between">
<span class="flex-1">Busbegleitung {{ assignment.pickup|bpn_pickup_label }} am {{ assignment.effectivePickupDate|date('d.m.Y') }}</span>
@@ -0,0 +1,12 @@
<dl class="divide-y divide-gray-100">
{% for item in items %}
<div class="py-6 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4">
<dt class="text-sm font-bold leading-6 text-gray-900">
{{ item.type }}
</dt>
<dd class="mt-1 text-sm leading-6 text-gray-700 sm:col-span-2 sm:mt-0">
{{ item.description }}
</dd>
</div>
{% endfor %}
</dl>
+4
View File
@@ -0,0 +1,4 @@
<div class="flex items-start space-x-4 bg-red-600 text-white p-4 rounded-md w-full">
{{ icon('alert', 'w-6 h-6 shrink-0') }}
<span>{{ message }}</span>
</div>
+4
View File
@@ -0,0 +1,4 @@
<div class="flex items-start space-x-4 bg-primary text-white p-4 rounded-md w-full">
{{ icon('info', 'w-6 h-6 shrink-0') }}
<span>{{ message }}</span>
</div>
+2 -2
View File
@@ -6,7 +6,7 @@
<h1 class="text-2xl font-bold pb-8">
Einsatzübersicht
</h1>
<div class="bg-gray-100 rounded-md p-4 mb-8">
<div class="pb-8">
{% include '_partials/_assignment_info_compact.html.twig' %}
</div>
<div class="col-span-2">
@@ -22,7 +22,7 @@
Name
</th>
<th class="w-1/3">
Anmerkungen
Wünsche
</th>
<th class="w-1/6">
Status
+15 -18
View File
@@ -35,25 +35,22 @@
{% endif %}
</div>
<div class="flex flex-col space-y-2">
<a href="{{ path('app_teamer_assignment', { 'uuid': assignment.uuid, 'r': return_url() }) }}"
class="btn btn--small flex items-center space-x-2">
{{ icon('info', 'w-4 h-4 shrink-0') }}
<span>Details</span>
</a>
{% if is_granted('DELETE', application) %}
<button type="button"
title="Bewerbung löschen"
class="btn btn--small bg-red-100 text-red-800 hover:bg-red-50"
{{ stimulus_controller('modal-button', [], [], {'confirmation-modal': '#confirmation-modal'}) }}
{{ stimulus_action('modal-button', 'confirmation', null, {
'title': 'Bist du sicher?',
'content': 'Möchtest du die Bewerbing wirklich zurückziehen/löschen?',
'target-url': path('app_teamer_application_delete', { 'uuid': application.uuid })
}) }}>
{{ icon('delete', 'w-4 h-4 shrink-0') }}
<span>Löschen</span>
</button>
{% if application.status == constant('App\\Entity\\Application::STATUS_REJECTED') %}
{% set icon = 'close' %}
{% set class = 'bg-gray-100 text-gray-800 hover:bg-gray-50' %}
{% set url = path('app_teamer_assignment', { 'uuid': assignment.uuid, 'r': return_url() }) %}
{% set label = 'Bewerbung abgelehnt' %}
{% else %}
{% set icon = 'hourglass' %}
{% set class = 'bg-yellow-100 text-yellow-800 hover:bg-yellow-50' %}
{% set url = path('app_teamer_assignment', { 'uuid': assignment.uuid, 'r': return_url() }) %}
{% set label = 'in Bearbeitung' %}
{% endif %}
<a href="{{ url }}"
class="btn btn--small flex items-center space-x-2 {{ class }}">
{{ icon(icon, 'w-4 h-4 shrink-0') }}
<span>{{ label }}</span>
</a>
</div>
{% if teamer.bookmarks.contains(assignment) %}
{{ icon('star', 'w-5 h-5 text-yellow-500 absolute top-0 right-0 mt-2 mr-2') }}
+30 -23
View File
@@ -7,9 +7,7 @@
Einsatzübersicht
</h1>
<div class="grid lg:grid-cols-2 gap-8 items-start">
<div class="bg-gray-100 rounded-md p-4">
{% include '_partials/_assignment_info.html.twig' %}
</div>
{% include '_partials/_assignment_info.html.twig' %}
<div>
<h2 class="text-xl font-bold pb-2">
Voraussetzungen für diesen Einsatz
@@ -17,24 +15,33 @@
{% include '_partials/_assignment_requirements_info.html.twig' %}
<div class="flex flex-col items-start space-y-4">
{% if disposition is not null %}
<div>
Du wurdest am {{ disposition.createdAt|date('d.m.Y') }} für diesen Einsatz eingeteilt.
</div>
{% include '_partials/_infobox.html.twig' with {
'message': 'Du wurdest am ' ~ disposition.createdAt|date('d.m.Y') ~ 'für diesen Einsatz eingeteilt.'
} %}
{% elseif application is not null %}
<div>
Du hast dich am {{ application.createdAt|date('d.m.Y') }} auf diesen Einsatz beworben.
</div>
<button type="button"
class="btn btn--secondary"
title="Bewerbung zurückziehen"
{{ stimulus_controller('modal-button', [], [], {'confirmation-modal': '#confirmation-modal'}) }}
{{ stimulus_action('modal-button', 'confirmation', null, {
'title': 'Bist du sicher?',
'content': 'Möchtest du die Bewerbing wirklich zurückziehen?',
'target-url': path('app_teamer_application_withdraw', { 'uuid': application.uuid })
}) }}>
Bewerbung zurückziehen
</button>
{% if application.status == constant('App\\Entity\\Application::STATUS_REJECTED') %}
{% include '_partials/_errorbox.html.twig' with {
'message': 'Deine Bewerbung wurde leider abgelehnt.'
} %}
{% if application.remarks %}
<strong>Begründung:</strong> {{ application.remarks|nl2br}}
{% endif %}
{% else %}
{% include '_partials/_infobox.html.twig' with {
'message': 'Du hast dich am ' ~ application.createdAt|date('d.m.Y') ~ 'auf diesen Einsatz beworben.'
} %}
<button type="button"
class="btn btn--secondary"
title="Bewerbung zurückziehen"
{{ stimulus_controller('modal-button', [], [], {'confirmation-modal': '#confirmation-modal'}) }}
{{ stimulus_action('modal-button', 'confirmation', null, {
'title': 'Bist du sicher?',
'content': 'Möchtest du die Bewerbing wirklich zurückziehen?',
'target-url': path('app_teamer_application_withdraw', { 'uuid': application.uuid })
}) }}>
Bewerbung zurückziehen
</button>
{% endif %}
{% else %}
<div>
Erfüllst du mehrere oder alle Voraussetzungen für diesen Einsatz?
@@ -42,10 +49,10 @@
<a href="{{ path('app_teamer_application_create', { 'uuid': assignment.uuid }) }}" class="btn">
Hier bewerben!
</a>
<a href="{{ path('app_teamer_bookmark_toggle', { 'uuid': assignment.uuid, 'r': return_url() }) }}" class="underline">
{% if not isBookmarked %}auf die Merkliste setzen{% else %}von der Merkliste löschen{% endif %}
</a>
{% endif %}
<a href="{{ path('app_teamer_bookmark_toggle', { 'uuid': assignment.uuid, 'r': return_url() }) }}" class="underline">
{% if not isBookmarked %}auf die Merkliste setzen{% else %}von der Merkliste löschen{% endif %}
</a>
<a href="{{ returnUrl }}" class="underline">
zurück
</a>
+23 -40
View File
@@ -2,43 +2,31 @@
{% block title %}Einsatzdetails{% endblock %}
{% macro infobox(message) %}
<div class="flex items-start space-x-4 bg-primary text-white p-4 rounded-md">
{{ icon('info', 'w-6 h-6 shrink-0') }}
<span>{{ message }}</span>
</div>
{% endmacro %}
{% block content %}
{% set assignment = disposition.assignment %}
<h1 class="text-2xl font-bold pb-8">
Einsatzdetails
Dein Einsatz wurde bestätigt!
</h1>
<div class="grid lg:grid-cols-2 gap-8 items-start">
<div>
<h2 class="text-xl font-bold pb-4">
Dein Einsatz wurde bestätigt!
</h2>
<div class="pb-2">
Dein Ansprechpartner für alle reisebezogenen Themen ist:
</div>
<div class="pb-4">
<strong>{{ assignment.contact }}</strong>, <a href="mailto:{{ assignment.contact.email }}" class="underline">{{ assignment.contact.email }}</a>
</div>
<div class="pb-4">
<a href="{{ path('app_teamer_disposition_ics', { 'uuid': disposition.uuid }) }}"
title="In den Kalender eintragen"
class="group">
<div class="flex items-center justify-between">
<span class="flex-1">Klicke hier, um den Einsatz in deinen Kalender einzutragen</span>
{{ icon('calendar', 'w-4 h-4 duration-200 group-hover:scale-125') }}
</div>
</a>
</div>
{% include '_partials/_assignment_info.html.twig' with {
'additional': [
{
'type': 'Ansprechpartner',
'description': 'Für alle reisebezogenen Themen wende dich bitte an ' ~ assignment.contact ~ ' (<a href="mailto:' ~ assignment.contact.email ~'" class="underline">' ~ assignment.contact.email ~ '</a>)'
},
{
'type': 'Kalendereintrag',
'description': '<a href="' ~ path('app_teamer_disposition_ics', { 'uuid': disposition.uuid }) ~ '" title="In den Kalender eintragen" class="underline">Hier klicken</a>'
}
]
} %}
</div>
<div>
{% if disposition.assignment.documents|length %}
<h3 class="text-lg font-bold">
<h2 class="text-lg font-bold">
Dokumente
</h3>
</h2>
<ul class="pb-4 divide-y divide-gray-200">
{% for document in disposition.assignment.documents %}
<li class="py-2">
@@ -55,16 +43,11 @@
{% endfor %}
</ul>
{% endif %}
<div class="bg-gray-100 rounded-md p-4">
{% include '_partials/_assignment_info.html.twig' %}
</div>
</div>
<div>
{# Upload contract #}
{% if workflow_has_marked_place(disposition, 'new') %}
<h3 class="text-xl font-bold pb-4">
<h2 class="text-lg font-bold pb-4">
Honorarvertrag
</h3>
</h2>
{% if workflow_can(disposition, 'upload_contract') %}
<div class="pb-4">
<a href="{{ path('app_teamer_disposition_contractpdf', { 'uuid': disposition.uuid }) }}" target="_blank" class="inline-block">
@@ -88,16 +71,16 @@
{{ form_end(form) }}
{% else %}
{% for blocker in workflow_transition_blockers(disposition, 'upload_contract') %}
{{ _self.infobox(blocker.message) }}
{% include '_partials/_infobox.html.twig' with { 'message': blocker.message } %}
{% endfor %}
{% endif %}
{% endif %}
{# Upload invoice #}
{% if workflow_has_marked_place(disposition, 'confirmed') %}
<h3 class="text-xl font-bold pb-4">
<h2 class="text-lg font-bold pb-4">
Honorarnote
</h3>
</h2>
{% if workflow_can(disposition, 'upload_invoice') %}
<div class="pb-4">
<a href="{{ path('app_teamer_disposition_invoicepdf', { 'uuid': disposition.uuid }) }}" target="_blank" class="inline-block">
@@ -121,7 +104,7 @@
{{ form_end(form) }}
{% else %}
{% for blocker in workflow_transition_blockers(disposition, 'upload_invoice') %}
{{ _self.infobox(blocker.message) }}
{% include '_partials/_infobox.html.twig' with { 'message': blocker.message } %}
{% endfor %}
{% endif %}
{% endif %}
+12 -4
View File
@@ -47,10 +47,18 @@
</div>
<div>
{% if assignment.applications|length %}
{% set icon = 'hourglass' %}
{% set class = 'bg-yellow-100 text-yellow-800 hover:bg-yellow-50' %}
{% set url = path('app_teamer_assignment', { 'uuid': assignment.uuid, 'r': return_url() }) %}
{% set label = 'in Bearbeitung' %}
{% set application = assignment.applications[0] %}
{% if application.status == constant('App\\Entity\\Application::STATUS_REJECTED') %}
{% set icon = 'close' %}
{% set class = 'bg-gray-100 text-gray-800 hover:bg-gray-50' %}
{% set url = path('app_teamer_assignment', { 'uuid': assignment.uuid, 'r': return_url() }) %}
{% set label = 'Bewerbung abgelehnt' %}
{% else %}
{% set icon = 'hourglass' %}
{% set class = 'bg-yellow-100 text-yellow-800 hover:bg-yellow-50' %}
{% set url = path('app_teamer_assignment', { 'uuid': assignment.uuid, 'r': return_url() }) %}
{% set label = 'in Bearbeitung' %}
{% endif %}
{% elseif assignment.dispositions|length %}
{% set icon = 'check' %}
{% set class = 'bg-green-100 text-green-700 hover:bg-green-50' %}