• 1.3.0 18639e8c67

    1.3.0
    All checks were successful
    continuous-integration/drone/push Build is passing
    continuous-integration/drone/tag Build is passing
    continuous-integration/drone/promote/production Build is passing
    Stable

    simon released this 2026-06-16 10:03:31 +02:00 | 31 commits to main since this release

    Signed by simon
    GPG key ID: 40E7A58C4AA1EDB2

    [1.3.0] - 2026-06-16

    Added

    • GDPR/DSGVO join-form description – Custom fields can carry a "join form description" that is shown as the field's label on the public join form, with clickable external links (whole URLs and Markdown [text](url)). Useful for presenting a GDPR confirmation with a link to an externally hosted privacy declaration before sign-up.
    • Join-form description tooltip in member details – Custom fields that have a join-form description show an info tooltip (prefixed "Beitrittsformular:") on their label in the member detail view.
    • Editable join-form description – Admins can set a field's join-form description in the custom-field settings, with an inline hint about the supported link syntax.
    • CSV import – groups column – Members can be assigned to groups during CSV import via a Groups/Gruppen column; group names that do not exist yet are created automatically, and re-importing the same file does not create duplicate groups.
    • CSV import – membership fee type column – A Fee Type/Beitragsart column assigns each member's membership fee type; an unknown name falls back to the default fee type and is flagged in the preview with a link to create it.
    • CSV import – mapping preview – After uploading a file, a preview shows how every column maps (with sample rows and warnings for ignored or unknown columns) and the import only starts once you confirm.
    • Dynamic CSV import templates – The EN and DE import-template downloads now include the association's current custom fields instead of a fixed column set.
    • Deactivate and reactivate members – Members can be deactivated directly from the member page: a dialog picks the exit date (prefilled to today, future dates allowed); deactivated members can be reactivated, which clears the exit date.
    • Tooltips and OIDC explanation – Icon-only action buttons (including the Vereinfacht sync control) now carry tooltips and accessible labels, and the OIDC settings section explains that it enables single sign-on.

    Changed

    • Member bulk actions in one menu – The actions above the member overview (open in email program, copy email addresses, export to CSV, export to PDF) are now collected in a single "Aktionen" dropdown instead of separate buttons. Without a selection they apply to all members, or to the currently filtered members; the trigger shows the active scope. Opening the email program is disabled when too many recipients are selected, with a hint to copy the addresses or use the export instead.
    • Dropdown buttons – Dropdown buttons (actions, filter, column visibility) now show a chevron so they are recognizable as menus.
    • Default GDPR custom field – The seeded GDPR field was shortened from "Datenschutzerklärung akzeptiert" to "DSGVO" and now ships with a default join-form description (with a placeholder link to replace).

    Fixed

    • CSV date round-trip – Date custom-field values are now exported as ISO-8601 (YYYY-MM-DD), so an exported CSV can be re-imported without date-parsing errors.
    • CSV import – fee-status columns ignored – Columns such as Bezahlstatus / Membership Fee Status are always ignored on import and never stored as a custom-field value, even when a custom field of the same name exists.
    • Column-header tooltips clipped – Tooltips on the members-overview column headers are no longer clipped by the sticky table header.
    • Text selection opens member – Dragging to select text in a members-overview row (for example to copy an email) no longer opens the member details; a plain click still opens them.
    • Sort by custom date – Sorting the member list or member export by a custom date field now orders rows chronologically instead of like text, so e.g. 29.01.1981 correctly comes before 01.03.1982.
    Downloads
  • 1.2.0 d549e6878c

    1.2.0
    All checks were successful
    continuous-integration/drone/tag Build is passing
    continuous-integration/drone/promote/production Build is passing
    continuous-integration/drone/push Build is passing
    Stable

    simon released this 2026-05-08 15:23:17 +02:00 | 143 commits to main since this release

    [1.2.0] - 2026-05-08

    Changed

    • Clickable table row highlights – The new hover/focus-visible row highlight behavior is now the CoreComponents default across clickable tables. Sticky-first-column tables keep zebra striping and show selection through the sticky-column accent stripe (checkboxes keep their default style).
    • Members overview scrolling – The members table scrollbar now scrolls inside the table container instead of moving with the full page.
    • Join request display and settings workflow – Improved join request rendering and related settings behavior in one cohesive update:
      • Join request fields now respect their configured field types in the details view.
      • Custom field labels in join request views were standardized.
      • Join request field formatting was corrected for more consistent output.
      • Join link settings now include a direct "Open" action in addition to copy/share workflows.

    Fixed

    • Runtime ENV handling – Empty or invalid environment variables (e.g. SMTP_PORT=, PORT=, POOL_SIZE=, DATABASE_PORT=) no longer cause ArgumentError at boot. Instead raises clear errors for required vars set but empty (e.g. DATABASE_HOST, PHX_HOST/DOMAIN, SECRET_KEY_BASE).
    • PostgreSQL 18 Docker volume path – Corrected the database volume path to match PostgreSQL 18 expectations.
    • Association name ENV handlingASSOCIATION_NAME is now treated as source of truth; the field is read-only in Global Settings when managed via ENV.
    • Association name consistency after updates – Layout now prefers explicitly assigned club_name values to avoid stale cached values right after settings changes.
    • SMTP ENV/UI source selection – SMTP now follows a strict single-source policy: ENV-only when SMTP_HOST is set, otherwise Settings-only.
    • SMTP settings UI in ENV mode – SMTP fields are read-only, save action is hidden, and missing required ENV keys are shown as a warning.

    Dependency updates

    • Mix dependencies were updated.
    • Renovate Docker image was updated to v43.165.
    • Rauthy Docker image was updated to v0.35.1.
    • just was updated to v1.50.0.
    Downloads
  • 1.1.1 f8a3cc4c47

    1.1.1
    All checks were successful
    continuous-integration/drone/push Build is passing
    continuous-integration/drone/promote/production Build is passing
    continuous-integration/drone/tag Build is passing
    Stable

    simon released this 2026-03-16 20:59:59 +01:00 | 176 commits to main since this release

    1.1.1 - 2026-03-16

    Added

    • FORCE_SEEDS – Environment variable. When set to "true", bootstrap (and optionally dev) seeds are run even when the admin user already exists, so you can re-apply changed seed data (e.g. new roles or custom fields) without deleting the admin user.
    • Improved OIDC-only mode – Admin can enable “Only OIDC sign-in” in settings; when enabled, direct registration is disabled and sign-in page redirects to OIDC when configured.
    • Success toast auto-dismiss – Success flash messages (e.g. “Settings saved”) hide automatically after 5 seconds instead of requiring the user to close them.

    Changed

    • Seeds run only when needed – Bootstrap and dev seeds are skipped on application start when the admin user already exists (Mv.Release.bootstrap_seeds_applied?/0). This avoids duplicate data and speeds up startup in dev and production after the first run. Set FORCE_SEEDS=true to override and re-run.
    • Unauthenticated access – Users who are not logged in are redirected to sign-in without showing a “no permission” message; the message is only shown to logged-in users who lack access.

    Fixed

    • SMTP configuration – Repaired so that both port 587 (TLS/STARTTLS) and 465 (SSL) work correctly.
    Downloads
  • 1.1.0 837f5fd5bf

    1.1.0
    All checks were successful
    continuous-integration/drone/push Build is passing
    continuous-integration/drone/tag Build is passing
    Stable

    simon released this 2026-03-13 21:12:24 +01:00 | 182 commits to main since this release

    1.1.0 - 2026-03-13

    Added

    • Browser timezone for datetime display – Date/time values (e.g. join request submitted at, approved at, rejected at) are shown in the user’s local timezone.
    • Registration toggle – New global setting to disable direct registration (/register). When disabled, visitors are redirected to sign-in and the register link is hidden; join form remains available.
    • Configurable SMTP in global settings – SMTP host, port, user, password, and TLS options configurable via Admin → Global Settings. Test-email action to verify delivery. Join confirmation and other transactional emails use this configuration.
    • Theme and language selector on unauthenticated pages – Sign-in and join pages now offer theme (light/dark) and locale (e.g. German/English) controls in the header.
    • Duplicate-email handling for join form – If an applicant’s email is already a member or already has a pending join request, the system sends a clarifying email (already-member or already-pending) and shows the same success message (anti-enumeration).
    • Reviewed-by display for join requests – Approval UI shows who reviewed a request via a dedicated display field, without loading the User record.
    • Improved field order and seeds for join request approval – Approval screen field order improved; seed data updated for join-form and approval flows.
    • Tests for SMTP mailer configuration – Tests for SMTP config and for join confirmation email delivery failure (domain and LiveView).

    Changed

    • SMTP settings layout – SMTP options reordered and grouped in global settings for clearer configuration.
    • Join confirmation mail – Uses configurable SMTP from settings; on delivery failure the join form shows an error and no success message.
    • i18n – Gettext catalogs updated for new and changed strings.

    Fixed

    • Login page translation – Corrected translation/locale handling on the sign-in page.
    Downloads
  • 1.0.0 160c35c0ba

    1.0.0
    All checks were successful
    continuous-integration/drone/tag Build is passing
    continuous-integration/drone/push Build is passing
    Stable

    moritz released this 2026-03-11 12:18:55 +01:00 | 207 commits to main since this release

    First production ready release. Expect breaking changes.

    Downloads