faq own page
Some checks failed
CI/CD Pipeline / deploy-main (push) Blocked by required conditions
CI/CD Pipeline / test (push) Has been cancelled

This commit is contained in:
Philipp Hofer 2024-12-11 21:10:29 +01:00
parent a2741b8d4e
commit 6b96c443ea
4 changed files with 85 additions and 76 deletions

View File

@ -52,6 +52,19 @@ async fn index(db: &State<SqlitePool>, user: User, flash: Option<FlashMessage<'_
Template::render("index", context.into_json())
}
#[get("/faq")]
async fn faq(db: &State<SqlitePool>, user: User, flash: Option<FlashMessage<'_>>) -> Template {
let mut context = Context::new();
if let Some(msg) = flash {
context.insert("flash", &msg.into_inner());
}
context.insert("loggedin_user", &UserWithDetails::from_user(user, db).await);
Template::render("faq", context.into_json())
}
#[get("/notifications")]
async fn notifications(
db: &State<SqlitePool>,
@ -235,7 +248,7 @@ async fn remove(db: &State<SqlitePool>, trip_details_id: i64, user: User) -> Fla
}
pub fn routes() -> Vec<Route> {
routes![index, join, remove, remove_guest, notifications]
routes![index, join, remove, remove_guest, notifications, faq]
}
#[cfg(test)]

View File

@ -2,7 +2,7 @@
{% extends "base" %}
{% block content %}
<div class="max-w-screen-lg w-full">
<h1 class="h1">Mitgliederverwaltung</h1>
<h1 class="h1">Mitglieder</h1>
{% if allowed_to_edit %}
<form action="/admin/user/new"
method="post"

67
templates/faq.html.tera Normal file
View File

