1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2025-11-14 10:41:27 +01:00

Compare commits

...

6 Commits

Author SHA1 Message Date
aeltheos
4eef2889a2 Merge branch 'nix-shell' into 'main'
Nix shell

See merge request bde/nk20!201
2025-11-01 23:09:56 +01:00
ehouarn
74aee64161 Merge branch 'small_features' into 'main'
Small features

See merge request bde/nk20!359
2025-10-31 23:50:58 +01:00
Ehouarn
206a967827 Permissions fixed 2025-10-31 21:53:35 +01:00
Ehouarn
69aedccbae Get rid of activity and guests duplicates 2025-10-19 23:58:41 +02:00
Yoann Beaugnon
dde1baa25c typo 2022-08-21 19:50:53 +02:00
Yoann Beaugnon
7a7ee47e0b Add two shell.nix to enable easier development on nixos. 2022-08-21 19:46:11 +02:00
5 changed files with 89 additions and 9 deletions

1
.gitignore vendored
View File

@@ -48,7 +48,6 @@ backups/
env/
venv/
db.sqlite3
shell.nix
# ansibles customs host
ansible/host_vars/*.yaml

View File

@@ -152,9 +152,11 @@ class ActivityDetailView(ProtectQuerysetMixin, LoginRequiredMixin, MultiTableMix
def get_tables_data(self):
return [
Guest.objects.filter(activity=self.object)
.filter(PermissionBackend.filter_queryset(self.request, Guest, "view")),
.filter(PermissionBackend.filter_queryset(self.request, Guest, "view"))
.distinct(),
self.object.opener.filter(activity=self.object)
.filter(PermissionBackend.filter_queryset(self.request, Opener, "view")),
.filter(PermissionBackend.filter_queryset(self.request, Opener, "view"))
.distinct(),
]
def render_to_response(self, context, **response_kwargs):
@@ -309,7 +311,7 @@ class ActivityInviteView(ProtectQuerysetMixin, ProtectedCreateView):
@transaction.atomic
def form_valid(self, form):
form.instance.activity = Activity.objects\
.filter(PermissionBackend.filter_queryset(self.request, Activity, "view")).get(pk=self.kwargs["pk"])
.filter(PermissionBackend.filter_queryset(self.request, Activity, "view")).distinct().get(pk=self.kwargs["pk"])
return super().form_valid(form)
def get_success_url(self, **kwargs):

View File

@@ -927,7 +927,7 @@
"note",
"transactiontemplate"
],
"query": "{\"destination\": [\"club\", \"note\"]}",
"query": "[\"AND\", {\"destination\": [\"club\", \"note\"]}, {\"category__name\": \"Clubs\"}]",
"type": "view",
"mask": 2,
"field": "",
@@ -943,7 +943,7 @@
"note",
"transactiontemplate"
],
"query": "{\"destination\": [\"club\", \"note\"]}",
"query": "[\"AND\", {\"destination\": [\"club\", \"note\"]}, {\"category__name\": \"Clubs\"}]",
"type": "add",
"mask": 3,
"field": "",
@@ -959,7 +959,7 @@
"note",
"transactiontemplate"
],
"query": "{\"destination\": [\"club\", \"note\"]}",
"query": "[\"AND\", {\"destination\": [\"club\", \"note\"]}, {\"category__name\": \"Clubs\"}]",
"type": "change",
"mask": 3,
"field": "",
@@ -3484,7 +3484,23 @@
"mask": 1,
"permanent": false,
"description": "Voir la bouffe servie"
}
}
},
{
"model": "permission.permission",
"pk": 223,
"fields": {
"model": [
"note",
"templatecategory"
],
"query": "{\"name\": \"Clubs\"}",
"type": "view",
"mask": 2,
"field": "",
"permanent": false,
"description": "Voir la catégorie de bouton Clubs"
}
},
{
"model": "permission.permission",
@@ -4896,7 +4912,6 @@
19,
20,
21,
27,
59,
60,
61,
@@ -4907,6 +4922,7 @@
182,
184,
185,
223,
239,
240,
241
@@ -5271,6 +5287,12 @@
176,
177,
197,
211,
212,
213,
214,
215,
216,
311,
319
]

34
shell-static.nix Executable file
View File

@@ -0,0 +1,34 @@
# This is a workaround meant for use with the nix package manager. If you don't know what it is or don't use it, please ignore this file.
#
# The nk20 javascript static location are hardcoded for imperative system.
# This make ./manage.py collectstatic hard to use with nixos.
#
# A workaround is to enter a FHSUserEnv with the static placed under /share/javascript/<static>.
# This emulate a debian like system and enable collecting static normally with ./manage.py collectstatics.
# The regular shell.nix should be enough for other configurations.
#
# Warning, you are still supposed to use pip package with a venv !
{ pkgs ? import <nixpkgs> {} }:
(pkgs.buildFHSUserEnv {
name = "pipzone";
targetPkgs = pkgs: (with pkgs;
let
fhs-static = stdenv.mkDerivation {
name = "fhs-static";
buildCommand = ''
mkdir -p $out/share/javascript/bootstrap4
mkdir -p $out/share/javascript/jquery
ln -s ${python39Packages.xstatic-bootstrap}/lib/python3.9/site-packages/xstatic/pkg/bootstrap/data/* $out/share/javascript/bootstrap4
ln -s ${python39Packages.xstatic-jquery}/lib/python3.9/site-packages/xstatic/pkg/jquery/data/* $out/share/javascript/jquery
'';
};
in [
fhs-static
python39
gettext
python39Packages.pip
python39Packages.virtualenv
python39Packages.setuptools
]);
runScript = "bash";
}).env

23
shell.nix Executable file
View File

@@ -0,0 +1,23 @@
# This is meant for use with the nix package manager. If you don't know what it is or don't use it, please ignore this file.
#
# This shell.nix contains all dependencies require to create a venv and pip install -r requirements.txt.
#
# Please check shell-static.nix for running ./manage.py collectstatics.
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
buildInputs = with pkgs; [
python39
python39Packages.pip
python39Packages.setuptools
gettext
];
shellHook = ''
# Tells pip to put packages into $PIP_PREFIX instead of the usual locations.
# See https://pip.pypa.io/en/stable/user_guide/#environment-variables.
export PIP_PREFIX=$(pwd)/_build/pip_packages
export PYTHONPATH="$PIP_PREFIX/${pkgs.python39.sitePackages}:$PYTHONPATH"
export PATH="$PIP_PREFIX/bin:$PATH"
unset SOURCE_DATE_EPOCH
'';
}