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.
This commit is contained in:
Massedil
2024-11-21 19:52:57 +01:00
committed by setop
parent 9796304a9a
commit 752da9e641
4 changed files with 76 additions and 1 deletions

View File

@@ -66,6 +66,7 @@ defmodule Mobilizon.Events.Event do
participants: [Actor.t()],
contacts: [Actor.t()],
language: String.t(),
long_event: boolean,
metadata: [EventMetadata.t()]
}
@@ -89,7 +90,8 @@ defmodule Mobilizon.Events.Event do
:picture_id,
:physical_address_id,
:attributed_to_id,
:language
:language,
:long_event
]
@attrs @required_attrs ++ @optional_attrs
@@ -102,6 +104,7 @@ defmodule Mobilizon.Events.Event do
field(:slug, :string)
field(:description, :string)
field(:ends_on, :utc_datetime)
field(:long_event, :boolean, virtual: true, default: nil)
field(:title, :string)
field(:status, EventStatus, default: :confirmed)
field(:draft, :boolean, default: false)