Mehrmals die gleiche Rolle zu unterschiedlichen Daten

Hast du Probleme Admidio einzurichten? Hier kannst du Fragen rund um die Einrichtung stellen.
Antworten
hausi
Beiträge: 30
Registriert: 24. Sep 2011, 21:00

Mehrmals die gleiche Rolle zu unterschiedlichen Daten

Beitrag von hausi »

Hallo erst mal

Habe Admidio (Version 2.2.8 ) vor kurzem entdeckt und werde es mit grosser Sicherheit für unsere Mitglieder-Verwaltung einsetzen, da (fast) alle unsere Anforderungen abdeckt werden können. :D

Auf ein Problem bin ich allerdings gestossen:
Wir haben Mitglieder, die mehrmals zu unterschiedlichen Daten die gleiche Rolle inne haben, z. Bsp. ein Trainer, der zwischendurch mal ein oder zwei Jahre pausiert und dann wieder die Rolle Trainer einnimmt.

Schön wäre es, wenn dies mit Admidio wie folgt möglich wäre, so dass die Historie erhalten bleibt:
Rolle Trainer vom 1.1.2000 bis 31.12.2007
Rolle Trainer vom 1.1.2010 bis ....

Sobald aber bei einem Mitglied die "ehemalige Rolle" wieder aktiviert wird, verliert man die Info, der ersten Rollenzuteilung.

Gibt es hierfür bereits eine Lösung???
Bin für jeden Hinweis dankbar.

Gruss Hausi
Benutzeravatar
fasse
Administrator
Beiträge: 6229
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hallo Hausi,

nein, leider gibt es dafür noch keine Lösung. Allerdings ist diese Funktionalität von eine zukünftige Version geplant. Leider wird es aber noch nichts für die 2.3 :( Aber vielleicht danach.

Viele Grüße
Fasse
hausi
Beiträge: 30
Registriert: 24. Sep 2011, 21:00

Einfacher Lösungsansatz

Beitrag von hausi »

Habe einen relativ einfachen Lösungsansatz gefunden, der unsere Anforderungen ausreichend erfüllt:

Aktuell wird ja davon ausgegangen, dass es immer je Mitglied und Rolle maximal einen Rolleneintrag gibt (egal ob aktuelle oder ehemalige Rollenmitgliedschaft). Unser Anforderungen sind aber, dass je Mitglied und Rolle maximal ein aktiver und beliebig viele ehemalige Rolleneinträge möglich sind.

Da die aktiven Rolleneinträge an Hand des End-Datums 31.12.9999 einfach erkannt werden können, helfen folgende Anpassungen, unsere Anforderung zu erfüllen:

Anpassung in der Datei /adm_program/system/classes/table_members.php
Zeile 82 und 113:

Code: Alles auswählen

$this->readData(array('rol_id' => $rol_id, 'usr_id' => $usr_id), "mem_end = '9999-12-31'");
Anpassung in der Datei /adm_program/modules/profile/roles_ajax.php
Zeile 104:

Code: Alles auswählen

$mem->readData(array('rol_id' => $_GET['rol_id'], 'usr_id' => $_GET['usr_id']), "mem_end = '9999-12-31'");
Damit mehrere Einträge der gleichen Rolle bei einem Mitglied auch in der DB gespeichert werden können, muss bei der Tabelle "adm_members" der Typ des Index "ak_rol_usr_id" von "UNIQUE" auf "INDEX" geändert werden.

Noch offenes Problem:
Beim Löschen von "ehemaligen Rollen" wird nicht immer derjenige Eintrag gelöscht, bei dem auf das X geklickt wurde. Das liegt daran, dass der Eintrag nicht über die ID des Datensatzes sondern über die ID von Mitglied und Rolle gelöscht wird.
Da die historischen Einträge für uns wichtig sind und somit auch nicht gelöscht werden sollen, können damit gut leben und bei Fehleingaben auch mal die Daten direkt in der DB anpassen/löschen.

Ansonsten konnten wir bisher keine Unzulänglichkeiten entdecken.
Vielleicht hilft's ja auch anderen.

Gruss Hausi
Antworten