#65 Kursfilterung funktioniert nicht fürs Wilhelm-Busch-Gymnasium Stadthagen

Closed
opened 4 years ago by tomjschwanke · 26 comments

Wahrscheinlich liegts daran, dass die Kurse im Feld "Fach" stehen. Wenn ich die Kurse im vorgesehenen Bereich eintrage (12 im Klassenfeld) passiert weder eine Filterung noch eine Hervorhebung. Lasse ich die 12 weg, gibts gar keine Ergebnisse. Wenn ich aber den Kurs im Klassenfeld eintrage, funktioniert die Filterung, nur kann ich dann immer nur einen Kurs gleichzeitig filtern. Vorschlag: Das Kurs-Filter-Feld frei auswählbar machen.

Wahrscheinlich liegts daran, dass die Kurse im Feld "Fach" stehen. Wenn ich die Kurse im vorgesehenen Bereich eintrage (12 im Klassenfeld) passiert weder eine Filterung noch eine Hervorhebung. Lasse ich die 12 weg, gibts gar keine Ergebnisse. Wenn ich aber den Kurs im Klassenfeld eintrage, funktioniert die Filterung, nur kann ich dann immer nur einen Kurs gleichzeitig filtern. Vorschlag: Das Kurs-Filter-Feld frei auswählbar machen.
Tom Jason Schwanke commented 4 years ago
Poster

Hier ein Screenshot vom nicht geparsten Plan

Hier ein Screenshot vom nicht geparsten Plan
Tom Jason Schwanke commented 4 years ago
Poster

Klassenfilter: 12 Kursfilter: MA1

Keine Filterung/Hervorhebung

Klassenfilter: 12 Kursfilter: MA1 Keine Filterung/Hervorhebung
Tom Jason Schwanke commented 4 years ago
Poster

MA1 im Klassenfilter

MA1 im Klassenfilter
Tom Jason Schwanke commented 4 years ago
Poster

Zum Testen kann ich die Logindaten per PN schicken

Zum Testen kann ich die Logindaten per PN schicken

Nein! Nicht schicken! Wir haben doch nicht umsonst die Funktion "Parser Request" implementiert.

Geh doch mal bitte in die Einstellungen. Dort auf "Um die Entwicklung eines Tabellenparsers bitten".

@JasMich.de schaust du das an, oder soll ich mich mal dran setzten?

Nein! Nicht schicken! Wir haben doch nicht umsonst die Funktion "Parser Request" implementiert. Geh doch mal bitte in die Einstellungen. Dort auf "Um die Entwicklung eines Tabellenparsers bitten". @JasMich.de schaust du das an, oder soll ich mich mal dran setzten?
Tom Jason Schwanke commented 4 years ago
Poster

Ok, Request über die App abgeschickt. Vielen Dank

Ok, Request über die App abgeschickt. Vielen Dank

Danke.

Keine Sorge. Die Kurse stehen bei fast allen in der Spalte "Fach".

Die einzige Sache, die mir auffällt, ist, dass es ähnlich wie bei #58 ist. Dort wurden auch die Kurse mit einem ? "gesplitted".

Allerdings kann ich das Ganze bei mir an der Schule nachvollziehen. Ich habe bei mir mal 9E und D eingetragen. Jetzt wird nicht mehr nach der Klasse gefiltert, sondern nach dem Fach(ohne das es gehilighted wird). Auch ist es egal, in welcher Spalte in meinem Fall ein "D" steht.

Das ganze ist wohl noch niemandem aufgefallen. Ich glaube, dass issue ist eher für @fynngodau oder @JasMich.de, die haben sich um die Parser/filter gekümmert.

Ich schaue mir das aber trotzdem mal an....

Danke. Keine Sorge. Die Kurse stehen bei fast allen in der Spalte "Fach". Die einzige Sache, die mir auffällt, ist, dass es ähnlich wie bei #58 ist. Dort wurden auch die Kurse mit einem ? "gesplitted". Allerdings kann ich das Ganze bei mir an der Schule nachvollziehen. Ich habe bei mir mal 9E und D eingetragen. Jetzt wird nicht mehr nach der Klasse gefiltert, sondern nach dem Fach(ohne das es gehilighted wird). Auch ist es egal, in welcher Spalte in meinem Fall ein "D" steht. Das ganze ist wohl noch niemandem aufgefallen. Ich glaube, dass issue ist eher für @fynngodau oder @JasMich.de, die haben sich um die Parser/filter gekümmert. Ich schaue mir das aber trotzdem mal an....

@Bixilon ich übernehme das gerne. Mir hat die Schule heute 4 Stunden geschenkt, die ich gerne in App-Entwicklung investiere.

@Bixilon ich übernehme das gerne. Mir hat die Schule heute 4 Stunden geschenkt, die ich gerne in App-Entwicklung investiere.
Tom Jason Schwanke commented 4 years ago
Poster

