sikkepitje / TeamSync

TeamSync is een dynamische koppeling tussen Magister en Microsoft School Data Sync ten behoeve van het geautomatiseerd aanmaken en bijwerken van klassenteams in Microsoft Office 365 voor docenten en leerlingen van een school, die willen samenwerken in een vak, klas of lesgroep.
GNU General Public License v3.0
8 stars 2 forks source link

verkeerde vakkoppeling #4

Closed decommentator closed 1 year ago

decommentator commented 2 years ago

Dank voor dit geweldige script.

Er gaat iets niet goed bij het omzetten van een naam als 1thts.akb

In de clixml staat wel het juiste vak erbij: magister_docent.clixml `

        <MS>
          <S N="Klas">1thts.akb</S>
          <S N="Vakcode">KB</S>
        </MS>
      </Obj>`

Maar in uitvoer section.csv komt dit te staan: 1thts.akb Aardrijkskunde

sikkepitje commented 2 years ago

Dank voor de melding. Ik weet dat het opzoeken van de vakomschrijving niet een exact proces is. Eerst wordt een opzoektabel met alle vakken gemaakt. Daarna wordt gekeken in een steeds kleiner deel van de lesgroepcode wat in deze opzoektabel wordt gevonden. Het is duidelijk dat de eerste match gebeurt op " ak" in plaats van "akb". Ik zal deze opzoek logica eens nalopen of dat niet beter kan

sikkepitje commented 2 years ago

Ik heb je bericht niet goed gelezen merk ik en ik praat ook nog onzin 😑. De opzoektabel is niet gesorteerd, maar is een hashtable, dus een match is een match. Ik leid af uit je bericht dat de vakcodes "ak" en "kb" allebei bestaan.

De vakomschrijving wordt gezocht door een vakcode te distilleren uit de lesgroepnaam. Het kijkt naar de tekens achter een punt of komma , met weglating van alle cijfers. De overblijvende tekenreeks wordt achtereenvolgens kleiner gemaakt totdat er een match is met een bestaande vakcode in de vakkentabel. Uitgaande van 1thts.akb: De eerste match word gezocht bij "akb" -> geen match gevonden. Daarna wordt de laatste letter eraf gehaald en een match gezocht bij "ak"-> match gevonden: Aardrijkskunde.

TeamSync kan niet op eenduidige manier bepalen dat de vakcode "kb" is in plaats van "ak", uitgaande van een lesgroep die 1thts.akb heeft. Wat betekent die "a" hierin? De enige goede manier hierin is te zorgen dat de lesgroepnaam een vakcode bevat, waarvan de vakomschrijving eenduidig af te leiden is.

Voor nu is de beste actie om de teams te hernoemen zodat ze de juiste vakomschrijving hebben. Als je handig bent, zou je de tabel in magister_vak.clixml kunnen aanpassen, voordat het exportscript start en dan de juiste omschrijving toevoegen voor vak "akb".

decommentator commented 2 years ago

dat zal ik als workaround aanpassen. wel vreemd dat iets wat bekend is, het staat immers correct in magister_docent.clixml , nog apart ergens opgezocht moet worden. De a is van de 1thtsa groep die kb in een/meerdere clusters volgt

sikkepitje commented 2 years ago

Dat team was samengesteld op basis van een lesgroep en niet een klas. Voor lesgroepen wordt de vakcode niet gegeven. Anders was de vakomschrijving makkelijk gevonden.

Ik zal het in de documentatie erbij vermelden dat de bepaling van de vakomschrijving een best effort is. Heette je lesgroep "1thtsa.kb" in plaats van "1thts.akb" , dan was dit geen issue. Ik zie geen akties die ik zou kunnen nemen om een foute vakomschrijving voor dit geval te vermijden.

sikkepitje commented 1 year ago

Sinds versie 20220718 pas ik een algoritme toe waar teams worden aangemaakt door leerling-groep hard te matchen aan docent-groepvak. Dit geeft een betrouwbaarde methode om te weten in welke groep leerling en docent samenkomen. Er wordt geen ingewikkelde interatieve methode gebruikt voor het achterhalen van de vakcode, met een kans op een fout resultaat maar de vakcode wordt gewoon opgezocht. Wellicht verhelpt dit jouw probleem,. Ik weet het wel zeker eigenlijk. 😀Dus ik sluit dit issue.