Abgeordnetenwatch.de - Relaunch Drupal 8
Non-Profit
Projektbeschreibung
abgeordnetenwatch.de selbst gibt es seit 15 Jahren, Am 01.März 2020 haben wir die neue Version, basierend auf Drupal 8, gelauncht. Bereits vorher lief das Projekt auf Drupal 7.Projektziele und -ergebnisse
Die Hauptziele, die wir mit dem Relaunch erreichen wollten:- eine saubere Datenstruktur: statt auf User und Nodes wie bisher zu setzen, werden die meisten Daten nun mit Custom Entity Typen umgesetzt.
- eine einfachere Menüführung, welche die Nutzer:innen einfacher zu der Hauptfunktion der Seite geleitet: Politiker:innen Fragen zu stellen
- die Integration eines Moderationstools: Fragen und Antworten werden bei uns durch ein Team moderiert, wofür bisher ein sehr altes Python-Script verwendet wurde. Das Ziel war es, den benötigten Technologie-Stack zu reduzieren und eine Fehlerquelle - die doppelte Datenhaltung und die Datensynchronisierung - zu minimieren. Dieses Moderationstool ist nun ebenfalls in Drupal 8 umgesetzt
Herausforderungen
- eine Datenstruktur zu konzeptionieren und umzusetzen, welche flexibel genug ist, verschiedene Wahlsysteme und Geschehnisse abzubilden, ohne zu viele Ausnahmen von der Regel einzubauen (Fraktionswechsel, Nachrückermandate) und damit die Pflege und Wartbarkeit zu erschweren- die alten Daten aus dem Drupal 7 Projekt und dem alten Modtool in diese neue Datenstruktur zu migrieren
- für die verschiedenen Nutzergruppen trotz der Komlexität der Daten eine einfache Oberfläche zu bieten: für Fragesteller:innen, Politiker:innen, Moderator:innen und Mitarbeiter:innen in Datenpflege und Verwaltung
Ersteres wurde mithilfe der Entity API von Drupal 8 sehr gut erreicht. Viele Daten sind referenzierte Entities, welche die Kapselung von Daten und Funktionen ermöglicht. So können für jeden Datentyp separat Daten gepflegt werden und Besonderheiten und Ausnahmen übersichtlich in den Klassen der jeweiligen Entität definiert werden. Zudem konnte auf Hooks in diversen Modulen weitgehend verzichtet werden.
Die Migration wurde mithilfe des Migrate Moduls und eigenen Migrate Plugins umgesetzt. Im Vorfeld des Relaunches wurde diese Migration diverse Male getestet und weiterentwickelt, so dass die Migration am Tag des Relaunches sehr entspannt und fehlerfrei verlief.