Public Feature Pipeline issueshttps://git.wechange.de/code/public-feature-pipeline/-/issues2023-09-27T12:24:17Zhttps://git.wechange.de/code/public-feature-pipeline/-/issues/51NEW Profiles2023-09-27T12:24:17ZNatalijaNEW Profileshttps://git.wechange.de/code/public-feature-pipeline/-/issues/50NEW Space (group/project) dashboard2023-09-27T12:24:21ZNatalijaNEW Space (group/project) dashboardConcept: https://app.mural.co/t/wechange6866/m/wechange6866/1690788426948/603355d36572492f5c02680ccea49584450a1263?sender=ue65229b00cda8787cbef1750
## Idea
The dashboard of projects, groups and prospectively spaces will be simplified. ...Concept: https://app.mural.co/t/wechange6866/m/wechange6866/1690788426948/603355d36572492f5c02680ccea49584450a1263?sender=ue65229b00cda8787cbef1750
## Idea
The dashboard of projects, groups and prospectively spaces will be simplified. Instead of the different app-widgets, we want to implement a timeline with the newest updates of all app accumulated and a pinwall for posts, that shoud not get lost in the timeline
![Screenshot_2023-08-09_at_09.50.08](/uploads/2d78a34d55e093f05d1af1edebb227a1/Screenshot_2023-08-09_at_09.50.08.png)
## Redesign Process
- implementing the new space dashboard is requirement for implementing the new notification concept
- the implementation of the new space dashboard is also part of implementing the new space logic.https://git.wechange.de/code/public-feature-pipeline/-/issues/37Notifications Redesign2024-02-15T11:44:59ZNgoc-AnhNotifications Redesign# MVP notifications
- what is a notification? anything where reaction is required:
- [ ] membership requests (reaction as admin is required)
- [ ] invitations to an event, to participate in a group/project, participate in poll, appo...# MVP notifications
- what is a notification? anything where reaction is required:
- [ ] membership requests (reaction as admin is required)
- [ ] invitations to an event, to participate in a group/project, participate in poll, appointment poll, conference
- [ ] anything where I am being mentioned
- [ ] changes regarding my subscriptions (currently: objects I follow)
- what is happening with the other notifications by the old definition?
- [ ] in the new design they will be displayed on the timeline
- [ ] for the MVP: they will be displayed on the personal dashboard, just like it is now
# Distinction between similar features
*subscribe, bookmark, follow, like*
* see Area "Abgrenzung ähnlicher Funktionen" on [Mural Board](https://app.mural.co/t/wechange6866/m/wechange6866/1648541290740/ff6ae42a84166715805753515acd25e130cf83a8?sender=82949a41-f974-4205-808f-bdea83ccb2ac). most important results:
* subscriptions are 2-leveled: 1. with (subscribe) and 2. without beeing notificated (bookmarked)
* subscription without notifications = former bookmark
* no similar functions at one spot anymore
* Profile: follow (at spaces/organisations you can also request to join)
* Object/Function: subscribe
* entry in the timeline: like
| what? | connect | subscribe | bookmarked | like |
| ------| ------| ------ | ------ | ------ |
objects | profiles | all objects | all objects | posts NO objects
displayed where? | pers. dashboard | pers. dashboard | bookmark dropdown | pers. daschboard |
notification? | no notifications for personal profiles | notifications in quick view | no notification | notification for author? |
![Screenshot_2023-10-02_at_12.42.05](/uploads/5d1dc12a440fa8138fafc18011f911a6/Screenshot_2023-10-02_at_12.42.05.png)
older version
<details>
![Screenshot_2023-08-09_at_09.34.21](/uploads/07333e18f59b1fa0fc35d1d6efbea286/Screenshot_2023-08-09_at_09.34.21.png)
</details>
# Elaborate version
<details>
# Preparations / Concept
- [ ] old design: what to do without the timelime
- [ ] Wording & translations:
- [ ] frequency options and other settings descriptions (see below)
- [ ] texts for UI components
- [ ] MockUps for new Design
# Logic / Functionalities
redefinition of alert: alerts are divided into *notifications* and *subscription events*
notifications (mandatory):
- what is a notification?
- [ ] anything where reaction is required: requests (reaction as admin is required), invitations, mentions, ...
- [ ] important information: change of roles/rights, subscriptions (important by choice)...
- actions that can be performed on/in a notification
- [x] open/ view: opens the corresponding page/object/post/profile...
- [x] show all: only available for grouped notifications
- [ ] dismiss (new): deletes notification in the section of new notifications
- [ ] react (new): dependig on context user an quickly react with a button (accept, decline) or input field (e.g. comment to post)
- [ ] unsubscribe (new): only avaiable for subscriptions
- [ ] hide (new): only available for fly-in notifications
- attributes of a notification
- [ ] type
- [ ] (relative) timestamp
- [ ] (space-) context
- [ ] URL (optional, is opened when action "open" is performed)
- [ ] description (text + icons/avatars)
- [ ] read (bool, is `true` when new, turns `false` when displayed at least 5 seconds)
- notification preview
- [ ] shows all new / unread notifications or last 5 notifications
- [ ] has a link to notification page
- [ ] notification page (new)
- [ ] filter/ sort notifications (new): by type, context, time, ...
- [ ] shows all notifications (also dismissed ones)
- [ ] shows last 10 notifications, when scrolled 10 more were loaded ("infinite scrolling")
subscriptions (optional):
- you get subscription event from profiles that you can *follow* or objects/entities that you can *subscribe*
- [ ] subscription events I get by **following** someone only appear in the timeline (old design: news?), not in the notifications preview nor on the notification page
- [ ] subscription events I get by **subscribing** something, also appear in the notifications
follow function:
- [ ] old design: user can follow (person) profile, project, group
- [ ] new design: user can follow a profile (person or organisation/space)
- [ ] user automatically follows a profile (space/group/project) by default with a new membership
- [ ] user automatically unfollows a profile when leaving the corresponding space/group/project
subscribe function:
- [ ] user can subscribe object (pad, event, poll, ...) or post -> event is triggered when object/post is modified or deleted
- [ ] new created objects/posts always appear in the timeline if profile is followed
digest:
- digests = daily/weekly email reports
- [ ] comprises a summary of timeline content / subscription events
- [ ] comprises additionally notifications if daily or weekly reports are selected as notifications frequency option
email setting categories:
- for each category a user can configure the email frequency
- [ ] personal stuff: invitations, mentions, ...
- [ ] admin stuff (global): requets, ...
- [ ] admin stuff can be configured for each group/project/space individually
- [ ] subscriptions (global)
- [ ] subscriptions can be configured for each subscription individually
- [ ] 3rd party apps
- [ ] Rocket.Chat
- [ ] NextCloud
settings:
- [ ] frequency-options:
- Never - do not send emails for notifications
- Immediatly - send an email for each notification
- Daily - notifications are aggregated into a daily report
- Weekly - notifications are aggregated into a weekly report
- [ ] Daily is set as default
- [ ] newsletter on/off is now located at notification settings (not in profile settings anymore)
- [ ] new option to unsubcribe ALL emails (digests + newsletter + notifications)
- [ ] configurations shall be saved, in case the "unsubscribe all“ toggle is deactivated the last / previous configuration is active again
# UI
components to be mockuped
- [ ] Notification
- [ ] Notifications Preview
- opens when clicking on the bell in the navigation bar (available on every site, both in old and new design)
- [ ] Notification Page
- location new design`wechange.de/notifications`(does not exist in old design)
- [ ] Notification Settings
- location new design `wechange.de/settings/notifications/`
-location old design `wechange.de/profile/notifications/`
</details>
# Resources
[Details about the new concept](https://app.mural.co/t/wechange6866/m/wechange6866/1648541290740/ff6ae42a84166715805753515acd25e130cf83a8?sender=f236709a-4200-4d2d-be84-ae810392edc8) (Mural Board)mukamukahttps://git.wechange.de/code/public-feature-pipeline/-/issues/43Mitgliederansicht: Grid view (Kachelansicht)2023-09-27T12:26:13ZHelmut Wolmanhelmut.wolman@wechange.deMitgliederansicht: Grid view (Kachelansicht)## User Stories
<details><summary> Why is this Feature/ Bug important? </summary>
Nutzer sollen sich auf dem Portal, in Gruppen, Projekten und Konferenzen vernetzen (Bspw. bei Konferenzen im internationalen Bereich, Netzwerktreffen etc.)...## User Stories
<details><summary> Why is this Feature/ Bug important? </summary>
Nutzer sollen sich auf dem Portal, in Gruppen, Projekten und Konferenzen vernetzen (Bspw. bei Konferenzen im internationalen Bereich, Netzwerktreffen etc.). Das ist bisher jedoch noch nicht so leicht. Es gibt zwar schon
- eine Kartenansicht (wo nur sichtbar ist, wer auch ein Standort angegeben hat)
- und darunter eine Listenansicht (nur mit Name)
Aber das man 100 Profile auf der Karte anklickt ist relativ unwahrscheinlich. Zumal sich beim Klick auf ein Profil in der Mitgliederliste sich immer gleich eine ganz neue Seite öffnet. "Open in new tab" ist leider nicht möglich.
![grafik](/uploads/49ee7e0790790c3f197ff93e984b275b/grafik.png)
#### Which Targetgroup has a Problem or would profit from this Solution?
> Who is using our Plattform for which purpose?
Every event, networking session which uses a plattform is confronted with the question of how to connect participants. Some start extra Spreadsheets like here:
![grafik](/uploads/f3e0f0cbbcd927ccfb6452a63ebd884b/grafik.png)
Others even setup Padlet and other overviews, to help people to get to know each other:
![grafik](/uploads/176c1205e63ddef096747b3cc61b8c22/grafik.png)
#### What Purpose, additional Value or target does this feature have?
> What will be possible or easier with this solution and how can we measure it?
If we could integrate all this in our Profils and Memberoverviews, it would be great, because
- people only have to put in their Info once, and can use it for many conferences and meetings
- every memeber can decide, who sees his profil and it is not availiable under an open link to everyone in the net
- It would be a high motivation to really fill out your profile once for a certain purpos and you have it then forever on our plattform.
</details>
## Problem
Current User-List ist just too borng!!!!
- Unsere Mitgliederübersicht einer Gruppe/Projekt ist nicht gerade Sexy, denn man sieht nur den Namen.
- Die Karte darüber ist zwar toll, aber auch da muss man jeden Pin extra anklicken und kann nicht einfach durchbrowsen
![image](/uploads/ef87bf827243906ac446937daa1ea526/image.png)
- Unsere Kunden richten sich daher behelfsweise Padelet-Übersicht eine (Bspw. https://padlet.com/lbebayern/qx3923k0hnddzzh5)
![image](/uploads/e02f7833b91de128543d4e8864496019/image.png)
- Dadurch halten es aber die TN für unnötig, ihre Profile aus zu füllen
### Steps to reproduce
> How one can reproduce the issue? Please provide links to test it and screenshots as proves - this is very important!!!
See this list:
- Text Conference: https://wechange.de/conference/we-tagungshaus-spielwiese/conference/teilnehmende/#/
- Project are even worse: https://wechange.de/project/spielwiese-ergebnisse/members/?invite=1#invite
### What is the current bug behavior?
You have to open each profiel manually. You can do it on the map but only for those who have entered a location.
### What is the expected correct behavior?
Would be great to see all important features of each member at one glance just by scrolling the whole members-page.
Currently many NGOs use padlet to create such overviews and ask their members to describe themeselve:
![grafik](/uploads/423788c72b4412a469623e5ee23aacbc/grafik.png)
## Possible fixes
> What different options do you see as a solution? (Name them A, B, C... and rank them with the easiest first and say, which option you would prever) Please provide screenshots or links to other plattforms with better solutions!
- [ ] Padelet könnten wir einfach ersetzen, in dem wir die Teilnehmendenliste umschaltbar machen auf eine Kachelansicht
- [ ] Creat a *Grid view* (Kachelansicht) of all Members instead of the list view. It can be similar to the Profile-Cards in the Matching Feature (DirektKontakt: https://direkterra.goethe.de/user_match/) with
- Profile-Picture
- Name
- Short-Description (shortened by 250 signs
- Organisation
- Area of work/ Topics/ hashtags of user intrests...
- (Location, Mailadress is not needed)
![grafik](/uploads/8e8995528aa1e08e7be26efa388ed0a9/grafik.png)
- [ ] Kachelansicht könnte ähnlich sein, wie bei der Karten-Kachelansicht:
- Es sollten aber schmalere Spalten sein
- Die Kurzbeschreibung (bio) sollte 200 Zeichen enthalten (länger sein)
- zusätzlich wäre es toll wenn auf dem profil die 3 aktivsten Projekte angezeigt werden
![image](/uploads/bfee908a207819b9f9d888669873afc1/image.png)
### Technical suggestions
<details><summary> How developers can solve it </summary>
#### Where in the code should be done some changes?
> Which Solution/ Possible fix was selected? Where do you have to edit things? What code and switches you should change?
#### How to track you time and document your work
> On which clockify milestone should you track your time (might be indicated in the description of the attached milestone) and where do you have to document your work?
</details>https://git.wechange.de/code/public-feature-pipeline/-/issues/32Mail-Digest: Kommentare zum gleichen Post zusammenfassen2023-07-19T12:12:15ZHelmut Wolmanhelmut.wolman@wechange.deMail-Digest: Kommentare zum gleichen Post zusammenfassen## Problem
- Der Newsletter verbraucht viel zu viel Platz und wird daher auf einem normalen Bildschirm sehr schwer zu überfliegen. "Man sieht den Wald vor Bäumen nicht". Siehe: https://git.wechange.de/wechange/aktuell/civilsociety/-/issu...## Problem
- Der Newsletter verbraucht viel zu viel Platz und wird daher auf einem normalen Bildschirm sehr schwer zu überfliegen. "Man sieht den Wald vor Bäumen nicht". Siehe: https://git.wechange.de/wechange/aktuell/civilsociety/-/issues/3
- Die Headline zum Kommentar ist viel zu klein und müste viel größer sein, um zu erkennen, dass die Kommentare zum gleichen post sind
- Der Abstand zwischen den Zeilen ist viel zu groß
![grafik](/uploads/e2b6bee9e61a628871dc5796bea6da5e/grafik.png)
## Lösung
- Headline größer machen und ganz nach Links rücken, also weiter nach links als die Profilbilder der Autoren
- Die kompletten zwischenräume zwischen den Beiträgen löschen
- Ganz am Ende nach allen Kommentaren ein link "Auf Wechange ansehen" oder einen kleinen Link ganz am Ende vom Kommentartext (ohne Zeilenumbruch) "Online lesen oder antworten..."
- Das design auf der plattform ist wesentlich besser, kompakter und daher lesbarer:
![grafik](/uploads/d43bddf6dcd9dde4fe8e0ebcb4e81cad/grafik.png)https://git.wechange.de/code/public-feature-pipeline/-/issues/55Bessere Verlinkungen vom Nextcloud-Ordner ins Projekt2023-11-22T11:41:55ZHelmut Wolmanhelmut.wolman@wechange.deBessere Verlinkungen vom Nextcloud-Ordner ins ProjektDer Weg von der Gruppe in den Nextcloud Ornder ist ja schon super klar!
## Problem
Ist ein Anfänger-Nutzer in den Nextcloud-Ordner gekommen, schafft er es nur sehr schwer zurück in das dazugehörige Projekt!
Der einzige Verfügbare Button...Der Weg von der Gruppe in den Nextcloud Ornder ist ja schon super klar!
## Problem
Ist ein Anfänger-Nutzer in den Nextcloud-Ordner gekommen, schafft er es nur sehr schwer zurück in das dazugehörige Projekt!
Der einzige Verfügbare Button ist weder beschriftet noch irgendwie intuitiv (sieht eher wie logout oder Notausgan aus) und führt nur zurück zum Dashboard, aber nicht ins Projekt
![image](/uploads/d093f8d972b8d5e25907c440abb4f278/image.png)
## Lösung
Von jedem Nextcloud-Ordner ein direktlink zu der jeweiligen Gruppe
### Mögliche Wege:
- Hilft dabei vielleicht dieses Plugin, wo dann zu jedem Gruppenordner der Link zur Gruppe hinterlegt wird? https://apps.nextcloud.com/apps/customproperties
- Ist diese Link-Speicher App ein erster Workaround? https://apps.nextcloud.com/apps/files_linkeditor Sodass man den Gruppenlink in den obersten Ordner teilt. Könnte man diese Links zum Projekt automatisiert anlegen?
![image](/uploads/51dc72a898a110e6351d0f3fe1b310af/image.png)
- Am schönsten wäre natürlich wenn ganz oben in der Leiste ein dicker Button wäre "Zurück zu PROJEKTNAME" (Evtl. mit Custom CSS https://nextcloud.community.freunde-waldorf.de/settings/apps/customization/theming_customcss) https://apps.nextcloud.com/apps/external
![image](/uploads/0bf8b3ebc24decfe3be48472a882301d/image.png)https://git.wechange.de/code/public-feature-pipeline/-/issues/54RC-Unterhaltung direkt aus Mitgliederkarte starten2023-11-22T11:22:37ZHelmut Wolmanhelmut.wolman@wechange.deRC-Unterhaltung direkt aus Mitgliederkarte startenDie Karte der Teammitglieder ist ein echter Unique Selling-Point von Wechange. Das hat weder Facebook, linkedin noch irgendein Messenger.
## Problem
In großen, überregionalen Gruppen gibt es oft viel zu viel rauschen so dass Inhalte, di...Die Karte der Teammitglieder ist ein echter Unique Selling-Point von Wechange. Das hat weder Facebook, linkedin noch irgendein Messenger.
## Problem
In großen, überregionalen Gruppen gibt es oft viel zu viel rauschen so dass Inhalte, die mich betreffen, schnell verloren gehen. (Besonders WG-Gesuche sind immer sehr nervig!)
Durch die RC-Gruppen steigt auch grundsätzlich die Kommuniktionsmenge.
Der Button "Nachricht an alle Mitglieder" verleitet zu einem wahllosen Anschreiben aller
![image](/uploads/db551691b30b39389e641af037250ec7/image.png)
## Usecase
Gerade in überregionalen Gruppen will man oft nur bestimmten Mitgliedern eine Nachricht schicken
- In meiner deutschlandweiten Alumni-Gurppe suche ich eine WG im Stadtteil Neukölln: Ich möchte nur die anschreiben die dort wohnen
- Für eine Workshopanfrage aus Hamburg möchte ich nur die BildungsagentInnen anschreiben, die dort im Umkreis wohnen
- Ich suche einen Regionalpiloten in Aachen und möchte im Wandelbündnis nur die Leute um Aachen anschreiben.
## Lösung
Sobald man auf der Karte anfängt zu zoomen, erscheint ein Button "Unterhaltung mit den Mitgliedern im Kartenausschnitt beginnen"
Mit einem Klick wird in der RC-Gruppe des Projekts eine Unterhaltung erstellt, in der alle automatisch hinzugefügt werden, die auf der Karte sichtbar sind.
![image](/uploads/1830e3ebb88b07ccd9d31d7be151aab0/image.png)https://git.wechange.de/code/public-feature-pipeline/-/issues/12Datum eines Termins anzeigen bei Auswahl2023-07-19T13:07:11ZHelmut Wolmanhelmut.wolman@wechange.deDatum eines Termins anzeigen bei AuswahlWenn man bei einem Pad einen bestimmten Termin einer Terminserie ahängen möchte, so ist es unmgöglich, den richtigen zu finden:
![image](/uploads/6a4c6e8cbfbda2b31a54623bb714d4e3/image.png)
## Lösung
- [ ] Bei Terminen muss zusätzlich ...Wenn man bei einem Pad einen bestimmten Termin einer Terminserie ahängen möchte, so ist es unmgöglich, den richtigen zu finden:
![image](/uploads/6a4c6e8cbfbda2b31a54623bb714d4e3/image.png)
## Lösung
- [ ] Bei Terminen muss zusätzlich zum Titel auch der Zeitraum (28.10.21 bzw. 20.10.-31.10.21) mit angezeigt werden.https://git.wechange.de/code/public-feature-pipeline/-/issues/13wechange civiCRM Schnittstelle2023-06-12T11:49:58ZHelmut Wolmanhelmut.wolman@wechange.dewechange civiCRM Schnittstelle- CRM ist eine Software für die Kontaktverwaltung von Spendern, Mitgliedern, Kontakten, Engagierten
## Bedarf
Es gibt grundsätzlich zwei Use-Cases:
### 1. Single-Sign-On mit Wechange bei civiCRM
- Mitarbeiter von Organisationen, die ei...- CRM ist eine Software für die Kontaktverwaltung von Spendern, Mitgliedern, Kontakten, Engagierten
## Bedarf
Es gibt grundsätzlich zwei Use-Cases:
### 1. Single-Sign-On mit Wechange bei civiCRM
- Mitarbeiter von Organisationen, die eine WE-Plattform haben und gleichzeitig ihre Spender und Netzwerke auf civiCRM haben, wollen sich nicht mehrfach registrieren müssen, sondern wollen SSO. D.h. mit den Zugangsdaten von WE sollen sie sich auch bei civiCRM anmelden können.
- Bestenfalls wird bei der Anmeldung auch die Gruppenzugehörigkeit erfragt, und nur wenn sie Mitglied in einer bestimmten "Kontakverwaltungs-Gruppe" auf der Plattform sind, haben sie in civiCRM Zugriff auf (bestimmte) Kontakte.
- eine SSO-Initiative für civiCRM findet man z.B. hier: https://civicrm.org/sites/civicrm.org/files/SingleSignOnAccess-for-CiviCRM-Facebook-case.pdf
### 2. Austausch-Gruppen für civiCRM Kontakte anbieten
- Mitglieder aus WE-Gruppen/Projekte werden in civiCRM gespiegelt.
- Wer seine Mailadresse und Kontakte auf WE aktualisiert, hat sie auch gleich in civiCRM geupdated
- Wer auf der Plattform oder in civiCRM aus bestimmten Gruppen fliegt bzw. diesen zugeordent wird, bekommt auch entsprechende Stichworte/Attribute in civiCRM
- Genauso umgekehrt: Wird jemand in civiCRM gelöscht, gesperrt oder verliert bzw. bekommt neue Attribute, ändert sich die Projektmitglideschaft auf der Plattform
- Bestenfalls können direkt aus civiCRM heraus Community-Gruppen erstellt werden, wo alle Nutzer einer bestimmten Filteransicht hinzugefügt werden.
- Durch die Newsletter-Plugin können dann über civiCRM Newsletter an Mitglieder bestimmter Gruppen verschickt werden.
- (In diesem Usecase müssen die WE-Nutzer erstmal keinen Zugang zu civiCRM mittels SSO haben, da sie ihr Mitgliedschaften und Kontaktinformationen direkt über die Plattform aktualisieren)
### First Case User
- Viva con Agua, "Software für Engagierte" und andere Organisationen, die bereits civiCRM zur Kontakverwaltung nutzen, überlegen, ob sie Wechange auch für deren Community einsetzen können.
- NGOs, die derzeit ein wechange-Portal Nutzen wie etwa [Dina](https://dina.international/) brauchen civiCRM Lösungen.
- Freunde der Erziehungskunst nutzen noch eine alte Access-Datenbank, könnten hier auf civiCRM umsteigen und dass mit ihrer Community verbinden. Neue Bewerber und Freiwillige könnten dann je nach Status, Zielland und Einsatzstelle automatisch bestimmten Gruppen hinzugefügt werden.
## Schritte der Verbindung
1. SingleSingOn: Mit dem wechange-Account kann man sich in CiviCRM anlmelden (https://git.wechange.de/wechange/aktuell/cooperation/-/issues/197)
2. Workspace Verwaltung: In civiCRM kann ich sehen, welche Nutzer bereits in welchem Wechange-Projekt sind und auf welche Clouds Nextcloud sie zugriff haben. (und die APIs zum Zugriff auf die CiviCRM-Daten findest du hier: https://docs.civicrm.org/dev/en/latest/api/)
3. Ich muss nutzer nur noch einmal in civiCRM freischalten oder einem wechange-Projekt hinzufügen, damit sie im jeweils anderen System auftauchen
4. civiCRM braucht nicht als App direkt in wechange eingebunden sein. Für eine direkte Integration gibt es keine Notwendigkeit, weil civiCRM nur von sehr wenigen Nutzern genutzt wird. Die Plattform bräuchte man auch nicht als Ausrollplattform für civiCRM nutzen, da dies über Wordpress-Plugins schon sehr einfach ist.
Ähnliche Verbindungen:
- Schnittstelle zwischen wechange, ERP-Next und civiCRM gibt es auch noch nicht
- Discourse wäre noch eine Möglichkeit um den wechange-Kosmos zu erweitern.
Anliegen von: [Ulrich Meyer-Martin](https://wechange.de/user/44877/) von https://sfe-ev.org/https://git.wechange.de/code/public-feature-pipeline/-/issues/14Benachrichtigungen stoppen wenn Gruppe entfolgt - selbst wenn ich weiterhin m...2023-02-13T05:03:13ZHelmut Wolmanhelmut.wolman@wechange.deBenachrichtigungen stoppen wenn Gruppe entfolgt - selbst wenn ich weiterhin mitglied binRegeln für Benachrichtigungen aus gefolgten Gruppen/Projekten. (sowie dem Forum, auch wenn man dort Standarmäßig trotz Mitgliedschaft keine Notifications bekommen sollte!)
### Problem
Verwirrung weil...
- ... entfolgen von Projekten in...Regeln für Benachrichtigungen aus gefolgten Gruppen/Projekten. (sowie dem Forum, auch wenn man dort Standarmäßig trotz Mitgliedschaft keine Notifications bekommen sollte!)
### Problem
Verwirrung weil...
- ... entfolgen von Projekten in denen man Mitglied ist nicht zum Stopp für Nachrichten führt.
- ... Nicht alle Objekte, von denen ich Notifications bekomme, auch in der Liste im Dashboard stehen. Darin fehlt konkret das Forum. Das schickt mir ständig mails, ohne dass ich sehe, wie ich diesem hier entfolgen kann.
![image](/uploads/b91e52e656ce59bbc36855c519da99b5/image.png)
> Das Problem daran ist es reicht nämlich schon, Mitglied in einem Projekt zu sein. Dann bekommst du, wenn du "Sofort" für alles eingestellt hast, alle Benachrichtigungen aus allen deinen Projekten. Um das feinzutunen, kannst du "Individuelle Einstellungen" wählen, und dann pro Proejekt/Gruppe auswählen, ob du davon Benachrichtiungen kriegen magst. (Siehe auch https://git.wechange.de/wechange/aktuell/wechange/-/issues/1386)
> Einem Inhalt zu folgen, eröffnet nur die Möglichkeit, spezifisch für Inhalte auf jeden Fall Benachrichtiungen zu bekommen, ohne dass andere Einstellungen beachtet werden (das ist das "Für Inhalte, denen ich folge" Feld in den Benachrichtigungseinstellungen. Und so kann man auch für Projekte Benachrichtigungen bekommen, in denen man nicht Mitglied ist. Folgen + Mitglied sein ist aber nur doppelt gemoppelt, was Benachrichgtiungen angeht.
### Soll
- [ ] Das ganze wäre am besten mal komplett umgestellt, so dass nur "Folgen" der Verursacher für Benachrichtigungen ist. Geht aber technisch leider nicht mal eben fix umzusetzen.
- [ ] Eine schnellere Abhilfe wäre vielleicht eine bessere Erklärung auf der Benachrichtigungseinstellungsseite.
- [ ] ALLE Objekte, von denen ich Mails bekomme, stehen in der Liste und können mit einem klick deaktiviert werden
- [ ] Selbst wenn ich Mitglied von Gruppen bin, kann ich diesen entfolgen und bekomme keine Notifications mehr (Glocke) und keine Mailbenachrichtigung
- Die Nachrichten im Rocket-Chat bekomme ich natürlich weiterhin.
- [ ] ist das "Aufgabe fürs Redesign"?
Der beste Schritt wäre hier nicht nur eine Liste, sondern einfach eine Umstellung des Benachrichtigungssystems, nämlich so dass immer gilt: Folgen = Benachrichtigungen und Entfolgen = Ruhe. Ist simpel und intuitiv, und ist zwar Aufwand, aber überschaubar. Und gute Kommunikation des Features. Passt aber auch sehr gut mit gleich ins redesign.https://git.wechange.de/code/public-feature-pipeline/-/issues/17How to write an Issue!2023-02-06T19:21:21ZHelmut Wolmanhelmut.wolman@wechange.deHow to write an Issue!This issue helps you to understand, how you can best write your Issue, so that we can easily understand it.
Just use the Following Template, or at least the headlines
Please write them in English!
Für alles, was als Problem, Bug oder...This issue helps you to understand, how you can best write your Issue, so that we can easily understand it.
Just use the Following Template, or at least the headlines
Please write them in English!
Für alles, was als Problem, Bug oder Feature-Wunsch erkannt wird, und mehr als einen Chat-Hinweis braucht (besonders wenn Diskussionen und mehrere Lösungsoptionen entstehen oder ein Arbeitsaufwand von mehr als 10 min) muss ein Issue im jeweiligen Git-Projekt angelegt werden! Dazu bitte folgendes Muster verwenden:
----
## User Stories
<details><summary> Why is this Feature/ Bug important? </summary>
#### Which Targetgroup has a Problem or would profit from this Solution?
> Who is using our Plattform for which purpose? z. B. As a user I ... want the search to find only results, that match my search term.
As a user I want to ...
#### What Purpose, additional Value or target does this feature have?
> What will be possible or easier with this solution and how can we measure it?
</details>
## Problem
### Steps to reproduce
> How one can reproduce the issue? Please provide links to test it and screenshots as proves - this is very important!!!
### What is the current bug behavior?
> What actually happens
### What is the expected correct behavior?
> What you should see instead
## Possible fixes
> What different options do you see as a solution? (Name them A, B, C... and rank them with the easiest first and say, which option you would prever) Please provide screenshots or links to other plattforms with better solutions!
### Implications
> What implications does this change have on the user experience other than the expected improvement? And what implication does it have on security, privacy or the speed of the plattform?
### Technical suggestions
<details><summary> How developers can solve it </summary>
#### Where in the code should be done some changes?
> Which Solution/ Possible fix was selected? Where do you have to edit things? What code and switches you should change?
#### How to track you time and document your work
> On which clockify milestone should you track your time (might be indicated in the description of the attached milestone) and where do you have to document your work?
</details>
<details><summary> Definition of Done (for development) </summary>
_DoD checkmarks can also be set, if requirement is not applicable for this feature_
- [ ] Unit/integration tests have been created
- [ ] Frontend and backend code have been separated
- [ ] Backend code has been refactored
- [ ] Inline and complementary documentation (README/GitLab Wiki) has been updated
- [ ] Link to merge request has been attached to the issue
- [ ] [Accessibility best practices](https://git.wechange.de/wechange/aktuell/redesign/-/wikis/accessibility) have been integrated
- [ ] [Security & data privacy best practices](https://git.wechange.de/wechange/aktuell/redesign/-/wikis/IT%20security%20and%20data%20privacy) have been followed
- [ ] [Sustainability best practices](https://git.wechange.de/wechange/aktuell/redesign/-/wikis/sustainability) have been followed
</details>
`/label ~"[Bug]" ~"[1Questions]" ~"[PO-Inbox]"`
`/assign @helmut.wolman`
Diese Issue-Vorlage sollte immer im Original geupdated werden: https://git.wechange.de/wechange/aktuell/template/-/issues/7https://git.wechange.de/code/public-feature-pipeline/-/issues/38Etherpads in der Cloud erstellen und öffnen2023-01-10T07:40:53ZFelix EnglischEtherpads in der Cloud erstellen und öffnenIm Staging-Server-Projekt https://staging.wechange.de/project/wir-testen-die-ownpad-app-in-der-nextclo/ testen wir gerade die Integration von Etherpads in die Nextcloud mit Hilfe der App [Ownpad](https://apps.nextcloud.com/apps/ownpad).
...Im Staging-Server-Projekt https://staging.wechange.de/project/wir-testen-die-ownpad-app-in-der-nextclo/ testen wir gerade die Integration von Etherpads in die Nextcloud mit Hilfe der App [Ownpad](https://apps.nextcloud.com/apps/ownpad).
## Wieso überhaupt?
Ganz generell, wieso es überhaupt überlegenswert ist, die Nutzung von Etherpads direkt in der Cloud zu ermöglichen:
1. Etherpads und Markdown-Pads sind zwar in vielerlei Hinsicht gleich, aber Etherpads haben einige wichtige Vorteile:
- In-Text-Kommentare
- Autor:innenfarben
- Timeslider
2. Wenn ich die Dateiablage durch die Cloud ersetzt habe und dann in der Cloud eine gute Ordner-Struktur habe, ist es nervig, parallel noch die Pads-App zu brauchen, zumal ich hier auch eine Ordner-Struktur bräuchte. Praktischer ist es, alle Dateien und Dokumente an einem Ort zu haben.
Ihr könnt dem Staging-Server-Projekt einfach beitreten und das Ganze selbst testen (Ethercalcs ließen sich auch aktivieren, aber das halte ich für nicht sinnvoll).
## Erste Erfahrungsergebnisse (gerne ergänzen)
- Die App funktioniert: Pads können direkt in der Cloud erstellt und bearbeitet werden, sodass sie sich in einer gemeinsamen Ordnerstruktur mit allen anderen Dateien befinden.
- Es handelt sich hierbei um einen **iframe im iframe**: Die Seite enthält einen Ownpad-iframe (erkennbar am schwarzen Balken oben) und hierin wiederum den Etherpad-iframe (alles außer der schwarze Balken)
- **Import und Migration**: Bestehende Pads von demselben Pad-Server können über die Ownpad-App in der Cloud geöffnet werden. Dafür muss lediglich eine Datei mit der Endung `.pad` erstellt und hochgeladen werden, die folgenden Inhalt hat:
```
[InternetShortcut]
URL=https://pad.wechange.de/p/linkendung
```
- Das Pad, das über die Eingabemaske unter https://pad.wechange.de/ erstellt wurde, wird dann im iframe in der Cloud geöffnet.
- Genauso funktioniert das auch mit Pads, die ursprünglich in der klassischen WECHANGE-Pad-App erstellt wurden, siehe https://nextcloud.staging.wechange.de/f/810
- Wenn ein neues Pad erstellt wird, enthält die **URL einen Hash-Wert**, womit gewährleistet wird, dass sich die URL vertraulicher Pads nicht erraten lässt
- **Freigabelinks**: Interne Links können wie gewohnt generiert und verwendet werden. Die Funktion "Link teilen" zwecks Freigabe für Externe ergibt jedoch keinen Sinn, da diese das Pad dann nur als Datei herunterladen könnten. Dafür kann über die Etherpad-Sharing-Funktion ein Read-Only-Link generiert oder die Original-URL des Pads geteilt werden (bei den klassischen WECHANGE-Pads funktioniert das beides nicht).
<img src="https://git.wechange.de/wechange/aktuell/devops/uploads/b05c5aa2e00802013135a259672d4ca7/image.png" alt="image" width="300px" style="float: right; width: 250px;" loading="lazy" />
- **WebDAV-Sync**: Die Sync-Datei enthält nur folgenden Inhalt: `[InternetShortcut]
URL=https://pad.wechange.de/p/56cpbcxz8fd9vs0s`. Die Offline-Bearbeitung der Pads ist damit nicht möglich (wäre auch schwer vorstellbar), aber man hat wenigstens einen Verweis
- Der **Upload von Textdateien** im Format .pad ist nicht möglich, weder per Drag'n Drop noch über WebDAV, wenn diese Text enthalten und nicht die URL zu einem Pad (s. o.). Es erscheint dann die Fehlermeldung `Your Etherpad/Ethercalc document could not be opened: the URL specified in your file does not match the allowed server.` Es wird gar kein neues Pad auf dem Pad-Server erstellt und dadurch gibt es auch keinen iframe. Bestehende Pads lassen sich aber durch die Etherpad-Import- und -Export-Funktion migrieren - oder als Bulk Migration mit Hilfe eines Skriptes (?)
- Die Hochgeladene .pad-Datei kann aber wieder heruntergeladen werden und enthält dann weiterhin die Original-Inhalte.
- Der schwarze Balken über dem Pad ist nicht schön, vor allem die Schriftart stört (Hier würde sich eine Anpassung der CSS-Datei `ownpad.css` lohnen, wäre sehr einfach)
(s. obiger Kommentar)
- Pads werden in der Datenbank/auf dem Etherpad-Server **nicht gelöscht**, wenn die entsprechende Datei in der Nextcloud (also besser gesagt der Verweis auf das Pad) gelöscht wird. Wenn ich noch den Direktlink zum Pad habe, kann ich weiter auf dieses zugreifen -> Könnte ein Problem sein
- Die **"Protected Pads"**, die nur über die Nextcloud zugänglich sind, scheinen zu funktionieren, wenn man in den Einstellungen (unter https://nextcloud.staging.wechange.de/settings/admin/additional) die Etherpad-API eingibt. @lukas.vaupel vom Netzwerk N hat das getestet:
<img src="https://git.wechange.de/wechange/aktuell/devops/uploads/fe105b78c4f3f12aad571199375f4069/image.png" alt="image" class="gfm js-lazy-loaded qa-js-lazy-loaded" loading="lazy">
<img src="https://git.wechange.de/wechange/aktuell/plattform-n/uploads/59c0445ca1583de0cec5ecc0ed4e8a89/Bildschirmfoto_2021-07-27_um_17.49.22.png" alt="Bildschirmfoto_2021-07-27_um_17.49.22" class="gfm js-lazy-loaded qa-js-lazy-loaded" data-canonical-src="/uploads/59c0445ca1583de0cec5ecc0ed4e8a89/Bildschirmfoto_2021-07-27_um_17.49.22.png" loading="lazy" width="250px">
Und in diesem Thread in #produktentwicklung haben wir angefangen, darüber zu diskutieren: https://chat.wechange.de/channel/produktentwicklung?msg=DDCFmiFeMauBDBfAd
## Fragen
1. Wäre die Bulk Migration von Pads aus der Pad-App in die Cloud möglich?
2. Wie funktionieren die "Protected Pads", die mit Hilfe der Etherpad API erstellt werden könnten? Wäre das überhaupt sinnvoll für unseren Use Case?
3. Was bevorzugen unsere Portalpartner:innen und Nutzer:innen? Den Status Quo? Oder Etherpads direkt in der Cloud? Oder die Möglichkeit, sowohl in der Pad-App als auch in der Cloud Pads zu erstellen?Felix EnglischFelix Englischhttps://git.wechange.de/code/public-feature-pipeline/-/issues/21Checkboxen beim Ical-Feed zum Umschalten von internen auf öffentliche Termien2023-07-19T13:07:12ZHelmut Wolmanhelmut.wolman@wechange.deCheckboxen beim Ical-Feed zum Umschalten von internen auf öffentliche Termien## Problem
* der Team feed für einen User inkl Token (Beispiel http://127.0.0.1:8000/events/team/40/feed/?user=1&token=162466370132804407492676502578536565024) enthält auch die team-members-only events, da der user ja per user-token auth...## Problem
* der Team feed für einen User inkl Token (Beispiel http://127.0.0.1:8000/events/team/40/feed/?user=1&token=162466370132804407492676502578536565024) enthält auch die team-members-only events, da der user ja per user-token authentifiziert ist
* Der public Ical-Feed ohne user-token (einfach den token weg löschen bspw. http://127.0.0.1:8000/events/team/40/feed/) gibt nur die öffentlichen Events aus der Gruppe zurück
-> Das weiß aber kein Menschen!
Viele Nutzen aber auch die Kalender, um Termine auf Wordpress-Blogs und anderswo hin zu exportieren.
## Lösung
Wir sollten da eine toogle-Checkbox hinmachen
- [ ] nur öffentliche Events (entfernt den Token)
- [ ] Auch Gruppen-Interne Events (fügt den Token dem Feed hinzu) (default)
Dann wäre das klar.
----
Dokumentiert im Wiki: https://git.wechange.de/wechange/aktuell/public-feature-pipeline/-/wikis/Sichtbarkeit-und-Nutzerrollen#ical-feed-sichtbarkeit-von-exportierten-terminenhttps://git.wechange.de/code/public-feature-pipeline/-/issues/24Sichtbarkeit bei "Nur ich" auch für markierte Personen2024-02-15T11:49:02ZHelmut Wolmanhelmut.wolman@wechange.deSichtbarkeit bei "Nur ich" auch für markierte PersonenFast alle Elemente (Pads, Termine, Beiträge etc.) in einer Gruppe oder Projekte können in den Einstellungen zur Sichtbarkeit auf "nur ich" (only me) gestellt werden.
![grafik](/uploads/08752f4931ad760a4823df9302933c5b/grafik.png)
## Pro...Fast alle Elemente (Pads, Termine, Beiträge etc.) in einer Gruppe oder Projekte können in den Einstellungen zur Sichtbarkeit auf "nur ich" (only me) gestellt werden.
![grafik](/uploads/08752f4931ad760a4823df9302933c5b/grafik.png)
## Problem
- "only me" kann dabei nicht nur der Ersteller (für den der Inhalt dann ausschließlich sichtbar ist) sondern auch jeder Gruppenadmin einstellen.
- D.h. als Admin kann ich so ein Pad verstecken, weil ich das Pad dann aber nicht mehr sehe, kann ich es auch nicht wieder für die Gruppe sichtbar machen.
- Die Funktion ist kaum zu gebrauchen, weil man wirklich Selten Inhalte hat, die man wirklich nur ganz alleine als Ersteller sehen will.
- In den meisten Fällen müssen die inhalte früher oder Später auch mit wenigen anderen geteilt werden. Das geht aktuell nicht!
## Lösung
- Die Sichtbarkeit von "only me" bedeutet, nur ich und die Personen, die unter "Markierte Personen" ausgewählt wurden, können den Inhalt sehen.
- So kann ich innerhalb einer großen Gruppe inhalte nur für eine spezielle Auswahl an Menschen (bspw. nur für den Vorstand oder eine Kerngruppe) sichtbar machen und darüber dann Personenbezogene Daten oder gar Passwörter verwalten.
![grafik](/uploads/9e967156db1a85345e922c8c4192e85c/grafik.png)
# Wie aufwändig wäre eine derartige Umstellung?
(Eine gesamtübersicht zur Sichtbarkeit gibt es hier: https://git.wechange.de/wechange/aktuell/public-feature-pipeline/-/wikis/Sichtbarkeit-und-Nutzerrollen/#sichtbarkeit-von-inhalten)mukamukahttps://git.wechange.de/code/public-feature-pipeline/-/issues/27Bilder in Pads ermöglichen / Allow Immages in Etherpads2023-08-14T12:12:20ZHelmut Wolmanhelmut.wolman@wechange.deBilder in Pads ermöglichen / Allow Immages in EtherpadsBilder, Screenshots etc. in Pads integrieren zu können ist ein sehr, sehr hilfreiches feature, was man oft braucht.
Das funktioniert auch seit Jahren blendend auf diesem Padserver: https://board.net/p/fairteam
![grafik](/uploads/0cfda13...Bilder, Screenshots etc. in Pads integrieren zu können ist ein sehr, sehr hilfreiches feature, was man oft braucht.
Das funktioniert auch seit Jahren blendend auf diesem Padserver: https://board.net/p/fairteam
![grafik](/uploads/0cfda1321ac07c77468113528803af1c/grafik.png)
Können wir das Bitte bei wechange-Pads auch aktivieren?
(Auch das Inhaltsverzeichnis ist genial! https://git.wechange.de/wechange/aktuell/wechange/-/issues/13442022-08-09https://git.wechange.de/code/public-feature-pipeline/-/issues/35learning-analytics-dashboard in bbb Activieren2023-07-04T06:16:05ZHelmut Wolmanhelmut.wolman@wechange.delearning-analytics-dashboard in bbb Activieren## Problem
Moderation online sessions becomes difficult when you want to have an equal participation of everyone, but some donte realize, that they are just talking too much and others are easy to be forgotten.
> Seit einer Stunde schon...## Problem
Moderation online sessions becomes difficult when you want to have an equal participation of everyone, but some donte realize, that they are just talking too much and others are easy to be forgotten.
> Seit einer Stunde schon suche ich eine Redezeit-Stoppuhr, mit der man in hitzigen online debatten die länge der Sprachbeiträge der jeweiligen Teilnehmenden sekunden genau sieht, (bestenfalls als Balken-Diagramm) und so erkennen kann, wo es Übergewichte gibt und wer gar nichts sagt. Optimalerweise sollte die Stoppuhr direkt selbst erkennen, wer gerade spricht, aber auch ein manuelles klicken wäre vertretbar.
## Solution
The "Lernanalyse-Dashboard" or the Learning Dashboard gives insights about each participation
https://www.bigbluebutton-hosting.de/features/learning-dashboard/
You can test in on https://test.bigbluebutton.org/
![grafik](/uploads/6b2e98dd7a34c6dcfa3cd85af510b803/grafik.png)
### Privacy implications
No infos found about additional tracking. It seems that the learner dahsboard jus uses datat, which the server anyway creates. The Dashboard is deleted after the session.
### Umsetzung
das lässt sich per create-api von bbb einstellen:
- learningDashboardEnabled,
- learningDashboardCleanupDelayInMinutes
könnten wir über django-admin quasi ohne entwickleraufwand schon pro tagung oder meeting einstellen. dann fehlt nur noch ein schalter in der ui dafür und evtl eine Warnung für die user bei join.. das kann von der Aufzeichnungsfunktion übernommen werden. Ich schätze den Entwicklungsaufwand gering ein.2022-08-02https://git.wechange.de/code/public-feature-pipeline/-/issues/42NocoDB2023-09-18T10:05:33ZHelmut Wolmanhelmut.wolman@wechange.deNocoDB
Daniel S. schreibt:
> Wir hatten uns vor gut 3 Wochen kurz auf der Bits und Bäume-Konferenz ausgetauscht und ich hatte Dir von Überlegung erzählt, ob die Nocode-Plattform NocoDB (https://nocodb.com/, https://github.com/nocodb/nocodb) e...
Daniel S. schreibt:
> Wir hatten uns vor gut 3 Wochen kurz auf der Bits und Bäume-Konferenz ausgetauscht und ich hatte Dir von Überlegung erzählt, ob die Nocode-Plattform NocoDB (https://nocodb.com/, https://github.com/nocodb/nocodb) ein interessanter Kandidat als gehostete App auf WeChange.de sein könnte.
NocoDB ist eine "Open Source Airtable Alternative" ( #NoCode platform that turns any database into a smart spreadsheet)
- https://nocodb.com/,
- https://github.com/nocodb/nocodb
## UseCase
NGOs need to do complex spreadsheets, especially for financial project documentations. Ideen³ uploads all invoices in airtable, because you can create a formular, where participants enter their expenses and upload the invoices. The spredsheet than can calculate and document everything for the bookkeeping.
Firma: DMXhttps://git.wechange.de/code/public-feature-pipeline/-/issues/44Marketplace: Concept update2023-01-17T15:00:02ZHelmut Wolmanhelmut.wolman@wechange.deMarketplace: Concept updateConnect: https://wechange.de/project/mykorrhiza-statt-marktplatz
## User Stories
<details><summary> Why is this Feature/ Bug important? </summary>
#### Which Targetgroup has a Problem or would profit from this Solution?
> Who is using ...Connect: https://wechange.de/project/mykorrhiza-statt-marktplatz
## User Stories
<details><summary> Why is this Feature/ Bug important? </summary>
#### Which Targetgroup has a Problem or would profit from this Solution?
> Who is using our Plattform for which purpose?
- Sharing-Initiativen
- Job/Praktika Märkte
- Saatgutdatenbanken
- Commons Initiativen
- Tauschläden
- Wohnungssuchen
- Trainer/Workshopangebote
#### What Purpose, additional Value or target does this feature have?
> What will be possible or easier with this solution and how can we measure it?
- Ablösung des kompetetiven Marktes duch eine kooperative, digitale Vermittlung von Bedürfnissen und Ermöglichungen.
</details>
## Problem
### Steps to reproduce
> How one can reproduce the issue? Please provide links to test it and screenshots as proves - this is very important!!!
- Visit: https://wechange.de/group/forum/marketplace/list/
### What is the current bug behavior?
Wir haben uns viele IT-Plattformen angeschaut, die bereits Ähnliches versuchen, sind aber von keiner dieser schon vorhandenen Lösungen wirklich überzeugt, da offenbar immer irgendetwas recht Grundlegendes fehlt.
WeChange bedenkt dieses Kernaspekt des Wandels bisher wenig und nur mit einem sehr rudimentären Modul namens Markplatz. Gern möchten wir in absehbarer Zeit (vielleicht Anfang kommenden Jahres?) mal mit interessierten Menschen zu dem Thema bzw. Anliegen in einen Austausch kommen und laden deshalb in folgendes WeChange-Projekt dazu ein:
https://wechange.de/project/mykorrhiza-statt-marktplatz
### What is the expected correct behavior?
- Perfekt nutzbares Modul zum Austausch aller möglichen Angebote
## Possible fixes
> What different options do you see as a solution? (Name them A, B, C... and rank them with the easiest first and say, which option you would prever) Please provide screenshots or links to other plattforms with better solutions!
1. Inserate müssen auch auf der Karte sichtbar sein https://git.wechange.de/wechange/aktuell/wechange/-/issues/1041
2. Default-Gültigkeit der Inserate muss pro Gruppe einstellbar sein, aber auch pro Inserat anpassbar. https://git.wechange.de/wechange/aktuell/wechange/-/issues/1346
3. ...
### Technical suggestions
<details><summary> How developers can solve it </summary>
#### Where in the code should be done some changes?
> Which Solution/ Possible fix was selected? Where do you have to edit things? What code and switches you should change?
#### How to track you time and document your work
> On which clockify milestone should you track your time (might be indicated in the description of the attached milestone) and where do you have to document your work?
</details>https://git.wechange.de/code/public-feature-pipeline/-/issues/45Eigene RocketChat Instanz pro Portal-Mandant2023-03-31T06:50:00ZHelmut Wolmanhelmut.wolman@wechange.deEigene RocketChat Instanz pro Portal-Mandant## User Stories
<details><summary> Why is this Feature/ Bug important? </summary>
#### Which Targetgroup has a Problem or would profit from this Solution?
> Who is using our Plattform for which purpose?
Das Kern-Team der [Schokofahrt]...## User Stories
<details><summary> Why is this Feature/ Bug important? </summary>
#### Which Targetgroup has a Problem or would profit from this Solution?
> Who is using our Plattform for which purpose?
Das Kern-Team der [Schokofahrt](https://wechange.de/group/schokofahrt-netzwerk/) findet RocketChat zu unübersichtlich, und überlegt daher, WECHANGE zu verlassen und eine eigene Mattermost-instanz zu gründen:
> Thomas Becker (Stuttgart) @thomas.becker am 4.1.23:
Hi Leute, es sieht so aus als würden die Schokofahrt und WeChange, bzw. die Implementierung von RocketChat in WeChange etwas fremdeln. Mir scheint, der Grund dafür ist eben die Implementierung von RocketChat in WeChange - hier fehlt einfach eine Strukturierungsebene, weil WeChange die oberste Ebene wegnimmt für die Gesamt"community" von allen Projekten. Das macht den RocketChat eigentlich unbenutzbar insbesondere dann, wenn man mehrere verschiedene Projekte in WeChange hat. Allerdings ist es auch nur mit einem Projekt schon Mist, weil die ganze gut durchdachte Strukturierungslogik von RocketChat über den Haufen geworfen ist.
Eine eigene Implementierung von RocketChat für die Schokofahrt wäre meiner Meinung nach viel sinnvoller und sehr ähnlich (be)nutzbar wie früher Slack.
~~Genau das gleiche Problem hat das WECHANGE Team und daher parallel zum Plattform-Chat noch eine eigene RocketChat Instanz.~~ _Grund hierfür ist Resilienz: Wenn wechange.de ausfällt, muss unser Betrieb weiter gewährleistet sein um das zu fixen._
Auch von slack kennen viele das Verhalten, dass man pro Organisation eigene Instanzen hat, und zwischen den Instanzen bewusst wechseln kann, wenn man sich um einen andere Organisation kümmert.
#### What Purpose, additional Value or target does this feature have?
> What will be possible or easier with this solution and how can we measure it?
Schaffen wir es hier eine gute Lösung zu finden, dass große Netzwerke und Organisationen sich hier konzentriert treffen können, bietet sich die Plattform in noch mehr professionellen kontexten an.
~~Dadurch können wir den Plattformbetrieb finanziell auf breitere Beine stellen.~~ _nicht relevant_
- ~~Alle Mandaten der Plattform sollten dann auch Mitglied/Genossen in der Genossenschaft werden~~ _nicht relevant_
- ~~Über einen soliden Monatsbeitrag kann das Hosting finanziert werden.~~ _nicht relevant_
Ein Mandantenmodell (vergl. Dina.international) wo sich ein Nutzer nur zu einem bestimmten Plattformbereich registriert, kann sehr viel Ablenkung verhindern.
</details>
## Problem
da dort alle Kanäle, nicht nur zur Schokofahrt-initiative sichtbar sind sondern auch von allen anderen Netzwerken, in denen man auf der Plattform sichtbar sind. Das stört konzentriertes Arbeiten und schafft Ablenkung, wenn zwischendrin andere Chats dazwischen klingeln.
Auch wenn man Nutzer in Chats erwähnen möchte oder sie zu Gruppen hinzufügen will, gibt es oft Verwirrung und Unklarheit, weil man dabei wirklich alle zig tausend Nutzer der Plattform vorgeschlagen bekommt.
Interessanter Weise wird die Ablenkung direkt auf der Plattform und in der Nextcloud nicht so als störend empfunden.
### Steps to reproduce
> How one can reproduce the issue? Please provide links to test it and screenshots as proves - this is very important!!!
Registriere dich auf https://wechange.de/dashboard/. Dann bist zunächst im Forum mit 10.000 unbekannten.
Im RocketChat findest du aber sofort zig tausende profile...
### What is the expected correct behavior?
Je nachdem über welchen Link bzw. von welchem Frontend ich komme, lande ich in unterschiedlichen Foren. (Das ist bei dina.international bereits über das Mandanten-System schon so gelöst). Damit könnten dann Menschen von der Schokofahrt ihren eigenen Einladungslink verschicken, mit dem neue Mitglieder direkt in der Schokofahrt-Hauptgruppe landen (bzw. Wechange-Mitarbeiter würden direkt im WECHANGE-Space landen)
Verbunden mit diesem Mandant-spezifischen Forum ist auch eine eigene Rocket-Chat Instanz. D.h. wenn sie den Rocket.Chat öffnen, landen sie auf einer Instanz wo nur die Nutzer drin sind, die auch zum Schokofahrt Mandanten gehören. Optional kann jeder Mandant seinen Space (sein Hauptforum) so einstellen, dass Nutzer erst freigeschaltet werden müssen, bevor sie beitreten können. Dadurch kann dann in Rocket Chat auch mit öffentlichen Channels gearbeitet werden, die dann ein schnelleres ein- und austreten ermöglichen. (jetzt ist alles privat, was das durchsuchen und die Kommunikation erschwert.)
## Possible fixes
> What different options do you see as a solution? (Name them A, B, C... and rank them with the easiest first and say, which option you would prever) Please provide screenshots or links to other plattforms with better solutions!
- Der Nutzer kann sich mit seinem WECHANGE-Account auf allen Instanzen einloggen, d.h. alle RC-instanzen haben die selben Credentials.
- Klickt der Nutzer im Portal Headermenü auf das Rocket-Chat Symbol, öffnet sich zunächst ein Dropdown (Logo + Portalname), wo er auswählen muss, welcher der Instanzen er öffnen will. (In Desktop-App und Smartphone-App ist das wechseln zwischen Instanzen sowieso vorgesehen)
- Die Mandanten-Admins hätten die volle Kontrolle über ihren Bereich (ggf. mit eigener Datenschutzerklärung). D.h. welche Chats öffentlich sind, welche Nutzer gesperrt oder entfernt werden, obliegt dem Instanz-Admin. Selbst exporte von Nutzerdaten könnte man damit erlauben.
- ~~Wenn die Organisation für ihre Instanz einen gewissen Mindestbeitrag bezahlt (200-500 €/Monat) Könnten wir dann auch die PAYL-Popups auf der Instanz deaktivieren.~~ _nicht relevant_
- Jede größere Tagung könnte genauso ein Mandant sein und dadurch einen eigenen Tagungs-Chat-Instanz haben.
### Technical suggestions
<details><summary> How developers can solve it </summary>
#### Where in the code should be done some changes?
> Which Solution/ Possible fix was selected? Where do you have to edit things? What code and switches you should change?
#### How to track you time and document your work
> On which clockify milestone should you track your time (might be indicated in the description of the attached milestone) and where do you have to document your work?
</details>Mandantensystemhttps://git.wechange.de/code/public-feature-pipeline/-/issues/48Wish: field to toggle all projects in "show in other projects" dialog2023-09-27T12:27:43ZNicole WolfWish: field to toggle all projects in "show in other projects" dialogUser is admin of a group that wants to share some news (and some calender items) with all associated projects (Group: Kreisverband / Projects: mehrere Ortsverbände). To be more time efficient, a field toggle all would help to speed up th...User is admin of a group that wants to share some news (and some calender items) with all associated projects (Group: Kreisverband / Projects: mehrere Ortsverbände). To be more time efficient, a field toggle all would help to speed up the process.
![grafik](/uploads/fb0e87c13e784bc234d6a3b9589f3c13/grafik.png)https://git.wechange.de/code/public-feature-pipeline/-/issues/49Wish: Export list of members2023-04-13T20:17:40ZNicole WolfWish: Export list of membershttps://rocketchat.wechange.de/channel/wechange-support?msg=aARjxrLgYDdvh89PS
"Lieber Support: um uns tipp-Arbeit zu ersparen- gibt es eine Funktion die Mitgliederliste in WeChange runter zu laden bzw. eine csv oder ähnliches zu machen?"https://rocketchat.wechange.de/channel/wechange-support?msg=aARjxrLgYDdvh89PS
"Lieber Support: um uns tipp-Arbeit zu ersparen- gibt es eine Funktion die Mitgliederliste in WeChange runter zu laden bzw. eine csv oder ähnliches zu machen?"https://git.wechange.de/code/public-feature-pipeline/-/issues/47Barrierefreiheit: Links in Neuigkeiten auf dem Gruppendashboard kaum lesbar2023-02-25T23:46:35ZNicole WolfBarrierefreiheit: Links in Neuigkeiten auf dem Gruppendashboard kaum lesbar![grafik](/uploads/cbddf6a076ce0acb6d78c7c0204125a6/grafik.png)
Der Kontrast ist zu schwach![grafik](/uploads/cbddf6a076ce0acb6d78c7c0204125a6/grafik.png)
Der Kontrast ist zu schwachWE-Wartunghttps://git.wechange.de/code/public-feature-pipeline/-/issues/46Linqa - Zweisprachiges Mural Board2023-08-14T12:19:49ZHelmut Wolmanhelmut.wolman@wechange.deLinqa - Zweisprachiges Mural Board## User Stories
<details><summary> Why is this Feature/ Bug important? </summary>
#### Which Targetgroup has a Problem or would profit from this Solution?
> Who is using our Plattform for which purpose?
- Mehrsprachige Portale wie DINA...## User Stories
<details><summary> Why is this Feature/ Bug important? </summary>
#### Which Targetgroup has a Problem or would profit from this Solution?
> Who is using our Plattform for which purpose?
- Mehrsprachige Portale wie DINA und CSC
- Brainstorming bei Projektkonzeption
- Strukturen, Screendesigns, Organigramm
- flow charts, workshop Abläufe etc
- Alle Mit bedarf an Mindmaps
#### What Purpose, additional Value or target does this feature have?
> What will be possible or easier with this solution and how can we measure it?
- Multy-Language collaboration, even on "Mural" or "Miro" Board alternatives, is possible
</details>
## Problem
Creative Collaboration is more effective with creative ways of docoumentation. Pure Pads or limited Only Office Documents are not sufficient in this way.
Especially in international Project-Context, Mindmaps and Board are relevant and even more useful, if they translate the content directly.
## Possible fixes
> What different options do you see as a solution? (Name them A, B, C... and rank them with the easiest first and say, which option you would prever) Please provide screenshots or links to other plattforms with better solutions!
- A. We could activate Draw.io in the Nextcloud. But this has no feature of online live collaboration. Only one person can work on the board at a time.
- B. Use Linqa https://dmx.berlin/de/linqa-zweisprachig-zusammenarbeiten/
- ist ein Werkzeug für Online-Zusammenarbeit in zwei verschiedenen Sprachen. Darin können Nutzer*innen Dokumente auf ein Board hochladen und sie in einem parallelen, automatisch übersetzten Chat diskutieren. Zusätzlich können sie Überschriften und Notizzettel auf dem Board arrangieren, die ebenfalls automatisch übersetzt werden.
- Artikel https://df-zukunftswerk.eu/aktuelles/online-zusammenarbeiten-ohne-sprachbarrieren
- https://df-zukunftswerk.eu/aktuelles/portreat/onlineplattform-zukunftswerk/juergen-neumann
Das Board kann wie Miro genutzt werden
![grafik](/uploads/5ebdfa10b796008eecc4d834a1262e65/grafik.png)
Und mit einem klick kann das Board in einer anderen SPrache gelesen werden
![grafik](/uploads/2e7e6e451a87ebe0a6a47a717011f503/grafik.png)
Postits werden direkt übersetzt
![grafik](/uploads/1abdb34d67d61b8b3749d0d319ea8eb6/grafik.png)
Direkt zum Board gibt es ein Diskussionschat, wo alles übersetzt wird und beide Sprachen sichtbar sind:
![grafik](/uploads/57670f20989f47d9e4e5c91df02038f6/grafik.png)
Auch datein können hochgeladen werden.
![grafik](/uploads/2aef4560d068092568712f5ecc8effb2/grafik.png)
### Technical suggestions
<details><summary> How developers can solve it </summary>
#### Where in the code should be done some changes?
> Which Solution/ Possible fix was selected? Where do you have to edit things? What code and switches you should change?
#### How to track you time and document your work
> On which clockify milestone should you track your time (might be indicated in the description of the attached milestone) and where do you have to document your work?
</details>https://git.wechange.de/code/public-feature-pipeline/-/issues/56Events und Beiträge überall hin posten/teilen: zumindest bei öffentlichen Eve...2023-11-22T11:42:35ZHelmut Wolmanhelmut.wolman@wechange.deEvents und Beiträge überall hin posten/teilen: zumindest bei öffentlichen Events!## Problem
Inhalte, selbst aus dem Hauptforum (https://community.freunde-waldorf.de/group/forum-freunde-community/), können können nur an direkt darunter liegende Projekte geteilt werden, nichtmal in die anderen Gruppen...
Sehr nervig fi...## Problem
Inhalte, selbst aus dem Hauptforum (https://community.freunde-waldorf.de/group/forum-freunde-community/), können können nur an direkt darunter liegende Projekte geteilt werden, nichtmal in die anderen Gruppen...
Sehr nervig finde ich, dass man Termine einer **Gruppe** zwar in **Projekte** teilen kann, aber nicht mal öffentliche Termine eines **Projekts** in die **Gruppe** darüber oder das Forum teilen.
## Lösung
Dabei wäre es in meinen Augen am sinnvollsten ich erstelle ein Event in dem Projekt des Veranstalters, und teile es dann in allen Gruppen, Projekten und Forum, die dazu eingeladen sind.
D.h. ich kann nur in Gruppen und Projekte teilen, wo ich selber Teil von bin.
- Gruppeninhalte (Termine/ Neuigkeiten) sollen nicht nur vom Hauptforum aus in die Projekte nach unten verteilt werden, sondern auch von allen Projekte in alle anderen Gruppen und Projekte beliebig verteilbar sein. In dem Menü "In Projekte anzeigen..." soll jeder Nutzer alle Projekte und Gruppen sehen, in denen er selbst ist!
### Schritte:
- [ ] Im ersten Schritt wird das freie Teilen nur bei ganz öffentlichen Events und Beiträgen aktiviert. Dort kann ich also im Teilen-Kontextmenü alle Projekt eund Gruppen, von denen ich Teil bin, auswählen, inkl. Forum.
- [ ] Das Teilen von Terminen und Beitragen mit Gruppen-Sichtbarkeit ist viel komplexer, da sie ja eigentlich nur in der Gruppe sichtbar sind, in der sie erstellt wurden. Es müssten beim teilen die anderen Gruppen, in die geteilt wird, mit in die Anzeigeberechtigung aufgenommen werden, was sehr viel komplexer ist und später erfolgen kann.
Vorteil:
Damit könnten wir auch Termine eindeutig Organisationen zuordnen. Jetzt weis man teilweise im Forum gar nicht, zu welcher Gruppe eigentlich ein Event gehört!https://git.wechange.de/code/public-feature-pipeline/-/issues/52Integration des Mitwirk-O-Mat in WECHANGE2024-02-15T11:39:19ZFelix EnglischIntegration des Mitwirk-O-Mat in WECHANGEFür die Ausschreibung der SOS Kinderdörfer habe ich hierfür ein Konzept entwickelt und im Kontext der Diskussion über die Zukunft des Mitwirk-O-Maten war/ist das ein Szenario. Kira und ich kamen zu dem Punkt, dass es am meisten Sinn ergi...Für die Ausschreibung der SOS Kinderdörfer habe ich hierfür ein Konzept entwickelt und im Kontext der Diskussion über die Zukunft des Mitwirk-O-Maten war/ist das ein Szenario. Kira und ich kamen zu dem Punkt, dass es am meisten Sinn ergibt, wenn wir das mal im PO-Kreis besprechen, bevor wir anderweitig weitermachen oder die Idee ganz begraben. Die Integration würde mehr Änderungen an WECHANGE nach sich ziehen als am MOM
Grobes Konzept:
* Registrierung für den Mitwirk-O-Mat erfolgt über das Erstellen einer Gruppe (bzw. eines Projektes)
* In den Gruppen-Einstellungen gibt es neben "Allgemeines" und "Microsite" einen neuen Reiter "Mitwirk-O-Mat"
* Opt-In zur Teilnahme beim Mitwirk-O-Mat
* Eingabe der Antworten der Gruppe auf das Fragenset
* Die Stammdaten, die der Mitwirk-O-Mat zusätzlich braucht, kommen wenn möglich aus dem Reiter "Allgemeines"
* Abkürzung ggf. zusätzlich abfragen
* Name = Gruppenname
* Beschreibung = Gruppenbeschreibung, sollte aber nicht zu lang sein und darf kein Markup / HTML enthalten
* Logo = Gruppen-Avatar
* Link = Gruppen-URL, es sei denn die Gruppe ist nicht sichtbar, dann wäre das nicht zweckmäßig
* Auswahl der Filter-Kategorien
* Beim nächsten Update (täglich/stündlich?) wird die Gruppe im Mitwirk-O-Mat angezeigt
* Mitwirk-O-Mat wird als iframe auf der Landing Page des Portals angezeigt
* Integration der WECHANGE-Karte in den Mitwirk-O-Mat?
* Angezeigt werden nur die Pins der Gruppen, die gerade im Mitwirk-O-Mat angezeigt werden, also z. B. erst nur die Top 5 und dann die Top 10 oder Top 15, wenn ich im Mitwirk-O-Mat auf "Mehr anzeigen" geklickt habe
* Wäre sehr aufwändig
* Ansonsten Standard-WECHANGE-Portal
*
Rückfragen:
* Was genau ist der Vorteil der Integration
* Die Gruppen müssen sich nicht doppelt registrieren, einmal im Portal und einmal im MOM, sondern passiert beides auf einmal. Zusätzlich können sie ihre MOM-Antworten auch selbst über das Portal aktualisieren (machen wir aktuell manuell auf Anfrage)
* Die Integration der Karte hätte zusätzlich den Vorteil, die Ergebnisseite des MOM durch eine geographische Darstellung zu erweitern
* Was spricht dagegen, einen M-O-M per Link bzw. verschiedene Absprünge einzubinden
* Ginge vermutlich auch, aber sind dann eben zwei Produkte, für die man sich separat registrieren muss und die man separat pflegen muss
* Der M-O-M ist bisher immer regional, oder? Wäre der SOS-M-O-M dann Deutschlandweit oder gar weltweit nutzbar, indem man einfach Fragen zur Region einbezieht?
* Hängt davon ab, wer dann den MOM (+ Portal) mit welchem Ziel beauftragt. Ausgeschrieben wurden die Challenges ja von SOS-Kinderdorf e.V., SOS-Kinderdorf Österreich, und SOS-Kinderdörfer weltweit. Könnte mir daher einen bundesweiten Umfang vorstellen. Die Region könnte über Filter und/oder über die Karte abgebildet werden (Filter machen wir bereits jetzt, um größere Regionen zu untergliedern)Felix EnglischFelix Englischhttps://git.wechange.de/code/public-feature-pipeline/-/issues/53MVP Mitwirk-O-Mat Portalintegration2024-01-15T12:42:19ZSascha SommerMVP Mitwirk-O-Mat Portalintegration### MVP
- Integration ins Portal (aktivierbar über setting fürs Portal)
- neues Formular im Settings-Bereich für Projekte/Gruppen ~~(+Tagungen?)~~
- Formular hat eine Opt-In checkbox "Am Mitwirk-O-Mat teilnehmen" mit Erklärungstext
...### MVP
- Integration ins Portal (aktivierbar über setting fürs Portal)
- neues Formular im Settings-Bereich für Projekte/Gruppen ~~(+Tagungen?)~~
- Formular hat eine Opt-In checkbox "Am Mitwirk-O-Mat teilnehmen" mit Erklärungstext
- wenn Checkbox angehakt, klappt großes Formular aus mit allen Text/Choice/Freitextfeldern
- _Anmerkung von Felix: Das Formular sollte immer sichtbar und speicherbar sein, auch wenn das Teilnahme-Häkchen nicht gesetzt ist, damit die Gruppen ihre Antworten in Ruhe eintragen können, bevor sie dann die Teilnahme aktivieren_
- einige Felder sind "ersetzende" Infos, die z.b. Gruppennamen für MoM spezifisch angeben und sonst die Projekteinstellungswerte benutzen
- API-Endpoint mit CSV-format-option
- exportiert alle MoM-aktivierten Projekte/Gruppen
- Spalten wie vom MoM gewünscht
- IFrame-Einbettung (wahrscheinlich in Wordpress)
### Tech Notes (Dev-Schätzung gesamt: 36h)
- Portal:
- conf.py switch `COSINNUS_MITWIRKOMAT_ENABLED`
- Model [8h]:
- neues django Model "MitwirkomatSettings":
- mit OneToOne rel auf CosinnusGroup, null=True
- evtl. 1-2 base fields, je nach spezifischem Katalog
- Hardcoded Fields:
- `is_active` bool, kann deaktiviert nach ausfüllen, damit Daten nicht verloren gehen
- Name (optional: Fallback Gruppenname)
- Dynamic Fields `COSINNUS_MITWIRKOMAT_DYNAMIC_FIELDS`:
* Link (optional: Fallback Gruppen-URL)
* Name = Gruppenname
* Abkürzung ggf. zusätzlich abfragen
* Beschreibung (optional: Fallback Gruppenbeschreibung)
* kein Markup / HTML, Max-Length
* (kein Feld: Logo wird übernommen aus Gruppe, keine Ersatzmöglichkeit)
* Fragenset: Liste von 20 Paar-Fragen mit Label: (Zustimmung (-1, 0, 1), Ergänzung (Freitext))
* pro Portal wahrscheinlich nur Label-Änderungen für die 20 Fragen
* Auswahl der Filter-Kategorien
- Form [16h]:
- angezeigt als eigenständige FormView für Gruppenadmins
- Link wird im Group AppsMenu angezeigt und im leftnav des Gruppenbereichs
- Form erstellt neues MitwirkomatSettings model beim ersten speichern
- falls Opt-In-Feld abgewählt wird wird nur `is_active=False` gesetzt, MitwirkomatSettings instance wird nicht gelöscht
- API-Endpoint [12h]:
- mit CSV als format-parameter-option
- returned MitwirkomatSettings von allen gruppen, die ein MitwirkomatSettings haben, mit `is_active=True`
- so generisch wie möglich, export-logik wenn möglich nur im core, nicht im portal
- loop über alle `COSINNUS_MITWIRKOMAT_DYNAMIC_FIELDS`, ausgabe in spalten, mit fieldname im header
- fallbacks für optionale felderwerte werden aus group instance genommen
- Absprache für exakte Struktur des CSV und Werte
@felix.englisch gibt es besondere Ansprüche auf Übersetzbarkeit / Mehrsprachigkeit? Würden es einfach erstmal so wie normale Formularfelder im Portal machen.Felix EnglischFelix Englisch