diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b0e63151..c4dec2e6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## 3.0.4 - 2023-03-20 + +### Fixed + +- LDAP connector with Erlang 24.3+ +- Participant export configuration not being loaded + + ## 3.0.3 - 2022-12-22 ### Fixed diff --git a/Dockerfile b/Dockerfile index 8d6afe8ee..91557dc2b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM elixir:alpine +FROM elixir:1.13.4-alpine RUN apk add --no-cache inotify-tools postgresql-client yarn file make gcc libc-dev argon2 imagemagick cmake build-base libwebp-tools bash ncurses git python3 diff --git a/flake.lock b/flake.lock new file mode 100644 index 000000000..75850d537 --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1684049129, + "narHash": "sha256-7WB9LpnPNAS8oI7hMoHeKLNhRX7k3CI9uWBRSfmOCCE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0470f36b02ef01d4f43c641bbf07020bcab71bf1", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 000000000..edcd5fec8 --- /dev/null +++ b/flake.nix @@ -0,0 +1,27 @@ +{ + description = "A very basic flake"; + + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + + outputs = { self, nixpkgs }: { + + packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello; + + packages.x86_64-linux.default = self.packages.x86_64-linux.hello; + + devShells.x86_64-linux.default = let + pkgs = import nixpkgs { system = "x86_64-linux"; }; + in pkgs.mkShell { + buildInputs = with pkgs; [ + elixir + mix2nix + cmake + imagemagick + (yarn.override { + nodejs = pkgs.nodejs-16_x; + }) + ]; + }; + + }; +} diff --git a/js/package.json b/js/package.json index fef053165..ad7f7d491 100644 --- a/js/package.json +++ b/js/package.json @@ -1,6 +1,6 @@ { "name": "mobilizon", - "version": "3.0.3", + "version": "3.0.4", "private": true, "scripts": { "dev": "vite", diff --git a/js/src/views/PageNotFound.vue b/js/src/views/PageNotFound.vue index 84dcd656e..b0354afa5 100644 --- a/js/src/views/PageNotFound.vue +++ b/js/src/views/PageNotFound.vue @@ -2,20 +2,6 @@
- - - - -

{{ $t("The page you're looking for doesn't exist.") }}

