Skip to content

4 ‐ Abgeschlossene Ziele

Tamaro Walter edited this page Sep 5, 2024 · 2 revisions

Feature: userpreferences

Ziel des Branches:

  • Inhalte von Townsquare sollen vom Benutzer gefiltert werden können. Zu den Filtern gehört das ein Kurs-, ein Zeit- und ein Letterfilter. Der Kursfilter wird durch Checkboxes implementiert und jeder in Townsquare anzeigbare Kurs bekommt eine Checkbox. Der Zeitfilter wird durch Radiobuttons implementiert und der Nutzer kann verschiedene Zeiträume in der Vergangenheit und Zukunft angeben, in denen er Inhalte sehen will. Der Letterfilter filtert nach der Art der Benachrichtigung (Posts oder nur deadlines etc.)
  • Die Filter sollen für kommende Sitzungen in der Datenbank gespeichert werden.

Erreichte Funktionalität:

  • Filter mit Javascript, die den Content filtern, in dem die verschiedenen Filter unabhängig ein Letter als "zulässig" markieren. Ein Controller, der auch in Javascript geschrieben ist, zeigt dann nur Inhalte an, die von allen Filtern als "zulässig" markiert worden sind.
  • Zeit und Letterfilter werden in einer Datenbank gespeichert. Dazu ruft ein Javascript-Modul über AJAX einen selbst geschriebenen Web-service auf, der eine PHP-Funktion ausführt, die dann die Einstellungen in der Datenbank speichern kann).
  • Es gibt ein neues Seitenpanel, wo der Benutzer die Filter bedienen kann.
  • Der Systemadmin kann die Farben der Inhalte von Townsquare bei der Installation anpassen.

Erstellte Funktionen und Dateien:

Javascript:
- amd/src/coursefilter.js 
- amd/src/filtercontroller.js   (Zeigt Inhalte je nach Einstellung der Filter an)
- amd/src/letterfilter.js
- amd/src/timefilter.js
- amd/src/usersettings_save.js  (Speichert Filtereinstellungen in Datenbank und führt bereits gespeicherte Einstellungen auf die Filter aus

PHP:
- classes/privacy/provider.php  (Klasse, um Nutzerdaten zu exportieren und bei Bedarf zu löschen, ist Pflicht bei Plugins mit Datentabellen)
- db/install.xml                (Definition der Datenbanktabelle)
- db/services.php               (Definition der Web-services, die Javascript aufrufen kann)
- db/upgrade.php
- externallib.php               (Klasse mit Funktion des Web-service. Enthält die Funktion, um Einstellungen in der Datenbank zu speichern).
- tests/externallib_test.php
- tests/privacy/provider_test.php
- lib.php
- locallib.php                  (Enthält Funktion, um ausgewählte Farben zu speichern.)
- settings.php                  (Seite, um Farben anzupassen)

Mustache:
- templates/sidepanel.mustache

Feature: calendarevents

Ziel des Branches:

  • Grundsätzliche Struktur des Plugins festlegen
  • Die Events und Posts sammeln und anzeigen können
  • Grundsätzliches Design festlegen

Erreichte Funktionalitäten:

  • Events werden gesammelt und als "Letters" gespeichert. Letters werden kategorisiert nach postletter (Forum-/Moodleoverflowposts), activitycompletionletter (Aufgaben die abgeschlossen werden sollen) und basicletter (Allgemeine Benachrichtigung). Dabei werden Events nur von den Core-plugins unterstützt
  • Mit Mustache ist die visuelle Struktur des Plugins und aller derzeitigen Letterkategorien festgelegt und lässt sich anzeigen
  • Mit dem Javascriptmodul "postletter.js" werden post mit zu langem Text automatisch eingeklappt, wobei Nutzer den Text selbst wieder aus/einklappen können
  • Mit CSS wird das Design umgesetzt: alle Letter haben ein einheitliches Design und sind farblich unterscheidbar. Gibt es sehr viele Elemente, so lässt durch den Block scrollen
  • Mit PHPUnit Tests der Calendar- und postevents und des contentcontrollers wird die grundfunktionalität für zukünftige Versionen sichergestellt

Erstellte Funktionen und Dateien:

Javascript:
- amd/src/postletter.js

PHP:
- classes/letter/letter.php sowie classes/letter/post_letter.php und classes/letter/activitycompletion_letter.php
- classes/output/renderer.php
- classes/lettercontroller.php (Zum erstellen der Letters)
- classes/townsquareevents.php (Zum sammeln aller relevanten Daten)
- tests/calendarevents_test.php sowie tests/postevents_test.php und tests/contentcontroller_test.php

Mustache:
- templates/main.mustache für die Haupstruktur des Plugins
- templates/basicletter.mustache, templates/postletter.mustache, templates/activitycompletionletter.mustache für das Aussehen eines Letters

Weitere Dateien für die language Strings u. ä.

Clone this wiki locally