stadtluzern / decidim-ocl

GNU Affero General Public License v3.0
2 stars 2 forks source link

Umfragen ergänzt um Emailversand #50

Open innosmith opened 3 years ago

innosmith commented 3 years ago

Das Umfragemodul informiert nicht proaktiv, dass neue Eingaben erfolgt sind. Es wäre wünschenswert, wenn pro Umfrage zusätzlich eine beliebige Emailadresse "notify by email" definiert werden könnte, welche bei neuen Einträgen informiert wird; am besten inkl. der übermittelten Daten. Mit dieser Erweiterung könnten Umfragen auch als Kontaktformulare verwendet werden als auch rascher darauf reagiert werden, wenn neue Eingaben erfolgt sind. Aktuell gehört es zu den täglichen Jobs nachzuschauen, ob neue Ergebnisse eingetroffen sind. Ähnliche aber nicht identische Anforderungen werden in der Community ebenfalsl diskutiert. Bitte prüfen und Aufwand für unsere Anforderung schätzen.

Kagemaru commented 3 years ago

Im Moment sehe ich folgende Möglichkeiten:

  1. Auf die Umsetzung dieses Vorschlages warten. Umsetzung ist noch nicht garantiert.
  2. Ein eigenes Modul schreiben
  3. Die Templates dort patchen, wo ihr ein Formular möchtet.
    • Template Patches sind bei Upgrades mühsam, weil sie Zeitaufwändig manuell geprüft/übertragen werden müssen.
    • Formulare müssen geschützt werden, da sie ein beliebtes Ziel von Spambots sind.
  4. Das Template patchen mit einem Link auf ein externes Kontaktformular.
    • Die Template Patches bleiben, aber ein Link ist viel schneller übertragen als ein komplettes Formular
    • Die Sicherung des Formulars kann man auf dem externen Service verwalten.

@carlobeltrame Eventuell fällt dir noch eine Alternative ein?

carlobeltrame commented 3 years ago

Weitere Optionen die mit dem decidim-awesome Modul möglich sind:

  1. https://github.com/Platoniq/decidim-module-decidim_awesome#8-fullscreen-iframe-component Ein externes Kontaktformular könnte nicht nur via Link, sondern auch via iFrame in einen Partizipationsprozess oder ein Assembly eingebettet werden. (Lars hat diese iFrame-Einbettung bereits mit einem Miro Board ausprobiert)
  2. https://github.com/Platoniq/decidim-module-decidim_awesome#9-live-support-chat der "Live Support Chat", müsste hinten durch aber via Telegram statt E-Mail laufen.
innosmith commented 3 years ago

Danke für die Ideenvorschläge. Ein eigenes Modul wäre wohl die beste Lösung, um organisationsspezifisch eine Ziel-Emailadresse zu konfigurieren und Kontaktseiten an beliebigen Stellen in Organisationen oder auch Partizipationsprozessen einsetzen zu können. Ein externes Formular mit iFrame integriert führt dazu, dass die Daten nicht auf der Decidim-Plattform verarbeitet werden (Achtung Datenschutz), das Look & Feel oft nicht passt und nicht jede Organisation in der Lage ist, selber ein embeddable Kontaktformular zu integrieren.

Wie gross schätzt ihr den Aufwand für ein eigenes Kontaktformular-Modul? Der referenzierte Vorschlag (Punkt 1) sieht noch nicht so aus, als wäre dieser demnächst in Umsetzung und es bezieht sich dabei immer um eine Ziel-Emailadresse; die des Decidim-Admins. Unsere User sollen selber angeben können, wer eine Kontaktanfrag erhält.

Kagemaru commented 3 years ago

Bis jetzt haben wir uns immer gegen ein Modul entschieden, daher haben wir auch noch keine Erfahrung damit. Daher kann ich keine

Ich kann dieses Ticket als Anlass nehmen mich in die Module einzulesen und ein neues zu erstellen. Das bedeutet allerdings einen erheblichen Overhead für dieses Ticket, der nichts mit Kontaktformularen zu tun hat.

Andererseits könnten wir ein weiteres Ticket erstellen, dass den Wissensaufbau über Module beinhaltet.

innosmith commented 3 years ago

Dann warten wir noch zu. Früher oder später kommt das erste Modul, entweder für ein ordentliches Kontaktformular oder etwas anderes.

larsUE commented 3 years ago

Wir bräuchten das auch für die Stadt Zürich und könnten, falls sie hier noch nicht weitergekommen sind (hab nachgefragt), die Entwicklung teilen.

innosmith commented 3 years ago

Unsere Organisationen behelfen sich damit, die Kontaktdaten auf deren Organisationsseite zu schreiben. Wir bräuchten ein Kontaktmodul für diese und allenfalls auch übergeordnet plattformweit, wie in von @larsUE referenzierten Fall. Dem Entwickler von Decidim Awesome habe ich unsere Anforderung auch schon geschildert; sie haben hierzu auch schon Ideen und ev. liesse sich das kombinieren. Die Prio insgesamt für dieses Thema ist aber für Dialog Luzern (noch) nicht so hoch. Die Alternative ist die Einbindung eines Formular-Tools via iFrame (zumindest für die Organisationen), unter Berücksichtigung Datenschutz und Co.