@ -0,0 +1,67 @@
{% import "includes/macros" as macros %}
{% import "includes/forms/log" as log %}
{% extends "base" %}
{% block content %}
<div id="notification"
class="bg-white dark:bg-primary-900 text-black dark:text-white rounded-md block shadow mt-5 mb-5"
role="alert">
<h2 class="h2">FAQ</h2>
<div class="mt-8">
<p class="p-2">
Willkommen in der Testversion von ruad.at!
Hier wird nochmal <s>alles</s> vieles erklärt.
Wenn du Fragen/Wünsche/... hast, kannst du dich gerne jederzeit unter <a href="mailto:philipp@hofer.link">philipp@hofer.link</a> melden.
</p>
<details class="p-2">
<summary>Rollen: Admin, Steuerperson, Anfänger + Eventmanager</summary>
<p>
Aktuell gibt es <b>4 Rollen</b>, die jedes Mitglied haben kann:
<ol class="list-decimal p-5">
<li><emph>Admin:</emph> dürfen Mitglieder verwalten (siehe Menüeintrag rechts oben &rarr; <q>Mitgliederverwaltung</q></li>
<li><emph>Steuerperson:</emph> können selbstständig <q>Ausfahrten</q> ausschreiben/bearbeiten, und sich zum steuern bei <q>Events</q> melden</li>
<li><emph>Anfänger:</emph> sehen nur Ausfahrten und Events, die explizit für Anfänger ausgeschrieben wurden</li>
<li><emph>Eventmanager:</emph> können <q>Events</q> ausschreiben/bearbeiten</li>
</ol>
</p>
</details>
<details class="p-2">
<summary>Rudertrips: Ausfahrten + Events</summary>
<p class="mt-3">
Es gibt 2 Arten von Rudertrips, die ausgeschrieben werden können:
<ol class="list-decimal p-5">
<li>Ausfahrten: Können jederzeit von Steuerpersonen ausgeschrieben/bearbeitet werden</li>
<li>Events: für Veranstaltungen, wo nicht nur Rudererinnen gesucht werden, sondern auch Steuerpersonen (zB Anrudern, Abrudern, Sternfahrten, Wanderfahrten, ...)</li>
</ol>
</p>
</details>
<details class="p-2">
<summary>Bearbeiten</summary>
<p class="mt-3">
Details, wie zB Anmerkungen können jederzeit geändert werden.
Wichtige Infos, auf die sich Rudernde verlassen (zB Startzeit und Ausfahrtstyp) können nicht mehr geändert werden.
Wenn sich die Startzeit ändert, kann man die Ausfahrt/Event absagen und stattdessen einen neuen Trip ausschreiben.
</p>
</details>
<details class="p-2">
<summary>Absagen/Löschen</summary>
<p class="mt-3">
Ausfahrten und Events können gelöscht werden, solange keine Ruderer angemeldet sind.
Sobald jemand angemeldet ist, kann die Ausfahrt/Event nicht mehr gelöscht werden, dafür <q>abgesagt</q> werden.
In diesem Fall bekommen alle die sich angemeldet haben eine Nachricht.
Sobald alle die Nachricht gelesen haben, wird der Trip automatisch gelöscht.
</p>
</details>
<details class="p-2">
<summary>Wieviele Tage sehe ich?</summary>
<p class="mt-3">
Rudernde sehen alle Trips 10 Tage im voraus + zusätzlich alle, wo <q>Immer Anzeigen</q> ausgewählt wurde.
Steuerpersonen sehen das ganze Jahr (um im Vorhinein Ausfahrten ausschreiben zu können). Ab Dezember sehen sie auch das volle kommende Jahr.
</p>
</details>
</div>
</div>
{% endblock content %}

View File

@ -77,9 +77,9 @@ function setChoiceByLabel(choicesInstance, label) {
{{ loggedin_user.name }}
</a>
</div>
<div class="w-1/3 text-xl"
onclick="document.getElementById('call-for-action').showModal()">💡</div>
<div class="w-1/3 truncate">
<a href="/faq">💡</a>
</div>
<div class="flex items-center">
{% if loggedin_user.amount_unread_notifications > 0 %}
<a href="/notifications"
@ -189,77 +189,6 @@ function setChoiceByLabel(choicesInstance, label) {
</div>
</div>
</header>
<dialog id="call-for-action"
class="max-w-screen-sm dark:bg-primary-600 dark:text-white rounded-md"
onclick="document.getElementById('call-for-action').close()">
<div onclick="event.stopPropagation();" class="p-3">
<button type="button"
onclick="document.getElementById('call-for-action').close()"
title="Schließen"
class="sidebar-close border-0 bg-primary-100 focus:bg-primary-50 text-black flex items-center justify-center transform rotate-45 absolute right-0 mr-3">
<svg class="inline h-5 w-5"
width="16"
height="16"
fill="currentColor"
viewBox="0 0 16 16">
<path d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4z"></path>
</svg>
</button>
<div class="mt-8">
<p class="p-2">
Willkommen in der Testversion von ruad.at!
Hier wird nochmal <s>alles</s> vieles erklärt.
Wenn du Fragen/Wünsche/... hast, kannst du dich gerne jederzeit unter <a href="mailto:philipp@hofer.link">philipp@hofer.link</a> melden.
</p>
<details class="p-2">
<summary>Rollen: Admin, Steuerperson, Anfänger + Eventmanager</summary>
<p>
Aktuell gibt es <b>4 Rollen</b>, die jedes Mitglied haben kann:
<ol class="list-decimal p-5">
<li><emph>Admin:</emph> dürfen Mitglieder verwalten (siehe Menüeintrag rechts oben &rarr; <q>Mitgliederverwaltung</q></li>
<li><emph>Steuerperson:</emph> können selbstständig <q>Ausfahrten</q> ausschreiben/bearbeiten, und sich zum steuern bei <q>Events</q> melden</li>
<li><emph>Anfänger:</emph> sehen nur Ausfahrten und Events, die explizit für Anfänger ausgeschrieben wurden</li>
<li><emph>Eventmanager:</emph> können <q>Events</q> ausschreiben/bearbeiten</li>
</ol>
</p>
</details>
<details class="p-2">
<summary>Rudertrips: Ausfahrten + Events</summary>
<p class="mt-3">
Es gibt 2 Arten von Rudertrips, die ausgeschrieben werden können:
<ol class="list-decimal p-5">
<li>Ausfahrten: Können jederzeit von Steuerpersonen ausgeschrieben/bearbeitet werden</li>
<li>Events: für Veranstaltungen, wo nicht nur Rudererinnen gesucht werden, sondern auch Steuerpersonen (zB Anrudern, Abrudern, Sternfahrten, Wanderfahrten, ...)</li>
</ol>
</p>
</details>
<details class="p-2">
<summary>Bearbeiten</summary>
<p class="mt-3">
Details, wie zB Anmerkungen können jederzeit geändert werden.
Wichtige Infos, auf die sich Rudernde verlassen (zB Startzeit und Ausfahrtstyp) können nicht mehr geändert werden.
Wenn sich die Startzeit ändert, kann man die Ausfahrt/Event absagen und stattdessen einen neuen Trip ausschreiben.
</p>
</details>
<details class="p-2">
<summary>Absagen/Löschen</summary>
<p class="mt-3">
Ausfahrten und Events können gelöscht werden, solange keine Ruderer angemeldet sind.
Sobald jemand angemeldet ist, kann die Ausfahrt/Event nicht mehr gelöscht werden, dafür <q>abgesagt</q> werden.
In diesem Fall bekommen alle die sich angemeldet haben eine Nachricht.
Sobald alle die Nachricht gelesen haben, wird der Trip automatisch gelöscht.
</p>
</details>
<details class="p-2">
<summary>Wieviele Tage sehe ich?</summary>
<p class="mt-3">
Rudernde sehen alle Trips 10 Tage im voraus + zusätzlich alle, wo <q>Immer Anzeigen</q> ausgewählt wurde.
Steuerpersonen sehen das ganze Jahr (um im Vorhinein Ausfahrten ausschreiben zu können). Ab Dezember sehen sie auch das volle kommende Jahr.
</p>
</details>
</div>
</dialog>
<div class="h-8"></div>
{% endmacro header %}