Interessant, hab mir die App gerade mal ohne Änderung selber kompiliert und da klappt gar keine Filterung, nichtmal nach Klasse 12, es wird trotzdem alles angezeigt

Edit: Hatte das Auge angetippt, Filter funktioniert

~~Interessant, hab mir die App gerade mal ohne Änderung selber kompiliert und da klappt gar keine Filterung, nichtmal nach Klasse 12, es wird trotzdem alles angezeigt~~ Edit: Hatte das Auge angetippt, Filter funktioniert
fynngodau commented 4 years ago
Owner

Die Kursbezeichnung muss bisher im Info-Feld stehen, damit sie richtig gefiltert werden kann. Die Spalte "Fach" wird beim Parsen mit der Spalte "Klasse" verschmolzen.

Die Kursbezeichnung muss bisher im Info-Feld stehen, damit sie richtig gefiltert werden kann. Die Spalte "Fach" wird beim Parsen mit der Spalte "Klasse" verschmolzen.
Tom Jason Schwanke commented 4 years ago
Poster

Was ist mit dem Info-Feld gemeint? Eine Spalte in der Tabelle oder das Feld über der Tabelle? Da steht nämlich nur "12" statt den Kursen (wie "MA1" oder "PHA") bei uns

Was ist mit dem Info-Feld gemeint? Eine Spalte in der Tabelle oder das Feld über der Tabelle? Da steht nämlich nur "12" statt den Kursen (wie "MA1" oder "PHA") bei uns
fynngodau commented 4 years ago
Owner

Aus, sagen wir mal, historischen Gründen geht DSBDirect von den vier Spalten affectedClass, teacher, lesson und info aus. Alles andere wird (für Units und WhiteYellow) gemäß der Regeln in FlexibleReader.constructEntry(…) passend gemacht. Das dürfte bei dir Raum + · + Text falls Text vorhanden, ansonsten nur der Raum sein.

Aus, sagen wir mal, historischen Gründen geht DSBDirect von den vier Spalten `affectedClass`, `teacher`, `lesson` und `info` aus. Alles andere wird (für `Units` und `WhiteYellow`) gemäß der Regeln in `FlexibleReader.constructEntry(…)` passend gemacht. Das dürfte bei dir Raum + ` · ` + Text falls Text vorhanden, ansonsten nur der Raum sein.
fynngodau commented 4 years ago
Owner

Ich sehe folgende Möglichkeiten:

  1. Fach nach Info statt nach Klasse mergen – am einfachsten, akzeptabel; Inkonsistenz zu vorherigen Versionen vermutlich wenig schwerwiegend
  2. Kursfilter zusätzlich in Klasse suchen lassen – ebenfalls einfach, akzeptabel, da Kollisionsgefahr gering
  3. "Vorschlag: Das Kurs-Filter-Feld frei auswählbar machen": setzt Verständnis der Nutzenden über die verschiedenen in DSBDirect verwendeten Spalten voraus, somit Gefahr der Fehlkonfiguration

Ich würde sagen, die Kollisionsgefahr ist angesichts von Kursbezeichnungen wie eth1a oder MA6 bei einer case-sensitive Suche deutlich kleiner als die Gefahr der Fehlkonfiguration. Deswegen erscheint mir die zweite Option am sinnvollsten, oder?

Ich sehe folgende Möglichkeiten: 1. Fach nach Info statt nach Klasse mergen – am einfachsten, akzeptabel; Inkonsistenz zu vorherigen Versionen vermutlich wenig schwerwiegend 2. Kursfilter zusätzlich in Klasse suchen lassen – ebenfalls einfach, akzeptabel, da Kollisionsgefahr gering 3. "Vorschlag: Das Kurs-Filter-Feld frei auswählbar machen": setzt Verständnis der Nutzenden über die verschiedenen in DSBDirect verwendeten Spalten voraus, somit Gefahr der Fehlkonfiguration Ich würde sagen, die Kollisionsgefahr ist angesichts von Kursbezeichnungen wie `eth1a` oder `MA6` bei einer case-sensitive Suche deutlich kleiner als die Gefahr der Fehlkonfiguration. Deswegen erscheint mir die zweite Option am sinnvollsten, oder?
Tom Jason Schwanke commented 4 years ago
Poster

Stimmt

Stimmt
fynngodau commented 4 years ago
Owner

Mir ist gerade aufgefallen, dass der Filter tatsächlich ignoreCase deaktiviert hat. Jedenfalls wäre das also die zweite Option:

