django-academic-community merge requestshttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests2023-07-24T10:23:43+02:00https://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/117Raise 400 Error when filter form cannot be rendered2023-07-24T10:23:43+02:00Philipp S. Sommerphilipp.sommer@hereon.deRaise 400 Error when filter form cannot be renderedthis fixes a server error that is received, if the filter options are invalidthis fixes a server error that is received, if the filter options are invalidPhilipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/116Fix media combination2023-07-21T14:06:33+02:00Philipp S. Sommerphilipp.sommer@hereon.deFix media combinationthis implements a fix when we need to combine the media files of multiple forms or formsetsthis implements a fix when we need to combine the media files of multiple forms or formsetsPhilipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/115build assets in gitlab CI2023-04-12T11:27:23+02:00Philipp S. Sommerphilipp.sommer@hereon.debuild assets in gitlab CIPhilipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/114implement material.content2023-02-01T10:27:58+01:00Philipp S. Sommerphilipp.sommer@hereon.deimplement material.contentThis MR adds a content field for community material.
ping @andrea.poersch @esoedingThis MR adds a content field for community material.
ping @andrea.poersch @esoedingPhilipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/113make relations permission based2023-01-30T20:25:04+01:00Philipp S. Sommerphilipp.sommer@hereon.demake relations permission basedthis commit restructures material and channel relations such that
they now always modify the permissions on the base object.this commit restructures material and channel relations such that
they now always modify the permissions on the base object.https://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/112Fix ci2022-12-14T06:50:47+01:00Philipp S. Sommerphilipp.sommer@hereon.deFix cihttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/111cache material relations2022-10-28T20:47:14+02:00Philipp S. Sommerphilipp.sommer@hereon.decache material relationscloses #165closes #165Philipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/110implement ckeditor5 and revice channel layout2022-11-25T14:22:07+01:00Philipp S. Sommerphilipp.sommer@hereon.deimplement ckeditor5 and revice channel layoutThis MR revises the channel layout (see #169). We switch to ckeditor5 and redesign the threads and comments
- [x] implement ckeditor5
- [x] implement availability
- [x] implement possibility to view subscribers
- [x] implement collapsin...This MR revises the channel layout (see #169). We switch to ckeditor5 and redesign the threads and comments
- [x] implement ckeditor5
- [x] implement availability
- [x] implement possibility to view subscribers
- [x] implement collapsing of threads (for individual users or all)
- [x] redesign threads and comments
- [x] implement emoji-reactions
- [ ] implement journals for generic channel events
- [ ] implement profile picturePhilipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/109implement channels for chatting in the community2022-10-20T15:47:40+02:00Philipp S. Sommerphilipp.sommer@hereon.deimplement channels for chatting in the communityThis MR implements the channel communication system in the website and includes all the necessary components to make this a progressive web app (PWA) with push notifications.
There are several todos open:
* [ ] implement tests
* [x] im...This MR implements the channel communication system in the website and includes all the necessary components to make this a progressive web app (PWA) with push notifications.
There are several todos open:
* [ ] implement tests
* [x] implement e2ee (oriented on https://docs.rocket.chat/guides/security/end-to-end-encryption-algorithms)
* [ ] implement emoji reactions to comments
* [ ] implement autocompletion for sessions, events and contributions
* [ ] implement pinned channels for topics, activities, sessions, events and contributions
* [x] implement lazy loading of threads
* [x] implement assigning names for threads
* [ ] implement sorting of chat messages either latest first or oldest first
* [ ] make the display of channels nicer
* [ ] switch to ckeditor version 5 for comments
* [ ] make the channel group handling easierPhilipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/108add material uuid2022-09-18T22:15:17+02:00Philipp S. Sommerphilipp.sommer@hereon.deadd material uuidand use this as default for the urls. the old id still exists and urls are redirected to the new schemaand use this as default for the urls. the old id still exists and urls are redirected to the new schemaPhilipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/107Add material uuid2022-09-18T22:09:21+02:00Philipp S. Sommerphilipp.sommer@hereon.deAdd material uuidand remove the material id (but implement redirects to avoid broken links)and remove the material id (but implement redirects to avoid broken links)Philipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/106update to bootstrap5.22022-08-25T11:06:39+02:00Philipp S. Sommerphilipp.sommer@hereon.deupdate to bootstrap5.2Philipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/105Communitymaterial2022-09-13T11:28:57+02:00Philipp S. Sommerphilipp.sommer@hereon.deCommunitymaterialThis MR implements the CommunityMaterial subclass for Material. For communitymaterial, the person who creates it can define view and change permissions on a group and user basis.
Additionally, we removed the `groups` m2m-relationship be...This MR implements the CommunityMaterial subclass for Material. For communitymaterial, the person who creates it can define view and change permissions on a group and user basis.
Additionally, we removed the `groups` m2m-relationship between activity (working/project group) and a django user group. Instead, each working group automatically gets an `ActivityGroup` and members in an activity are automatically added to this group. The name of the `ActivityGroup` for a given working group, let's say `WG SUPTECH` is then something like `Members of WG Support and Technical Issues (SUPTECH)` and it can be used to control the permissions
furthermore we add several more information for uploaded material, including digests (md5 and sha256), file_size and a description fieldPhilipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/104Add menus for CMS pages2022-08-15T17:09:37+02:00Philipp S. Sommerphilipp.sommer@hereon.deAdd menus for CMS pages@beate.geyer und @esoeding und @andrea.poersch, dieser MR implementiert eine navigation-sidebar für Seiten, die durch ein CMS erstellt wurden. Ihr könnt jetzt ein weiteres Template auswählen
<details><summary>Screenshot</summary>
![im...@beate.geyer und @esoeding und @andrea.poersch, dieser MR implementiert eine navigation-sidebar für Seiten, die durch ein CMS erstellt wurden. Ihr könnt jetzt ein weiteres Template auswählen
<details><summary>Screenshot</summary>
![image](/uploads/733ade46e1e07b7fffa78841783eb658/image.png)
</details>
dass die Navigation dann beinhaltet
<details><summary>Screenshot</summary>
![image](/uploads/c4ed10cc178949dc13015db69d7c8480/image.png)
</details>Philipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/103implement registration as community member2022-07-26T16:36:26+02:00Philipp S. Sommerphilipp.sommer@hereon.deimplement registration as community memberdieser MR implementiert eine Registrierung für bereits bestehende User. Haben diese einen Account aber sind noch kein CommunityMember, so können sie nun diesen Status anfragen. Dabei müssen sie eine Referenzperson benennen, und ein Commu...dieser MR implementiert eine Registrierung für bereits bestehende User. Haben diese einen Account aber sind noch kein CommunityMember, so können sie nun diesen Status anfragen. Dabei müssen sie eine Referenzperson benennen, und ein Community Manager muss das bestätigen.
Ein solcher Workflow ist eine Anforderung für das MANCOGA-Community portal das gerade aufgesetzt wird (ping @holger.brix @david.kaiser @christiane.eschenbach).
@csteger @sabine.barthlott und @esoeding diese Option könnte ich, wenn gewünscht für euer jeweiliges Portal freischalten.
- @csteger da wir bei der CLM-Community (noch) keine nicht-community-mitglieder erlauben, macht es hier erstmal keinen Unterschied ob ich das erlaube oder nicht
- @sabine.barthlott beim dataHub würde man es dann jetzt so machen, dass dir die Leute keine Email mehr schreiben, sondern sie sollen sich auf dem dataHub-Portal registrieren und dort den Zugang beantragen. dann hast du auch gleich die richtige Mail-Addresse für die VO
- @esoeding für den HMC gilt das gleiche wie für den dataHub
Falls keine gravierenden Einwände bestehen, werde ich diesen MR morgen vormittag mergen. Bis auf MANCOGA wird er aber für alle Portale deaktiviert, es sei denn ihr sagt, dass ihr das haben wollt @csteger @sabine.barthlott und @esoeding.
Ich kann (und werde) es dann so implementieren, dass der Nutzer bei seinem allerersten Login über die Helmholtz-AAI eine Nachricht bekommt mit dem Link wo er den Community-Member-Status beantragen kann.
### Workflow
Erstellt ein User einen Account auf der Website und ist noch kein Community-Mitglied, so sieht er auf seiner Profil-Seite (`/members/profile`) einen Join-Button
<details><summary>Screenshot</summary>
![image](/uploads/69afa42f61acf7c58bfb5d2500b7d2c5/image.png)
</details>
ebenso sieht er in dem Dropdown von seinen Initalien einen Link mit _**Become a community member**_
<details><summary>Screenshot</summary>
![image](/uploads/ed26754e4a8e8ad70160274d2afa503c/image.png)
</details>
Folgt er dem Link, sieht er eine Form, wo er ein bestehendes Community-Member auswählen kann (`/members/profile/become-a-member`)
<details><summary>Screenshot</summary>
![image](/uploads/cc64014b56e8a0c4dd00f6fd6bf6054a/image.png)
</details>
Die ausgewählte Person (in diesem Fall Ulrike Kleeberg) bekommt eine Notification mit einem Link um die Anfrage zu bewilligen
<details><summary>Screenshot</summary>
![image](/uploads/a1766927ffd4490a459f1a165560ddfb/image.png)
</details>
folgt sie dem Link in dieser Mail, kann sie die Anfrage bestätigen
<details><summary>Screenshot</summary>
![image](/uploads/a56d0ae08e946d663c0c0a67b742f298/image.png)
</details>
Ist sie ein Community Manager, bekommt das Mitglied automatisch den CommunityMember-Status. Falls nicht, wird eine Notification an die Community Manager verschickt
<details><summary>Screenshot</summary>
![image](/uploads/c37c1aea1eac7ecf6f344678abeaffe8/image.png)
</details>
Die Community Manager können dann über den Link den Mitgliedsstatus bestätigen
<details><summary>Screenshot</summary>
![image](/uploads/2fdf92bdbb41acab282d5c4328a14885/image.png)
</details>
Im CommunityMember-Profil wird dann hinterlegt, wer den Status bewilligt hat
<details><summary>Screenshot</summary>
![image](/uploads/d7e0b8de7c45d0d3a8baffee77cefaaf/image.png)
</details>
**Randbemerkung:** Es ist nicht nötig, dass jemand aktiv den CommunityMember-Status anfragt. Bestehende CommunityMember können auch ohne explizite Anfrage bestehende Accounts anerkennen und als CommunityMember vorschlagen.Philipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/102fix filtering for presentation type2022-07-19T07:15:26+02:00Philipp S. Sommerphilipp.sommer@hereon.defix filtering for presentation typewhen sending notifications
sorry for the delay @linda.baldewein I forgot about it
closes #163when sending notifications
sorry for the delay @linda.baldewein I forgot about it
closes #163Philipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/101Contribution Material2022-11-03T11:25:32+01:00Philipp S. Sommerphilipp.sommer@hereon.deContribution MaterialThis MR adds the possibility to upload material for contributions. The uploaded material will also be shown as session material and I implemented some shortcuts for upload and download of the material.
Event organizers must enable the u...This MR adds the possibility to upload material for contributions. The uploaded material will also be shown as session material and I implemented some shortcuts for upload and download of the material.
Event organizers must enable the upload for the contribution participants, e.g. at https://hcdc.hereon.de/datahub/events/data-science-symposium-7/edit/
<details>
<summary>Screenshot</summary>
![image](/uploads/1ad9db04a198b0fa3cfd621a26f42b1e/image.png)
</details>
They must also specify the available licenses for uploads
<details>
<summary>Screenshot</summary>
![image](/uploads/036f6baba0f12116ca5b7c2520ad5219/image.png)
</details>
Presenting authors (and session conveners or event organizers) find then an upload button next to their card
<details>
<summary>Screenshot</summary>
![image](/uploads/bf3c7af3185e16997eb6d3665a626708/image.png)
</details>
and they find it in the sidebar of their contribution
<details>
<summary>Screenshot</summary>
![image](/uploads/938a093fd17bd67c20e8a8c60f9c50a8/image.png)
</details>
@viktoria.wichert, @linda.baldewein and @csteger. I will let you know when this feature is available for the data science symposiumPhilipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/100add submission and registration deadline to buttons2022-05-19T10:21:38+02:00Philipp S. Sommerphilipp.sommer@hereon.deadd submission and registration deadline to buttonssee https://gitlab.hzdr.de/hcdc/django/clm-community/django-academic-community/-/issues/157#note_1397085see https://gitlab.hzdr.de/hcdc/django/clm-community/django-academic-community/-/issues/157#note_1397085Philipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.dehttps://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/99display Login to Register for anonymous users2022-05-18T16:21:07+02:00Philipp S. Sommerphilipp.sommer@hereon.dedisplay Login to Register for anonymous usersthis MR closes several small issues. It closes #159, #158, #157this MR closes several small issues. It closes #159, #158, #157https://codebase.helmholtz.cloud/hcdc/django/clm-community/django-academic-community/-/merge_requests/98implement channels for chatting in the community2022-10-20T15:40:50+02:00Philipp S. Sommerphilipp.sommer@hereon.deimplement channels for chatting in the communityThis MR implements the channel communication system in the website and includes all the necessary components to make this a progressive web app (PWA) with push notifications.
There are several todos open:
- [ ] implement tests
- [ ] im...This MR implements the channel communication system in the website and includes all the necessary components to make this a progressive web app (PWA) with push notifications.
There are several todos open:
- [ ] implement tests
- [ ] implement e2ee (oriented on https://docs.rocket.chat/guides/security/end-to-end-encryption-algorithms)
- [ ] implement emoji reactions to comments
- [ ] implement autocompletion for sessions, events and contributions
- [ ] implement pinned channels for topics, activities, sessions, events and contributions
- [ ] implement lazy loading of threads
- [ ] implement assigning names for threads
- [ ] implement sorting of chat messages either latest first or oldest first
this WIP can be tested in the [playground](https://hcdc.hereon.de/clm-playground/)Philipp S. Sommerphilipp.sommer@hereon.dePhilipp S. Sommerphilipp.sommer@hereon.de