Nachrichten interagierbar machen
Unterhaltungs-Status setzen. Auf eine Unterhaltung antworten. Neue Unterhaltung starten mit den 4 Arten.
Ist das Issue noch aktuell?
Ich kann es erst nach den Winterferien machen, da der Lehrer nicht geantwortet hat.
Um Nachrichten schnell auszublenden oder wieder einzublenden, würde ich es durch "Swipen" ermöglichen.
https://api.flutter.dev/flutter/widgets/Dismissible-class.html
Man muss es nur irgendwie kennzeichen.
Das gleiche könnte man auch mit Haussufgaben machen, aber die haben schon einen schnellen Weg durch die fette Checkbox.
JS: https://start.schulportal.hessen.de/module/nachrichten/js/read.js
Koenidv: https://github.com/koenidv/sph-planner/blob/main/app/src/main/java/de/koenidv/sph/networking/Messages.kt sendReply
Ein Kommentar zu schreiben hat zwei Felder:
a, zb: reply
c,
-
to- ["Sender"]
-
groupOnly(Lanis guckt nur ob das existiert)- ["groupOnly"]
-
privateAnswerOnly(Lanis guckt nur ob das existiert)- ["privateAnswerOnly"]
-
message- Die Nachricht
-
replyToMsg- ["Uniquid"]
JS: https://start.schulportal.hessen.de/module/nachrichten/js/start.js $('#btnNewMsgSave').click(function () { ...._
Koenidv: https://github.com/koenidv/sph-planner/blob/main/app/src/main/java/de/koenidv/sph/ui/ChatFragment.kt#L133 sendFirstMessage
Neue Unterhaltung starten:
a: newmessage
c,
Empfänger to[]
- Lehrer deiner Kurse
- (Falls aktiviert) Schüler deiner Kurse
- Für die Suche gibt es eine Funktion
- https://start.schulportal.hessen.de/nachrichten.php?q=LEHRER&page=1&a=searchRecipt
{
"total_count":1,
"incomplete_results":false,
"items":[
{
"type":"lul",
"id":"l-140824",
"logo":"fa fa-user",
"text":"bnsdlfsdfsdf"
}
]
Arten Art
- Hinweis
- Keine Antworten
-
noAnswerAllowed
- Mitteilung
- Antwort nur an Nachrichtenersteller
-
privateAnswerOnly
- Gruppenchat
- Antwort immer an alle
-
groupOnly
- Offener Chat
- Private Nachrichten unereinander möglich
-
openChat
Betreff subject
Text text
POST data
[
{
"name": "to[]",
"value": "l-36772"
},
{
"name": "to[]",
"value": "l-140824"
},
{
"name": "Art",
"value": "noAnswerAllowed"
},
{
"name": "subject",
"value": "asdasdasdasd"
},
{
"name": "text",
"value": "sadasdasd"
}
]
Das sieht nach noch mehr Drecksarbeit aus. Vorallem der offene Chat.
Ich versuche einfach zuerst Hinweis, Mitteilung und Gruppenchat zu machen. Das sind auch die häufigsten (und einzigsten) Varianten die ich sehe.
Die JSON-Daten der Nachrichten haben auch noch mehr Daten, ob sie gelöscht sind usw. Das müsste ich mir auch nochmal angucken.
Vlt kannst du auch in dem Projekt von koenidv noch nach möglichkeiten das zu verstehen suchen
ich steige vlt auch bald in den Nachrichten ein
Vlt kannst du auch in dem Projekt von koenidv noch nach möglichkeiten das zu verstehen suchen
Gute Idee, solange der Code nicht schwarze Magie ist.
https://github.com/koenidv/sph-planner/blob/main/app/src/main/java/de/koenidv/sph/networking/Messages.kt
ich steige vlt auch bald in den Nachrichten ein
(:
https://github.com/koenidv/sph-planner/blob/main/app/src/main/java/de/koenidv/sph/networking/Messages.kt
Das sieht doch eigentlich sehr überschaubar aus! Nur mache ich mir langsam Sorgen, dass client.dart zu unübersichtlich wird. Ich werde das in den nächsten Tagen nochmal überarbeiten und besser strukturieren.
JSON einer Unterhaltung (Alle antworten an alle)
{
"Id": "4806",
"Uniquid": "228322614a2589d70c062d2f13bb9741-bb10e4a2-7f82-450a-9a4b-2e580ab79feb",
"Sender": "65767",
"SenderArt": "Betreuer",
"groupOnly": "ja",
"privateAnswerOnly": "nein",
"noAnswerAllowed": "nein",
"Betreff": "blablablablablablablablabla",
"Datum": "18.01.2021 13:10",
"Inhalt": "blablabla,<br \/>\r\n<br \/>\r\nblablabla f\u00fcr blablabla.<br \/>\r\nDu ben\u00f6tigst f\u00fcr die blablabla (heute gab es gro\u00dfe technische Schwierigkeiten), blablabla.<br \/>\r\n<br \/>\r\nWas gut w\u00e4re, wenn du mich h\u00f6rst ......Gr\u00fcn",
"WeitereEmpfaenger": null,
"SenderName": "<span class=\"label label-info\"><i class=\"fas fa-user\"><\/i> Gr\u00fcn<\/span>",
"Papierkorb": "nein",
"statistik": {
"teilnehmer": 1,
"betreuer": 0,
"eltern": 0
},
"own": false,
"username": "<span class=\"label label-info\"><i class=\"fas fa-user\"><\/i> Gr\u00fcn<\/span>",
// eigentlich nur Text nicht HTML
"noanswer": true,
"Delete": "17.02.2021 um 13:10:51 Uhr",
"reply": [
{
"Uniquid": "813356fa6304bca5f5446e2b684072f8-c4a7e781-bf23-4bcc-8bef-d20c192f2a40",
"Sender": "395032",
"SenderArt": "Teilnehmer",
"Datum": "23.12.2023 20:04",
"Id": "58071",
"Betreff": "Re: Deine Frage zur Videokonferenz",
"Inhalt": "*test*",
"SenderName": "<span class=\"label label-default\"><i class=\"fas fa-child\"><\/i> Gapinski, Dacjan<\/span>",
"WeitereEmpfaenger": null,
"statistik": {
"teilnehmer": 0,
"betreuer": 1,
"eltern": 0
},
],
"empf": "",
"private": 1,
"ungelesen": false,
"AntwortAufAusgeblendeteNachricht": false
}
Andere JSON (Antwort nur an Ersteller)
{
"Id": "58150",
"Uniquid": "d4581b08c326f1b2b986785382de8b73-104bcf0e-5d82-4ed1-bd90-f51919ca46a7",
"Sender": "36726",
"SenderArt": "Betreuer",
"groupOnly": "nein",
"privateAnswerOnly": "ja",
"noAnswerAllowed": "nein",
"Betreff": "aktuelle Infos LZA",
"Datum": "13.01.2024 11:38",
"Inhalt": "sdfgsdfsdfsdfsdfghfgbxcvdfdfgedrtf",
"WeitereEmpfaenger": " <span class=\"label label-primary\"><i class=\"fas fa-users\"><\/i> Lernende der Klasse 08GA<\/span> <span class=\"label label-primary\"><i class=\"fas fa-users\"><\/i> Lernende der Klasse 08GB<\/span> <span class=\"label label-primary\"><i class=\"fas fa-users\"><\/i> Lernende der Klasse 08GC<\/span> <span class=\"label label-primary\"><i class=\"fas fa-users\"><\/i> Lernende der Klasse 09GA<\/span> <span class=\"label label-primary\"><i class=\"fas fa-users\"><\/i> Lernende der Klasse 09GB<\/span> <span class=\"label label-primary\"><i class=\"fas fa-users\"><\/i> Lernende der Klasse 09GC<\/span>",
"SenderName": "<span class=\"label label-info\"><i class=\"fas fa-user\"><\/i> Kowalski<\/span>",
"Papierkorb": "nein",
"statistik": {
"teilnehmer": 147,
"betreuer": 0,
"eltern": 0
},
"own": false,
"username": "El Krigo",
"noanswer": false,
"Delete": "12.02.2024 um 11:38:00 Uhr",
"reply": [
{
"Uniquid": "6577332b6150380735ddfba73c2cc1ad-e6380647-11e6-4c46-a29c-f8829c21f50d",
"Sender": "36726",
"SenderArt": "Betreuer",
"Datum": "13.01.2024 12:18",
"Id": "58156",
"Betreff": "Re: aktuelle Infos LZA",
"Inhalt": "sdfgsdfdfgsdfgsdfgsdfg",
"SenderName": "<span class=\"label label-info\"><i class=\"fas fa-user\"><\/i> sdgsdfgdfgdfg<\/span>",
"WeitereEmpfaenger": null,
"statistik": {
"teilnehmer": 147,
"betreuer": 0,
"eltern": 0
},
"own": false,
"username": "sdfgsdfgsfdgsdfg",
"noanswer": false,
"Delete": "12.02.2024 um 12:18:14 Uhr",
"reply": [],
"empf": "",
"private": 147,
"ungelesen": false,
"AntwortAufAusgeblendeteNachricht": "on"
},
],
"empf": "",
"private": 147,
"ungelesen": false,
"AntwortAufAusgeblendeteNachricht": "on"
}
Felder
Manche dieser Felder kann man für die POST Requests benutzen und Andere kann man noch implementieren.
Nur noch Lehrersuche implementieren und dann kann ich mit der UI anfangen.
Lehrersuche
Sieht so aus, als wäre es nicht nur eine Lehrersuche:
https://support.schulportal.hessen.de/knowledgebase.php?article=845