diff --git a/lib/graphql/resolvers/event.ex b/lib/graphql/resolvers/event.ex index c375f0104..fe7aaec69 100644 --- a/lib/graphql/resolvers/event.ex +++ b/lib/graphql/resolvers/event.ex @@ -69,13 +69,31 @@ defmodule Mobilizon.GraphQL.Resolvers.Event do @spec list_events(any(), map(), Absinthe.Resolution.t()) :: {:ok, Page.t(Event.t())} | {:error, :events_max_limit_reached} + def list_events( + _parent, + %{ + page: page, + limit: limit, + order_by: order_by, + direction: direction, + longevents: longevents, + location: location, + radius: radius + }, + _resolution + ) + when limit < @event_max_limit do + {:ok, + Events.list_events(page, limit, order_by, direction, true, longevents, location, radius)} + end + def list_events( _parent, %{page: page, limit: limit, order_by: order_by, direction: direction}, _resolution ) when limit < @event_max_limit do - {:ok, Events.list_events(page, limit, order_by, direction)} + {:ok, Events.list_events(page, limit, order_by, direction, true)} end def list_events(_parent, %{page: _page, limit: _limit}, _resolution) do diff --git a/lib/graphql/schema/event.ex b/lib/graphql/schema/event.ex index e2961794d..4ecd682fe 100644 --- a/lib/graphql/schema/event.ex +++ b/lib/graphql/schema/event.ex @@ -375,6 +375,13 @@ defmodule Mobilizon.GraphQL.Schema.EventType do object :event_queries do @desc "Get all events" field :events, :paginated_event_list do + arg(:location, :string, default_value: nil, description: "A geohash for coordinates") + + arg(:radius, :float, + default_value: nil, + description: "Radius around the location to search in" + ) + arg(:page, :integer, default_value: 1, description: "The page in the paginated event list") arg(:limit, :integer, default_value: 10, description: "The limit of events per page") @@ -388,6 +395,11 @@ defmodule Mobilizon.GraphQL.Schema.EventType do description: "Direction for the sort" ) + arg(:longevents, :boolean, + default_value: nil, + description: "if mention filter in or out long events" + ) + middleware(Rajska.QueryAuthorization, permit: :all) resolve(&Event.list_events/3) diff --git a/lib/mobilizon/events/events.ex b/lib/mobilizon/events/events.ex index 1009a0197..4d68b9d41 100644 --- a/lib/mobilizon/events/events.ex +++ b/lib/mobilizon/events/events.ex @@ -359,19 +359,34 @@ defmodule Mobilizon.Events do @doc """ Returns the list of events. """ - @spec list_events(integer | nil, integer | nil, atom, atom, boolean) :: Page.t(Event.t()) + @spec list_events( + integer | nil, + integer | nil, + atom, + atom, + boolean, + boolean | nil, + string | nil, + float | nil + ) :: Page.t(Event.t()) def list_events( page \\ nil, limit \\ nil, sort \\ :begins_on, direction \\ :asc, - is_future \\ true + is_future \\ true, + longevents \\ nil, + location \\ nil, + radius \\ nil ) do Event |> distinct([e], [{^direction, ^sort}, asc: e.id]) |> preload([:organizer_actor, :participants]) |> sort(sort, direction) + |> maybe_join_address(%{location: location, radius: radius}) + |> events_for_location(%{location: location, radius: radius}) |> filter_future_events(is_future) + |> events_for_longevents(longevents) |> filter_public_visibility() |> filter_draft() |> filter_cancelled_events() @@ -572,7 +587,7 @@ defmodule Mobilizon.Events do |> events_for_search_query() |> events_for_begins_on(Map.get(args, :begins_on, DateTime.utc_now())) |> events_for_ends_on(Map.get(args, :ends_on)) - |> events_for_longevents(args) + |> events_for_longevents(Map.get(args, :longevents)) |> events_for_category(args) |> events_for_categories(args) |> events_for_languages(args) @@ -1379,15 +1394,13 @@ defmodule Mobilizon.Events do end end - @spec events_for_longevents(Ecto.Queryable.t(), map()) :: Ecto.Query.t() - defp events_for_longevents(query, args) do + @spec events_for_longevents(Ecto.Queryable.t(), Boolean.t() | nil) :: Ecto.Query.t() + defp events_for_longevents(query, longevents) do duration = Config.get([:instance, :duration_of_long_event], 0) if duration <= 0 do query else - longevents = Map.get(args, :longevents) - case longevents do nil -> query diff --git a/package-lock.json b/package-lock.json index 8006b8a60..bdf530331 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "@fullcalendar/daygrid": "^6.1.10", "@fullcalendar/interaction": "^6.1.10", "@fullcalendar/vue3": "^6.1.10", - "@oruga-ui/oruga-next": "^0.8.10", + "@oruga-ui/oruga-next": "0.8.12", "@oruga-ui/theme-oruga": "^0.2.0", "@sentry/tracing": "^7.1", "@sentry/vue": "^7.1", @@ -3138,9 +3138,9 @@ "dev": true }, "node_modules/@oruga-ui/oruga-next": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@oruga-ui/oruga-next/-/oruga-next-0.8.10.tgz", - "integrity": "sha512-ETPSoGZu1parbj8C3V2ZojQnN4ptQMiJEwS9Hx44NcaDzu4q/FDsYkKYiz6G9kx8cDceXXxvydfOUpZePVVdzw==", + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/@oruga-ui/oruga-next/-/oruga-next-0.8.12.tgz", + "integrity": "sha512-I1jcsTA4J6HQdNpSWgK4cNSqv1cHsghQGtJ12p0yXDSJseek0Y8f4vf9+tDRtfONzWHuRyWUGcHIfePsRKVbiQ==", "peerDependencies": { "vue": "^3.0.0" } diff --git a/package.json b/package.json index 83aed32c2..64c143ba1 100644 --- a/package.json +++ b/package.json @@ -32,11 +32,7 @@ "@apollo/client": "^3.9.5", "@framasoft/socket": "^1.0.0", "@framasoft/socket-apollo-link": "^1.0.0", - "@fullcalendar/core": "^6.1.10", - "@fullcalendar/daygrid": "^6.1.10", - "@fullcalendar/interaction": "^6.1.10", - "@fullcalendar/vue3": "^6.1.10", - "@oruga-ui/oruga-next": "^0.8.10", + "@oruga-ui/oruga-next": "0.8.12", "@oruga-ui/theme-oruga": "^0.2.0", "@fullcalendar/core": "^6.1.10", "@fullcalendar/daygrid": "^6.1.10", diff --git a/priv/gettext/pl/LC_MESSAGES/default.po b/priv/gettext/pl/LC_MESSAGES/default.po index e44df87a6..f9e913c0f 100644 --- a/priv/gettext/pl/LC_MESSAGES/default.po +++ b/priv/gettext/pl/LC_MESSAGES/default.po @@ -3,17 +3,17 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-24 14:40+0000\n" -"PO-Revision-Date: 2023-10-22 04:28+0000\n" -"Last-Translator: Jakub Urbanowicz \n" +"PO-Revision-Date: 2024-07-04 23:35+0000\n" +"Last-Translator: ewm \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " -"|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 5.0.1\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" +"X-Generator: Weblate 5.6.2\n" #: lib/web/templates/email/password_reset.html.heex:66 #, elixir-autogen, elixir-format @@ -2373,30 +2373,32 @@ msgstr "Data rejestracji uczestnika" #: lib/web/templates/email/event_participation_confirmed.html.heex:122 #, elixir-autogen, elixir-format msgid "Cancel my attendance" -msgstr "" +msgstr "Anuluj moją obecność" #: lib/web/templates/email/anonymous_participation_confirmation.html.heex:90 #: lib/web/templates/email/event_participation_confirmed.html.heex:99 #, elixir-autogen, elixir-format msgid "If you wish to cancel your participation, simply click on the link below." -msgstr "" +msgstr "Jeśli chcesz anulować swój udział, kliknij poniższy link." #: lib/web/email/admin.ex:142 #, elixir-autogen, elixir-format msgid "Email configuration test for %{instance}" -msgstr "" +msgstr "Test konfiguracji poczty e-mail dla %{instance}" #: lib/web/templates/email/email_configuration_test.html.heex:47 #: lib/web/templates/email/email_configuration_test.text.eex:3 #, elixir-autogen, elixir-format msgid "If you received this email, the email configuration seems to be correct." msgstr "" +"Jeśli otrzymano tę wiadomość e-mail, konfiguracja poczty wydaje się być " +"poprawna." #: lib/web/templates/email/email_configuration_test.html.heex:18 #: lib/web/templates/email/email_configuration_test.text.eex:1 #, elixir-autogen, elixir-format msgid "Well done!" -msgstr "" +msgstr "Dobra robota!" #: lib/web/templates/api/terms.html.heex:55 #, elixir-autogen, elixir-format, fuzzy diff --git a/priv/gettext/pl/LC_MESSAGES/errors.po b/priv/gettext/pl/LC_MESSAGES/errors.po index 8fa3a74bc..5b7ba87f8 100644 --- a/priv/gettext/pl/LC_MESSAGES/errors.po +++ b/priv/gettext/pl/LC_MESSAGES/errors.po @@ -8,16 +8,16 @@ ## to merge POT files into PO files. msgid "" msgstr "" -"PO-Revision-Date: 2023-10-22 23:11+0000\n" -"Last-Translator: Jakub Urbanowicz \n" +"PO-Revision-Date: 2024-07-04 23:35+0000\n" +"Last-Translator: ewm \n" "Language-Team: Polish \n" "Language: pl\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " -"|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 5.0.1\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" +"X-Generator: Weblate 5.6.2\n" #: lib/mobilizon/discussions/discussion.ex:68 #, elixir-autogen @@ -1457,9 +1457,9 @@ msgstr "" #: lib/graphql/resolvers/conversation.ex:164 #, elixir-autogen, elixir-format msgid "Conversation needs to mention at least one participant that's not yourself" -msgstr "" +msgstr "Konwersacja musi zawierać co najmniej jedną wzmiankę o innym uczestniku" #: lib/graphql/resolvers/participant.ex:401 #, elixir-autogen, elixir-format msgid "There are no participants matching the audience you've selected." -msgstr "" +msgstr "Nie ma uczestników pasujących do wybranej grupy odbiorców." diff --git a/src/assets/oruga-tailwindcss.css b/src/assets/oruga-tailwindcss.css index afc56d64a..8f33ffe8b 100644 --- a/src/assets/oruga-tailwindcss.css +++ b/src/assets/oruga-tailwindcss.css @@ -45,7 +45,7 @@ body { @apply border-2 border-mbz-success bg-transparent text-mbz-success hover:bg-mbz-success hover:text-white; } .btn-outlined-warning { - @apply bg-transparent border dark:text-white hover:dark:text-slate-900 hover:bg-mbz-warning border-mbz-warning; + @apply border-2 bg-transparent dark:text-white hover:dark:text-slate-900 hover:bg-mbz-warning border-mbz-warning; } .btn-outlined-danger { @apply border-2 bg-transparent border-mbz-danger text-mbz-danger hover:bg-mbz-danger hover:text-white; diff --git a/src/components/Account/ActorAutoComplete.vue b/src/components/Account/ActorAutoComplete.vue index 1f009d8cb..c41b24c5e 100644 --- a/src/components/Account/ActorAutoComplete.vue +++ b/src/components/Account/ActorAutoComplete.vue @@ -1,7 +1,7 @@