Commit Graph

318 Commits

Author SHA1 Message Date
Thomas Citharel
be1664ec85
Improve sending pending participation notifications
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-15 16:59:40 +01:00
Thomas Citharel
85ceb1de47
Improve json-ld metadata on event live streams
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-15 12:11:29 +01:00
Thomas Citharel
6eba531c89
Allow group admins to moderate new members
Closes #881

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-12 17:17:05 +01:00
Thomas Citharel
ae24fa17d5
Refactor Mobilizon.Service.Activity.Member
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-12 17:16:55 +01:00
Thomas Citharel
38a3ffc19f
Send event creation and event update notifications in a background task
The event update notification is made unique so that repeated changes
only trigger one notificate every 30 minutes

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-11 16:29:38 +01:00
Thomas Citharel
5c7067b22b
Send notification emails to followers and members when a group publishes
a new event

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-10 16:36:32 +01:00
Thomas Citharel
2401abedb5
Include organizer actor in icalendar export
Closes #907

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-09 11:50:35 +01:00
Thomas Citharel
ea276fbe73
Detect if Python3 is installed before launching PythonPort Genserver
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-09 09:15:31 +01:00
Thomas Citharel
a46372094c
Add dir="auto" to most user generated content
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-07 18:12:22 +01:00
Thomas Citharel
52e90fb320
Only add address and tags to event icalendar export if present
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-04 18:38:25 +01:00
Thomas Citharel
54116686c8
Remove non existing page from sitemap
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-03 10:14:43 +01:00
Thomas Citharel
2b3a0f19b9
Fix backend tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-03 10:14:43 +01:00
Thomas Citharel
59edfe26cc
Improve notifier filter handing to avoid compiler cycle
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-11-02 19:50:24 +01:00
Thomas Citharel
3b63c2928e
Add more metadata elements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-22 09:41:36 +02:00
Thomas Citharel
f24ec89408
Fix event notification tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-18 11:14:46 +02:00
Thomas Citharel
aca2ed612e
Add datetime_to_date_string/3 and is_same_day?/2 to Mobilizon.Service.DateTime
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-18 11:13:37 +02:00
Thomas Citharel
cd89efa1e3
Export timezone in ICS files
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-18 11:12:18 +02:00
Thomas Citharel
b383d11f51
Fix backend tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-12 08:49:12 +02:00
Thomas Citharel
62af1e72d6
Some fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-11 17:56:23 +02:00
Thomas Citharel
d58ca5743d
Add timezone handling
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-11 17:37:17 +02:00
Thomas Citharel
dee7c58449
Spec fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-11 15:14:54 +02:00
Thomas Citharel
98449b9cfd
Spec fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-05 16:05:52 +02:00
Thomas Citharel
f4284e1d3a
Remove unused functions
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-05 16:05:51 +02:00
Thomas Citharel
0c667b13ae
Export participants to different formats
* CSV
* PDF (requires Python dependency `weasyprint`)
* ODS (requires Python dependency `pyexcel_ods3`)

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-10-05 10:52:55 +02:00
Thomas Citharel
2b808d998e
Delete participations after warning participants
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-30 15:58:12 +02:00
Thomas Citharel
fd980176bc
Add some debug logging to actor suspension process
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-30 15:58:09 +02:00
Thomas Citharel
b5d9b82bdd
Refactor Mobilizon.Federation.ActivityPub and add typespecs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-29 16:31:11 +02:00
Thomas Citharel
55e7696230
Absinthe middleware actor provider
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-27 09:42:11 +02:00
Thomas Citharel
1893d9f55b
Various refactoring and typespec improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-26 17:52:24 +02:00
Thomas Citharel
75e254d8b4
Actor suspension refactoring
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-26 17:52:23 +02:00
Thomas Citharel
acbe0e6c59
Fix rendering metadata from deleted (empty) comments
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-26 17:52:22 +02:00
Thomas Citharel
de047c8939
Various typespec and compilation improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-09-26 17:52:20 +02:00
Thomas Citharel
ab843dff4c
Fixed deduplicated files from orphan media being deleted as well
Happens when a file is uploaded, then orphaned, and a similar file is
used somewhere. The CleanMedia job service didn't consider that case

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-22 16:17:20 +02:00
Thomas Citharel
d577b07c6e
Introduce event language detection
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-20 18:01:29 +02:00
Thomas Citharel
46bfa2c422
Add a default timezone if user's timezone is set to null
Closes #746

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-20 16:54:34 +02:00
Thomas Citharel
a3d02184f0
Fix sitemap creation on Docker
Docker is installed at root but priv/ lies in lib/mobilizon-x/
We can use Application.app_dir(:mobilizon, "priv/static") to get the
correct path

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-19 15:23:33 +02:00
Thomas Citharel
de102755f8
Add sane limits to feeds
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-16 16:23:13 +02:00
Thomas Citharel
33bf8334fe
Allow all rel values for event & post links in descriptions
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-09 14:26:19 +02:00
Thomas Citharel
93ba408671
Improve group profile metadata
* Add canonical link
* Add link alternate to application/activity+json representation
* add robots noindex on remote profiles

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-04 10:49:02 +02:00
Thomas Citharel
bd71dd6cf1
Handle SSL being already started in LDAP connection
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-03 14:58:06 +02:00
Thomas Citharel
cceb083ad7
Improve error reporting and add test
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-08-03 12:15:54 +02:00
Thomas Citharel
a670a7d7a7
Fix and improve language handling
- Refactor plugs to detect and set language
- Translate ecto validation errors
- Use Gettext directly, not Mobilizon.Web.Gettext
- Set the language in the <html> attribute according to the one loaded
  on front-end

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-07-27 20:11:56 +02:00
Thomas Citharel
cc33ee7ada Merge branch 'fix-unattached-media-cleanup' into 'master'
Refactor the query to detect unattached media

See merge request framasoft/mobilizon!996
2021-07-22 14:40:03 +00:00
Thomas Citharel
fa8cae681f
Add possibility to create users with provider (such as LDAP)
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-07-22 15:09:12 +02:00
Thomas Citharel
db1649ded8
Refactor the query to detect unattached media
The previous one was going 💥 in production

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-07-21 19:44:13 +02:00
Thomas Citharel
d7bcfd5be6
Add target to allowed attributes on <a> links so that links open in new
tabs

Closes #786

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-07-21 10:34:07 +02:00
Thomas Citharel
69e3db1e9b
Fix push notifications for group, members & post activities
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-30 12:16:06 +02:00
Thomas Citharel
f5aa7ffa74
Fix crash when trying to notify activities not from groups
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-30 10:13:57 +02:00
Thomas Citharel
5cdac95a85
Send announcement notifications to anonymous participants
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-27 18:16:34 +02:00
Thomas Citharel
ed182e358b
Fix scheduler test
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2021-06-27 16:18:53 +02:00