WMDE
/
eva
forked from tohe/eva
7
1
Fork 0

PDF is now correctly generated, dont forget to change image_path for production in views.py!!

This commit is contained in:
Marike Voßbeck 2026-03-18 13:27:31 +01:00
parent a10b271a00
commit 47888b0c23
2 changed files with 72 additions and 45 deletions

View File

@ -1,27 +1,44 @@
{% load i18n %}
{% load static %}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h2>Übergabedokument von Arbeitsmitteln: {{ pdf_data.firstname }} {{ pdf_data.lastname }}</h2>
<h2 style="color:blue;">Handover sheet of work equipment: </h2>
<body style="font-size: smaller;font-family: 'Times New Roman', Times, serif;">
<!-- Überschriftentabelle -->
<table style="width: 95%; ">
<tr>
<td style="width: 65%; vertical-align: bottom;font-size: large;">
<strong>Übergabedokument von Arbeitsmitteln/</strong><br/>
<strong style="color: blue;">Handover sheet of work equipment</strong>
</td>
<td style="width: 35%; text-align: right; vertical-align: bottom;font-size:large;">
<img src="{{ image_path}}" style="display: block; margin-left: auto; width: 100px; height: 100px;"/><br/>
<strong>{{ pdf_data.firstname }} {{ pdf_data.lastname }}</strong>
</td>
</tr>
</table>
<p style="margin: 2px; padding: 0px; font-size: 1px;">&#160;</p>
<!-- Haupttabelle -->
<table class="center", style="border: 1px solid black;
border-collapse: collapse; width:90%">
border-collapse: collapse; width:90%; ">
<tbody>
<tr style="background-color: #d1cfcfb5;">
<tr style="background-color: #d1cfcf;">
<th style="border: 1px solid black;
border-collapse: collapse;">[X]</th>
border-collapse: collapse; width: 5%; text-align: center;">[X]</th>
<th style="border: 1px solid black;
border-collapse: collapse;"><strong>Ausstattung/</strong><strong style="color:blue;">Equipment</strong></th>
border-collapse: collapse;width: 75%; text-align: center;"><strong>Ausstattung/</strong><br><strong style="color:blue;">Equipment</strong></th>
<th style="border: 1px solid black;
border-collapse: collapse;"><strong>Weitergabe an/</strong><strong style="color:blue;">Handover to</strong></th>
border-collapse: collapse;width: 20%; text-align: center;padding: 4px;"><strong>Weitergabe an/</strong><br><strong style="color:blue;">Handover to</strong></th>
</tr>
<tr>
<td style="border: 1px solid black;
border-collapse: collapse;"></td>
<td style="border: 1px solid black;
border-collapse: collapse;"><p>Laptop + Ladekabel <strong> {% if pdf_data.laptop_id %} {{pdf_data.laptop_id}} {% else %} ID nicht bekannt {% endif %} </strong></p> </td>
border-collapse: collapse;padding: 4px 4px;text-align: center;"><p>Laptop + Ladekabel <strong> {% if pdf_data.laptop_id %}Nr. {{pdf_data.laptop_id}} {% else %} ID nicht bekannt {% endif %} </strong></p> </td>
<td style="text-align: center;border: 1px solid black;
border-collapse: collapse;">IT</td>
</tr>
@ -29,7 +46,7 @@
<td style="border: 1px solid black;
border-collapse: collapse;"></td>
<td style="border: 1px solid black;
border-collapse: collapse;"><p>Home-Office Geräte ({% if pdf_data.hardware %}{% for item in pdf_data.hardware %}{{ item }}{% if not forloop.last %}, {% endif %}{% endfor %}{% else %}Keine Hardware {% endif %})</p></td>
border-collapse: collapse;padding: 4px 4px;text-align: center;"><p>Home-Office Geräte ({% if pdf_data.hardware %}{% for item in pdf_data.hardware %}<strong>{{ item }}{% if not forloop.last %}, {% endif %}</strong>{% endfor %}{% else %}<i>Keine Hardware </i>{% endif %})</p></td>
<td style="text-align: center;border: 1px solid black;
border-collapse: collapse;">IT</td>
</tr>
@ -37,15 +54,15 @@
<td style="border: 1px solid black;
border-collapse: collapse;"></td>
<td style="border: 1px solid black;
border-collapse: collapse;">{% if pdf_data.mobile == "JA" %}<p> Mobiltelefon (ID nicht angegeben)</p> {% else %} <p><s>Mobiltelefon</s></p>{% endif %}</td>
<td style="text-align: center;border: 1px solid black;
border-collapse: collapse;padding: 4px 4px;text-align: center;">{% if pdf_data.mobile == "JA" %}<p> Mobiltelefon <i>(ID nicht angegeben)</i></p> {% else %} <p><s>Mobiltelefon</s></p>{% endif %}</td>
<td style="padding: 4px 4px;text-align: center;border: 1px solid black;
border-collapse: collapse;">IT</td>
</tr>
<tr>
<td style="border: 1px solid black;
border-collapse: collapse;"></td>
<td style="border: 1px solid black;
border-collapse: collapse;">{% if pdf_data.credit_card == "JA" %}<p> Kreditkarte</p> {% else %} <p><s>Kreditkarte</s></p>{% endif %}</td>
border-collapse: collapse;padding: 4px 4px;text-align: center;">{% if pdf_data.credit_card == "JA" %}<p> Kreditkarte</p> {% else %} <p><s>Kreditkarte</s></p>{% endif %}</td>
<td style="border: 1px solid black;
border-collapse: collapse;"></td>
</tr>
@ -53,7 +70,7 @@
<td style="border: 1px solid black;
border-collapse: collapse;"></td>
<td style="border: 1px solid black;
border-collapse: collapse;">{% if pdf_data.sim == "JA" %}<p> SIM Karte bitte aushändigen lassen</p> {% else %} <p><s>SIM Karte</s></p>{% endif %}</td>
border-collapse: collapse;padding: 4px 4px;text-align: center;">{% if pdf_data.sim == "JA" %}<p> SIM Karte bitte aushändigen lassen</p> {% else %} <p><s>SIM Karte</s></p>{% endif %}</td>
<td style="border: 1px solid black;
border-collapse: collapse;"></td>
</tr>
@ -61,99 +78,105 @@
<td style="border: 1px solid black;
border-collapse: collapse;"></td>
<td style="border: 1px solid black;
border-collapse: collapse;"><p>Transponder Nr.<strong> {{ pdf_data.transponder_id}}</strong></p></td>
<td style="text-align: center;border: 1px solid black;
border-collapse: collapse;padding: 4px 4px;text-align: center;"><p>Transponder <strong>Nr. {{ pdf_data.transponder_id}}</strong></p></td>
<td style="padding: 4px 4px;text-align: center;border: 1px solid black;
border-collapse: collapse;">Office</td>
</tr>
<tr>
<td style="border: 1px solid black;
border-collapse: collapse;"></td>
<td style="border: 1px solid black;
border-collapse: collapse;"><p>Rollcontainer-Schlüssel: Abgabe oder im Rollcontainer gelassen</p> </td>
<td style="text-align: center;border: 1px solid black;
border-collapse: collapse;padding: 4px 4px;text-align: center;"><p>Rollcontainer-Schlüssel: Abgabe oder im Rollcontainer gelassen</p> </td>
<td style="padding: 4px 4px;text-align: center;border: 1px solid black;
border-collapse: collapse;">Office</td>
</tr>
<tr>
<td style="border: 1px solid black;
border-collapse: collapse;"></td>
<td style="border: 1px solid black;
border-collapse: collapse;">{% if pdf_data.pension == "JA" %}<p> MA hat BAV Unterlagen erhalten</p> {% else %} <p><s>MA hat BAV Unterlagen erhalten</s></p>{% endif %}</td>
<td style="text-align: center;border: 1px solid black;
border-collapse: collapse;padding: 4px 4px;text-align: center;">{% if pdf_data.pension == "JA" %}<p> MA hat BAV Unterlagen erhalten</p> {% else %} <p><s>MA hat BAV Unterlagen erhalten</s></p>{% endif %}</td>
<td style="padding: 4px 4px;text-align: center;border: 1px solid black;
border-collapse: collapse;">HR</td>
</tr>
<tr>
<td style="border: 1px solid black;
border-collapse: collapse;"></td>
<td style="border: 1px solid black;
border-collapse: collapse;"><p>{% if pdf_data.miscellaneous %}<strong>Sonstiges:</strong> {{ pdf_data.miscellaneous }} {% else %} <s>Sonstiges</s>{% endif %}</p></td>
border-collapse: collapse;padding: 4px 4px;"><p>{% if pdf_data.miscellaneous %}<strong>Sonstiges:</strong> {{ pdf_data.miscellaneous }} {% else %} <s>Sonstiges</s>{% endif %}</p></td>
<td style="border: 1px solid black;
border-collapse: collapse;"></td>
</tr>
<tr>
<td colspan="2"><p><strong>BVG-Firmenticket</strong> ist bei Austritt bis 23:59 Uhr des Monatsletzten gültig.
<td colspan="2" style="padding: 4px 4px;"><p><strong>BVG-Firmenticket</strong> ist bei Austritt bis 23:59 Uhr des Monatsletzten gültig.
Es kann dann entsorgt werden.</p>
<p style="color:blue;"><strong>BVG company ticket</strong> BVG company ticket is valid until 23:59 on the last day of the month.
It can then be discarded.
</p></td>
<td style="text-align: center;border: 1px solid black;
<td style="padding: 4px 4px;text-align: center;border: 1px solid black;
border-collapse: collapse;"></td>
</tr>
</tbody>
</table>
<br /><br />
<p style="margin: 2px; padding: 0px; font-size: 2px;">&#160;</p>
<!-- Sonstige Vereinbarungen-->
<table class="center", style="border: 1px solid black;
border-collapse: collapse; width:90%">
border-collapse: collapse; width:90%; ">
<tbody>
<tr>
<th colspan="2", style="border: 1px solid black;
border-collapse: collapse; background-color: #d1cfcfb5; "><strong>Sonstige Vereinbarungen/</strong><strong style="color:blue;">Other agreements</strong>
<th colspan="2", style="padding: 4px;text-align: center; border: 1px solid black;
border-collapse: collapse; background-color: #d1cfcf; "><strong>Sonstige Vereinbarungen/</strong><br><strong style="color:blue;">Other agreements</strong>
</th>
</tr>
<tr>
<td style="border: 1px solid black;
border-collapse: collapse;"> {% if pdf_data.bahncard == "JA" %}<i style="color:grey;">BahnCard</i> {% else %} <i style="color:grey;"><s>BahnCard</s></i>{% endif %}</td>
border-collapse: collapse;padding: 4px 4px;text-align: center;"> {% if pdf_data.bahncard == "JA" %}<i style="color:grey;">BahnCard</i> {% else %} <i style="color:grey;"><s>BahnCard</s></i>{% endif %}</td>
<td style="border: 1px solid black;
border-collapse: collapse;text-align: center;"> <i style="color:grey;">falls vorhanden, kann diese behalten werden, da sie ausläuft</i></td>
border-collapse: collapse;padding: 4px 4px;text-align: center;"> {% if pdf_data.bahncard == "JA" %}<i style="color:grey;">falls vorhanden, kann diese behalten werden, da sie ausläuft</i> {% else %} <i style="color:grey;"><s>falls vorhanden, kann diese behalten werden, da sie ausläuft</s></i>{% endif %}</td>
</tr>
</tbody>
</table>
<br /><br />
<p style="margin: 2px; padding: 0px; font-size: 2px;">&#160;</p>
<!--Rückgabebestätigung -->
<table class="center", style="border: 1px solid black;
border-collapse: collapse; width:90%">
border-collapse: collapse; width:90%; ;">
<tbody>
<tr>
<td style="border: 1px solid black;
border-collapse: collapse;"> <p><strong>Rückgabe:</strong> Hiermit bestätige ich die vollständige Übergabe aller mir zur Verfügung gestellten Arbeitsmittel im gepflegten und funktionstüchtigen Zustand. Ich habe die Benutzung durch Dritte - sofern es sich nicht um betriebseigene Mitarbeitende handelt - nicht gestattet. Außerdem bestätige ich hiermit die vollumfängliche Zusicherung der Einhaltung der allgemeinen Vertraulichkeitserklärung/Datenschutzerklärung, sowie die Einhaltung der Verschwiegenheitsvereinbarung aus dem Arbeitsvertrag. </p>
<p style="color:blue;"><strong>Handover:</strong> I hereby confirm the complete handover of all work equipment provided to me in a well-maintained and functional condition. I have not permitted the use by third parties - unless they are employees of Wikimedia. Furthermore, I hereby confirm the full assurance of compliance with the general confidentiality declaration/pdf_data protection declaration, as well as compliance with the confidentiality agreement from the employment contract. </p>
border-collapse: collapse; padding: 4px 4px;"> <p><strong>Rückgabe:</strong> Hiermit bestätige ich die vollständige Übergabe aller mir zur Verfügung gestellten Arbeitsmittel im gepflegten und funktionstüchtigen Zustand. Ich habe die Benutzung durch Dritte - sofern es sich nicht um betriebseigene Mitarbeitende handelt - nicht gestattet. Außerdem bestätige ich hiermit die vollumfängliche Zusicherung der Einhaltung der allgemeinen Vertraulichkeitserklärung/Datenschutzerklärung, sowie die Einhaltung der Verschwiegenheitsvereinbarung aus dem Arbeitsvertrag. </p>
<p style="color:blue;"><strong>Handover:</strong> I hereby confirm the complete handover of all work equipment provided to me in a well-maintained and functional condition. I have not permitted the use by third parties - unless they are employees of Wikimedia. Furthermore, I hereby confirm the full assurance of compliance with the general confidentiality declaration/data protection declaration, as well as compliance with the confidentiality agreement from the employment contract. </p>
</td>
</tr>
</tbody>
</table>
<br /><br />
<p style="margin: 2px; padding: 0px; font-size: 4px;">&#160;</p>
<!-- Unterschriften -->
<table class="center", style="border: 1px solid white;
border-collapse: collapse; width:90%;">
<tbody>
<tr >
<td style="border: 1px solid white;
border-collapse: collapse;"> <strong>Berlin</strong>, ________________</td>
border-collapse: collapse;padding: 2px 2px;"> <strong>Berlin</strong>, ________________</td>
<td style="border: 1px solid white;
border-collapse: collapse;">____________________</td>
border-collapse: collapse;padding: 2px 2px;">____________________</td>
<td style="border: 1px solid white;
border-collapse: collapse;">____________________________________</td>
border-collapse: collapse;padding: 2px 2px;">____________________________________</td>
</tr>
<tr>
<td style="border: 1px solid white;
border-collapse: collapse;"> </td>
border-collapse: collapse;padding: 2px 2px;"> </td>
<td style="border: 1px solid white;
border-collapse: collapse;">entgegengenommen von</td>
border-collapse: collapse;padding: 2px 2px;">entgegengenommen von</td>
<td style="border: 1px solid white;
border-collapse: collapse;">Unterschrift ehem. Mitarbeitenden</td>
border-collapse: collapse;padding: 2px 2px;">Unterschrift ehem. mitarbeitende Person</td>
</tr>
<tr>
<td style="border: 1px solid white;
border-collapse: collapse;"> </td>
<td style="color:blue;">received by</td>
<td style="color:blue;">Signature of leaving employee</td>
border-collapse: collapse;padding: 2px 2px;"> </td>
<td style="color:blue;padding: 1px 1px;">received by</td>
<td style="color:blue;padding: 1px 1px;">Signature of leaving employee</td>
</tr>
</tbody>
</table>

View File

@ -2,6 +2,7 @@ from smtplib import SMTPException
import collections
from xhtml2pdf import pisa
from django.views.generic.edit import CreateView
from django.views import View
from django.urls import reverse
@ -255,8 +256,11 @@ class PDFPreviewView(LoginRequiredMixin, View):
#getting names for pdf file naming
firstname = pdf_data.get('firstname')
lastname = pdf_data.get('lastname')
context ={'pdf_data': pdf_data}
#hardcoded imagepath => change for production!!!
context ={
'pdf_data': pdf_data,
'image_path': '/home/marike.vossbeck/eva/austritt/static/evapp/logo.png'
}
html_string =render_to_string('austritt/pdf_template.html', context)
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition']=f'inline; filename="Rueckgabe_Arbeitsmittel_{firstname}_{lastname}.pdf"'