WIP Impelement more stuff
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
{% extends 'admin/layout.html.twig' %}
|
||||
|
||||
{% block title %}Verfügbarkeit {{ teamer }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="grid lg:grid-cols-3 gap-y-8 lg:gap-y-0 lg:gap-x-8">
|
||||
<div>
|
||||
{{ knp_menu_render(knp_menu_get('admin_teamer')) }}
|
||||
</div>
|
||||
<div class="lg:col-span-2">
|
||||
<h1 class="text-2xl font-bold pb-8">
|
||||
Verfügbarkeit {{ teamer }}
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,16 @@
|
||||
{% extends 'admin/layout.html.twig' %}
|
||||
|
||||
{% block title %}Selektionsmerkmale {{ teamer }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="grid lg:grid-cols-3 gap-y-8 lg:gap-y-0 lg:gap-x-8">
|
||||
<div>
|
||||
{{ knp_menu_render(knp_menu_get('admin_teamer')) }}
|
||||
</div>
|
||||
<div class="lg:col-span-2">
|
||||
<h1 class="text-2xl font-bold pb-8">
|
||||
Selektionsmerkmale {{ teamer }}
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -43,7 +43,7 @@
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ teamer.status }}
|
||||
{{ teamer.status|teamer_status_label }}
|
||||
</td>
|
||||
<td>
|
||||
{{ teamer.communication.email }}
|
||||
@@ -57,6 +57,9 @@
|
||||
</td>
|
||||
<td>
|
||||
<div class="flex items-center space-x-1 justify-end">
|
||||
<a href="{{ path('app_admin_teamer_profile', { 'uuid': teamer.uuid }) }}" title="Teamerprofil {{ teamer }}">
|
||||
{{ icon('user') }}
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -0,0 +1,230 @@
|
||||
{% extends 'admin/layout.html.twig' %}
|
||||
|
||||
{% block title %}Stammdaten und Foto {{ teamer }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="grid lg:grid-cols-3 gap-y-8 lg:gap-y-0 lg:gap-x-8">
|
||||
<div>
|
||||
{{ knp_menu_render(knp_menu_get('admin_teamer')) }}
|
||||
</div>
|
||||
<div class="lg:col-span-2">
|
||||
<h1 class="text-2xl font-bold pb-8">
|
||||
Stammdaten und Foto {{ teamer }}
|
||||
</h1>
|
||||
<div class="grid grid-cols-2 gap-4">
|
||||
|
||||
<div>
|
||||
<h2 class="text-lg font-bold pb-2">
|
||||
Persönliche Daten
|
||||
</h2>
|
||||
<div class="flex flex-col space-y-3">
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Gender:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.gender }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Titel:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.academicTitle|default('-') }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Vorname:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.firstName }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Nachname:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.lastName }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Geburtsdatum:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.dateOfBirth|date('d.m.Y') }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Staatsangehörigkeit:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.nationality|bpn_country_label('nationality') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{% if teamer.photo %}
|
||||
<div class="pb-8">
|
||||
<img src="{{ asset(teamer.photo.filename | imagine_filter('profile')) }}"
|
||||
class="w-48 h-auto border-2 border-primary"
|
||||
alt="{{ teamer.firstName }}">
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="text-lg font-bold pb-2">
|
||||
Adressdaten
|
||||
</h2>
|
||||
<div class="flex flex-col space-y-3">
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Straße, Hausnummer:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.address.street }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
PLZ:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.address.postCode }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Ort:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.address.city }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Land:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.address.country|bpn_country_label }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
E-Mail:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.communication.email|default('-') }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Mobilnummer:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.communication.mobile|default('-') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="text-lg font-bold pb-2">
|
||||
Buszustiege
|
||||
</h2>
|
||||
<ul class="list-disc pl-4">
|
||||
{% for pickup in teamer.pickups %}
|
||||
<li>
|
||||
{{ pickup|bpn_pickup_label }}
|
||||
</li>
|
||||
{% else %}
|
||||
<li>
|
||||
<span class="text-sm">Keine Daten</span>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="text-lg font-bold pb-2">
|
||||
Honorardaten
|
||||
</h2>
|
||||
<div class="flex flex-col space-y-3">
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Steuer-ID:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.taxId|default('-') }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
IBAN:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.bankAccount.iban|default('-') }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
BIC:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.bankAccount.bic|default('-') }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Bank/Kreditinstitut:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.bankAccount.bank|default('-') }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Krankenversicherung:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.healthInsuranceCompany|default('-') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 class="text-lg font-bold pb-2">
|
||||
Sonstiges
|
||||
</h2>
|
||||
<div class="flex flex-col space-y-3">
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Sprache(n):
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.language|default('-') }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Klamottengröße:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.size|default('-') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,16 @@
|
||||
{% extends 'admin/layout.html.twig' %}
|
||||
|
||||
{% block title %}Vergangene Einsätze & Feeback {{ teamer }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="grid lg:grid-cols-3 gap-y-8 lg:gap-y-0 lg:gap-x-8">
|
||||
<div>
|
||||
{{ knp_menu_render(knp_menu_get('admin_teamer')) }}
|
||||
</div>
|
||||
<div class="lg:col-span-2">
|
||||
<h1 class="text-2xl font-bold pb-8">
|
||||
Vergangene Einsätze & Feeback {{ teamer }}
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,118 @@
|
||||
{% extends 'admin/layout.html.twig' %}
|
||||
|
||||
{% block title %}Jobprofile & Skills {{ teamer }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="grid lg:grid-cols-3 gap-y-8 lg:gap-y-0 lg:gap-x-8">
|
||||
<div>
|
||||
{{ knp_menu_render(knp_menu_get('admin_teamer')) }}
|
||||
</div>
|
||||
<div class="lg:col-span-2">
|
||||
<h1 class="text-2xl font-bold pb-8">
|
||||
Jobprofile & Skills {{ teamer }}
|
||||
</h1>
|
||||
|
||||
<h2 class="text-xl font-bold pb-2">
|
||||
Ausbildung
|
||||
</h2>
|
||||
<ul class="pb-2 divide-y divide-gray-200">
|
||||
{% for training in trainings %}
|
||||
<li class="py-2">
|
||||
<div class="flex items-center justify-between">
|
||||
<span class="flex-1">{{ training.name }}</span>
|
||||
{% set attendance = teamer.trainingAttendance(training) %}
|
||||
{% if attendance %}
|
||||
<div class="flex items-center space-x-2">
|
||||
<span>{{ attendance.date|date('m/Y') }}</span>
|
||||
<button type="button"
|
||||
class="text-red-500"
|
||||
title="Ausbildung löschen"
|
||||
{{ stimulus_controller('modal-button', [], [], {'confirmation-modal': '#confirmation-modal'}) }}
|
||||
{{ stimulus_action('modal-button', 'confirmation', null, {
|
||||
'title': 'Bist du sicher?',
|
||||
'content': 'Möchtest du die Teilnahme an dieser Schulung wirklich löschen?',
|
||||
'target-url': path('app_admin_teamer_skills_training_attendance_delete', { 'uuid': attendance.uuid })
|
||||
}) }}>
|
||||
{{ icon('delete') }}
|
||||
</button>
|
||||
</div>
|
||||
{% else %}
|
||||
<button type="button"
|
||||
{{ stimulus_controller('modal-button', [], [], {'ajax-modal': '#ajax-modal'}) }}
|
||||
{{ stimulus_action('modal-button', 'ajax', null, {
|
||||
'title': 'Teilnahme hinzufügen',
|
||||
'url': path('app_admin_teamer_skills_training_attendance_create', { 'training_id': training.id, 'teamer_id': teamer.id })
|
||||
}) }}>
|
||||
{{ icon('calendar', 'w-4 h-4') }}
|
||||
</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<ul class="pb-8 divide-y divide-gray-200">
|
||||
{% for type in ['ski', 'snowboard'] %}
|
||||
<li class="py-2">
|
||||
<div class="flex items-center justify-between">
|
||||
<span class="flex-1">{{ type|license_label }}</span>
|
||||
{% set license = teamer.licenseOfType(type) %}
|
||||
{% if license %}
|
||||
<div class="flex items-center space-x-2">
|
||||
<span>{{ license.date|date('m/Y') }}</span>
|
||||
{% if is_granted('DOWNLOAD', license.certificate) %}
|
||||
<a href="{{ path('app_common_download', { 'uuid': license.certificate.uuid }) }}"
|
||||
target="_blank"
|
||||
title="Download Nachweis">
|
||||
{{ icon('download', 'w-4 h-4') }}
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% else %}
|
||||
{{ icon('minus', 'w-4 h-4') }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
<div class="grid grid-cols-2 gap-4">
|
||||
<div>
|
||||
<h2 class="text-lg font-bold pb-2">
|
||||
Mögliche Jobprofile
|
||||
</h2>
|
||||
<ul class="list-disc pl-4">
|
||||
{% for profile in teamer.jobProfiles %}
|
||||
<li>
|
||||
{{ profile.name }}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<h2 class="text-lg font-bold pb-2">
|
||||
Sonstiges
|
||||
</h2>
|
||||
<div class="flex flex-col space-y-3">
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Status:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.status|teamer_status_label }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-bold">
|
||||
Wünsche:
|
||||
</div>
|
||||
<div>
|
||||
{{ teamer.remarks|nl2br|default('-') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,9 @@
|
||||
{{ form_start(form) }}
|
||||
<div class="flex flex-col space-y-4 pb-8">
|
||||
{{ form_row(form.date) }}
|
||||
</div>
|
||||
<button type="submit" class="btn">
|
||||
Speichern
|
||||
</button>
|
||||
{{ form_rest(form) }}
|
||||
{{ form_end(form) }}
|
||||
Reference in New Issue
Block a user