mirror of
https://github.com/nelsbrock/NateMan.git
synced 2026-08-14 21:36:49 +02:00
Textvereinfachungen
This commit is contained in:
@@ -137,7 +137,7 @@ def edit(lehrer_id):
|
||||
if change_beraet:
|
||||
lehrer.beraet = new_beraet
|
||||
if new_beraet:
|
||||
current_app.logger.info(f"{g.lehrer} hat {lehrer} als Beratungslehrer(in) für die {new_beraet.name} "
|
||||
current_app.logger.info(f"{g.lehrer} hat {lehrer} als Beratungslehrkraft für die {new_beraet.name} "
|
||||
f"festgelegt.")
|
||||
else:
|
||||
current_app.logger.info(f"{g.lehrer} hat den Beratungslehrerstatus von {lehrer} entfernt.")
|
||||
@@ -183,7 +183,7 @@ def add():
|
||||
|
||||
# existiert das Kürzel bereits?
|
||||
if Lehrer.query.filter_by(kuerzel=kuerzel).count() != 0:
|
||||
error_msg = "Ein(e) Lehrer(in) mit diesem Kürzel existiert bereits."
|
||||
error_msg = "Ein Lehrerkonto mit diesem Kürzel existiert bereits."
|
||||
|
||||
# ist das neue Passwort zu groß?
|
||||
elif not util.validate_bcrypt_password(password):
|
||||
@@ -200,7 +200,7 @@ def add():
|
||||
db.session.add(new_lehrer)
|
||||
db.session.commit()
|
||||
|
||||
flash("Lehrer(in) erfolgreich hinzugefügt.", "success")
|
||||
current_app.logger.info(f"{g.lehrer} hat den/die Lehrer(in) {new_lehrer} hinzugefügt")
|
||||
flash("Lehrerkonto erfolgreich hinzugefügt.", "success")
|
||||
current_app.logger.info(f"{g.lehrer} hat das Lehrerkonto {new_lehrer} hinzugefügt")
|
||||
|
||||
return redirect(url_for(".edit", lehrer_id=new_lehrer.id), code=303)
|
||||
|
||||
@@ -328,12 +328,12 @@ def password_reset():
|
||||
lehrer = Lehrer.query.filter_by(kuerzel=lehrer_kuerzel, email=email_address).first()
|
||||
|
||||
if lehrer is None:
|
||||
flash("Es gibt keine(n) Lehrer(in) mit den angegebenen Kriterien.", "error")
|
||||
flash("Es gibt keine Lehrkraft mit den angegebenen Kriterien.", "error")
|
||||
return redirect(url_for(".password_reset"), code=303)
|
||||
|
||||
if not lehrer.is_confirmed:
|
||||
flash("Es gibt eine(n) Lehrer(in) mit den angegebenen Kriterien, allerdings ist dessen/deren "
|
||||
"E-Mail-Adresse nicht bestätigt.\nWenden Sie sich an eine(n) Administrator(in).", "error")
|
||||
flash("Es gibt eine Lehrkraft mit den angegebenen Kriterien, allerdings ist deren "
|
||||
"E-Mail-Adresse nicht bestätigt.\nWenden Sie sich an einen Administrator.", "error")
|
||||
return redirect(url_for(".password_reset"), code=303)
|
||||
|
||||
new_token = util.random_uri_safe_string(64)
|
||||
@@ -346,7 +346,7 @@ def password_reset():
|
||||
except SMTPRecipientsRefused:
|
||||
flash(f"Es konnte keine E-Mail an {lehrer.email} gesendet werden.\n"
|
||||
f"Wahrscheinlich existiert diese Adresse nicht mehr.\n"
|
||||
f"Wenden Sie sich an eine(n) Administrator(in).", "error")
|
||||
f"Wenden Sie sich an einen Administrator.", "error")
|
||||
return redirect(url_for(".password_reset"), code=303)
|
||||
|
||||
db.session.commit()
|
||||
|
||||
@@ -80,9 +80,9 @@ def import_():
|
||||
|
||||
error_msg = None
|
||||
if not new_lehrer_password:
|
||||
error_msg = "Bitte geben Sie das Passwort für neu registrierte Lehrer(innen) an."
|
||||
error_msg = "Bitte geben Sie das Passwort für neu registrierte Lehrerkonten an."
|
||||
elif not util.validate_bcrypt_password(new_lehrer_password):
|
||||
error_msg = "Das Passwort für neue Lehrer(innen) darf nicht mehr als 72 Zeichen enthalten."
|
||||
error_msg = "Das Passwort für neue Lehrerkonten darf nicht mehr als 72 Zeichen enthalten."
|
||||
if error_msg is not None:
|
||||
flash(error_msg, "error")
|
||||
return redirect(url_for(".import"), code=303)
|
||||
|
||||
@@ -265,7 +265,7 @@ def edit(klausur_id):
|
||||
add_to = request.form["add-to"]
|
||||
|
||||
if schueler_id is None:
|
||||
flash("Bitte wählen Sie eine(n) Schüler(in) zum Hinzufügen aus.", "error")
|
||||
flash("Bitte wählen Sie einen Schüler zum Hinzufügen aus.", "error")
|
||||
return reload_resp
|
||||
|
||||
is_new = False
|
||||
@@ -284,7 +284,7 @@ def edit(klausur_id):
|
||||
return
|
||||
|
||||
if not new_schueler_nachname or not new_schueler_vorname:
|
||||
flash("Bitte geben Sie einen vollständigen Namen für den/die neue(n) Schüler(in) an.", "error")
|
||||
flash("Bitte geben Sie einen vollständigen Namen für den neuen Schüler an.", "error")
|
||||
return reload_resp
|
||||
|
||||
schueler = Schueler(id=get_next_new_schueler_id(), nachname=new_schueler_nachname,
|
||||
@@ -314,7 +314,7 @@ def edit(klausur_id):
|
||||
kt_entity = Klausurteilnahme(klausur=k, schueler=schueler)
|
||||
db.session.add(kt_entity)
|
||||
|
||||
current_app.logger.info(f"{g.lehrer} hat den/die{' neue(n)' if is_new else ''} Schüler(in) {schueler} "
|
||||
current_app.logger.info(f"{g.lehrer} hat den{' neuen' if is_new else ''} Schüler {schueler} "
|
||||
f"zur Klausur {klausur} hinzugefügt.")
|
||||
|
||||
db.session.commit()
|
||||
@@ -327,7 +327,7 @@ def edit(klausur_id):
|
||||
.all():
|
||||
if f"r_{kt.schueler.id}" in request.form:
|
||||
db.session.delete(kt)
|
||||
current_app.logger.info(f"{g.lehrer} hat den/die Schüler(in) {kt.schueler} aus der Klausur "
|
||||
current_app.logger.info(f"{g.lehrer} hat den Schüler {kt.schueler} aus der Klausur "
|
||||
f"{kt.klausur} entfernt.")
|
||||
|
||||
db.session.commit()
|
||||
|
||||
+5
-5
@@ -46,7 +46,7 @@ def add_lehrer_command(kuerzel, password, admin):
|
||||
lehrer = Lehrer.query.filter_by(kuerzel=kuerzel).first()
|
||||
|
||||
if lehrer is not None:
|
||||
click.echo("Fehler: Ein(e) Lehrer(in) mit diesem Kürzel ist bereits registriert.", err=True)
|
||||
click.echo("Fehler: Ein Lehrerkonto mit diesem Kürzel ist bereits registriert.", err=True)
|
||||
return 1
|
||||
|
||||
if not password:
|
||||
@@ -61,7 +61,7 @@ def add_lehrer_command(kuerzel, password, admin):
|
||||
db.session.add(new_lehrer)
|
||||
db.session.commit()
|
||||
|
||||
click.echo("Lehrer(in) wurde erfolgreich registriert.")
|
||||
click.echo("Lehrerkonto wurde erfolgreich angelegt.")
|
||||
return 0
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ def remove_koopschule_command(kuerzel):
|
||||
@click.argument("kuerzel")
|
||||
@with_appcontext
|
||||
def make_admin_command(kuerzel):
|
||||
"""Gibt einem/einer Lehrer(in) Administratorrechte."""
|
||||
"""Gibt einem Lehrerkonto Administratorrechte."""
|
||||
|
||||
lehrer = Lehrer.query.filter_by(kuerzel=kuerzel).first()
|
||||
|
||||
@@ -187,7 +187,7 @@ def make_admin_command(kuerzel):
|
||||
@click.argument("kuerzel")
|
||||
@with_appcontext
|
||||
def take_admin_command(kuerzel):
|
||||
"""Nimmt einem/einer Lehrer(in) seine/ihre Administratorrechte."""
|
||||
"""Nimmt einem Lehrerkonto seine Administratorrechte."""
|
||||
|
||||
lehrer = Lehrer.query.filter_by(kuerzel=kuerzel).first()
|
||||
|
||||
@@ -218,7 +218,7 @@ def cleanup_command():
|
||||
@click.command("send-reminder-mails")
|
||||
@with_appcontext
|
||||
def send_reminder_mails_command():
|
||||
"""Sendet Erinnerungsemails an alle Lehrer(innen), die unbearbeitete vergangene Klausuren haben."""
|
||||
"""Sendet Erinnerungsemails an alle Lehrkräfte, die unbearbeitete vergangene Klausuren haben."""
|
||||
emails.send_reminder_mails()
|
||||
return 0
|
||||
|
||||
|
||||
+5
-5
@@ -126,16 +126,16 @@ def import_plan(xml_file: TextIO, stufe: Stufe, new_lehrer_pwd: str) -> None:
|
||||
else:
|
||||
# Ist dieser Schüler bereits für eine andere Stufe eingetragen? -> Fehler
|
||||
if schueler_entity.stufe != stufe:
|
||||
raise KlausurplanImportError(f"Zu importierender Plan für die {stufe.name} enthält Schüler(in) "
|
||||
raise KlausurplanImportError(f"Zu importierender Plan für die {stufe.name} enthält Schüler "
|
||||
f"({schueler_vorname} {schueler_nachname}, "
|
||||
f"DbIdNr: {schueler_dbid}), der/die bereits für die "
|
||||
f"DbIdNr: {schueler_dbid}), der bereits für die "
|
||||
f"{schueler_entity.stufe.name} eingetragen ist.")
|
||||
|
||||
# Ist derselbe Schüler bereits in dieser Klausur? -> Fehler
|
||||
if db.session.query(exists().where(and_(Klausurteilnahme.schueler == schueler_entity,
|
||||
Klausurteilnahme.klausur == klausur_entity))).scalar():
|
||||
raise KlausurplanImportError(f"Zu importierender Plan für die {stufe.name} enthält selbe(n) "
|
||||
f"Schüler(in) ({schueler_vorname} {schueler_nachname}, "
|
||||
raise KlausurplanImportError(f"Zu importierender Plan für die {stufe.name} enthält selben "
|
||||
f"Schüler ({schueler_vorname} {schueler_nachname}, "
|
||||
f"DbIdNr: {schueler_dbid}) mehrfach in "
|
||||
f"derselben Klausur ({kursname}).")
|
||||
|
||||
@@ -207,7 +207,7 @@ def excelimport(filepath: str):
|
||||
db.session.add(schueler_entity)
|
||||
db.session.add(teilnahme_entity)
|
||||
else:
|
||||
raise KoopSchuelerImportError("Für den/die Schüler(in) " + s[0] + ", " + s[1]
|
||||
raise KoopSchuelerImportError("Für den Schüler " + s[0] + ", " + s[1]
|
||||
+ "konnte keine Koopschule mit dem Kürzel " + s[4]
|
||||
+ " gefunden werden.")
|
||||
else:
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
#}
|
||||
|
||||
{% block title %}Lehrer(in): {{ lehrer.kuerzel }}{% endblock %}
|
||||
{% block header %}Lehrer(in): {{ lehrer.kuerzel }}{% endblock %}
|
||||
{% block title %}Lehrerkonto: {{ lehrer.kuerzel }}{% endblock %}
|
||||
{% block header %}Lehrerkonto: {{ lehrer.kuerzel }}{% endblock %}
|
||||
|
||||
{# lehrer #}
|
||||
{% set stufen_list = Stufe.query.all() %}
|
||||
@@ -60,7 +60,7 @@
|
||||
<div><input type="password" name="new-password" id="new-password-input" autocomplete="new-password"></div>
|
||||
</div>
|
||||
<div>
|
||||
<div><label for="new-beraet-select">Beratungslehrer(in) von:</label></div>
|
||||
<div><label for="new-beraet-select">Beratungslehrkraft von:</label></div>
|
||||
<div><select name="new-beraet" id="new-beraet-select">
|
||||
<option value="">(keine Stufe)</option>
|
||||
{% for stufe in stufen_list %}
|
||||
@@ -69,7 +69,7 @@
|
||||
</select></div>
|
||||
</div>
|
||||
<div>
|
||||
<div><label for="new-admin-cb">Administrator(in):</label></div>
|
||||
<div><label for="new-admin-cb">Administrator:</label></div>
|
||||
<div>
|
||||
<input type="checkbox" name="new-admin" id="new-admin-cb" value="admin"
|
||||
{% if lehrer.is_admin %}checked{% endif %}>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
{% set lehrer_list = Lehrer.query.order_by(Lehrer.kuerzel).all() %}
|
||||
|
||||
{% block content %}
|
||||
<p><a href="{{ url_for('admin.lehrer.add') }}" data-icon="">Lehrer(in) hinzufügen</a></p>
|
||||
<p><a href="{{ url_for('admin.lehrer.add') }}" data-icon="">Lehrerkonto hinzufügen</a></p>
|
||||
|
||||
<p>Klicken Sie eine Zeile aus der folgenden Übersicht an, um ein bestehendes Benutzerkonto zu bearbeiten.</p>
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
<th>Kürzel</th>
|
||||
<th>E-Mail-Adresse</th>
|
||||
<th>Admin</th>
|
||||
<th>Beratungslehrer(in)</th>
|
||||
<th>Beratungslehrkraft</th>
|
||||
<th>Passwort<br>gesetzt</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -26,13 +26,13 @@
|
||||
|
||||
{% block js_head %}
|
||||
var plan_delete_warn = "Durch das Löschen eines Plans werden alle importierten sowie nachträglich hinzugefügten\n"
|
||||
+ "Daten der Stufe (Klausurtermine, Klausuren, Schüler(innen)) unwiderruflich gelöscht.\n"
|
||||
+ "Daten der Stufe (Klausurtermine, Klausuren, Schüler) unwiderruflich gelöscht.\n"
|
||||
+ "Lehrerkonten bleiben unberührt.\n\nWollen Sie wirklich fortfahren?";
|
||||
|
||||
var import_warn = "Durch das Importieren von Klausurplänen werden bestehende importierte sowie nachträglich "
|
||||
+ "hinzugefügte\nDaten (Klausurtermine, Klausuren, Schüler(innen)) aller Stufen, für die neue Pläne "
|
||||
+ "hinzugefügte\nDaten (Klausurtermine, Klausuren, Schüler) aller Stufen, für die neue Pläne "
|
||||
+ "importiert wurden, unwiderruflich gelöscht.\nBestehende Lehrerkonten bleiben unberührt.\n\n"
|
||||
+ "Durch das Importieren von Koopschüler(inne)n werden alle bestehenden Koopschüler(innen) "
|
||||
+ "Durch das Importieren von Koopschülern werden alle bestehenden Koopschüler "
|
||||
+ "gelöscht.\n\nWollen Sie wirklich fortfahren?";
|
||||
{% endblock %}
|
||||
|
||||
@@ -71,13 +71,13 @@
|
||||
</div>
|
||||
<p>
|
||||
<label>
|
||||
Koopschüler(innen)liste:
|
||||
Koopschülerliste:
|
||||
<input type="file" name="koopschueler" id="koopschueler-input" accept=".xlsx,.xlsm,.xltx,.xltm">
|
||||
</label>
|
||||
</p>
|
||||
<p>
|
||||
<label>
|
||||
Passwort für neu registrierte Lehrer(innen):
|
||||
Passwort für neu registrierte Lehrerkonten:
|
||||
<input name="new-lehrer-password" type="text" id="new-lehrer-password-input"
|
||||
value="{{ nateman_config['default-new-lehrer-password'] }}">
|
||||
</label>
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
<div><input type="text" name="kursname" id="kursname-input" placeholder="z.B. M-GK3" required autofocus></div>
|
||||
</div>
|
||||
<div>
|
||||
<div><label for="lehrer-select">Kurslehrer(in):</label></div>
|
||||
<div><label for="lehrer-select">Kurslehrkraft:</label></div>
|
||||
<div>
|
||||
<select name="lehrer" id="lehrer-select" required>
|
||||
<option value="" selected disabled>Bitte auswählen</option>
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
|
||||
<p class="description">
|
||||
{{ zeitraum(klausur) }} Stunde;
|
||||
{{ Klausurteilnahme.query.filter_by(klausur_id=klausur.id).count() }} Schüler(innen)
|
||||
{{ Klausurteilnahme.query.filter_by(klausur_id=klausur.id).count() }} Schüler
|
||||
</p>
|
||||
|
||||
<form method="post">
|
||||
@@ -172,10 +172,8 @@
|
||||
|
||||
{% if not no_edit %}
|
||||
<p>
|
||||
Setzen Sie <i>entweder</i> ein Häkchen dafür, dass kein(e) Schüler(in) die Klausur versäumt hat<br>
|
||||
<i>oder</i> setzen Sie ein Häkchen bei allen Schüler(inne)n, die die Klausur versäumt haben.<br>
|
||||
Gehört ein(e) Schüler(in) <i>nicht</i> mehr zum Kurs, entfernen Sie diese(n) durch Anklicken von 'x'.<br>
|
||||
Klicken Sie anschließend auf 'Speichern'.
|
||||
Setzen Sie ein Häkchen bei allen Schülern, die die Klausur versäumt haben.<br>
|
||||
Klicken Sie zum Bestätigen auf 'Speichern'.
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
@@ -187,7 +185,7 @@
|
||||
%}
|
||||
checked
|
||||
{% endif %}>
|
||||
<b>kein(e)</b> Schüler(in) hat versäumt
|
||||
<b>kein</b> Schüler hat versäumt
|
||||
</label>
|
||||
</p>
|
||||
<p id="schueler-list">
|
||||
@@ -236,17 +234,10 @@
|
||||
|
||||
<form method="post">
|
||||
<input type="hidden" name="action" value="add-schueler">
|
||||
|
||||
<p>
|
||||
Fügen Sie eine(n) Schüler(in) hinzu, falls der/die Schüler(in) nicht bereits<br>
|
||||
automatisch in der obigen Liste aufgeführt sein sollte.<br>
|
||||
Nach dem Hinzufügen kann der/die Schüler(in) als versäumend markiert werden.
|
||||
</p>
|
||||
|
||||
<h3>Schüler(in) hinzufügen:
|
||||
<h3>Schüler hinzufügen:
|
||||
<select name="added-schueler" id="added-schueler" required>
|
||||
<option value="" selected disabled>Bitte auswählen</option>
|
||||
<option value="new-schueler">Neue(n) Schüler(in) hinzufügen...</option>
|
||||
<option value="new-schueler">Neuen Schüler hinzufügen...</option>
|
||||
{% for schueler in not_in_klausur_list %}
|
||||
<option value="{{ schueler.id }}">{{ schueler.nachname }}, {{ schueler.vorname }}
|
||||
({% if schueler.stammschule is not none %}{{ schueler.stammschule.name }}, {% endif %}{{ schueler.id }})
|
||||
@@ -256,13 +247,6 @@
|
||||
</h3>
|
||||
|
||||
<div id="add-new-schueler-form">
|
||||
<p>
|
||||
Bevor Sie eine(n) neue(n) Schüler(in) hinzufügen, überprüfen Sie bitte,
|
||||
ob diese(r) nicht bereits in der obigen Auswahl vorhanden ist.<br>
|
||||
<b>Tipp:</b> In den meisten Browsern können Sie bei geöffneter Auswahl
|
||||
den Nachnamen eingeben, um nach einem/einer Schüler(in) zu suchen.
|
||||
</p>
|
||||
|
||||
<div class="table-aligned">
|
||||
<div>
|
||||
<div><label for="new-schueler-nachname-input">Nachname:</label></div>
|
||||
@@ -276,7 +260,7 @@
|
||||
<div><label for="new-schueler-stammschule-select">Stammschule:</label></div>
|
||||
<div>
|
||||
<select name="new-schueler-stammschule" id="new-schueler-stammschule-select">
|
||||
<option value="" selected>(kein(e) Koop-Schüler(in))</option>
|
||||
<option value="" selected>(kein Koop-Schüler)</option>
|
||||
{% for ks in Koopschule.query.all() %}
|
||||
<option value="{{ ks.kuerzel }}">{{ ks.name }}</option>
|
||||
{% endfor %}
|
||||
@@ -303,7 +287,7 @@
|
||||
<input type="hidden" name="action" value="edit-advanced">
|
||||
<div class="table-aligned">
|
||||
<div>
|
||||
<div><label for="new-lehrer-select">Kurslehrer(in):</label></div>
|
||||
<div><label for="new-lehrer-select">Kurslehrkraft:</label></div>
|
||||
<div>
|
||||
<select name="new-lehrer" id="new-lehrer-select">
|
||||
{% for l in Lehrer.query.order_by(Lehrer.kuerzel).all() %}
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
{% block content %}
|
||||
|
||||
<p class="description">
|
||||
Beratungslehrer(innen):
|
||||
Beratungslehrkräfte:
|
||||
{% if beratungslehrer_list|length == 0 %}
|
||||
keine
|
||||
{% else %}
|
||||
@@ -73,7 +73,7 @@
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Lehrer(in)</th>
|
||||
<th>Lehrkraft</th>
|
||||
<th>Kurs</th>
|
||||
<th>Zeitraum</th>
|
||||
{% if lehrer_can_access %}
|
||||
|
||||
@@ -47,10 +47,10 @@
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Schüler(in)</th>
|
||||
<th>Schüler</th>
|
||||
<th>Klausurdatum</th>
|
||||
<th>Kurs</th>
|
||||
<th>Lehrer</th>
|
||||
<th>Lehrkraft</th>
|
||||
<th>Länge</th>
|
||||
<th>Bemerkung</th>
|
||||
<th>attestiert</th>
|
||||
|
||||
Reference in New Issue
Block a user