You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Als Kursadmin möchte ich für die Kursleitungen und die Klassenleitungen ein Eckdatenblatt erzeugen können, um relevante Informationen zu einem bestimmten Zeitpunkt abzuspeichern.
Frontend
Dazu gibt es zwei mögliche Einstiegspunkte. Diese sind nur für Kurse und dort nur für die Kursadmin sichtbar, also falls can?(:create, event).
Auf dem Kurs Info Tab wird zuhinterst ein neuer Button "Alle Eckdatenblätter erzeugen" hinzugefügt. Mit diesem wird für alle Teilnehmenden Personen, welche entweder die Rolle Hauptleitung/Kursleitung oder Leitung/Klassenleitung haben, je ein Eckdatenblatt erzeugt.
Auf der Seite der Teilnahme wird zuhinterst ein neuer Button "Eckdatenblatt erzeugen" hinzugefügt, falls die Person entweder die Rolle Hauptleitung/Kursleitung oder Leitung/Klassenleitung hat.
Also Icon für die Buttons kann ein PDF Dokument (file-pdf) verwendet werden.
Die Darstellung der Anhänge eines Anlass soll im Core in eine Tabelle überführt werden, damit die Sichtbarkeits-Icons und das Löschen Icon über alle Anhänge ausgerichtet sind. Die Breite der Tabelle soll dynamisch sein, kann also bei kurzen Dateinamen relativ schmall sein, bei längeren Dateinamen breiter. Ansonsten soll kein Styling auf der Tabelle sein (kein Rand, kein zusätzliches Padding, keine Hintergrundfarben), so dass die Liste bis auf die Ausrichtung der Icons gleich aussieht wie bisher.
Backend
Es kann ein neuer Controller Event::Courses::KeyDataSheetsController mit einer create Action erstellt werden, welcher beide obigen Fälle abhandelt. Als Berechtigung wird ebenfalls :create, event geprüft.
Die Eckdatenblätter werden als PDF erzeugt und als Anhang dem Kurs hinzugefügt, welcher nur für das Leitungsteam sichtbar ist. Der Dateiname ist "Eckdatenblatt_['Kursleiter' | 'Klassenleiter'][Vorname][Nachname]_[YYYY_MM_DD_hhmm].pdf "
Danach erfolgt ein Redirect auf die Event Show Seite mit der Flash Message "Das Eckdatenblatt / Die Eckdatenblätter wurden erzeugt und dem Kurs als Anhang hinzugefügt." Falls keine Personen mit den entsprechenden Rollen vorhanden sind, wird als Fehlermeldung "Es konnte kein Eckdatenblatt erzeugt werden, da keine Kursleitung definiert ist." angezeigt.
Das PDF wird mit Prawn erzeugt und soll ungefähr der obigen Vorlage entsprechen. Dazu eine entsprechende Klasse Export::Pdf::Participation::KeyDataSheet erstellen. Es kann mit einer einfachen Prawn Table aufgebaut werden, die Masse müssen dabei nicht 100% übereinstimmen. Der Seitenumbruch kann beliebig erfolgen. Die Fusszeile soll auf allen Seiten angezeigt werden.
Als Sprache wird die im Kurs eingestellte Sprache verwendet. Falls diese "Deutsch/Französich" ist, wird das PDF auf Deutsch erzeugt.
Im folgenden die Information zu den vorhandenen Inhalten. Falls nichts anderes angegeben ist, werden Texte als fixe Bausteine ins Locale File übernommen.
Das Logo muss in allen Sprachen aus den entsprechenden SVG Dateien in app/assets/images in ein PNG mit einer passenden Grösse konvertiert werden und ebenfalls ins Git eingecheckt werden. Achtung, ein PNG sollte etwa doppelt so viele Pixel haben, wie es im PDF in Punkten gerendert wird. Wir verzichten hier auf den Einbau vom prawn-svg Gem.
"SAC Kurse / Touren [Jahr]": Jahr entspricht dem Jahr des ersten Kursdatums.
"Hallo [Vorname]": Vorname der Person, für welche das Eckdatenblatt generiert wird.
Veranstaltungs-Nr.: Kursnummer
Bezeichnung / Titel: Kursname
Angebot / Stufe: Label Kursstufe (level via event kind)
Leitung: Name aller Personen mit Rolle Hauptleitung, kommagetrennt
Block mit "Tageshonorar" usw: siehe unten
Durchführungsdatum: Alle Kursdaten, pro Bereich eine Zeile
Durchführungsort: Alle Orte aus den Kursdaten, pro Ort eine Zeile
Unterkunft: Falls Flag reserve_accommodation true: "Wird reserviert durch SAC"; sonst "Wird reserviert durch Kursleitung"
Unterkunft Budget: siehe unten
Unterkunft Kategorie: Übersetztes Label aus Kurs Accommodation
Durchführungssprache: Übersetztes Label aus Kurs Sprache
Anmeldeschluss: Datum aus Kurs Anmeldeschluss (nicht wie PDF "28 Tage vor ...")
Minimale Teilnehmerzahl: Attribut Kurs
Maximale Teilnehmerzahl: Attribut Kurs
Durchführung - ja/nein?: Fixtext, übersetzt
Durchführung – Absage: Fixtext, übersetzt
Ideale Klassengrösse: Attribut Kurs
Maximale Klassengrösse: Attribut Kurs
Klassenlehrer: Fixtext, übersetzt
Tageshonorar Block
In der Kursart sind Vergütungskategorien (course_compensation_categories) zugewiesen. Falls diese am Datum des ersten Kurstages einen gültigen Vergütungsansatz haben, werden sie hier angezeigt, sonst nicht. Jede Kategorie wird auf einer eigenen Zeile dargestellt. Die Spalten aus dem PDF werden beibehalten, ausser "à CHF" wird zusammengeführt. Die Spaltenbreiten können so gewählt werden, dass es ausser in der ersten Spalte keine Zeilenumbrüche gibt (Achtung unterschiedliche Sprachen, allenfalls Text Width in Prawn berechnen (cell.natural_content_width)).
Je nach der Rolle der Person, für welche das Eckdatenblatt erzeugt wird, wir als Label in der ersten Spalte das Attribut name_leader oder name_assistant_leader in der entsprechenden Sprache angezeigt. Als Betrag wird die entsprechende rate auf dem gültigen Vergütungsansatz verwendet.
Zuerst werden die Kategorien mit Art Tag (kind day) aufgelistet. Die Anzahl Tage wird als Summe aller Tage aller Kursdaten berechnet. Falls ein Kurs am Abend beginnt (start_point_of_time == :evening), wird ein halber Tag abgezogen. Die Zeiten der Kursdaten sind also nicht relevant.
Danach werden die Kategorien mit Art Pauschal (kind flat) aufgelistet. Die Anzahl Tage ist immer 1.0
Pro Art werden die Kategorien nach dem short_name sortiert.
Unterkunft Budget Block
Ahnlich wie im Tageshonorar Block werden hier die zugeteilten Kategorien mit Art Budget (kind budget) aufgelistet, welche einen gültigen Ansatz haben. Dies ist neu ebenfalls möglich. Anders als in der Vorlage wird pro Kategorie eine Zeile gerendert (aus der Vorlage wären "SAC Hütte" und "Hotel / Pension" je eine Zeile). Entsprechend hat jede Zeile 3 Spalten. Die Kategorien werden nach dem short_name sortiert.
ToDo
Domainklasse für PDF erstellen
View/Controller anpassen
Specs schreiben
Mit angemessener Rolle "durchklicken"
The text was updated successfully, but these errors were encountered:
Als Kursadmin möchte ich für die Kursleitungen und die Klassenleitungen ein Eckdatenblatt erzeugen können, um relevante Informationen zu einem bestimmten Zeitpunkt abzuspeichern.
Frontend
Dazu gibt es zwei mögliche Einstiegspunkte. Diese sind nur für Kurse und dort nur für die Kursadmin sichtbar, also falls
can?(:create, event)
.Also Icon für die Buttons kann ein PDF Dokument (file-pdf) verwendet werden.
Die Darstellung der Anhänge eines Anlass soll im Core in eine Tabelle überführt werden, damit die Sichtbarkeits-Icons und das Löschen Icon über alle Anhänge ausgerichtet sind. Die Breite der Tabelle soll dynamisch sein, kann also bei kurzen Dateinamen relativ schmall sein, bei längeren Dateinamen breiter. Ansonsten soll kein Styling auf der Tabelle sein (kein Rand, kein zusätzliches Padding, keine Hintergrundfarben), so dass die Liste bis auf die Ausrichtung der Icons gleich aussieht wie bisher.
Backend
Es kann ein neuer Controller Event::Courses::KeyDataSheetsController mit einer create Action erstellt werden, welcher beide obigen Fälle abhandelt. Als Berechtigung wird ebenfalls
:create, event
geprüft.Die Eckdatenblätter werden als PDF erzeugt und als Anhang dem Kurs hinzugefügt, welcher nur für das Leitungsteam sichtbar ist. Der Dateiname ist "Eckdatenblatt_['Kursleiter' | 'Klassenleiter'][Vorname][Nachname]_[YYYY_MM_DD_hhmm].pdf "
Danach erfolgt ein Redirect auf die Event Show Seite mit der Flash Message "Das Eckdatenblatt / Die Eckdatenblätter wurden erzeugt und dem Kurs als Anhang hinzugefügt." Falls keine Personen mit den entsprechenden Rollen vorhanden sind, wird als Fehlermeldung "Es konnte kein Eckdatenblatt erzeugt werden, da keine Kursleitung definiert ist." angezeigt.
PDF
Eckdatenblatt.pdf
Das PDF wird mit Prawn erzeugt und soll ungefähr der obigen Vorlage entsprechen. Dazu eine entsprechende Klasse
Export::Pdf::Participation::KeyDataSheet
erstellen. Es kann mit einer einfachen Prawn Table aufgebaut werden, die Masse müssen dabei nicht 100% übereinstimmen. Der Seitenumbruch kann beliebig erfolgen. Die Fusszeile soll auf allen Seiten angezeigt werden.Als Sprache wird die im Kurs eingestellte Sprache verwendet. Falls diese "Deutsch/Französich" ist, wird das PDF auf Deutsch erzeugt.
Im folgenden die Information zu den vorhandenen Inhalten. Falls nichts anderes angegeben ist, werden Texte als fixe Bausteine ins Locale File übernommen.
reserve_accommodation
true: "Wird reserviert durch SAC"; sonst "Wird reserviert durch Kursleitung"Tageshonorar Block
In der Kursart sind Vergütungskategorien (
course_compensation_categories
) zugewiesen. Falls diese am Datum des ersten Kurstages einen gültigen Vergütungsansatz haben, werden sie hier angezeigt, sonst nicht. Jede Kategorie wird auf einer eigenen Zeile dargestellt. Die Spalten aus dem PDF werden beibehalten, ausser "à CHF" wird zusammengeführt. Die Spaltenbreiten können so gewählt werden, dass es ausser in der ersten Spalte keine Zeilenumbrüche gibt (Achtung unterschiedliche Sprachen, allenfalls Text Width in Prawn berechnen (cell.natural_content_width
)).Je nach der Rolle der Person, für welche das Eckdatenblatt erzeugt wird, wir als Label in der ersten Spalte das Attribut
name_leader
odername_assistant_leader
in der entsprechenden Sprache angezeigt. Als Betrag wird die entsprechenderate
auf dem gültigen Vergütungsansatz verwendet.Zuerst werden die Kategorien mit Art Tag (kind day) aufgelistet. Die Anzahl Tage wird als Summe aller Tage aller Kursdaten berechnet. Falls ein Kurs am Abend beginnt (
start_point_of_time == :evening
), wird ein halber Tag abgezogen. Die Zeiten der Kursdaten sind also nicht relevant.Danach werden die Kategorien mit Art Pauschal (kind flat) aufgelistet. Die Anzahl Tage ist immer 1.0
Pro Art werden die Kategorien nach dem
short_name
sortiert.Unterkunft Budget Block
Ahnlich wie im Tageshonorar Block werden hier die zugeteilten Kategorien mit Art Budget (kind budget) aufgelistet, welche einen gültigen Ansatz haben. Dies ist neu ebenfalls möglich. Anders als in der Vorlage wird pro Kategorie eine Zeile gerendert (aus der Vorlage wären "SAC Hütte" und "Hotel / Pension" je eine Zeile). Entsprechend hat jede Zeile 3 Spalten. Die Kategorien werden nach dem
short_name
sortiert.ToDo
The text was updated successfully, but these errors were encountered: