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

Stundenplan (1.5PT) #529

Closed caebr closed 1 year ago

caebr commented 1 year ago

image

Der aktuelle Stundenplan der eingeloggten Person wird angezeigt. Diese Komponente besteht in dieser Form noch nicht.

Die Anzeige des Stundenplans ist abhängig von der Rolle der eingeloggten Person:

Zusätzliche Informationen zur Darstellung:

Mobile:

Technisch

caebr commented 1 year ago

@fbufbi Was genau passiert bei "Kalender abonnieren", gibt es diese Funktionalität heute schon?

fbufbi commented 1 year ago

@schefbi Bitte Auskunft geben zu "Kalender abonnieren"

schefbi commented 1 year ago

Ist in Arbeit. Es wird ein Link aus den Usersettings sein. Ich werde diesen issue anpassen wenn ich alle Details habe.

hupf commented 1 year ago

@schefbi Für welche Rollen wird der Stundenplan angezeigt? Ist das mind. eine der folgenden?

['LessonTeacherRole', 'TeacherRole', 'StudentRole']

Alle anderen sehen ihn nicht?

schefbi commented 1 year ago

Es sind grundsätzlich die gleiche Requests wie bei Absenzen melden StudentRole und Präsenzinfomation LessonTeacherRole. Gemäss Konzeption soll soweit ich das von Simon verstanden habe beide Rollen gemerged werden und die Tabelle Zeit aufsteigend dargestellt werden. Die benutzenden müssen selber wissen ob sie Teilnehmer/in oder Lehrkraft sind, falls Sie beide rollen haben.

hupf commented 1 year ago

@schefbi Das heisst wir zeigen die Tabelle Stundenplan an wenn der User StudentRole oder LessonTeacherRole hat, verstehe ich dich richtig? Für alle anderen wir sie nicht angezeigt?

schefbi commented 1 year ago

@hupf Korrekt, das ist so. Alle anderen haben keinen Stundenplan.

hupf commented 1 year ago

@schefbi Ein paar technische Fragen:

schefbi commented 1 year ago

@hupf Die Lehrer haben kein Zugriff TimetableEntries. Ist wohl ein Fehler. Deshalb las vorerst einmal diese Eigenschaft.

Ich habe die Ergänzungen vorgenommen in der Beschreibung. image

hupf commented 1 year ago

@schefbi

Die Lehrer haben kein Zugriff TimetableEntries. Ist wohl ein Fehler. Deshalb las vorerst einmal diese Eigenschaft.

Was meinst du mit diesem Satz? Für die Lehrer verwenden wir nicht den /TimetableEntries Endpunkt, das ist so.

"Kalender abonnieren": Link aus den userSettings.cal (Endpunkt). Falls Link nicht vorhanden button ausblenden.

Da musst du mir noch etwas spezifischere Infos geben. Wie lautet der Endpunkt genau, ist das /UserSettings/ mit einem einem Attribut "cal"? Muss das Attribut mit expand inkludiert werden? Oder heisst der Endpunkt /UserSettings/cal/ und die Response ist ein String?

Insb. würde mich aber wunder nehmen: Wo ist das dokumentiert und wie kann ich das Testen (welcher User hat einen solchen Link, welcher hat keiner)?

schefbi commented 1 year ago

@hupf

Die Lehrer haben kein Zugriff TimetableEntries. Ist wohl ein Fehler. Deshalb las vorerst einmal diese Eigenschaft.

Das bezieht sich auch die Rooms. Diese Eigenschaft kann momentan nicht angezeigt werden.

"Kalender abonnieren": Link aus den userSettings.cal (Endpunkt). Falls Link nicht vorhanden button ausblenden.

Ich habe dir bei l1@test.ch ein Link generiert. Eine Doku gibt es noch nicht da es eine SDK Funktion sein wird die von uns zuerst noch entwickelt werden muss. image

hupf commented 1 year ago

@fbufbi Wir haben festgestellt, dass in #525 spezifiziert ist für den Stundenplan ein eigener Navigationeintrag zu erstellen. Im Moment ist der Stundenplan einfach Teil der Startseite und kein eigenes Modul. Braucht es diesen separaten Navigationseintrag tatsächlich?

fbufbi commented 1 year ago

@hupf Wie am heutigen Daily besprochen können wir den eigenen Navigationseintrag für den Stundenplan weglassen. Stundenplan auf der Startseite reicht.

fbufbi commented 1 year ago

