diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..5fabb77
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,26 @@
+{
+ "nodes": {
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1743597898,
+ "narHash": "sha256-b5vow3e30Y/gQud8P65d36KEnF56ukED46bJYB5QVGI=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "3d9f74651d01b73e9c46d89bf17d5103e48ab307",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "master",
+ "type": "indirect"
+ }
+ },
+ "root": {
+ "inputs": {
+ "nixpkgs": "nixpkgs"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..50299c0
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,66 @@
+{
+ description = "Invoiceplane invoice template development shell";
+
+ inputs.nixpkgs.url = "nixpkgs/master";
+
+ outputs = { self, nixpkgs, ... }@inputs:
+ let
+ pkgs = nixpkgs.legacyPackages.x86_64-linux;
+ start =
+ pkgs.writeShellScriptBin "start" ''
+ set -e
+ export QEMU_NET_OPTS="hostfwd=tcp::8080-:80"
+ ${pkgs.nixos-shell}/bin/nixos-shell --flake .
+ '';
+ in {
+ nixosConfigurations.vm = nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ specialArgs.inputs = inputs;
+ pkgs = import nixpkgs {
+ overlays = [
+ (self: super: {
+ froide-govplan = super.froide-govplan.overrideAttrs (oldAttrs: rec {
+ postInstall = oldAttrs.postInstall + ''
+ rm -r $out/${pkgs.python3.sitePackages}/froide_govplan/templates/froide_govplan
+ ln -sf /var/lib/froide-govplan/template $out/${pkgs.python3.sitePackages}/froide_govplan/templates/froide_govplan
+ '';
+ });
+ })
+ ];
+ };
+ modules = [
+ ({ lib, config, pkgs, ... }: {
+
+ virtualisation = {
+ memorySize = 8000;
+ diskSize = 4096;
+ cores = 4;
+ };
+
+ services.froide-govplan = {
+ enable = true;
+ settings = {
+ DEBUG = lib.mkForce true;
+ CSRF_TRUSTED_ORIGINS = [ "http://localhost:8080" ];
+ };
+ };
+
+ nixos-shell.mounts.extraMounts = {
+ "/var/lib/froide-govplan/template" = {
+ target = /home/onny/projects/froide-govplan/froide_govplan/templates/froide_govplan;
+ cache = "none";
+ };
+ };
+
+ system.stateVersion = "25.05";
+ services.getty.autologinUser = "root";
+ })
+ ];
+ };
+
+ packages = { inherit start; };
+ defaultPackage.x86_64-linux = start;
+
+ };
+}
+
diff --git a/froide_govplan/templates/froide_govplan/base.html b/froide_govplan/templates/froide_govplan/base.html
index 2f457b9..2920f7e 100644
--- a/froide_govplan/templates/froide_govplan/base.html
+++ b/froide_govplan/templates/froide_govplan/base.html
@@ -3,9 +3,282 @@
{% load djangocms_alias_tags %}
{% load menu_tags %}
{% block body %}
+
+
+
+
+
+
+
+
+
+
+ Starter Template ยท Bootstrap v5.3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Toggle theme
+
+
+
+
+
+ Light
+
+
+
+
+
+
+ Dark
+
+
+
+
+
+
+ Auto
+
+
+
+
+
+
+
+
+
+
+
+
+ Bootstrap
+
+
+
+
+
+
+
+
+ Get started with Bootstrap
+ Quickly and easily get started with Bootstrap's compiled, production-ready files with this barebones example featuring some basic HTML and helpful links. Download all our examples to get started.
+
+
+
{% static_alias "govplan_header" %}
{% block app_body %}
{% placeholder "content" %}
{% endblock app_body %}
{% static_alias "govplan_footer" %}
-{% endblock body %}
+
+
+
+
+
+
Starter projects
+
+
Ready to go beyond the starter template? Check out these open source projects that you can quickly duplicate to a new GitHub repository.
+
+
+
+
+
Guides
+
Read more detailed instructions and documentation on using or contributing to Bootstrap.
+
+
+
+
+
+ Created by the Bootstrap team · © 2024
+
+
+
+
+
+
+
+{% endblock body %}
\ No newline at end of file