mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-06-14 05:47:30 +02:00
Compare commits
7 Commits
3429a40ae9
...
849a3ef9b3
Author | SHA1 | Date | |
---|---|---|---|
|
849a3ef9b3 | ||
|
70abd0f490 | ||
|
4445dd4a96 | ||
|
03932672f3 | ||
|
dc6a40de02 | ||
|
dde1baa25c | ||
|
7a7ee47e0b |
1
.gitignore
vendored
1
.gitignore
vendored
@ -48,7 +48,6 @@ backups/
|
|||||||
env/
|
env/
|
||||||
venv/
|
venv/
|
||||||
db.sqlite3
|
db.sqlite3
|
||||||
shell.nix
|
|
||||||
|
|
||||||
# ansibles customs host
|
# ansibles customs host
|
||||||
ansible/host_vars/*.yaml
|
ansible/host_vars/*.yaml
|
||||||
|
@ -7,7 +7,7 @@ from api.viewsets import is_regex
|
|||||||
from django_tables2.views import MultiTableMixin
|
from django_tables2.views import MultiTableMixin
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect, Http404
|
||||||
from django.views.generic import DetailView, UpdateView, CreateView
|
from django.views.generic import DetailView, UpdateView, CreateView
|
||||||
from django.views.generic.list import ListView
|
from django.views.generic.list import ListView
|
||||||
from django.urls import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
@ -71,7 +71,7 @@ class FoodListView(ProtectQuerysetMixin, LoginRequiredMixin, MultiTableMixin, Li
|
|||||||
open_table = self.get_queryset().order_by('expiry_date').filter(
|
open_table = self.get_queryset().order_by('expiry_date').filter(
|
||||||
Q(polymorphic_ctype__model='transformedfood')
|
Q(polymorphic_ctype__model='transformedfood')
|
||||||
| Q(polymorphic_ctype__model='basicfood', basicfood__date_type='DLC')).filter(
|
| Q(polymorphic_ctype__model='basicfood', basicfood__date_type='DLC')).filter(
|
||||||
expiry_date__lt=timezone.now()).filter(
|
expiry_date__lt=timezone.now(), end_of_life='').filter(
|
||||||
PermissionBackend.filter_queryset(self.request, Food, 'view'))
|
PermissionBackend.filter_queryset(self.request, Food, 'view'))
|
||||||
# table served
|
# table served
|
||||||
served_table = self.get_queryset().order_by('-pk').filter(
|
served_table = self.get_queryset().order_by('-pk').filter(
|
||||||
@ -240,11 +240,6 @@ class TransformedFoodCreateView(ProtectQuerysetMixin, ProtectedCreateView):
|
|||||||
form.instance.is_ready = False
|
form.instance.is_ready = False
|
||||||
return super().form_valid(form)
|
return super().form_valid(form)
|
||||||
|
|
||||||
def get_context_data(self, *args, **kwargs):
|
|
||||||
context = super().get_context_data(*args, **kwargs)
|
|
||||||
context['title'] += ' ' + self.object.name
|
|
||||||
return context
|
|
||||||
|
|
||||||
def get_success_url(self, **kwargs):
|
def get_success_url(self, **kwargs):
|
||||||
self.object.refresh_from_db()
|
self.object.refresh_from_db()
|
||||||
return reverse_lazy('food:transformedfood_view', kwargs={"pk": self.object.pk})
|
return reverse_lazy('food:transformedfood_view', kwargs={"pk": self.object.pk})
|
||||||
@ -438,6 +433,8 @@ class FoodDetailView(ProtectQuerysetMixin, LoginRequiredMixin, DetailView):
|
|||||||
return context
|
return context
|
||||||
|
|
||||||
def get(self, *args, **kwargs):
|
def get(self, *args, **kwargs):
|
||||||
|
if Food.objects.filter(pk=kwargs['pk']).count() != 1:
|
||||||
|
return Http404
|
||||||
model = Food.objects.get(pk=kwargs['pk']).polymorphic_ctype.model
|
model = Food.objects.get(pk=kwargs['pk']).polymorphic_ctype.model
|
||||||
if 'stop_redirect' in kwargs and kwargs['stop_redirect']:
|
if 'stop_redirect' in kwargs and kwargs['stop_redirect']:
|
||||||
return super().get(*args, **kwargs)
|
return super().get(*args, **kwargs)
|
||||||
|
@ -19,8 +19,9 @@ Le modèle regroupe :
|
|||||||
* Propriétaire (doit-être un Club)
|
* Propriétaire (doit-être un Club)
|
||||||
* Allergènes (ManyToManyField)
|
* Allergènes (ManyToManyField)
|
||||||
* date d'expiration
|
* date d'expiration
|
||||||
* a été mangé (booléen)
|
* fin de vie
|
||||||
* est prêt (booléen)
|
* est prêt (booléen)
|
||||||
|
* consigne (pour les GCKs)
|
||||||
|
|
||||||
BasicFood
|
BasicFood
|
||||||
~~~~~~~~~
|
~~~~~~~~~
|
||||||
@ -40,7 +41,7 @@ Les TransformedFood correspondent aux produits préparés à la Kfet. Ils peuven
|
|||||||
|
|
||||||
Le modèle regroupe :
|
Le modèle regroupe :
|
||||||
|
|
||||||
* Durée de consommation (par défaut 3 jours)
|
* Durée de conservation (par défaut 3 jours)
|
||||||
* Ingrédients (ManyToManyField vers Food)
|
* Ingrédients (ManyToManyField vers Food)
|
||||||
* Date de création
|
* Date de création
|
||||||
* Champs de Food
|
* Champs de Food
|
||||||
|
@ -12,6 +12,7 @@ Applications de la Note Kfet 2020
|
|||||||
../api/index
|
../api/index
|
||||||
registration
|
registration
|
||||||
logs
|
logs
|
||||||
|
food
|
||||||
treasury
|
treasury
|
||||||
wei
|
wei
|
||||||
wrapped
|
wrapped
|
||||||
@ -66,6 +67,8 @@ Applications facultatives
|
|||||||
Serveur central d'authentification, permet d'utiliser son compte de la NoteKfet2020 pour se connecter à d'autre application ayant intégrer un client.
|
Serveur central d'authentification, permet d'utiliser son compte de la NoteKfet2020 pour se connecter à d'autre application ayant intégrer un client.
|
||||||
* `Scripts <https://gitlab.crans.org/bde/nk20-scripts>`_
|
* `Scripts <https://gitlab.crans.org/bde/nk20-scripts>`_
|
||||||
Ensemble de commande `./manage.py` pour la gestion de la note: import de données, verification d'intégrité, etc...
|
Ensemble de commande `./manage.py` pour la gestion de la note: import de données, verification d'intégrité, etc...
|
||||||
|
* `Food <food>`_ :
|
||||||
|
Gestion de la nourriture dans Kfet pour les clubs.
|
||||||
* `Treasury <treasury>`_ :
|
* `Treasury <treasury>`_ :
|
||||||
Interface de gestion pour les trésorièr⋅es, émission de factures, remises de chèque, statistiques...
|
Interface de gestion pour les trésorièr⋅es, émission de factures, remises de chèque, statistiques...
|
||||||
* `WEI <wei>`_ :
|
* `WEI <wei>`_ :
|
||||||
|
@ -183,6 +183,7 @@ Contributeur⋅rices
|
|||||||
* korenst1
|
* korenst1
|
||||||
* nicomarg
|
* nicomarg
|
||||||
* PAC
|
* PAC
|
||||||
|
* Quark
|
||||||
* ÿnérant
|
* ÿnérant
|
||||||
|
|
||||||
|
|
||||||
|
34
shell-static.nix
Executable file
34
shell-static.nix
Executable 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
23
shell.nix
Executable 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
|
||||||
|
'';
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user