[gelöst] Wie machen? Jeder User hat ein "Produkt/Projekt" welches er pflegt und Inhalte dazu erstellt
am 09.03.2023 - 12:41 Uhr in
Hallo liebe Community. Der Titel "Produkt" ist etwas falsch ausgedrückt aber könnte damit verglichen werden. Ich erkläre mal kurz das Ziel wo ich hin will.
Wir nutzen Drupal als Intranet im Unternehmen, wir betreuen Pflegekinder.
30 Mitarbeiter (Erzieher) sind User.
Jeder Mitarbeiter hat ein oder zwei Kinder um das er sich kümmert und über das er im Intranet Bericht erstatten soll.
Das Kind mit seinen Stammdaten müsste also erstmal angelegt werden (so wie ein Produkt/Projekt). Ich dachte vllt. könnte das mit Taxonomie funktionieren? 1. Frage: Ist Taxonomie da das richtige oder gibt es was anderes?
Vokabular: Kind
Begriff: Name des Kindes
Felder: individuell dann erstellen wie Geburtstag, Diagnosen, Kinderarzt etc.
Die Abfragefelder wären bei jedem Kind dieselben.
Der dazugehörige Mitarbeiter soll nun zu seinem Kind/ern die Felder selbst ausfüllen und regelmäßig pflegen.
Ein anderer Mitarbeiter soll das Stammdatenblatt aber nicht bearbeiten dürfen und sehen, wenn dann sehen nur den Namen, sodass er weiß welche Kinder alle im Unternehmen sind, aber er soll nicht die personenbezogenen Daten des Kindes sehen/bearbeiten. Der Admin allerdings schon.
Soweit ja vllt noch einfach. Jetzt wirds aber komplizierter:
Jeder Mitarbeiter muss noch Berichte zu seinem Kind schreiben, zbs. Wochenbericht. Dazu erstelle ich ja erstmal den Inhaltstypen "Wochenbericht" und kreiere die Abfragefelder.
Der Mitarbeiter füllt nun alles aus. Er müsste aber jetzt an irgendeiner Stelle noch sein Kind auswählen um den Bericht dem Kind zuzuordnen. Das ginge wahrscheinlich über die Funktion Auswahlliste. Und hier möchte ich nicht das alle Kinder welche hinterlegt sind zu sehen sind, sondern nur seine Kinder.
2. Frage: Wie kann ich das Kind (Produkt) mit dem entsprechenden Mitarbeiter verknüpfen? So dass alle Inhalte welche der Mitarbeiter erstellt, seinem Kind zugeordnet werden können ohne das der Mitarbeiter ewig scrollen muss um sein Kind/er zu finden? Hier ist nämlich die Gefahr das er ein anderes ausversehen auswählt.
Zum Schluss braucht es noch eine Übersichtseite (Views?) auf der die Stammdaten des Kindes zu finden sind und alle Inhalte welche zum Kind erstellt wurden, wie zbs. den Wochenbericht. Auch diese Übersicht darf nur der entsprechende Mitarbeiter sehen, kein anderer außer der Admin.
Das ist son bisschen auch als wenn jeder Mitarbeiter an seinem eigenen Projekt arbeitet und ein anderer darf das nicht einsehen.
Ich hoffe, ich habe mich gut erklärt und jemand hat eine zündende Idee.
Vielen Dank und schöne Grüße,
Josi
- Anmelden oder Registrieren um Kommentare zu schreiben
Stammdaten als Content type
am 09.03.2023 - 13:36 Uhr
Wenn ich es lösen müsste, würde ich für die Kind-Stammdaten einen neuen Content type anlegen. Die erforderlichen Felder wie Name, Geburtstag, Diagnosen, Kinderarzt usw. können darin definiert werden. Um sicherzustellen, dass nur der Eigentümer eines Nodes diesen bearbeiten kann, kann man in Drupal die Zugriffsrechte entsprechend konfigurieren. Beispielsweise können Benutzerrollen definiert werden und dann die Zugriffsrechte für jeden Content-Typ separat festgelegt werden. Um sicherzustellen, dass nur der Eigentümer eines Nodes diesen bearbeiten kann, in den Zugriffseinstellungen des Content-Typs die entsprechenden Rechte setzen. Dadurch wird der Zugriff auf den Node auf den Benutzer beschränkt, der den Node erstellt hat. Mit existerenden Zusatzmodulen kann man auch die Sichtbarkeit eines Nodes einschränken. Beispielsweise Content access: https://www.drupal.org/project/content_access
Zur zweiten Frage: Diese hätte sich mit meiner Lösung erledigt. Ein von einem Mitarbeiter erstellter Node „gehört“ diesem automatisch.
Zur dritten Frage: Views ist gut, wenn man viele Nodes gesammelt ausgeben möchte. Für die Darstellung eines einzelnen Nodes konfiguriert man die Darstellung mit den Drupal Bordmitteln. Ggf. unter Hinzuziehung von Display Suite oder Layout Builder.
Und zu den Wochenberichten: Entweder man definiert ein Text-Feld innerhalb des Content type, das als "multiple value" angelegt ist, also mehrere Werte annehmen kann. Oder man erstellt dafür einen eigenen Content type (Zugriffsberechtigungen siehe oben) und erstellt darin ein Entity reference Feld, um es mit dem Node zu verknüpfen, der das Stammblatt des Kindes repräsentiert.
hm ok ich erkläre noch mal anders
am 09.03.2023 - 14:13 Uhr
Vllt geht es doch mit taxonomie?
Ich habe ein Vokabular "Kinder" erstellt und darunter einen Begriff mit dem Namen des Kindes "Dennis Maier"
Dann habe ich habe unter dem Profil Mitarbeiter1 ein Feld namens "Kind1" eingebaut, welches sich auf das Vokabular "Kinder" bezieht und habe dann den "Dennis Maier" ausgewählt. Somit habe ich dem Mitarbeiter1 in seinem Profil das Kind Dennis Maier zugeordnet/hinterlegt.
Dann habe ich einen Content Type "Wochenbericht" erstellt. Und nun komme ich nicht weiter. Was ich gerne möglich machen möchte wäre:
Wenn Mitarbeiter1 jetzt einen Wochenbericht schreibt, dann soll er in einem Feld (nur welches?) NUR sein Kind welches in seinem Profil hinterlegt ist auswählen können. Auswählen deshalb, da er auch zwei Kinder haben kann, welche ich dann natürlich vorab auch in seinem Profil hinterlegen muss.
Welches Feld nehme ich, sodass nur das hinterlegte Kind zur Auswahl steht? Wie heißt die Beziehung des Feldes und gibt es sowas überhaupt?
Wenn das ginge, kann nämlich zukünftig jeder erstellte Inhalt egal welcher Content Type dem Kind zugeordnet werden.
Die Stammdaten würde ich dann auch über einen extra Content Type kreieren und dann genauso dem Begriff "Dennis Maier" zuordnen. Das würde ich dann im Namen des Mitarbeiters1 machen, sodass irgendwann auf der großen Übersichtsseite (View) von "Dennis Maier" die Rechte eingestellt werden "eigenen Content". Dann kann kein anderer die Daten von dennis sehen.
Danke :)
Ok du scheinst dich
am 09.03.2023 - 15:39 Uhr
Ok du scheinst dich auf Taxonomien eingeschossen zu haben. Worin siehst du denn konkret den Vorteil?
um es besser zu sortieren
am 09.03.2023 - 16:23 Uhr
Ich habe es jetzt mal so gemacht wie du sagst. Habe einen Content Typ Kind erstellt. Eingeloggt als Mitarbeiter1 habe ich einen Inhalt "Dennis Maier" erstellt. Dann habe ich noch einen Content Type "Wochenbericht" erstellt. Und habe eingeloggt als Mitarbeiter1 einen Wochenbericht geschrieben. Der Wochenbericht ist nun automatisch mit dem Kind "Dennis" verknüpft. Das ist ja gar nicht mal schlecht. Aber was ist wenn Mitarbeiter1 nun noch einen weiteren Wochenbericht über das zweite Kind "Zoe" schreiben möchte. Dann stünde zu dem Wochenbericht auch der Name "dennis", denn der Mitarbeiter kann leider nicht auswählen zu welchem Kind der Wochenbericht nun gehört. Oder gibt es dafür eine Lösung?
oh ich glaube ich habe es
am 09.03.2023 - 16:53 Uhr
oh ich glaube ich habe es jetzt verstanden. ich habe etwas rumprobiert. Ich hatte den fehler gemacht und hinterlegte im Userprofil Mitarbeiter1 den Namen (also den Inhalt Dennis vom Inhaltstyp Kind). das darf ich dann nicht machen. Ich habe jetzt nur im Inhaltstyp Wochenbericht ein feld verknüpft zum Inhaltstyp kind. Und da der Mitarbeiter1 zwei Kinder Dennis und Zoe (Inhaltstyp Kind) selbst angelegt hat, kann er auch nur die im Wochenbericht auswählen. Wenn der Wochenbericht dann gespeichert ist, erscheint der Name des Kindes (je nachdem welches ausgewählt wurde) als Link und der Link führt direkt zur Kindseite (Stammblatt).
Das könnte funktionieren :)
Ich spiele das mal weiter durch. Dann habe vielen Dank.