1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2025-11-17 20:07:52 +01:00

Compare commits

..

2 Commits

Author SHA1 Message Date
quark
7e664c2d4e Merge branch 'pyjacpp-main-patch-28593' into 'translations'
fix: typo CR@ANS -> CR@NS

See merge request bde/nk20!356
2025-10-16 23:33:33 +02:00
PyJaC++
95fa3c1bc9 fix: typo CR@ANS -> CR@NS 2025-10-16 22:33:37 +02:00
9 changed files with 11 additions and 69 deletions

1
.gitignore vendored
View File

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

View File

@@ -338,13 +338,13 @@ class SogeCredit(models.Model):
last_name=self.user.last_name,
first_name=self.user.first_name,
bank="Société générale",
valid=True,
valid=False,
)
credit_transaction._force_save = True
credit_transaction.save()
credit_transaction.refresh_from_db()
self.credit_transaction = credit_transaction
elif not self.valid:
elif not self.valid_legacy:
self.credit_transaction.amount = self.amount
self.credit_transaction._force_save = True
self.credit_transaction.save()
@@ -371,7 +371,7 @@ class SogeCredit(models.Model):
The Sogé credit may be created after the user already paid its memberships.
We query transactions and update the credit, if it is unvalid.
"""
if self.valid or not self.pk:
if self.valid_legacy or not self.pk:
return
# Soge do not pay BDE and kfet memberships since 2022
@@ -403,7 +403,7 @@ class SogeCredit(models.Model):
self.transactions.add(m.transaction)
for tr in self.transactions.all():
tr.valid = True
tr.valid = False
tr.save()
def invalidate(self):
@@ -411,7 +411,7 @@ class SogeCredit(models.Model):
Invalidating a Société générale delete the transaction of the bank if it was already created.
Treasurers must know what they do, With Great Power Comes Great Responsibility...
"""
if self.valid:
if self.valid_legacy:
self.credit_transaction.valid = False
self.credit_transaction.save()
for tr in self.transactions.all():
@@ -420,7 +420,7 @@ class SogeCredit(models.Model):
tr.save()
def validate(self, force=False):
if self.valid and not force:
if self.valid_legacy and not force:
# The credit is already done
return
@@ -428,7 +428,6 @@ class SogeCredit(models.Model):
self.invalidate()
# Refresh credit amount
self.save()
self.valid = True
self.credit_transaction.valid = True
self.credit_transaction._force_save = True
self.credit_transaction.save()

View File

@@ -56,7 +56,6 @@ class InvoiceTable(tables.Table):
model = Invoice
template_name = 'django_tables2/bootstrap4.html'
fields = ('id', 'name', 'object', 'acquitted', 'invoice',)
order_by = ('-id',)
class RemittanceTable(tables.Table):

View File

@@ -359,7 +359,7 @@ class TestSogeCredits(TestCase):
))
self.assertRedirects(response, reverse("treasury:manage_soge_credit", args=(soge_credit.pk,)), 302, 200)
soge_credit.refresh_from_db()
self.assertTrue(soge_credit.valid)
self.assertTrue(soge_credit.valid_legacy)
self.user.note.refresh_from_db()
self.assertEqual(
Transaction.objects.filter(Q(source=self.user.note) | Q(destination=self.user.note)).count(), 3)

View File

@@ -417,7 +417,7 @@ class SogeCreditListView(LoginRequiredMixin, ProtectQuerysetMixin, SingleTableVi
)
if "valid" not in self.request.GET or not self.request.GET["valid"]:
qs = qs.filter(valid=False)
qs = qs.filter(credit_transaction__valid=False)
return qs

View File

@@ -680,7 +680,7 @@ class TestWEIRegistration(TestCase):
self.assertTrue(soge_credit.exists())
soge_credit = soge_credit.get()
self.assertTrue(membership.transaction in soge_credit.transactions.all())
self.assertTrue(membership.transaction.valid)
self.assertFalse(membership.transaction.valid)
# Check that if the WEI is started, we can't update a wei
self.wei.date_start = date(2000, 1, 1)

View File

@@ -4399,7 +4399,7 @@ msgstr "Géré par le BDE"
#: note_kfet/templates/base.html:231
msgid "Hosted by Cr@ns"
msgstr "Hébergé par le Cr@ans"
msgstr "Hébergé par le Cr@ns"
#: note_kfet/templates/base.html:273
msgid "The note is not available for now"

View File

@@ -1,34 +0,0 @@
# 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

View File

@@ -1,23 +0,0 @@
# 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
'';
}