@caebr Schülerin s1:

  1. Nur am Mi, 16.08.2023 werden Lektionen im Stundenplan aufgeführt. Die Schülerin hat aber auch Mo, Di und Fr Lektionen. Weshalb werden diese nicht angezeigt? Mir fällt auf, dass die Anforderungs-URLs mit sehr vielen Ids gefüllt ist, die sich nicht ändern, wenn auf ein anderes Datum gewechselt wird. Am 16.08.2023 kommt eine Antwort von der API, aber an den anderen Tagen ist diese leer [] - ev. ein Problem auf Seiten API? Bei s3 habe ich 1 einzige Lektion am 14.08.2023 hinterlegt und diese wird auch nicht angezeigt.
    1. Falls das ein Problem ist: Auch hier kann es sein, dass die EventLocation null ist (sprich: kein Raum hinterlegt). Das muss möglich sein.
    2. Die Umsetzung auf Mobile hat folgende Schwächen: image
      • Datum bricht um, da es sich in der Schriftgrösse nicht ändert und die Pfeile links/rechts im Vergleich sehr gross sind (im Nachhinein: ein Datepicker wäre wohl besser als die Pfeile gewesen, da man zu einem konkreten Datum springen kann)
      • Die Abstände zwischen den Zeilen sind zu gross, visuell fällt die Tabelle auseinander (vgl. Mockup)
      • Der Strich zuoberst fehlt (vgl. Mockup)
      • Die drei verschiedenen Schriftgrössen (14, 16, 13px) in der Tabelle machen das Ganze unruhig
caebr commented 1 year ago

Zu Punkt 1:

Aktuell wird folgender Request abgesetzt:

Students/<studentId>/TimetableEntries/CurrentSemester
?filter.Id=<e.LessonRef.Id aller Absences/Incidents des Schülers>
&fields=Id,From,To,EventId,EventNumber,EventDesignation,EventLocation,EventManagerInformation

Somit werden, wenn ich das richtig sehe, nur alle Lektionen des Schülers angezeigt, bei welchen eine Absenz/ein Vorfall eingetragen ist.

Wahrscheinlich müsste der Request folgendermassen lauten:

Students/<studentId>/TimetableEntries/CurrentSemester
?filter.From=&sort=From,To
&fields=Id,From,To,EventId,EventNumber,EventDesignation,EventLocation,EventManagerInformation

Ob das korrekt ist, kann ich aufgrund der Aussage "Es sind grundsätzlich die gleiche Requests wie bei Absenzen melden StudentRole" aber nicht 100% nachvollziehen.

fbufbi commented 1 year ago

@caebr Spannend. Der aktuelle Request ist klar falsch. Der Stundenplan hat nichts mit erfassten Absenzen zu tun, sondern muss alle Lektionen des aktuellen Semesters anzeigen. Dein Vorschlag schaut für mich korrekt aus, bitte setze es so um.

Sandros Aussage bezieht sich auf Meine Absenzen > Absenzen melden. Dort laden wir die Lektionsdaten vom aktuellen Semester gemäss unserer Doku via

/Students/{token.payload.id_person}/TimetableEntries/CurrentSemester
?filter.From=>yyyy-mm-dd&filter.To=<yyyy-mm-dd
&&fields=Id,From,To,EventNumber,EventDesignation,EventManagerInformation

Das deckt sich mit dem, was du vorschlägst.

caebr commented 1 year ago

Zu Punkt 2: Das ist mit dem Change #583 abgedeckt

Zu Punkt 3:

fbufbi commented 1 year ago

@caebr: s1, Fr., 18. August

  1. Bei den Schüler/innen darf das Fach nicht verlinkt sein. Die Verlinkung auf die Details des Anlasses gibt es nur für die Lehrpersonen, da sie dort alle Schüler/innen des Fachs sehen.
  2. Wenn die EventLocation null ist, kann auf Mobile das Label "Raum" weggelassen werden?
fbufbi commented 1 year ago

@caebr Ein Detail: Das Datum ist auf Mobile nicht konsequent oberhalb des Buttons. Es springt je nach Tag hin & her. Kannst du das oberhalb fixieren? s1, mein Beispiel ist 414 Pixel breit (iPhone 6/7/8 Plus) image

Alles andere ist OK.

fbufbi commented 1 year ago

@caebr Das Verhalten ist immer noch gleich wie in meinem Screenshot, das Datum ist auf Mobile nicht fix oben.

caebr commented 1 year ago

@caebr Das Verhalten ist immer noch gleich wie in meinem Screenshot, das Datum ist auf Mobile nicht fix oben.

Ich habe einen Pull-Request gemacht und ihn @schefbi zugewiesen. Ich hoffe es ist nun alles drauf :)

fbufbi commented 1 year ago

Test OK