diff --git a/flake.lock b/flake.lock index e2486de..471ca20 100644 --- a/flake.lock +++ b/flake.lock @@ -2,16 +2,16 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1773222311, - "narHash": "sha256-BHoB/XpbqoZkVYZCfXJXfkR+GXFqwb/4zbWnOr2cRcU=", + "lastModified": 1758070117, + "narHash": "sha256-uLwwHFCZnT1c3N3biVe/0hCkag2GSrf9+M56+Okf+WY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0590cd39f728e129122770c029970378a79d076a", + "rev": "e9b7f2ff62b35f711568b1f0866243c7c302028d", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "nixos-25.11", + "ref": "nixos-25.05", "type": "indirect" } }, diff --git a/flake.nix b/flake.nix index 4e34de1..cfad560 100644 --- a/flake.nix +++ b/flake.nix @@ -1,7 +1,7 @@ { description = "Invoiceplane invoice template development shell"; - inputs.nixpkgs.url = "nixpkgs/nixos-25.11"; + inputs.nixpkgs.url = "nixpkgs/nixos-25.05"; outputs = { self, nixpkgs, ... }@inputs: @@ -77,7 +77,7 @@ }; }; - system.stateVersion = "25.11"; + system.stateVersion = "25.05"; services.getty.autologinUser = "root"; } ) diff --git a/froide-govplan.nix b/froide-govplan.nix index a77d60e..6e4f236 100644 --- a/froide-govplan.nix +++ b/froide-govplan.nix @@ -13,13 +13,15 @@ let pkg = cfg.package.overridePythonAttrs (old: { src = ./.; dependencies = old.dependencies ++ [ cfg.package.python.pkgs.mastodon-py ]; - postInstall = old.postInstall + '' - ln -s ${settingsFile} $out/${pkg.python.sitePackages}/froide_govplan/project/extra_settings.py + postInstall = + old.postInstall + + '' + ln -s ${settingsFile} $out/${pkg.python.sitePackages}/froide_govplan/project/extra_settings.py - rm -r $out/${pkgs.python3.sitePackages}/froide_govplan/templates - ln -sf /var/lib/froide-govplan/templates $out/${pkgs.python3.sitePackages}/froide_govplan/templates - cp -r froide_govplan/static $out/${pkgs.python3.sitePackages}/froide_govplan/ - ''; + rm -r $out/${pkgs.python3.sitePackages}/froide_govplan/templates + ln -sf /var/lib/froide-govplan/templates $out/${pkgs.python3.sitePackages}/froide_govplan/templates + cp -r froide_govplan/static $out/${pkgs.python3.sitePackages}/froide_govplan/ + ''; }); froide-govplan = pkgs.writeShellApplication { @@ -167,9 +169,9 @@ in systemd = { services = { - postgresql-setup.serviceConfig.ExecStartPost = + postgresql.serviceConfig.ExecStartPost = let - sqlFile = pkgs.writeText "froide-govplan-postgis-setup.sql" '' + sqlFile = pkgs.writeText "immich-pgvectors-setup.sql" '' CREATE EXTENSION IF NOT EXISTS postgis; ''; in @@ -188,51 +190,49 @@ in Group = "govplan"; }; after = [ - "postgresql.target" + "postgresql.service" "network.target" "systemd-tmpfiles-setup.service" ]; wantedBy = [ "multi-user.target" ]; - environment = { - PYTHONPATH = pkg.python.pkgs.makePythonPath ( - with pkg.python.pkgs; - [ + environment = + { + PYTHONPATH = pkg.python.pkgs.makePythonPath (with pkg.python.pkgs; [ - bleach - django-admin-sortable2 - django-cms - django-filer - django-mfa3 - django-mptt - django-oauth-toolkit - django-sekizai - django-tinymce - django-treebeard - djangocms-alias - # Downgrade to last working version - (toPythonModule ( - pkgs.froide.overridePythonAttrs (prev: { - nativeBuildInputs = [ pkgs.makeBinaryWrapper ]; - postBuild = ""; - doCheck = false; - pnpmDeps = null; - src = prev.src.override { - rev = "a78a4054f9f37b0a5109a6d8cfbbda742f86a8ca"; - hash = "sha256-gtOssbsVf3nG+pmLPgvh4685vHh2x+jlXiTjU+JhQa8="; - }; - }) - )) - psycopg - mastodon-py - (toPythonModule (pkg)) - ] - ); - GDAL_LIBRARY_PATH = "${pkgs.gdal}/lib/libgdal.so"; - GEOS_LIBRARY_PATH = "${pkgs.geos}/lib/libgeos_c.so"; - } - // lib.optionalAttrs (cfg.secretKeyFile != null) { - SECRET_KEY_FILE = cfg.secretKeyFile; - }; + bleach + django-admin-sortable2 + django-cms + django-filer + django-mfa3 + django-mptt + django-oauth-toolkit + django-sekizai + django-tinymce + django-treebeard + djangocms-alias + # Downgrade to last working version + (toPythonModule ( + pkgs.froide.overridePythonAttrs (prev: { + nativeBuildInputs = [ pkgs.makeBinaryWrapper ]; + postBuild = ""; + doCheck = false; + pnpmDeps = null; + src = prev.src.override { + rev = "a78a4054f9f37b0a5109a6d8cfbbda742f86a8ca"; + hash = "sha256-gtOssbsVf3nG+pmLPgvh4685vHh2x+jlXiTjU+JhQa8="; + }; + }) + )) + psycopg + mastodon-py + (toPythonModule (pkg)) + ]); + GDAL_LIBRARY_PATH = "${pkgs.gdal}/lib/libgdal.so"; + GEOS_LIBRARY_PATH = "${pkgs.geos}/lib/libgeos_c.so"; + } + // lib.optionalAttrs (cfg.secretKeyFile != null) { + SECRET_KEY_FILE = cfg.secretKeyFile; + }; preStart = '' # Auto-migrate on first run or if the package has changed versionFile="${cfg.dataDir}/src-version" diff --git a/froide_govplan/signals.py b/froide_govplan/signals.py index c88dbc1..550024d 100644 --- a/froide_govplan/signals.py +++ b/froide_govplan/signals.py @@ -2,21 +2,17 @@ from django.db.models.signals import post_save from django.dispatch import receiver from django.conf import settings from django.db import transaction +from mastodon import Mastodon from .models import GovernmentPlanUpdate, GovernmentPlan import re import html -if not settings.DEBUG: - from mastodon import Mastodon - def strip_html_tags(text): tag_re = re.compile(r'<[^>]+>') plain_text = tag_re.sub('', text) return html.unescape(plain_text) def post_to_mastodon(text): - if settings.DEBUG: - return mastodon = Mastodon( access_token=settings.MASTODON_ACCESS_TOKEN, api_base_url=settings.MASTODON_API_BASE_URL diff --git a/froide_govplan/urls.py b/froide_govplan/urls.py index de63191..12f9d6a 100644 --- a/froide_govplan/urls.py +++ b/froide_govplan/urls.py @@ -29,10 +29,6 @@ urlpatterns = [ path( pgettext_lazy("url part", "/plan//"), GovPlanDetailView.as_view(), - ), - path( - pgettext_lazy("url part", "/plan/"), - GovPlanDetailView.as_view(), name="plan", ), path( @@ -45,17 +41,9 @@ urlpatterns = [ GovPlanProposeUpdateView.as_view(), name="propose_planupdate", ), - path( - pgettext_lazy("url part", "/vorhaben/"), - GovPlanDetailView.as_view(), - ), path( pgettext_lazy("url part", "//"), GovPlanSectionDetailView.as_view(), - ), - path( - pgettext_lazy("url part", "/"), - GovPlanSectionDetailView.as_view(), name="section", ), ]