514 Commits

Author SHA1 Message Date
Massedil
16a4e4a5bc Add backend for accepting a group invitation
For #887
2025-11-29 19:14:28 +01:00
Massedil
bb71ec763c Add backend for group invitations
For #887
2025-11-29 19:14:28 +01:00
Laurent GAY
8116f03ebf Add :allow_see_participants in group/actor - #687 2025-11-29 19:14:27 +01:00
Massedil
9d4a558c1a Possibility to unban a user
#1843
2025-09-27 17:54:59 +02:00
Laurent GAY
726a5e1d78 user list for moderation of pending users - #877 2025-09-13 19:57:53 +02:00
Laurent GAY
23cd7333c4 can not login for pending user - #877 2025-09-13 16:43:00 +02:00
Massedil
3a3c452e92 Validate external_links on both server and client sides.
Display errors from SaveAdminSettings to the user.
2025-09-12 21:46:48 +02:00
Massedil
66f3956d14 refactor: rename externalUrls to externalLinks 2025-09-12 21:46:48 +02:00
Massedil
88b48f3350 feat(backend): add external_urls to GraphQL
Available for :
- saveAdminSettings
- adminSettings
- config

For #1764
2025-09-12 21:36:58 +02:00
Laurent GAY
04cf4efee4 manage user pending of moderation - #877 2025-09-11 20:07:20 +02:00
Laurent GAY
45378f0e40 Add moderation text in user - #877 2025-09-11 13:57:24 +02:00
Laurent GAY
3e4899c8e4 [Adminitration] Allow registrations: 3 modes = "close", "allowed", "moderate" - #877 2025-09-03 21:07:49 +02:00
Massedil
569d27f0b9 fix: Allow updating media in admin_settings_medias by UUID
Fixes #1769
2025-06-10 15:30:31 +02:00
Massedil
0af4745c98 Add relayAddress in the get_instances() reply
Solves #1694
2025-06-10 05:38:49 +02:00
Massedil
a50681c9ac refactor(media): use UUID instead of ID for media retrieval in GraphQL
Fixes #1760
2025-05-27 11:18:21 +02:00
setop
6ecab1df1b fix: sanatize FeedToken 2025-04-05 23:45:33 +02:00
Massedil
8303eb13a5 feat(config): add durationOfLongEvent in FullConfig query
For #1568
2025-02-11 17:40:03 +01:00
setop
255c8fda67 fix(back): event.ends_on can be nil 2024-12-06 15:57:53 +01:00
Massedil
f67bd900f7 Issue #1567 : use ends_on for comparaisons to get future and ongoing events 2024-11-29 19:19:19 +01:00
Massedil
71c0ce37a9 case harmonization with other fields
- longevents -> long_events (back-end)
- longevents -> longEvents (front-end)
2024-11-29 19:15:35 +01:00
Massedil
91b0e7d265 remove an obsolete comment 2024-11-29 19:15:35 +01:00
Massedil
752da9e641 Issue #1567 : Add a long_event computed field to an event
The actual long_event implementation is only done for search and long_event is a parameter of the search request.

This change is needed for the the front-end to know if an event is a long_event everywhere an event is received.

The computed field (Ecto virtual field) is set after the Ecto request with the function with_virtual_fields().

with_virtual_fields() handles cases where there is an event, a list of events and a paginated list of events returned.
2024-11-29 19:15:35 +01:00
Massedil
6ff3525764 #1308 Fix group sorting and add new criteria (creation date, last event activity) 2024-10-24 19:09:28 +02:00
Massedil
41aa81097d #1308 update build_page() to permit query with group_by()
Using Repo.aggregate() to count the total of elements is incompatible with group_by().

Changing this to a subquery with a count(*) of results permit to use group_by().
2024-10-24 19:09:28 +02:00
setop
79bd6a5d21 fix #1469 and # 1475 2024-07-08 21:44:22 +00:00
setop
7030d56864 all developments of milestone 1 2024-04-10 12:36:21 +00:00
Thomas Citharel
9d99684402 feat: allow to filter events by local-only
In addition to internal (self + federated) and global (global external search engine), introduce the
self possibility

