Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module ›

[gelöst] Node-Zustimmung eines gesamten Teams

Eingetragen von Vovo (36)
am 05.01.2010 - 13:44 Uhr in
  • Module
  • Drupal 6.x

Hallo zusammen,

ich stehe zur Zeit vor einem strukturellen Problem mit den Modulen Workflow, Trigger (bzw. AJAX Trigger) und Aktionen.
Konkret ist das Ziel, dass über das Modul event ein "Termin-Node" erstellt wird, dem aber alle Nutzer einer bestimmten Rolle zustimmen müssen, bevor dieser Termin in den Kalender eingetragen wird.

Das mag nun etwas kompliziert klingen, deswegen beschreibe ich den Workflow an einem Beispiel:
Es gibt eine Benutzerrolle "Kernteam" mit 3 Benutzern. Ein "normaler" User oder ein Benutzer des Kernteams soll nun ein Event erstellen können, das aber noch nicht im Kalender eingetragen wird, sondern als "Terminvorschlag" gilt.
Alle Mitglieder des Kernteams sollen nun benachrichtigt werden (oder die Terminvorschläge in einer Übersicht sehen) und die Möglichkeit haben, diesen Termin anzunehmen oder abzulehnen.
Erst wenn alle Mitglieder des Kernteams dem Termin zugestimmt bzw. zugesagt haben, soll dieser im Kalender veröffentlicht werden.
Lehnt ein Mitglied des Kernteams den Terminvorschlag ab, sollen die anderen Kernteam-Mitglieder benachrichtigt und der Terminvorschlag verworfen werden.
So können teamintern Termine gefunden werden, bei denen alle Kernteam-Mitglieder Zeit haben und die automatisch (für alle anderen Nutzer sichtbar) im Kalender eingetragen werden, wenn jedes Teammitglied zugesagt hat.

Entfernt erinnert mich dieses Szenario an den oft besprochenen Fall der "Redakteur"-Benutzerrolle, die einem eingereichten Artikel erst zustimmen muss, bevor er veröffentlicht wird. Der Unterschied ist allerdings, dass in meinem Szenario alle Teammitglieder die Node freigeben (bzw. ihr zustimmen) müssen, bevor sie veröffentlicht wird.

Ich habe bereits versucht, mit dem Workflow-Modul diesen Prozess und mittels Trigger bzw. AJAX Trigger die "Zustimmung" abzubilden. Leider scheitert dies an mangelnden Trigger-Events.
Es wäre auch denkbar, dass "Terminvorschlag" und der letztlich beschlossene "Termin" zwei verschiedene Inhaltstypen sind und die Daten des "Terminvorschlags" (z.B. durch Poll realisiert) an eine Event-Node übergeben werden, wenn alle Kernteam-Mitglieder zugesagt haben.

Alternativ habe ich das MakeMeeting-Modul ausprobiert, welches die Terminfindung bereits abbildet. Doch hier fällt die Integration der Benutzerrolle "Kernteam" und das Übertragen in das Event-Modul sehr schwer.


Leider komme ich in diesem Punkt nicht weiter. Hat jemand eine Idee, wie man diesen Terminfindungsprozess des Kernteams aufziehen könnte und welche Module dafür am besten geeignet sind?
Über Hilfestellung oder Lösungshinweise würde ich mich sehr freuen und schon einmal vielen Dank für's Lesen! ;-)

‹ Node Gallery + Massenupload Projektmanagement mit Abrechnungssystem ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Kleine Neuerung: Ich habe

Eingetragen von Vovo (36)
am 16.01.2010 - 16:15 Uhr

Kleine Neuerung: Ich habe das Rules-Modul ausprobiert in Kombination mit CCK. Doch auch damit konnte ich den "Zustimmungs"-Prozess nicht umsetzen.
Eine alternative Möglichkeit scheint das Modul Availability Calendars zu sein, aber das implementiert leider gar keinen Workflow.

Kann mir da denn niemand helfen? :-(

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Lösung rückt näher:

Eingetragen von Vovo (36)
am 30.01.2010 - 00:35 Uhr

Die Lösung rückt näher: Eine Kombination aus "Rules" und "Flags" scheint am sinnvollsten.
Ein Terminvorschlag (z.B. eine "Event"-Node) könnte unveröffentlicht bleiben - Team-Mitglieder kriegen eine entsprechende Übersicht an unveröffentlichten Terminvorschlägen per "Views" - bis entsprechende "Flags" gesetzt wurden. Erst dann wird der Beitrag per "Rules" veröffentlicht.
Bleibt nur noch das Problem, dass *alle* Benutzer der Kernteam-Rolle ein Flag setzen müssen, damit die Veröffentlichung stattfindet - und nicht nur einer.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Versuchs doch mal mit

Eingetragen von wla (9038)
am 30.01.2010 - 00:53 Uhr

Versuchs doch mal mit custom_field. So ein Feld fügst Du dem Termin hinzu. Darin kannst Du zählen, wie oft die Flagge gesetzt ist. Dann hast Du eine Rule, die den Termin updated (dabei wird das custom_field berechnet), wenn die Flagge gesetzt wird. Und danach eine Rule, die überprüft, ob der Wert auf 5 steht und dann den Termin veröffentlicht. Nicht ausprobiert, aber so als Idee.

Beste Grüße
Werner

.
Werner
drupal-in-duesseldorf.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das ist echt eine gute Idee!

Eingetragen von Vovo (36)
am 30.01.2010 - 11:06 Uhr

Das ist echt eine gute Idee! Auf das Zählen der Flags bin ich noch nicht gekommen.
Aber könnte dann nicht ein einziger Benutzer 5 mal hintereinander die Flagge setzen und die entsprechenden Regeln auslösen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Flag liegt ja beim User.

Eingetragen von wla (9038)
am 30.01.2010 - 15:32 Uhr

Die Flag liegt ja beim User. Du zählst also, wieviele Benutzer diese Flagge gesetzt haben. Also kann ein einzelner User das nicht beeinflussen.

Beste Grüße
Werner

.
Werner
drupal-in-duesseldorf.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *

  • Anmelden oder Registrieren um Kommentare zu schreiben

Okay, das klingt echt nach

Eingetragen von Vovo (36)
am 30.01.2010 - 17:32 Uhr

Okay, das klingt echt nach *der* Lösung! :-)

