Aufgaben an bestimmte Leute verteilen -- jetzt auch sichtbar

Filipe: "ich sehe noch immer nicht dass dogfather oder die rechte hand
wenn sie aufgaben verteilen die spezifisch an leute verteilen können.
mach das endlich auch weil das ist seeehr wichtig damit wir arbeiten
können mit den leuten."

GEMESSEN, BEVOR GEBAUT WURDE -- und die Messung hat zwei verschiedene
Antworten gegeben:

  DogFather   Feld sichtbar, vier Menschen in der Auswahl
  Rechte Hand Feld VERSTECKT, Auswahl leer

Fuer ihn gab es die Zuteilung also, fuer sie nicht. Beides war falsch,
jedes auf seine Art.

1. DIE RECHTE HAND KAM NIE AN DIE FELDER

   Das Absenden fragte `ich.darf_verteilen` -- das sagt der Server:
   Leitung ODER rechte Hand (seit 20.09.). Das ANZEIGEN fragte eine
   andere Menge aus bereiche.js: spicy, admin, manager. Zwei
   Bedingungen fuer dieselbe Sache, und eine davon war nie nachgezogen
   worden.

   Der Server haette ihre Zuteilung angenommen; sie konnte sie nur
   nirgends eintragen. Vier Stellen betroffen, und eine davon war
   gefaehrlich: Beim BEARBEITEN wurde `verantwortlich_id` nicht
   mitgeschickt -- die rechte Hand haette durch blosses Speichern die
   Zuteilung einer Aufgabe stillschweigend geloescht. Kein Fehler,
   keine Meldung, die Aufgabe gehoert danach niemandem.

   Alle vier fragen jetzt den Server. `LEITUNG.has(ich.rolle)` bleibt
   nur noch als Rueckfall hinter `??`, fuer den Fall einer aelteren
   Serverfassung.

2. UND FUER DOGFATHER LAG ES AM WORT

   Das Feld hiess "Verantwortlich" und stand auf "—". Das liest sich
   wie eine Eigenschaft der Aufgabe, nicht wie eine Frage an einen
   selbst. Es heisst jetzt "Wer macht es?", der leere Wert "— noch
   niemand —", und darunter steht, was die Auswahl bewirkt: Die
   Aufgabe steht bei ihm unter "Nur meine", und er bekommt eine
   Meldung.

   Eine Frage beantwortet man. Ein Strich uebersieht man.

WARUM KEINE PRUEFUNG DAS GEFUNDEN HAT: Alle fragten den Server, und
der war in Ordnung -- Rechte da, Leute da, Zuteilung wird angenommen.
Eine Erlaubnis, an die niemand herankommt, sieht von dort aus wie eine
Erlaubnis. pruef-verteilen liest deshalb jetzt auch den Quelltext der
Oberflaeche: dieselbe Frage an beiden Stellen, und die Beschriftung
muss eine Frage sein. Kommentare zaehlen dabei nicht mit -- beim
ersten Lauf hat die Pruefung meine eigene Begruendung als Befund
gezaehlt.

pruef-verteilen 16/0 · pruef-aufgabenbrett in Ordnung

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-21 14:07:25 +02:00
co-authored by Claude Opus 5
parent 8a214ecd0e
commit 314561fb64
39 changed files with 638 additions and 513 deletions
+35 -4
View File
@@ -266,7 +266,11 @@
if (name) zeile.append(el('span', null, '· ' + name));
}
if (a.verantwortlich_name) zeile.append(el('span', null, '· ' + a.verantwortlich_name));
if (LEITUNG.has(ich.rolle) && a.creator_name && a.creator_name !== a.verantwortlich_name) {
/* WER VERTEILT, DARF AUCH SEHEN, WOHIN (21.09.2026). Dieselbe
Frage wie bei den Feldern, also dieselbe Antwort -- und nicht
eine Rollenmenge, die daneben altert. */
if ((ich.darf_verteilen ?? LEITUNG.has(ich.rolle))
&& a.creator_name && a.creator_name !== a.verantwortlich_name) {
zeile.append(el('span', null, '· Bereich ' + a.creator_name));
}
if (zeile.childElementCount) k.append(zeile);
@@ -977,7 +981,10 @@
$('b-prio').value = a.prioritaet;
$('b-frist').value = a.frist || '';
$('b-fehler').textContent = '';
if (LEITUNG.has(ich.rolle)) {
/* AUCH HIER DER SERVER (21.09.2026). Stand `LEITUNG.has(ich.rolle)`.
Fuer die rechte Hand blieben die Felder beim BEARBEITEN leer --
sie sah nicht einmal, wem die Aufgabe gerade gehoert. */
if (ich.darf_verteilen ?? LEITUNG.has(ich.rolle)) {
$('b-creator').value = a.creator_id ? String(a.creator_id) : '';
$('b-verant').value = a.verantwortlich_id ? String(a.verantwortlich_id) : '';
$('b-loeschen').hidden = false;
@@ -1007,7 +1014,15 @@
prioritaet: $('b-prio').value,
frist: $('b-frist').value,
};
if (LEITUNG.has(ich.rolle)) {
/* DIE GEFAEHRLICHSTE DER VIER STELLEN (berichtigt 21.09.2026).
Hier entscheidet sich, ob `verantwortlich_id` beim Speichern
MITGESCHICKT wird. Mit `LEITUNG.has(ich.rolle)` schickte die
rechte Hand es nicht mit -- sie haette also durch blosses
Bearbeiten einer Aufgabe deren Zuteilung stillschweigend
geloescht. Kein Fehler, keine Meldung; die Aufgabe gehoert
danach niemandem mehr, und niemand weiss, warum. */
if (ich.darf_verteilen ?? LEITUNG.has(ich.rolle)) {
daten.creator_id = $('b-creator').value || null;
daten.verantwortlich_id = $('b-verant').value || null;
daten.creator_extern = $('b-creator').dataset.extern || null;
@@ -1073,7 +1088,23 @@
window.werZeigen?.(ich);
if (LEITUNG.has(ich.rolle)) {
/* EINE BEDINGUNG, NICHT ZWEI (berichtigt 21.09.2026).
Hier stand `LEITUNG.has(ich.rolle)` -- eine Menge aus
bereiche.js mit spicy, admin und manager. Beim ABSENDEN fragt
dieselbe Datei dagegen `ich.darf_verteilen`, und das sagt der
Server: Leitung ODER rechte Hand (seit 20.09.2026).
Folge: Die rechte Hand durfte Aufgaben verteilen und BEKAM DIE
FELDER NIE ZU SEHEN. Der Server haette ihre Zuteilung
angenommen; sie konnte sie nur nirgends eintragen. Gemessen am
21.09.: Feld vorhanden, `hidden` gesetzt, Auswahl leer.
Genau davor warnt die Zeile unten selbst ("eine aeltere Fassung
des Servers") -- der Rueckfall war als Notnagel gedacht und
stand hier als Hauptregel. Jetzt entscheidet an BEIDEN Stellen
dasselbe: was der Server sagt. */
if (ich.darf_verteilen ?? LEITUNG.has(ich.rolle)) {
$('feld-creator').hidden = false;
$('feld-verant').hidden = false;
$('b-feld-creator').hidden = false;