Chore: Sprint32-36 Zwischenstand — alle Änderungen aus dieser Session committen
This commit is contained in:
parent
f4052fbb7d
commit
747c353444
20 changed files with 3115 additions and 63 deletions
|
|
@ -1,5 +1,6 @@
|
|||
"""BAN YARO — Social-Media-Job Bewerbungs-System"""
|
||||
|
||||
import html as _html
|
||||
import os
|
||||
import uuid
|
||||
from datetime import datetime, timedelta
|
||||
|
|
@ -98,8 +99,9 @@ async def apply(
|
|||
|
||||
# Bestätigungs-Mail an Bewerber
|
||||
try:
|
||||
_name = _html.escape(name)
|
||||
body = f"""
|
||||
<p style="margin:0 0 16px">Hallo <b>{name}</b>,</p>
|
||||
<p style="margin:0 0 16px">Hallo <b>{_name}</b>,</p>
|
||||
<p style="margin:0 0 16px">
|
||||
deine Bewerbung als Social-Media-Manager/in bei Ban Yaro ist bei uns eingegangen.
|
||||
Wir melden uns bald bei dir!
|
||||
|
|
@ -110,7 +112,7 @@ async def apply(
|
|||
email,
|
||||
"Deine Bewerbung bei Ban Yaro 🐾",
|
||||
email_html(body, cta_url="https://banyaro.app", cta_label="Zur App"),
|
||||
f"Hallo {name}, deine Bewerbung ist eingegangen!",
|
||||
f"Hallo {_name}, deine Bewerbung ist eingegangen!",
|
||||
)
|
||||
except Exception:
|
||||
pass
|
||||
|
|
@ -119,16 +121,22 @@ async def apply(
|
|||
try:
|
||||
admin_email = os.getenv("ADMIN_EMAIL", "")
|
||||
if admin_email:
|
||||
_ename = _html.escape(name)
|
||||
_eemail = _html.escape(email)
|
||||
_edog_name = _html.escape(dog_name)
|
||||
_edog_rasse = _html.escape(dog_rasse)
|
||||
_ehandle = _html.escape(social_handle)
|
||||
_emotivation = _html.escape(motivation[:300])
|
||||
admin_body = f"""
|
||||
<p style="margin:0 0 12px"><b>Neue Job-Bewerbung eingegangen:</b></p>
|
||||
<table style="font-size:14px;border-collapse:collapse;width:100%">
|
||||
<tr><td style="padding:4px 12px 4px 0;color:#888">Name</td><td><b>{name}</b></td></tr>
|
||||
<tr><td style="padding:4px 12px 4px 0;color:#888">E-Mail</td><td>{email}</td></tr>
|
||||
<tr><td style="padding:4px 12px 4px 0;color:#888">Hund</td><td>{dog_name} ({dog_rasse})</td></tr>
|
||||
<tr><td style="padding:4px 12px 4px 0;color:#888">Social</td><td>{social_handle}</td></tr>
|
||||
<tr><td style="padding:4px 12px 4px 0;color:#888">Name</td><td><b>{_ename}</b></td></tr>
|
||||
<tr><td style="padding:4px 12px 4px 0;color:#888">E-Mail</td><td>{_eemail}</td></tr>
|
||||
<tr><td style="padding:4px 12px 4px 0;color:#888">Hund</td><td>{_edog_name} ({_edog_rasse})</td></tr>
|
||||
<tr><td style="padding:4px 12px 4px 0;color:#888">Social</td><td>{_ehandle}</td></tr>
|
||||
<tr><td style="padding:4px 12px 4px 0;color:#888">Anhänge</td><td>{len([f for f in files if f.filename])} Datei(en)</td></tr>
|
||||
</table>
|
||||
<p style="margin:12px 0 0;font-size:14px;color:#444">{motivation[:300]}{"…" if len(motivation)>300 else ""}</p>"""
|
||||
<p style="margin:12px 0 0;font-size:14px;color:#444">{_emotivation}{"…" if len(motivation)>300 else ""}</p>"""
|
||||
await send_email(
|
||||
admin_email,
|
||||
f"[Banyaro Jobs] Neue Bewerbung — {name}",
|
||||
|
|
@ -293,16 +301,17 @@ async def download_doc(app_id: int, doc_id: int, admin=Depends(require_admin)):
|
|||
|
||||
def _send_status_mail(email: str, name: str, status: str, note: str):
|
||||
import asyncio
|
||||
_ename = _html.escape(name)
|
||||
texts = {
|
||||
"reviewing": ("Wir schauen uns deine Bewerbung genauer an 🐾",
|
||||
f"<p>Hallo <b>{name}</b>,</p><p>wir schauen uns deine Bewerbung gerade genauer an. Wir melden uns bald!</p>"),
|
||||
f"<p>Hallo <b>{_ename}</b>,</p><p>wir schauen uns deine Bewerbung gerade genauer an. Wir melden uns bald!</p>"),
|
||||
"accepted": ("Herzlichen Glückwunsch — du bist dabei! 🎉",
|
||||
f"<p>Hallo <b>{name}</b>,</p><p>wir freuen uns, dir mitzuteilen: <b>du bist unser neuer Social-Media-Manager/in für Ban Yaro!</b><br>Du erhältst außerdem den <b>Gründer-Status</b> in unserer Community. Willkommen im Team!</p>"),
|
||||
f"<p>Hallo <b>{_ename}</b>,</p><p>wir freuen uns, dir mitzuteilen: <b>du bist unser neuer Social-Media-Manager/in für Ban Yaro!</b><br>Du erhältst außerdem den <b>Gründer-Status</b> in unserer Community. Willkommen im Team!</p>"),
|
||||
"rejected": ("Deine Bewerbung bei Ban Yaro",
|
||||
f"<p>Hallo <b>{name}</b>,</p><p>vielen Dank für deine Bewerbung. Leider hat es diesmal nicht geklappt — aber wir wünschen dir alles Gute!</p>"),
|
||||
f"<p>Hallo <b>{_ename}</b>,</p><p>vielen Dank für deine Bewerbung. Leider hat es diesmal nicht geklappt — aber wir wünschen dir alles Gute!</p>"),
|
||||
}
|
||||
subj, body_start = texts.get(status, ("Update zu deiner Bewerbung", f"<p>Hallo {name},</p>"))
|
||||
note_html = f'<div style="background:#fdf6ef;border-left:3px solid #C4843A;padding:12px 16px;border-radius:0 8px 8px 0;margin:12px 0">{note}</div>' if note else ""
|
||||
subj, body_start = texts.get(status, ("Update zu deiner Bewerbung", f"<p>Hallo {_ename},</p>"))
|
||||
note_html = f'<div style="background:#fdf6ef;border-left:3px solid #C4843A;padding:12px 16px;border-radius:0 8px 8px 0;margin:12px 0">{_html.escape(note)}</div>' if note else ""
|
||||
body = body_start + note_html
|
||||
|
||||
async def _send():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue