bkd-mba-fbi / webapp-schulverwaltung

JavaScript Web-Modul, das mit SLH.Evento Backend (REST-API) die Prozesse der Schulverwaltung online sicherstellt
https://bkd-mba-fbi.github.io/webapp-schulverwaltung/
MIT License
9 stars 0 forks source link

Tests: Noten bzw. Punkte eingeben (4PT) #336

Open fbufbi opened 3 years ago

fbufbi commented 3 years ago

image

Mittelwert und Durchschnitt:

Desktop-Ansicht: image

mfehlmann commented 2 years ago

@schefbi Werden die Durchschnitte für die einzelnen Teste und der gesammt Durchschnitt aller Tests ab Dienstag ebenfalls vom Backend kommen oder ist das etwas, was wir im Frontend rechnen werden?

fbufbi commented 2 years ago

@schefbi Werden die Durchschnitte für die einzelnen Teste und der gesammt Durchschnitt aller Tests ab Dienstag ebenfalls vom Backend kommen oder ist das etwas, was wir im Frontend rechnen werden?

@mfehlmann Nur der Mittelwert (pro Lernende/r) wird serverseitig ermittelt. Der Durchschnitt wird frontendseitig ermittelt, ebenso der durchschnittliche Mittelwert (dies ist der Mittelwert auf der Zeile "Durchschnitt" zuunterst).

mfehlmann commented 2 years ago

Hoi @schefbi Wenn ich einen Request and "Courses/9248/SetTestResult" sende um die Note zu aktualisieren. Wird der 'GradeValue' auf null gesetzt.

Die Attribute im Body habe ich aus dem 'SetTestResult' request aus der Postman collection geholt.

Der Body sieht so aus:

{
  StudentIds: [4487],
  TestId: 1,
  GradeValue: 5,
  GradeId: 2340,
  Points: null
}

Die Response so:

{
  "TestResults": [
    {
      "TestId": 1,
      "CourseRegistrationId": 128664,
      "GradeId": 2340,
      "GradeValue": null,
      "GradeDesignation": "4.6",
      "Points": null,
      "StudentId": 4487,
      "StudentAddress": "Mööslimatt 9, 3037 Herrenschwanden",
      "Id": "1_128664"
    }
  ],
  "Gradings": []
}

Stimmt der Request so, wie er in der Postman Collection drin ist oder wird im Backend etwas anderes erwartet als das, was ich mitschicke?

schefbi commented 2 years ago

@mfehlmann Das ist alles korrekt. Du schickst GradeId 2340 gemäss hinterlegter Gradingscale ist das "4.6" und nicht "5". Der GradeValue wird nur ausgefüllt wenn die Gradingscale Freinoteneingabe zulässt das ist hier nicht der Fall.

mfehlmann commented 2 years ago

@schefbi Ah, okay, dann behebe ich das noch. Wenn ich aber den selben request mir einer übereinstimmenden GradeId sende (GradeId 2340, GradeValue 4.6)bleibt der GradeValue null.

schefbi commented 2 years ago

@schefbi Ah, okay, dann behebe ich das noch. Wenn ich aber den selben request mir einer übereinstimmenden GradeId sende (GradeId 2340, GradeValue 4.6)bleibt der GradeValue null.

Wie im Kommentar beschrieben der GradeValue wird nur ausgefüllt wenn die Gradingscale Freinoteneingabe zulässt, dass ist hier nicht der Fall. Der GradeValue kennt das Frontend aus der Gradingscale.

image

mfehlmann commented 2 years ago

@schefbi Ach soo! Okay ich schaue mir das and, Danke :+1:

schefbi commented 2 years ago

Das hat auch ein Zusammenhang mit der Grösse respektive der Performance der Response die über das Netz übertragen werden müssen. Immer nur das nötigste liefern.

fbufbi commented 2 years ago

@mfehlmann Rückmeldung noch zu deiner Frage im heutigen Daily: Punkteeingabe mit Validierung im Front-End: Dezimal mit 2 Nachkommastellen

schefbi commented 2 years ago

@mfehlmann html Validierung > <input type="number" placeholder="1.0" step="0.01" min="0" max="{MaxPointsAdjusted} or {MaxPoints} ">

mfehlmann commented 2 years ago

@fbufbi Wenn ein neuer Test erfasst wird, soll dann das Dropdown für die Notenauswahl leer sein oder soll ein Standartwert wie "Keine Note" selektiert sein?

Wenn ein Standartwert eingegeben werden soll, geben wir den per Designation oder per Id an und soll das über die Settings konfigurierbar sein?

fbufbi commented 2 years ago

@fbufbi Wenn ein neuer Test erfasst wird, soll dann das Dropdown für die Notenauswahl leer sein oder soll ein Standartwert wie "Keine Note" selektiert sein?

Wenn ein Standartwert eingegeben werden soll, geben wir den per Designation oder per Id an und soll das über die Settings konfigurierbar sein?

@mfehlmann Meinst du dieses Dropdown bei jeder Schüler/in? Das muss unbedingt leer sein. image

schefbi commented 2 years ago

Backend Fehler Noten leeren muss noch gefixed werden. Wenn Ok muss danach im Frontend ein leerer eintrage bei der Note möglich sein. Für den Request muss GradeId: null übergeben werden.

fbufbi commented 2 years ago

@mfehlmann Mit @caebr haben wir heute folgendes Verhalten bei Tests mit Punkteeingabe besprochen und demonstriert, das wir als problematisch anschauen: Beim langsamen Eingeben der Nachkommastelle(n) wird das Punkt recht schnell gelöscht und der Cursor springt nach vorne. Statt 20.5 verwandelt sich die Punkteeingabe in 520. Was können wir da machen?

mfehlmann commented 2 years ago

Wir konnten das Problem behenben. Die Änderungen sind bereits auf dem Master.

fbufbi commented 2 years ago

@mfehlmann Problem: Steht der Status des Anlasses noch nicht auf Bewertung bis, ist aber bereits eine FinalGrade vorhanden,

Es betrifft die ersten 4 Lernenden in diesem Screenshot: image

Korrektur: Wenn eine FinalGrade vorhanden ist, dann soll diese angezeigt werden (das Dropdown ist beim jetzigen Status des Anlasses weiterhin ausgegraut, das ist ok). Auch der Mittelwert AverageTestResult muss weiterhin angezeigt werden. Es darf keine Fehlermeldung geben.

Beispiel: l6

caebr commented 2 years ago

@fbufbi Die letzten beiden Punkte konnte ich nicht reproduzieren. Könntest du das nochmals anschauen? In der Response sehe ich "FinalGrades": null mit Lehrer l6.

fbufbi commented 2 years ago

@fbufbi Die letzten beiden Punkte konnte ich nicht reproduzieren. Könntest du das nochmals anschauen? In der Response sehe ich "FinalGrades": null mit Lehrer l6.

@caebr Ein Datenbank-Job hat dazwischengefunkt - jetzt sollten die ersten paar Lernenden wieder eine FinalGrade haben. @schefbi Wir haben den DB-Job wieder deaktivieren müssen & ihn umbenennt in FBI_0000_TENSECONDLY... (mit FUR)

caebr commented 2 years ago

@fbufbi Genau, jetzt haben die ersten paar Lernenden ein FinalGrade, aber kein Grading; d.h. die Note könnten wir so anzeigen (leider hat es keine Referenz zur GradingScale in den FinalGrades), aber den Mittelwert nicht (da dieser aus Gradings ausgelesen wird).

Müssen wir den Mittelwert nun von Hand basierend auf den Tests berechnen?

fbufbi commented 2 years ago

@caebr Der Fall, dass eine FinalGrade gesetzt ist, obwohl der Anlass noch gar nicht beurteilt wird, wird kaum auftreten, daher für den Moment: Nein, berechnet den Mittelwert nicht von Hand. Ich bespreche das nächste Woche noch kurz mit @schefbi.

@schefbi Jetzt verstehe ich, dass es entweder FinalGrades (bei gesetzter Note auf dem Anlass) oder Gradings (mit AverageTestResult) gibt - beides zusammen geht also gar nicht.

caebr commented 2 years ago

@fbufbi @schefbi Wir haben eine Vorschlag implementiert (Branch bug/336-final-grades) und können diesen am nächsten Daily zusammen anschauen. Ich werde Livia bitten nächsten Mittwoch einen Termin anzulegen.

fbufbi commented 2 years ago

Test OK