innosmith commented 3 years ago

Lasst uns dieses Thema noch einmal systematisch anschauen, wie wir dies lösen könnten. Anforderungen: Das Umfragemodul kann so ergänzt werden, dass das Formular nicht nur im Backend gespeichert, sondern jeweils auch noch an eine beliebige Emailadresse gesendet wird. Die Zielemailadresse (wahrscheinlich braucht es noch ein frei definierbares Subject) muss ebenfalls im Backend definiert werden.

larsUE commented 3 years ago

Einveerstanden! Gemäss diesem Meta-Decidim Post gibt es diese Library für Contact-Forms.

Wie würdet ihr in Luzern das Formular brauchen? Für uns würde es Sinn machen, so wie von Virgil beschrieben: Als eigenständige Seite auf der Hilfeseite, die im Backend konfiguriert werden kann.

Bezüglich Entwicklung schlage ich vor, dass Puzzle die anfallenden Stunden einfach halb halb aufteilt, wäre das für euch in Ordnung? Was wäre ungefähr eurer Zeitrahmen?

innosmith commented 3 years ago

Bitte den überarbeiteten ersten Kommentar berücksichtigen

carlobeltrame commented 3 years ago

Grobschätzung: 2PT für generisches Benachrichtigungsmail, oder 3.5PT wenn die eingegebenen Umfrageantworten im Email mitkommen sollen.

Tech Notes:

innosmith commented 3 years ago

@carlobeltrame : interpretiere ich richtig?

1) Dass hierfür kein neues Modul notwendig ist? Trotzdem schaffen wir aber eine Abhängigkeit, welche bei zukünftigen Updates auf Kompatibilität geprüft werden muss. 2) Im Backend kann die Empfänger-Emailadresse selber pro Umfrage festgelegt werden. 3) Wenn keine Emailadresse spezifiziert wird, wird auch keine Email versendet 4) Egal ob per Email versendet oder nicht, der Umfragedatensatz wird immer gespeichert und kann im Backend ausgewertet werden

Anstelle von menschlich lesbaren serialisierten Textfeldern könnte im generierten Email alternativ auch ein Link direkt auf den spezifischen Datensatz im Backend generiert werden? Das wäre dann wohl einfacher umzusetzen als alle Umfragefelder zu serialisieren, korrekt?

carlobeltrame commented 3 years ago

@innosmith ja, deine Interpretationen sind korrekt.

  1. Die Änderungen wären natürlich in einem Modul besser abgekapselt, bzw. wäre diese Erweiterung wohl auch für andere decidim-User nützlich, als Modul oder gar als neues Feature für decidim selber. Aber im Interesse der schnellen Umsetzung können wir die Änderungen die ich identifiziert habe auch ohne Modul umsetzen.
  2. Ja, eine Adresse pro Umfrage-Komponente wäre angedacht. Soweit ich verstehe macht man ja für eine zweite Umfrage einfach eine weitere Komponente, daher sollte das gleichwertig sein.
  3. Das hatte ich bisher noch nicht so auf dem Schirm, aber macht absolut Sinn und ist trivial umzusetzen.
  4. Genau richtig. Das Mail ist ein neuer "Seiteneffekt", alles andere bleibt genau wie bisher.
  5. Ein Link zur neu erfassten Umfrageantwort wäre sehr viel einfacher umzusetzen, ich denke das wäre in den 2PT enthalten.
Naadjjaa commented 3 years ago

@innosmith Für mich wäre ein KO Kriterium noch, dass dies optional ist. Man kann eine E-Mail Adresse hinterlegen, muss es aber nicht. @carlobeltrame Wäre das der Fall?

innosmith commented 3 years ago

@Naadjjaa : Emailversand optional, wenn angegeben; siehe bestätigte "Interpretation" oben, Punkt 3.

larsUE commented 3 years ago

Ich wäre dafür, dies als Modul umzusetzen. Das Bedürfnis dafür ist stark da, und das würden wir auch wiederverwenden. @carlobeltrame : Wie gross schätzt du den Mehraufwand ein, es als Modul zu veröffentlichen? Oder wäre das bereits in den 3.5 Tagen drin? Auch hier können wir sehr gerne die Projekttage zwischen Luzern und Zürich teilen.

innosmith commented 3 years ago

@larsUE : Vielleicht wäre noch besser, dies im Nachgang zu unserer Umsetzung in den Standard zurück zu geben anstelle eines spez. Moduls?

larsUE commented 3 years ago

@anthony: Stimmt, wäre natürlich auch toll. Könnten wir ja vorher mit dem Decidim/project abklären oder einfach mal einen PR einreichen :)

carlobeltrame commented 3 years ago

Wenn wir erst mal ein leeres Modul aufgesetzt hätten, wäre der Aufwand von da aus gleich wie wenn wir es ohne Modul machen, also ca. 2PT. Ein neues Modul einrichten haben wir noch nie gemacht, schätze aus heutiger Sicht 1-2PT dafür. Ausserdem muss man das Modul danach bei decidim Updates wohl nochmals testen und ggf. leicht anpassen, das kann jeweils 0-0.5PT beanspruchen.