diff --git a/lib/mobilizon/config.ex b/lib/mobilizon/config.ex index abafe9ece..d14563bda 100644 --- a/lib/mobilizon/config.ex +++ b/lib/mobilizon/config.ex @@ -19,6 +19,7 @@ defmodule Mobilizon.Config do registration_email_denylist: list(String.t()), demo: boolean(), repository: String.t(), + version: String.t(), email_from: String.t(), email_reply_to: String.t(), federating: boolean(), @@ -102,9 +103,7 @@ defmodule Mobilizon.Config do end @spec instance_version :: String.t() - def instance_version do - GitStatus.commit() - end + def instance_version, do: instance_config()[:version] @spec instance_hostname :: String.t() def instance_hostname, do: instance_config()[:hostname] diff --git a/lib/mobilizon/events/categories.ex b/lib/mobilizon/events/categories.ex index 0ebb5a164..3541e7fd8 100644 --- a/lib/mobilizon/events/categories.ex +++ b/lib/mobilizon/events/categories.ex @@ -28,126 +28,82 @@ defmodule Mobilizon.Events.Categories do defp build_in_categories do [ %{ - id: :arts, - label: gettext("Arts") + id: :ausflug, + label: gettext("Ausflug") }, %{ - id: :book_clubs, - label: gettext("Book clubs") + id: :ausstellung, + label: gettext("Ausstellung") }, %{ - id: :business, - label: gettext("Business") + id: :demonstration, + label: gettext("Demonstration") }, %{ - id: :causes, - label: gettext("Causes") + id: :einweihung, + label: gettext("Einweihung") }, %{ - id: :comedy, - label: gettext("Comedy") + id: :filmvorfuehrung, + label: gettext("Filmvorführung") }, %{ - id: :crafts, - label: gettext("Crafts") + id: :fussball, + label: gettext("Fußball") }, %{ - id: :food_drink, - label: gettext("Food & Drink") + id: :gedenken, + label: gettext("Gedenken") }, %{ - id: :health, - label: gettext("Health") + id: :infostand, + label: gettext("Infostand") }, %{ - id: :music, - label: gettext("Music") + id: :kuenstlerisches, + label: gettext("Künstlerisches") }, %{ - id: :auto_boat_air, - label: gettext("Auto, boat and air") + id: :kneipe, + label: gettext("Kneipe") }, %{ - id: :community, - label: gettext("Community") + id: :konzert, + label: gettext("Konzert") }, %{ - id: :family_education, - label: gettext("Family & Education") + id: :kuefa, + label: gettext("KüFa") }, %{ - id: :fashion_beauty, - label: gettext("Fashion & Beauty") - }, - %{ - id: :film_media, - label: gettext("Film & Media") - }, - %{ - id: :games, - label: gettext("Games") - }, - %{ - id: :language_culture, - label: gettext("Language & Culture") - }, - %{ - id: :learning, - label: gettext("Learning") - }, - %{ - id: :lgbtq, - label: gettext("LGBTQ") - }, - %{ - id: :movements_politics, - label: gettext("Movements and politics") - }, - %{ - id: :networking, - label: gettext("Networking") + id: :lesung, + label: gettext("Lesung") }, %{ id: :party, label: gettext("Party") }, %{ - id: :performing_visual_arts, - label: gettext("Performing & Visual Arts") + id: :sport, + label: gettext("Sport") }, %{ - id: :pets, - label: gettext("Pets") + id: :theater, + label: gettext("Theater") }, %{ - id: :photography, - label: gettext("Photography") + id: :verhandlung, + label: gettext("Verhandlung") }, %{ - id: :outdoors_adventure, - label: gettext("Outdoors & Adventure") - }, - %{ - id: :spirituality_religion_beliefs, - label: gettext("Spirituality, Religion & Beliefs") - }, - %{ - id: :science_tech, - label: gettext("Science & Tech") - }, - %{ - id: :sports, - label: gettext("Sports") - }, - %{ - id: :theatre, - label: gettext("Theatre") + id: :workshop, + label: gettext("Workshop") }, # Legacy default value %{ id: :meeting, - label: gettext("Meeting") - } + label: gettext("Infoveranstaltung") + }, ] end diff --git a/lib/mobilizon/events/events.ex b/lib/mobilizon/events/events.ex index b10a673fa..ebcdfa533 100644 --- a/lib/mobilizon/events/events.ex +++ b/lib/mobilizon/events/events.ex @@ -1860,7 +1860,7 @@ defmodule Mobilizon.Events do @spec filter_future_events(Ecto.Queryable.t(), boolean) :: Ecto.Query.t() defp filter_future_events(query, true) do from(q in query, - where: q.begins_on > ^DateTime.utc_now() + where: coalesce(q.ends_on, q.begins_on) > ^DateTime.utc_now() ) end diff --git a/lib/web/templates/email/instance_follow.text.eex b/lib/web/templates/email/instance_follow.text.eex index 930a7ed2d..7e85bbb22 100644 --- a/lib/web/templates/email/instance_follow.text.eex +++ b/lib/web/templates/email/instance_follow.text.eex @@ -7,4 +7,4 @@ <%= if @follower.type == :Application do %><%= gettext "Note: %{name} following you doesn't necessarily imply that you follow this instance, but you can ask to follow them too.", name: Mobilizon.Actors.Actor.display_name_and_username(@follower) %><% end %> <%= if @follower.type == :Application do %><%= gettext "To accept this invitation, head over to the instance's admin settings." %><% else %><%= gettext "To accept this invitation, head over to the profile's admin page." %><% end %> -<%= if @follower.type == :Application do %><%= "#{Mobilizon.Web.Endpoint.url()}/settings/admin/relays/followers" %><% else %><%= "#{Mobilizon.Web.Endpoint.url()}/settings/admin/profiles/#{@follower.id}" %><% end %> +<%= if @follower.type == :Application do %><%= "#{Mobilizon.Web.Endpoint.url()}/settings/admin/instances/%{name}" %><% else %><%= "#{Mobilizon.Web.Endpoint.url()}/settings/admin/profiles/#{@follower.id}" %><% end %> diff --git a/mix.exs b/mix.exs index 9a67d1748..416aa73ba 100644 --- a/mix.exs +++ b/mix.exs @@ -1,7 +1,7 @@ defmodule Mobilizon.Mixfile do use Mix.Project - @version "3.0.3" + @version "3.0.4" def project do [ diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po index 33399d13c..2ce3de719 100644 --- a/priv/gettext/de/LC_MESSAGES/default.po +++ b/priv/gettext/de/LC_MESSAGES/default.po @@ -2311,42 +2311,7 @@ msgstr "LGBTQ" msgid "Language & Culture" msgstr "Sprache & Kultur" -#: lib/mobilizon/events/categories.ex:96 -#, elixir-autogen, elixir-format -msgid "Learning" -msgstr "Lernen" - -#: lib/mobilizon/events/categories.ex:149 -#, elixir-autogen, elixir-format -msgid "Meeting" -msgstr "Treffen" - -#: lib/mobilizon/events/categories.ex:104 -#, elixir-autogen, elixir-format -msgid "Movements and politics" -msgstr "Bewegungen und Politik" - -#: lib/mobilizon/events/categories.ex:64 -#, elixir-autogen, elixir-format -msgid "Music" -msgstr "Musik" - -#: lib/mobilizon/events/categories.ex:108 -#, elixir-autogen, elixir-format -msgid "Networking" -msgstr "Netzwerke" - -#: lib/mobilizon/events/categories.ex:128 -#, elixir-autogen, elixir-format -msgid "Outdoors & Adventure" -msgstr "Natur & Abenteuer" - -#: lib/mobilizon/events/categories.ex:112 -#, elixir-autogen, elixir-format -msgid "Party" -msgstr "Party" - -#: lib/mobilizon/events/categories.ex:116 +#: lib/mobilizon/events/categories.ex:100 #, elixir-autogen, elixir-format msgid "Performing & Visual Arts" msgstr "Darstellende & bildende Kunst" @@ -2371,16 +2336,63 @@ msgstr "Wissenschaft & Technologie" msgid "Spirituality, Religion & Beliefs" msgstr "Glauben, Religion & Spiritualität" -#: lib/mobilizon/events/categories.ex:140 -#, elixir-autogen, elixir-format -msgid "Sports" +msgid "Ausflug" +msgstr "Ausflug" + +msgid "Ausstellung" +msgstr "Ausstellung" + +msgid "Demonstration" +msgstr "Demonstration" + +msgid "Einweihung" +msgstr "Einweihung" + +msgid "Filmvorführung" +msgstr "Filmvorführung" + +msgid "Fußball" +msgstr "Fußball" + +msgid "Gedenken" +msgstr "Gedenken" + +msgid "Infostand" +msgstr "Infostand" + +msgid "Infoveranstaltung" +msgstr "Infoveranstaltung" + +msgid "Künstlerisches" +msgstr "Künstlerisches" + +msgid "Kneipe" +msgstr "Kneipe" + +msgid "Konzert" +msgstr "Konzert" + +msgid "KüFa" +msgstr "KüFa" + +msgid "Lesung" +msgstr "Lesung" + +msgid "Party" +msgstr "Party" + +msgid "Sport" msgstr "Sport" -#: lib/mobilizon/events/categories.ex:144 -#, elixir-autogen, elixir-format -msgid "Theatre" +msgid "Theater" msgstr "Theater" +msgid "Verhandlung" +msgstr "Verhandlung" + +msgid "Workshop" +msgstr "Workshop" + #: lib/web/templates/email/participation/event_card.text.eex:9 #, elixir-autogen, elixir-format msgid "Read more: %{url}" diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po index 80f342ee3..b5afde973 100644 --- a/priv/gettext/en/LC_MESSAGES/default.po +++ b/priv/gettext/en/LC_MESSAGES/default.po @@ -1964,11 +1964,6 @@ msgstr "" #: lib/mobilizon/events/categories.ex:112 #, elixir-autogen, elixir-format -msgid "Party" -msgstr "" - -#: lib/mobilizon/events/categories.ex:116 -#, elixir-autogen, elixir-format msgid "Performing & Visual Arts" msgstr "" @@ -1992,15 +1987,62 @@ msgstr "" msgid "Spirituality, Religion & Beliefs" msgstr "" -#: lib/mobilizon/events/categories.ex:140 -#, elixir-autogen, elixir-format -msgid "Sports" -msgstr "" +msgid "Ausflug" +msgstr "Excursion" -#: lib/mobilizon/events/categories.ex:144 -#, elixir-autogen, elixir-format -msgid "Theatre" -msgstr "" +msgid "Ausstellung" +msgstr "Exhibition" + +msgid "Demonstration" +msgstr "Demonstration" + +msgid "Einweihung" +msgstr "Inauguration" + +msgid "Filmvorführung" +msgstr "Film screening" + +msgid "Fußball" +msgstr "Football" + +msgid "Gedenken" +msgstr "Remembrance" + +msgid "Infostand" +msgstr "Infostand" + +msgid "Infoveranstaltung" +msgstr "Info event" + +msgid "Künstlerisches" +msgstr "Art related" + +msgid "Kneipe" +msgstr "Bar" + +msgid "Konzert" +msgstr "Concert" + +msgid "KüFa" +msgstr "Kitchen for all" + +msgid "Lesung" +msgstr "Reading" + +msgid "Party" +msgstr "Party" + +msgid "Sport" +msgstr "Sport" + +msgid "Theater" +msgstr "Theater" + +msgid "Verhandlung" +msgstr "Trial" + +msgid "Workshop" +msgstr "Workshop" #: lib/web/templates/email/participation/event_card.text.eex:9 #, elixir-autogen, elixir-format, fuzzy