diff --git a/app/src/main/java/godau/fynn/dsbdirect/table/reader/Reader.java b/app/src/main/java/godau/fynn/dsbdirect/table/reader/Reader.java
index 1468078..1553b06 100755
--- a/app/src/main/java/godau/fynn/dsbdirect/table/reader/Reader.java
+++ b/app/src/main/java/godau/fynn/dsbdirect/table/reader/Reader.java
@@ -176,7 +176,8 @@ public abstract class Reader {
             boolean teacherAppears = thingsInString(e.getReplacementTeacher(), teacherThings, true, false) // Teacher in teacher
                     || thingsInString(e.getInfo(), teacherThings, false, false); // Teacher in info
 
-            boolean courseAppears = thingsInString(e.getInfo(), courseThings, true, true);
+            boolean courseAppears = thingsInString(e.getInfo(), courseThings, true, true)
+                    || thingsInString(e.getLesson(), courseThings, true, true);
 
             boolean infoOnly = affectedClassEmpty && e.getLesson().isEmpty() && e.getReplacementTeacher().isEmpty() && !e.getInfo().isEmpty();
Mir ist gerade aufgefallen, dass der Filter tatsächlich ignoreCase deaktiviert hat. Jedenfalls wäre das also die zweite Option: ``` diff --git a/app/src/main/java/godau/fynn/dsbdirect/table/reader/Reader.java b/app/src/main/java/godau/fynn/dsbdirect/table/reader/Reader.java index 1468078..1553b06 100755 --- a/app/src/main/java/godau/fynn/dsbdirect/table/reader/Reader.java +++ b/app/src/main/java/godau/fynn/dsbdirect/table/reader/Reader.java @@ -176,7 +176,8 @@ public abstract class Reader { boolean teacherAppears = thingsInString(e.getReplacementTeacher(), teacherThings, true, false) // Teacher in teacher || thingsInString(e.getInfo(), teacherThings, false, false); // Teacher in info - boolean courseAppears = thingsInString(e.getInfo(), courseThings, true, true); + boolean courseAppears = thingsInString(e.getInfo(), courseThings, true, true) + || thingsInString(e.getLesson(), courseThings, true, true); boolean infoOnly = affectedClassEmpty && e.getLesson().isEmpty() && e.getReplacementTeacher().isEmpty() && !e.getInfo().isEmpty(); ```
fynngodau commented 4 years ago
Owner

Ich commite das mal.

Ich commite das mal.
Tom Jason Schwanke commented 4 years ago
Poster

Hmm hab die App mit der Änderung bei mir kompiliert und es hat nicht geklappt

Hmm hab die App mit der Änderung bei mir kompiliert und es hat nicht geklappt
fynngodau commented 4 years ago
Owner

Hm, ich hatte es ausprobiert, bei mir hat es funktioniert. Was genau hast du denn gerade versucht?

Hm, ich hatte es ausprobiert, bei mir hat es funktioniert. Was genau hast du denn gerade versucht?
Tom Jason Schwanke commented 4 years ago
Poster

Praktisch das selbe wie bei dir, mache aber nochmal einen neuen Pull

Praktisch das selbe wie bei dir, mache aber nochmal einen neuen Pull
fynngodau commented 4 years ago
Owner

Hat irgendwer die Datei vom FTP-Server entfernt? Ich wollte das mit dem Plan von @tomjschwanke testen, aber ich finde nicht die passende Datei.

Hat irgendwer die Datei vom FTP-Server entfernt? Ich wollte das mit dem Plan von @tomjschwanke testen, aber ich finde nicht die passende Datei.
Tom Jason Schwanke commented 4 years ago
Poster

Hab ne neue Hochgeladen

Hab ne neue Hochgeladen

Die Datei hieß: f915e4b91e.htm

Ich habe sie nicht gelöscht, Jasper auch nicht. Ich habe sie aber nochmals hochgeladen. Hatte sie mir heruntergeladen zum Anschauen.

Die Datei hieß: f915e4b91eaa43edb797186e47b823e73dd70ae3.htm Ich habe sie nicht gelöscht, Jasper auch nicht. Ich habe sie aber nochmals hochgeladen. Hatte sie mir heruntergeladen zum Anschauen.
fynngodau commented 4 years ago
Owner

@Bixilon Das sieht anders aus als im Screenshot, deswegen habe ich sie nicht wiedererkannt.

@Bixilon Das sieht anders aus als im Screenshot, deswegen habe ich sie nicht wiedererkannt.

Jip. Habe ich auch gesehen. Komisch. Die 2. Datei sieht normal aus. Naja. Wir haben es ja:)

Jip. Habe ich auch gesehen. Komisch. Die 2. Datei sieht normal aus. Naja. Wir haben es ja:)
fynngodau commented 4 years ago
Owner

Ach, ich habe mich vertan und getLesson() mit getAffectedClass() verwechselt.

Ach, ich habe mich vertan und `getLesson()` mit `getAffectedClass()` verwechselt.
Tom Jason Schwanke commented 4 years ago
Poster

Ah stimmt, jetzt klappts.

Ah stimmt, jetzt klappts.
Sign in to join this conversation.
No Milestone
No assignee
4 Participants
Loading...
Cancel
Save
There is no content yet.