Ich habe nun ein Ganzzahl-Feld "field_bestaetigungen" mit CCK für Event-Nodes hinzugefügt.
Die erste Rule wird gefeuert "ON event A Node has been flagged, under 'Bestätigung'".

Kannst du mir vielleicht noch einen Tipp geben, wie die auszuführende Aktion dann aussieht? Der Wert von field_bestaetigung soll ja um 1 erhöht werden. Also wähle ich beim Erstellen einer neuen Regel die Aktion "CCK -> Ein Feld füllen" und das entsprechende Feld aus. Aber ich fürchte, die Erhöhung muss mittels PHP-Code ausgeführt werden, oder?
Im Prinzip also etwas wie:
return array(
0 => array('value' => value+1)
};

Aber ich bin mir sicher, dass das so nicht funktioniert. ^^"
Wie macht man das richtig?

  • Anmelden oder Registrieren um Kommentare zu schreiben

In dem PHP-Code wirst Du

Eingetragen von wla (9038)
am 30.01.2010 - 20:51 Uhr

In dem PHP-Code wirst Du eine kleine Datenbankabfrage brauchen, die die Anzahl der User zählt, die eine Flag auf diesen Termin gesetzt haben. Diesen Wert mußt Du dann eintragen. Bau Dir die Abfrage mal mit Views und sieh Dir den SQL-Code an, den Views gebildet hat. So in etwa wirst Du den auch aufsetzen müssen, damit es geht.

Beste Grüße
Werner

.
Werner
drupal-in-duesseldorf.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *

  • Anmelden oder Registrieren um Kommentare zu schreiben

gelöst

Eingetragen von Vovo (36)
am 31.01.2010 - 19:47 Uhr

Es geht auch ohne PHP-Code! :-)

Das Flags-Modul bringt ein tolles Feature mit: flag count. Also ein Flag "Bestätigung" erstellen, dem node type "event" zuordnen und mit Rules kann man den "Zustimmungsprozess" dann so abbilden:

ON event A Node has been flagged, under "Bestätigung"
IF
Flagging count >= 5, for flagged content, under "Bestätigung"
DO
Beitrag veröffentlichen

und für die Vollständigkeit die Rückrichtung:
ON event A Node has been unflagged, under "Bestätigung"
IF
Flagging count <= 5, for flagged content, under "Bestätigung"
DO
Beitragsveröffentlichung zurückziehen

So funktioniert es! :-)
Vielen Dank für die Hilfe! Ich hoffe, mich bald mal revanchieren zu können. ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Drupal 8: Modul prevnext
  • Multidomain
  • [gelöst]Drupal 8: Fußzeilenmenü auf Login-Seite verschwunden
  • Vom jeweiligen User die Kunstwerke ausgeben.
  • Fullcalendar - Grösse Dialogfenster
  • Notify-Modul: Einmalige Benachrichtigung ueber neue Nodes senden
  • [gelöst]Drupal 9 und Ubuntu 20.04
  • [gelöst] Swiftmailer installieren um Simplenews zum Laufen zu bringen
  • Installiert ja, aber kein einziger link funktioniert
  • Drupal 9 - "read more" übersetzen nun anders, nur wie?
  • [gelöst] Nur editierbare Medien in Media-View anzeigen
  • Probleme mit dem Adminmenü
Weiter

Neue Kommentare

  • Soweit ich die
    vor 29 Minuten 12 Sekunden
  • Erst mal gut, dass es so ein
    vor 1 Stunde 26 Minuten
  • Hey! Das Modul
    vor 19 Stunden 16 Minuten
  • Ich verwende das
    vor 19 Stunden 45 Minuten
  • Du benötigst das Modul
    vor 21 Stunden 11 Minuten
  • Kontakt ist schonmal da! Es
    vor 21 Stunden 54 Minuten
  • Hallo, nein, keine
    vor 22 Stunden 25 Minuten
  • Und da sind keine
    vor 22 Stunden 52 Minuten
  • Hallo, Danke für die
    vor 23 Stunden 13 Minuten
  • Wie kommt das Menü in die
    vor 1 Tag 1 Stunde

Statistik

Beiträge im Forum: 246314
Registrierte User: 18909

Neue User:

  • coolpet
  • Demophobie
  • JorgeClayton

» Alle User anzeigen

User nach Punkten sortiert:
wla9038
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3917
ronald3834
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 4 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association