Closes #1322

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-02-09 13:51:59 +01:00
Thomas Citharel
95379885c8 fix(backend): fix sending N notifications to a single conversation participant
Because of the conversation participant ID being necessary in the email, we launch N jobs to send
notifications, so we need to send the email straight away.

Anonymous participants are always only a single conversation actor
participant, so we're fine

Closes #1384

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-02-08 17:23:21 +01:00
Thomas Citharel
681f8dcd04 test(graphql): add tests for sending private event announcements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-02-08 17:23:21 +01:00
Thomas Citharel
10c4038b85 fix(backend): hide non-public replies to comments in event comment threads
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-02-08 17:23:20 +01:00
Thomas Citharel
c9a1c35aa7 fix(announcements): make sure only valid announcements are shown to the user
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-02-08 17:23:20 +01:00
Thomas Citharel
01eecbf1d4 fix(event announcements): only show comments from event organizers in event announcement list
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-02-08 17:23:20 +01:00
Jonathan Reinbrecht
9670b77bc3 [IMP] move filtering of past events in related events section to backend 2024-01-19 13:59:01 +01:00
Thomas Citharel
d0835232d6 refactor(backend): change naming of function names to avoid the is_ prefix
Following Credo.Check.Readability.PredicateFunctionNames check

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-01-04 13:35:08 +01:00
Thomas Citharel
b3ba45e8a7 fix(back): fix instances filtering
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-01-04 13:02:16 +01:00
Thomas Citharel
428537df1f refactor: remove some outdated todos and legacy fallbacks
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-01-04 13:02:16 +01:00
Thomas Citharel
f7585cfc75 fix(backend): validate length of instance actor details and set description column to text
Closes #1393

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-01-04 13:02:05 +01:00
Thomas Citharel
c3aa145148 refactor(backend): extract convert_ecto_errors in the Mobilizon.Storage.Ecto module
And use it to log refreshing instance errors

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-01-04 12:59:15 +01:00
Thomas Citharel
7c51ef79b9 refactor(activitypub): simplify request to get instances list and status
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-01-03 18:33:15 +01:00
Thomas Citharel
58e4239aae Merge branch 'extract-nodeinfo-metadata' into 'main'
feat(nodeinfo): extract and save NodeInfo information from instances to...

Closes #1392

See merge request framasoft/mobilizon!1513
2023-12-21 10:05:26 +00:00
Thomas Citharel
99b2339424 feat(nodeinfo): extract and save NodeInfo information from instances to display it on instances list
We also try to detect the application actor if it's not given by NodeInfo metadata (FEP-2677)
(guessing for Mobilizon, PeerTube & Mastodon).

Closes #1392

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-12-21 10:45:56 +01:00
Thomas Citharel
3c75856149 fix(feeds): make sure posts for feeds are ordered by publication date desc
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-12-20 09:26:28 +01:00
summersamara
31411bfc03 Fix ICS feed missing events: order by "begins_on" DESC so that the latest events are always included
https://git.potsda.mn/potsda.mn/mobilizon/issues/37
2023-12-20 09:07:47 +01:00
Thomas Citharel
09f41328ab fix(graphql): set default value for resource type parameter
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-12-06 14:43:51 +01:00
Thomas Citharel
3f2a88fcfa fix: fix creating participant stats
Map.update/4 does not pass initial value to callback function, so increasing for a new role would
set 0 instead of 1

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-12-01 11:29:54 +01:00
Thomas Citharel
b315e1d7ff refactor: use Phoenix verified routes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-12-01 11:29:53 +01:00
Thomas Citharel
c731f0f084 test: fix tests
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-11-21 17:29:58 +01:00
Thomas Citharel
b97f1c997f refactor: use dedicated email for event announcements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-11-21 15:28:56 +01:00
Thomas Citharel
b635937091 fix: various fixes
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-11-20 09:35:21 +01:00
Thomas Citharel
b5672cee7e WIP
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-11-14 14:24:17 +01:00