Aber ich stimme euch zu in der Vermutung, dass dieses Feature auch bei decidim selber gut ankommen könnte. Wir werden dann noch Unit Tests schreiben müssen, was in 1PT machbar sein sollte.

larsUE commented 3 years ago

Ich habe auf Meta-Decidim noch eine weitere Änderung am Surveys Modul vorgeschlagen: https://meta.decidim.org/processes/roadmap/f/122/proposals/16389

Es geht darum, ein Feld ohne Frage, d.h. nur zu Informationszwecken zu haben, was bei unseren Prozessen häufig benötigt wird, z.b. als Zwischenschritt. Liessen sich bei der Entwicklung der Benachrichtigung Synergien nutzen, im Umfang, dass wir das auch gleich mitbetrachten sollten?

carlobeltrame commented 3 years ago

@larsUE Ich glaube das würde ich separat behandeln. Das Email ist Logik die beim Absenden der Umfrage laufen muss, während dein Informations-Feld bei der Anzeige der Umfrage ins Spiel kommt.

innosmith commented 3 years ago

@carlobeltrame , @larsUE : @Naadjjaa und ich möchten dies zum Start so einfach wie möglich umsetzen. Danach können wir mit den ersten Erfahrungen ein Proposal eingeben für in den Standard. Abhängig vom Feedback könnte immer noch ein sep. Modul entstehen. Wir erhoffen uns vom Standard-Weg, dass wir mittelfristig von weiteren Updates am Survey-Modul profitieren; ohne individuelle Anpassungsaufwände bei Updates oder unterschiedlicher Survey-Module.

Für die Umsetzung scheint mir noch wichtig, dass bei Bedarf die Emailadresse im Backend wieder gelöscht (oder geändert) werden kann und in der Folge keine Emails versendet werden. Trotzdem kann die Umfrage unverändert weiterlaufen.

Naadjjaa commented 3 years ago

@innosmith @carlobeltrame @larsUE Habe gerade bei der Durchsicht der Module etwas entdeckt, was es eventuell zu prüfen gilt: https://github.com/mainio/decidim-module-feedback

larsUE commented 3 years ago

Wow, das hört sich super an! Könnte tatsächlich unser Kontakt formular ssein, und sogar noch viel mehr. Ich schau, dass wir das mal in Zürich testen können.

Edit: Issue da: https://github.com/puzzle/decidim-zuerich/issues/105

innosmith commented 3 years ago

Danke @Naadjjaa für den Tipp zum Modul Feedback. @carlobeltrame , @larsUE zur Info. Wenn ich es richtig interpretiere, kann damit Feedback in Form von einem? Textfeld eingeholt und im Backend gespeichert werden; bei Bedarf noch Versand an eine vordefinierte Emailadresse. Wir müssen es in Aktion sehen, um es genauer zu verstehen.

Im Gegensatz dazu lassen sich mit der Erweiterung der Umfragen um einen Emailversand andere Use Cases bedienen. Aber auch ein einfaches Feedbackformular umsetzen mit den gewünschten strukturierten Daten. Die Empfänger-Emailadresse kann von unseren Org-Admins selber gepflegt werden. Beim "Feedback" Modul ev. nur durch den Plattform-Admin.

carlobeltrame commented 3 years ago

Ist implementiert und auf der Testumgebung ausgerollt.

Neue Übersetzungen die ihr anpassen könnt: decidim.components.surveys.settings.global.notified_email: E-Mail für Benachrichtigungen decidim_ocl.surveys.survey_answered_mailer.answered.subject: Neue Antwort auf Umfrage "%{survey_name}" decidim_ocl.surveys.survey_answered_mailer.answered.answered_survey: Jemand hat an der Umfrage "%{survey_name}" teilgenommen. decidim_ocl.surveys.survey_answered_mailer.answered.view: Zur Umfrage

innosmith commented 3 years ago

@carlobeltrame : wäre es möglich, beim Email-Link anstatt die Übersicht direkt die damit verknüpfte Antwort anzuzeigen?

carlobeltrame commented 3 years ago

Gute Idee, habe ich so ergänzt, bitte testen.

Allerdings muss ich sagen dass das theoretisch ein Sicherheitsrisiko darstellt... Die URL die ich jetzt (unverschlüsselt) per Mail versende enthält eine Session-ID, weil Decidim die Antworten intern darüber identifiziert. Würde jemand das Mail abfangen (Mail ist kein sicherer Kommunikationskanal) könnte er die Session ID vermutlich bei sich in ein Cookie verpacken und die Person imitieren welche die Umfrage beantwortet hat. Nicht gerade schön, besonders da Plattform-Admins ja Zugriff auf viele solche Session-IDs bekommen können. Immerhin sind die Session-IDs in ihrer Lebenszeit begrenzt, ein allfälliger Angriff müsste also zeitnah nach Beantwortung der Umfrage geschehen.