{% blocktrans trimmed with total=fee|pretty_money %}
+ Total needed: {{ total }}
+ {% endblocktrans %}
+ {% endif %}
+
+
{% blocktrans trimmed with balance=registration.user.note.balance|pretty_money %}
+ Current balance: {{ balance }}
+ {% endblocktrans %}
+
{% endif %}
- {% if not registration.caution_check and not registration.first_year %}
+ {% if not registration.caution_check and not registration.first_year and registration.caution_type == 'check' %}
{% trans "The user didn't give her/his caution check." %}
diff --git a/apps/wei/tests/test_wei_registration.py b/apps/wei/tests/test_wei_registration.py
index ffff04c9..f7ce5ac0 100644
--- a/apps/wei/tests/test_wei_registration.py
+++ b/apps/wei/tests/test_wei_registration.py
@@ -126,6 +126,7 @@ class TestWEIRegistration(TestCase):
year=self.year + 1,
date_start=str(self.year + 1) + "-09-01",
date_end=str(self.year + 1) + "-09-03",
+ caution_amount=12000,
))
qs = WEIClub.objects.filter(name="Create WEI Test", year=self.year + 1)
self.assertTrue(qs.exists())
@@ -160,6 +161,7 @@ class TestWEIRegistration(TestCase):
membership_end="2000-09-30",
date_start="2000-09-01",
date_end="2000-09-03",
+ caution_amount=12000,
))
qs = WEIClub.objects.filter(name="Update WEI Test", id=self.wei.id)
self.assertRedirects(response, reverse("wei:wei_detail", kwargs=dict(pk=self.wei.pk)), 302, 200)
@@ -318,6 +320,7 @@ class TestWEIRegistration(TestCase):
bus=[],
team=[],
roles=[],
+ caution_type='check'
))
self.assertEqual(response.status_code, 200)
self.assertFalse(response.context["membership_form"].is_valid())
@@ -334,7 +337,8 @@ class TestWEIRegistration(TestCase):
emergency_contact_phone='+33123456789',
bus=[self.bus.id],
team=[self.team.id],
- roles=[role.id for role in WEIRole.objects.filter(~Q(name="1A")).all()],
+ roles=[role.id for role in WEIRole.objects.filter(~Q(name="1A") & ~Q(name="GC WEI")).all()],
+ caution_type='check'
))
qs = WEIRegistration.objects.filter(user_id=user.id)
self.assertTrue(qs.exists())
@@ -354,6 +358,7 @@ class TestWEIRegistration(TestCase):
bus=[self.bus.id],
team=[self.team.id],
roles=[role.id for role in WEIRole.objects.filter(~Q(name="1A")).all()],
+ caution_type='check'
))
self.assertEqual(response.status_code, 200)
self.assertTrue("This user is already registered to this WEI." in str(response.context["form"].errors))
@@ -506,11 +511,12 @@ class TestWEIRegistration(TestCase):
team=[self.team.id],
roles=[role.id for role in WEIRole.objects.filter(name="Adhérent⋅e WEI").all()],
information_json=self.registration.information_json,
+ caution_type='check'
)
)
qs = WEIRegistration.objects.filter(user_id=self.user.id, soge_credit=False, clothing_size="M")
self.assertTrue(qs.exists())
- self.assertRedirects(response, reverse("wei:validate_registration", kwargs=dict(pk=qs.get().pk)), 302, 200)
+ self.assertRedirects(response, reverse("wei:wei_detail", kwargs=dict(pk=qs.get().wei.pk)), 302, 200)
# Check the page when the registration is already validated
membership = WEIMembership(
@@ -560,11 +566,12 @@ class TestWEIRegistration(TestCase):
team=[self.team.id],
roles=[role.id for role in WEIRole.objects.filter(name="Adhérent⋅e WEI").all()],
information_json=self.registration.information_json,
+ caution_type='check'
)
)
qs = WEIRegistration.objects.filter(user_id=self.user.id, clothing_size="L")
self.assertTrue(qs.exists())
- self.assertRedirects(response, reverse("wei:validate_registration", kwargs=dict(pk=qs.get().pk)), 302, 200)
+ self.assertRedirects(response, reverse("wei:wei_detail", kwargs=dict(pk=qs.get().wei.pk)), 302, 200)
# Test invalid form
response = self.client.post(
@@ -583,6 +590,7 @@ class TestWEIRegistration(TestCase):
team=[],
roles=[],
information_json=self.registration.information_json,
+ caution_type='check'
)
)
self.assertFalse(response.context["membership_form"].is_valid())
@@ -624,7 +632,7 @@ class TestWEIRegistration(TestCase):
second_bus = Bus.objects.create(wei=self.wei, name="Second bus")
second_team = BusTeam.objects.create(bus=second_bus, name="Second team", color=42)
response = self.client.post(reverse("wei:validate_registration", kwargs=dict(pk=self.registration.pk)), dict(
- roles=[WEIRole.objects.get(name="GC WEI").id],
+ roles=[WEIRole.objects.get(name="Adhérent⋅e WEI").id],
bus=self.bus.pk,
team=second_team.pk,
credit_type=4, # Bank transfer
@@ -632,13 +640,14 @@ class TestWEIRegistration(TestCase):
last_name="admin",
first_name="admin",
bank="Société générale",
+ caution_check=True,
))
self.assertEqual(response.status_code, 200)
self.assertFalse(response.context["form"].is_valid())
self.assertTrue("This team doesn't belong to the given bus." in str(response.context["form"].errors))
response = self.client.post(reverse("wei:validate_registration", kwargs=dict(pk=self.registration.pk)), dict(
- roles=[WEIRole.objects.get(name="GC WEI").id],
+ roles=[WEIRole.objects.get(name="Adhérent⋅e WEI").id],
bus=self.bus.pk,
team=self.team.pk,
credit_type=4, # Bank transfer
@@ -646,8 +655,10 @@ class TestWEIRegistration(TestCase):
last_name="admin",
first_name="admin",
bank="Société générale",
+ caution_check=True,
))
self.assertRedirects(response, reverse("wei:wei_registrations", kwargs=dict(pk=self.registration.wei.pk)), 302, 200)
+
# Check if the membership is successfully created
membership = WEIMembership.objects.filter(user_id=self.user.id, club=self.wei)
self.assertTrue(membership.exists())
diff --git a/apps/wei/views.py b/apps/wei/views.py
index a2e8ccff..34b274a2 100644
--- a/apps/wei/views.py
+++ b/apps/wei/views.py
@@ -4,16 +4,18 @@
import os
import shutil
import subprocess
-from datetime import date, timedelta
+from datetime import date
from tempfile import mkdtemp
from django.conf import settings
+from django.contrib import messages
from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth.models import User
from django.core.exceptions import PermissionDenied
from django.db import transaction
from django.db.models import Q, Count
from django.db.models.functions.text import Lower
+from django import forms
from django.http import HttpResponse, Http404
from django.shortcuts import redirect
from django.template.loader import render_to_string
@@ -33,7 +35,7 @@ from permission.views import ProtectQuerysetMixin, ProtectedCreateView
from .forms.registration import WEIChooseBusForm
from .models import WEIClub, WEIRegistration, WEIMembership, Bus, BusTeam, WEIRole
-from .forms import WEIForm, WEIRegistrationForm, BusForm, BusTeamForm, WEIMembership1AForm, \
+from .forms import WEIForm, WEIRegistrationForm, WEIRegistration1AForm, WEIRegistration2AForm, BusForm, BusTeamForm, WEIMembership1AForm, \
WEIMembershipForm, CurrentSurvey
from .tables import BusRepartitionTable, BusTable, BusTeamTable, WEITable, WEIRegistrationTable, \
WEIRegistration1ATable, WEIMembershipTable
@@ -441,6 +443,10 @@ class BusTeamCreateView(ProtectQuerysetMixin, ProtectedCreateView):
self.object.refresh_from_db()
return reverse_lazy("wei:manage_bus_team", kwargs={"pk": self.object.pk})
+ def get_template_names(self):
+ names = super().get_template_names()
+ return names
+
class BusTeamUpdateView(ProtectQuerysetMixin, LoginRequiredMixin, UpdateView):
"""
@@ -473,6 +479,10 @@ class BusTeamUpdateView(ProtectQuerysetMixin, LoginRequiredMixin, UpdateView):
self.object.refresh_from_db()
return reverse_lazy("wei:manage_bus_team", kwargs={"pk": self.object.pk})
+ def get_template_names(self):
+ names = super().get_template_names()
+ return names
+
class BusTeamManageView(ProtectQuerysetMixin, LoginRequiredMixin, DetailView):
"""
@@ -500,7 +510,7 @@ class WEIRegister1AView(ProtectQuerysetMixin, ProtectedCreateView):
Register a new user to the WEI
"""
model = WEIRegistration
- form_class = WEIRegistrationForm
+ form_class = WEIRegistration1AForm
extra_context = {"title": _("Register first year student to the WEI")}
def get_sample_object(self):
@@ -546,9 +556,17 @@ class WEIRegister1AView(ProtectQuerysetMixin, ProtectedCreateView):
def get_form(self, form_class=None):
form = super().get_form(form_class)
form.fields["user"].initial = self.request.user
- del form.fields["first_year"]
- del form.fields["caution_check"]
- del form.fields["information_json"]
+
+ # Cacher les champs pendant l'inscription initiale
+ if "first_year" in form.fields:
+ del form.fields["first_year"]
+ if "caution_check" in form.fields:
+ del form.fields["caution_check"]
+ if "information_json" in form.fields:
+ del form.fields["information_json"]
+ if "caution_type" in form.fields:
+ del form.fields["caution_type"]
+
return form
@transaction.atomic
@@ -586,7 +604,7 @@ class WEIRegister2AView(ProtectQuerysetMixin, ProtectedCreateView):
Register an old user to the WEI
"""
model = WEIRegistration
- form_class = WEIRegistrationForm
+ form_class = WEIRegistration2AForm
extra_context = {"title": _("Register old student to the WEI")}
def get_sample_object(self):
@@ -644,9 +662,19 @@ class WEIRegister2AView(ProtectQuerysetMixin, ProtectedCreateView):
form.fields["soge_credit"].disabled = True
form.fields["soge_credit"].help_text = _("You already opened an account in the Société générale.")
- del form.fields["caution_check"]
- del form.fields["first_year"]
- del form.fields["information_json"]
+ # Cacher les champs pendant l'inscription initiale
+ if "first_year" in form.fields:
+ del form.fields["first_year"]
+ if "caution_check" in form.fields:
+ del form.fields["caution_check"]
+ if "information_json" in form.fields:
+ del form.fields["information_json"]
+
+ # S'assurer que le champ caution_type est obligatoire
+ if "caution_type" in form.fields:
+ form.fields["caution_type"].required = True
+ form.fields["caution_type"].help_text = _("Choose how you want to pay the deposit")
+ form.fields["caution_type"].widget = forms.RadioSelect(choices=form.fields["caution_type"].choices)
return form
@@ -673,6 +701,9 @@ class WEIRegister2AView(ProtectQuerysetMixin, ProtectedCreateView):
information["preferred_roles_pk"] = [role.pk for role in choose_bus_form.cleaned_data["roles"]]
information["preferred_roles_name"] = [role.name for role in choose_bus_form.cleaned_data["roles"]]
form.instance.information = information
+
+ # Sauvegarder le type de caution
+ form.instance.caution_type = form.cleaned_data["caution_type"]
form.instance.save()
if 'treasury' in settings.INSTALLED_APPS:
@@ -702,11 +733,15 @@ class WEIUpdateRegistrationView(ProtectQuerysetMixin, LoginRequiredMixin, Update
# We can't update a registration once the WEI is started and before the membership start date
if today >= wei.date_start or today < wei.membership_start:
return redirect(reverse_lazy('wei:wei_closed', args=(wei.pk,)))
+ # Store the validate parameter in the view's state
+ self.should_validate = request.GET.get('validate', False)
return super().dispatch(request, *args, **kwargs)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["club"] = self.object.wei
+ # Pass the validate parameter to the template
+ context["should_validate"] = self.should_validate
if self.object.is_validated:
membership_form = self.get_membership_form(instance=self.object.membership,
@@ -740,6 +775,16 @@ class WEIUpdateRegistrationView(ProtectQuerysetMixin, LoginRequiredMixin, Update
# The auto-json-format may cause issues with the default field remove
if not PermissionBackend.check_perm(self.request, 'wei.change_weiregistration_information_json', self.object):
del form.fields["information_json"]
+ # Masquer le champ caution_check pour tout le monde dans le formulaire de modification
+ if "caution_check" in form.fields:
+ del form.fields["caution_check"]
+
+ # S'assurer que le champ caution_type est obligatoire pour les 2A+
+ if not self.object.first_year and "caution_type" in form.fields:
+ form.fields["caution_type"].required = True
+ form.fields["caution_type"].help_text = _("Choose how you want to pay the deposit")
+ form.fields["caution_type"].widget = forms.RadioSelect(choices=form.fields["caution_type"].choices)
+
return form
def get_membership_form(self, data=None, instance=None):
@@ -759,10 +804,30 @@ class WEIUpdateRegistrationView(ProtectQuerysetMixin, LoginRequiredMixin, Update
def form_valid(self, form):
# If the membership is already validated, then we update the bus and the team (and the roles)
if form.instance.is_validated:
- membership_form = self.get_membership_form(self.request.POST, form.instance.membership)
- if not membership_form.is_valid():
+ try:
+ membership = form.instance.membership
+ if membership is None:
+ raise ValueError(_("No membership found for this registration"))
+
+ membership_form = self.get_membership_form(self.request.POST, instance=membership)
+ if not membership_form.is_valid():
+ return self.form_invalid(form)
+
+ # Vérifier que l'utilisateur a la permission de modifier le membership
+ # On vérifie d'abord si l'utilisateur a la permission générale de modification
+ if not self.request.user.has_perm("wei.change_weimembership"):
+ raise PermissionDenied(_("You don't have the permission to update memberships"))
+
+ # On vérifie ensuite les permissions spécifiques pour chaque champ modifié
+ for field_name in membership_form.changed_data:
+ perm = f"wei.change_weimembership_{field_name}"
+ if not self.request.user.has_perm(perm):
+ raise PermissionDenied(_("You don't have the permission to update the field %(field)s") % {'field': field_name})
+
+ membership_form.save()
+ except (WEIMembership.DoesNotExist, ValueError, PermissionDenied) as e:
+ form.add_error(None, str(e))
return self.form_invalid(form)
- membership_form.save()
# If it is not validated and if this is an old member, then we update the choices
elif not form.instance.first_year and PermissionBackend.check_perm(
self.request, "wei.change_weiregistration_information_json", self.object):
@@ -777,6 +842,10 @@ class WEIUpdateRegistrationView(ProtectQuerysetMixin, LoginRequiredMixin, Update
information["preferred_roles_pk"] = [role.pk for role in choose_bus_form.cleaned_data["roles"]]
information["preferred_roles_name"] = [role.name for role in choose_bus_form.cleaned_data["roles"]]
form.instance.information = information
+
+ # Sauvegarder le type de caution pour les 2A+
+ if "caution_type" in form.cleaned_data:
+ form.instance.caution_type = form.cleaned_data["caution_type"]
form.instance.save()
return super().form_valid(form)
@@ -787,14 +856,8 @@ class WEIUpdateRegistrationView(ProtectQuerysetMixin, LoginRequiredMixin, Update
survey = CurrentSurvey(self.object)
if not survey.is_complete():
return reverse_lazy("wei:wei_survey", kwargs={"pk": self.object.pk})
- if PermissionBackend.check_perm(self.request, "wei.add_weimembership", WEIMembership(
- club=self.object.wei,
- user=self.object.user,
- date_start=date.today(),
- date_end=date.today(),
- fee=0,
- registration=self.object,
- )):
+ # On redirige vers la validation uniquement si c'est explicitement demandé (et stocké dans la vue)
+ if self.should_validate and self.request.user.has_perm("wei.add_weimembership"):
return reverse_lazy("wei:validate_registration", kwargs={"pk": self.object.pk})
return reverse_lazy("wei:wei_detail", kwargs={"pk": self.object.wei.pk})
@@ -836,18 +899,23 @@ class WEIValidateRegistrationView(ProtectQuerysetMixin, ProtectedCreateView):
extra_context = {"title": _("Validate WEI registration")}
def get_sample_object(self):
+ """
+ Return a sample object for permission checking
+ """
registration = WEIRegistration.objects.get(pk=self.kwargs["pk"])
return WEIMembership(
- club=registration.wei,
user=registration.user,
- date_start=date.today(),
- date_end=date.today() + timedelta(days=1),
- fee=0,
+ club=registration.wei,
+ date_start=registration.wei.date_start,
+ fee=registration.wei.membership_fee_paid if registration.user.profile.paid else registration.wei.membership_fee_unpaid,
+ # Add any fields needed for proper permission checking
registration=registration,
)
def dispatch(self, request, *args, **kwargs):
- wei = WEIRegistration.objects.get(pk=self.kwargs["pk"]).wei
+ registration = WEIRegistration.objects.get(pk=self.kwargs["pk"])
+
+ wei = registration.wei
today = date.today()
# We can't validate anyone once the WEI is started and before the membership start date
if today >= wei.date_start or today < wei.membership_start:
@@ -878,7 +946,14 @@ class WEIValidateRegistrationView(ProtectQuerysetMixin, ProtectedCreateView):
date_start__gte=bde.membership_start,
).exists()
- context["fee"] = registration.fee
+ fee = registration.fee
+ context["fee"] = fee
+
+ # Calculer le montant total nécessaire (frais + caution si transaction)
+ total_needed = fee
+ if registration.caution_type == 'note':
+ total_needed += registration.wei.caution_amount
+ context["total_needed"] = total_needed
form = context["form"]
if registration.soge_credit:
@@ -890,7 +965,7 @@ class WEIValidateRegistrationView(ProtectQuerysetMixin, ProtectedCreateView):
def get_form_class(self):
registration = WEIRegistration.objects.get(pk=self.kwargs["pk"])
- if registration.first_year and 'sleected_bus_pk' not in registration.information:
+ if registration.first_year and 'selected_bus_pk' not in registration.information:
return WEIMembership1AForm
return WEIMembershipForm
@@ -900,8 +975,24 @@ class WEIValidateRegistrationView(ProtectQuerysetMixin, ProtectedCreateView):
form.fields["last_name"].initial = registration.user.last_name
form.fields["first_name"].initial = registration.user.first_name
- if "caution_check" in form.fields:
- form.fields["caution_check"].initial = registration.caution_check
+ # Ajouter le champ caution_check uniquement pour les non-première année et le rendre obligatoire
+ if not registration.first_year:
+ if registration.caution_type == 'check':
+ form.fields["caution_check"] = forms.BooleanField(
+ required=True,
+ initial=registration.caution_check,
+ label=_("Caution check given"),
+ help_text=_("Please make sure the check is given before validating the registration")
+ )
+ else:
+ form.fields["caution_check"] = forms.BooleanField(
+ required=True,
+ initial=False,
+ label=_("Create deposit transaction"),
+ help_text=_("A transaction of %(amount).2f€ will be created from the user's Note account") % {
+ 'amount': registration.wei.caution_amount / 100
+ }
+ )
if registration.soge_credit:
form.fields["credit_type"].disabled = True
@@ -985,10 +1076,20 @@ class WEIValidateRegistrationView(ProtectQuerysetMixin, ProtectedCreateView):
if credit_type is None or registration.soge_credit:
credit_amount = 0
- if not registration.soge_credit and user.note.balance + credit_amount < fee:
- # Users must have money before registering to the WEI.
+ # Calculer le montant total nécessaire (frais + caution si transaction)
+ total_needed = fee
+ if registration.caution_type == 'note':
+ total_needed += club.caution_amount
+
+ # Vérifier que l'utilisateur a assez d'argent pour tout payer
+ if not registration.soge_credit and user.note.balance + credit_amount < total_needed:
form.add_error('credit_type',
- _("This user don't have enough money to join this club, and can't have a negative balance."))
+ _("This user doesn't have enough money to join this club and pay the deposit. "
+ "Current balance: %(balance)d€, credit: %(credit)d€, needed: %(needed)d€") % {
+ 'balance': user.note.balance,
+ 'credit': credit_amount,
+ 'needed': total_needed}
+ )
return super().form_invalid(form)
if credit_amount:
@@ -1028,6 +1129,18 @@ class WEIValidateRegistrationView(ProtectQuerysetMixin, ProtectedCreateView):
membership.refresh_from_db()
membership.roles.add(WEIRole.objects.get(name="Adhérent⋅e WEI"))
+ # Créer la transaction de caution si nécessaire
+ if registration.caution_type == 'note':
+ from note.models import Transaction
+ Transaction.objects.create(
+ source=user.note,
+ destination=club.note,
+ quantity=1,
+ amount=club.caution_amount,
+ reason=_("Caution %(name)s") % {'name': club.name},
+ valid=True,
+ )
+
return super().form_valid(form)
def get_success_url(self):
@@ -1247,6 +1360,7 @@ class WEI1AListView(LoginRequiredMixin, ProtectQuerysetMixin, SingleTableView):
def get_queryset(self, filter_permissions=True, **kwargs):
qs = super().get_queryset(filter_permissions, **kwargs)
qs = qs.filter(first_year=True, membership__isnull=False)
+ qs = qs.filter(wei=self.club)
qs = qs.order_by('-membership__bus')
return qs
@@ -1289,8 +1403,22 @@ class WEIAttributeBus1ANextView(LoginRequiredMixin, RedirectView):
if not wei.exists():
raise Http404
wei = wei.get()
- qs = WEIRegistration.objects.filter(wei=wei, membership__isnull=False, membership__bus__isnull=True)
- qs = qs.filter(information_json__contains='selected_bus_pk') # not perfect, but works...
- if qs.exists():
- return reverse_lazy('wei:wei_bus_1A', args=(qs.first().pk, ))
- return reverse_lazy('wei:wei_1A_list', args=(wei.pk, ))
+
+ # On cherche d'abord les 1A qui ont une inscription validée (membership) mais pas de bus
+ qs = WEIRegistration.objects.filter(
+ wei=wei,
+ first_year=True,
+ membership__isnull=False,
+ membership__bus__isnull=True
+ )
+
+ # Parmi eux, on prend ceux qui ont répondu au questionnaire (ont un bus préféré)
+ qs = qs.filter(information_json__contains='selected_bus_pk')
+
+ if not qs.exists():
+ # Si on ne trouve personne, on affiche un message et on retourne à la liste
+ messages.info(self.request, _("No first year student without a bus found. Either all of them have a bus, or none has filled the survey yet."))
+ return reverse_lazy('wei:wei_1A_list', args=(wei.pk,))
+
+ # On redirige vers la page d'attribution pour le premier étudiant trouvé
+ return reverse_lazy('wei:wei_bus_1A', args=(qs.first().pk,))
diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po
index 055b0093..f4698e23 100644
--- a/locale/de/LC_MESSAGES/django.po
+++ b/locale/de/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-17 11:57+0200\n"
+"POT-Creation-Date: 2025-06-02 00:58+0200\n"
"PO-Revision-Date: 2020-11-16 20:02+0000\n"
"Last-Translator: bleizi \n"
"Language-Team: German \n"
@@ -18,51 +18,57 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3.2\n"
+#: apps/activity/api/serializers.py:77
+#, fuzzy
+#| msgid "This credit is already validated."
+msgid "This opener already exists"
+msgstr "Dieser Kredit ist bereits validiert."
+
#: apps/activity/apps.py:10 apps/activity/models.py:129
-#: apps/activity/models.py:169
+#: apps/activity/models.py:169 apps/activity/models.py:329
msgid "activity"
msgstr "Veranstaltung"
-#: apps/activity/forms.py:34
+#: apps/activity/forms.py:35
msgid "The note of this club is inactive."
msgstr ""
-#: apps/activity/forms.py:41 apps/activity/models.py:142
+#: apps/activity/forms.py:42 apps/activity/models.py:142
msgid "The end date must be after the start date."
msgstr "Das Abschlussdatum muss nach das Anfangsdatum sein."
-#: apps/activity/forms.py:82 apps/activity/models.py:271
+#: apps/activity/forms.py:83 apps/activity/models.py:277
msgid "You can't invite someone once the activity is started."
msgstr ""
"Sie dürfen nicht jemandem einladen wenn die Veranstaltung angefangen hat."
-#: apps/activity/forms.py:85 apps/activity/models.py:274
+#: apps/activity/forms.py:86 apps/activity/models.py:280
msgid "This activity is not validated yet."
msgstr "Diese Veranstaltung ist noch nicht bestätigt."
-#: apps/activity/forms.py:95 apps/activity/models.py:282
+#: apps/activity/forms.py:96 apps/activity/models.py:288
msgid "This person has been already invited 5 times this year."
msgstr "Diese Person wurde schon 5 mal dieses Jahr eingeladen."
-#: apps/activity/forms.py:99 apps/activity/models.py:286
+#: apps/activity/forms.py:100 apps/activity/models.py:292
msgid "This person is already invited."
msgstr "Diese Person wurde schon eingeladen."
-#: apps/activity/forms.py:103 apps/activity/models.py:290
+#: apps/activity/forms.py:104 apps/activity/models.py:296
msgid "You can't invite more than 3 people to this activity."
msgstr "Sie dürfen höchstens 3 Leute zu dieser Veranstaltung einladen."
-#: apps/activity/models.py:28 apps/activity/models.py:63 apps/food/models.py:42
-#: apps/food/models.py:56 apps/member/models.py:203
+#: apps/activity/models.py:28 apps/activity/models.py:63 apps/food/models.py:18
+#: apps/food/models.py:35 apps/member/models.py:203
#: apps/member/templates/member/includes/club_info.html:4
#: apps/member/templates/member/includes/profile_info.html:4
#: apps/note/models/notes.py:263 apps/note/models/transactions.py:26
#: apps/note/models/transactions.py:46 apps/note/models/transactions.py:299
#: apps/permission/models.py:329
#: apps/registration/templates/registration/future_profile_detail.html:16
-#: apps/wei/models.py:67 apps/wei/models.py:131 apps/wei/tables.py:282
+#: apps/wei/models.py:72 apps/wei/models.py:145 apps/wei/tables.py:282
#: apps/wei/templates/wei/base.html:26
-#: apps/wei/templates/wei/weimembership_form.html:14
+#: apps/wei/templates/wei/weimembership_form.html:14 apps/wrapped/models.py:16
msgid "name"
msgstr "Name"
@@ -95,7 +101,7 @@ msgstr "Vearnstaltungarte"
#: apps/activity/models.py:68
#: apps/activity/templates/activity/includes/activity_info.html:19
#: apps/note/models/transactions.py:82 apps/permission/models.py:109
-#: apps/permission/models.py:188 apps/wei/models.py:78 apps/wei/models.py:142
+#: apps/permission/models.py:188 apps/wei/models.py:92 apps/wei/models.py:156
msgid "description"
msgstr "Beschreibung"
@@ -114,9 +120,9 @@ msgstr "Wo findet die Veranstaltung statt ? (z.B Kfet)."
msgid "type"
msgstr "Type"
-#: apps/activity/models.py:91 apps/logs/models.py:22 apps/member/models.py:318
-#: apps/note/models/notes.py:148 apps/treasury/models.py:293
-#: apps/wei/models.py:171 apps/wei/templates/wei/attribute_bus_1A.html:13
+#: apps/activity/models.py:91 apps/logs/models.py:22 apps/member/models.py:325
+#: apps/note/models/notes.py:148 apps/treasury/models.py:294
+#: apps/wei/models.py:185 apps/wei/templates/wei/attribute_bus_1A.html:13
#: apps/wei/templates/wei/survey.html:15
msgid "user"
msgstr "User"
@@ -171,7 +177,7 @@ msgid "entry time"
msgstr "Eintrittzeit"
#: apps/activity/models.py:180 apps/note/apps.py:14
-#: apps/note/models/notes.py:77
+#: apps/note/models/notes.py:77 apps/wrapped/models.py:60
msgid "note"
msgstr "Note"
@@ -199,21 +205,21 @@ msgstr "Eintritt von {note} zur Veranstaltung {activity}"
msgid "Already entered on "
msgstr "Schon eingetretten "
-#: apps/activity/models.py:204 apps/activity/tables.py:56
+#: apps/activity/models.py:205 apps/activity/tables.py:58
msgid "{:%Y-%m-%d %H:%M:%S}"
msgstr "{:%Y-%m-%d %H:%M:%S}"
-#: apps/activity/models.py:212
+#: apps/activity/models.py:213
msgid "The balance is negative."
msgstr "Kontostand ist im Rot."
-#: apps/activity/models.py:242
+#: apps/activity/models.py:243
#: apps/treasury/templates/treasury/sogecredit_detail.html:14
#: apps/wei/templates/wei/attribute_bus_1A.html:16
msgid "last name"
msgstr "Nachname"
-#: apps/activity/models.py:247
+#: apps/activity/models.py:248
#: apps/member/templates/member/includes/profile_info.html:4
#: apps/registration/templates/registration/future_profile_detail.html:16
#: apps/treasury/templates/treasury/sogecredit_detail.html:17
@@ -222,79 +228,144 @@ msgstr "Nachname"
msgid "first name"
msgstr "Vorname"
-#: apps/activity/models.py:254
+#: apps/activity/models.py:253
+msgid "school"
+msgstr ""
+
+#: apps/activity/models.py:260
msgid "inviter"
msgstr "Einlader"
-#: apps/activity/models.py:258
+#: apps/activity/models.py:264
msgid "guest"
msgstr "Gast"
-#: apps/activity/models.py:259
+#: apps/activity/models.py:265
msgid "guests"
msgstr "Gäste"
-#: apps/activity/models.py:312
+#: apps/activity/models.py:318
msgid "Invitation"
msgstr "Einladung"
-#: apps/activity/tables.py:27
+#: apps/activity/models.py:336 apps/activity/models.py:340
+#, fuzzy
+#| msgid "opened"
+msgid "Opener"
+msgstr "geöffnet"
+
+#: apps/activity/models.py:341
+#: apps/activity/templates/activity/activity_detail.html:16
+#, fuzzy
+#| msgid "opened"
+msgid "Openers"
+msgstr "geöffnet"
+
+#: apps/activity/models.py:345
+#, fuzzy, python-brace-format
+#| msgid "Entry for {note} to the activity {activity}"
+msgid "{opener} is opener of activity {acivity}"
+msgstr "Eintritt von {note} zur Veranstaltung {activity}"
+
+#: apps/activity/tables.py:29
msgid "The activity is currently open."
msgstr "Die Veranstaltung ist geöffnet."
-#: apps/activity/tables.py:28
+#: apps/activity/tables.py:30
msgid "The validation of the activity is pending."
msgstr "Diese Veranstaltung ist noch nicht bestätigt."
-#: apps/activity/tables.py:43
+#: apps/activity/tables.py:45
#: apps/member/templates/member/picture_update.html:18
-#: apps/treasury/tables.py:107
+#: apps/treasury/tables.py:110
msgid "Remove"
msgstr "Entfernen"
-#: apps/activity/tables.py:56
+#: apps/activity/tables.py:58
msgid "Entered on "
msgstr "Eingetreten um "
-#: apps/activity/tables.py:58
+#: apps/activity/tables.py:60
msgid "remove"
msgstr "entfernen"
-#: apps/activity/tables.py:82 apps/note/forms.py:68 apps/treasury/models.py:208
+#: apps/activity/tables.py:84 apps/note/forms.py:69 apps/treasury/models.py:209
msgid "Type"
msgstr "Type"
-#: apps/activity/tables.py:84 apps/member/forms.py:196
+#: apps/activity/tables.py:86 apps/member/forms.py:199
#: apps/registration/forms.py:91 apps/treasury/forms.py:131
-#: apps/wei/forms/registration.py:104
+#: apps/wei/forms/registration.py:116
msgid "Last name"
msgstr "Nachname"
-#: apps/activity/tables.py:86 apps/member/forms.py:201
+#: apps/activity/tables.py:88 apps/member/forms.py:204
#: apps/note/templates/note/transaction_form.html:138
#: apps/registration/forms.py:96 apps/treasury/forms.py:133
-#: apps/wei/forms/registration.py:109
+#: apps/wei/forms/registration.py:121
msgid "First name"
msgstr "Vorname"
-#: apps/activity/tables.py:88 apps/note/models/notes.py:86
+#: apps/activity/tables.py:90 apps/note/models/notes.py:86
msgid "Note"
msgstr "Note"
-#: apps/activity/tables.py:90 apps/member/tables.py:50
+#: apps/activity/tables.py:92 apps/member/tables.py:50
msgid "Balance"
msgstr "Kontostand"
-#: apps/activity/templates/activity/activity_detail.html:15
+#: apps/activity/tables.py:141 apps/activity/tables.py:148
+#: apps/note/tables.py:166 apps/note/tables.py:173 apps/note/tables.py:234
+#: apps/note/tables.py:281 apps/treasury/tables.py:39
+#: apps/treasury/templates/treasury/invoice_confirm_delete.html:30
+#: apps/treasury/templates/treasury/sogecredit_detail.html:65
+#: apps/wei/tables.py:75 apps/wei/tables.py:118
+#: apps/wei/templates/wei/weiregistration_confirm_delete.html:31
+#: env/lib/python3.11/site-packages/django/forms/formsets.py:499
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_confirm_delete.html:13
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_detail.html:38
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/authorized-token-delete.html:7
+#: note_kfet/templates/oauth2_provider/application_confirm_delete.html:18
+#: note_kfet/templates/oauth2_provider/application_detail.html:39
+#: note_kfet/templates/oauth2_provider/authorized-token-delete.html:12
+msgid "Delete"
+msgstr "Löschen"
+
+#: apps/activity/templates/activity/activity_detail.html:24
+#: apps/member/templates/member/club_alias.html:20
+#: apps/member/templates/member/profile_alias.html:19
+#: apps/member/templates/member/profile_trust.html:19
+#: apps/treasury/tables.py:101
+#: apps/treasury/templates/treasury/sogecredit_list.html:34
+#: apps/treasury/templates/treasury/sogecredit_list.html:73
+msgid "Add"
+msgstr "Neue"
+
+#: apps/activity/templates/activity/activity_detail.html:35
msgid "Guests list"
msgstr "Gastliste"
-#: apps/activity/templates/activity/activity_detail.html:33
+#: apps/activity/templates/activity/activity_detail.html:55
#, fuzzy
#| msgid "Guests list"
msgid "Guest deleted"
msgstr "Gastliste"
+#: apps/activity/templates/activity/activity_detail.html:99
+#, fuzzy
+#| msgid ""
+#| "Are you sure you want to delete this invoice? This action can't be undone."
+msgid "Are you sure you want to delete this activity?"
+msgstr ""
+"Möchten Sie diese Rechnung wirklich löschen? Diese Aktion kann nicht "
+"rückgängig gemacht werden."
+
+#: apps/activity/templates/activity/activity_detail.html:110
+#, fuzzy
+#| msgid "Activity detail"
+msgid "Activity deleted"
+msgstr "Veranstaltunginfo"
+
#: apps/activity/templates/activity/activity_entry.html:14
#: apps/note/models/transactions.py:261
#: apps/note/templates/note/transaction_form.html:17
@@ -336,17 +407,17 @@ msgid "Entry done!"
msgstr "Eintrittseite"
#: apps/activity/templates/activity/activity_form.html:16
-#: apps/food/templates/food/add_ingredient_form.html:16
-#: apps/food/templates/food/basicfood_form.html:16
-#: apps/food/templates/food/create_qrcode_form.html:19
-#: apps/food/templates/food/transformedfood_form.html:16
+#: apps/food/templates/food/food_update.html:17
+#: apps/food/templates/food/manage_ingredients.html:48
+#: apps/food/templates/food/qrcode.html:18
+#: apps/food/templates/food/transformedfood_update.html:45
#: apps/member/templates/member/add_members.html:46
#: apps/member/templates/member/club_form.html:16
#: apps/note/templates/note/transactiontemplate_form.html:18
#: apps/treasury/forms.py:89 apps/treasury/forms.py:143
#: apps/treasury/templates/treasury/invoice_form.html:74
#: apps/wei/templates/wei/bus_form.html:17
-#: apps/wei/templates/wei/busteam_form.html:17
+#: apps/wei/templates/wei/busteam_form.html:18
#: apps/wei/templates/wei/weiclub_form.html:17
#: apps/wei/templates/wei/weiregistration_form.html:18
msgid "Submit"
@@ -402,42 +473,62 @@ msgid "edit"
msgstr "bearbeiten"
#: apps/activity/templates/activity/includes/activity_info.html:74
+#: apps/logs/models.py:65 apps/note/tables.py:230 apps/note/tables.py:279
+#: apps/permission/models.py:126 apps/treasury/tables.py:38
+#: apps/wei/tables.py:74
+msgid "delete"
+msgstr "entfernen"
+
+#: apps/activity/templates/activity/includes/activity_info.html:77
msgid "Invite"
msgstr "Einladen"
-#: apps/activity/views.py:37
+#: apps/activity/views.py:38
msgid "Create new activity"
msgstr "Neue Veranstaltung schaffen"
-#: apps/activity/views.py:67 note_kfet/templates/base.html:96
+#: apps/activity/views.py:71 note_kfet/templates/base.html:96
msgid "Activities"
msgstr "Veranstaltungen"
-#: apps/activity/views.py:108
+#: apps/activity/views.py:105
msgid "Activity detail"
msgstr "Veranstaltunginfo"
-#: apps/activity/views.py:128
+#: apps/activity/views.py:150
msgid "Update activity"
msgstr "Veranstaltung bearbeiten"
-#: apps/activity/views.py:155
+#: apps/activity/views.py:177
+#, fuzzy
+#| msgid ""
+#| "You are not allowed to display the entry interface for this activity."
+msgid "You are not allowed to delete this activity."
+msgstr "Sie haben nicht das Recht diese Seite zu benuzten."
+
+#: apps/activity/views.py:180
+#, fuzzy
+#| msgid "This activity is closed."
+msgid "This activity is valid."
+msgstr "Diese Veranstaltung ist geschlossen."
+
+#: apps/activity/views.py:206
msgid "Invite guest to the activity \"{}\""
msgstr "Gast zur Veranstaltung \"{}\" einladen"
-#: apps/activity/views.py:193
+#: apps/activity/views.py:246
msgid "You are not allowed to display the entry interface for this activity."
msgstr "Sie haben nicht das Recht diese Seite zu benuzten."
-#: apps/activity/views.py:196
+#: apps/activity/views.py:249
msgid "This activity does not support activity entries."
msgstr "Diese Veranstaltung braucht nicht Eintritt."
-#: apps/activity/views.py:199
+#: apps/activity/views.py:252
msgid "This activity is closed."
msgstr "Diese Veranstaltung ist geschlossen."
-#: apps/activity/views.py:295
+#: apps/activity/views.py:357
msgid "Entry for activity \"{}\""
msgstr "Eintritt zur Veranstaltung \"{}\""
@@ -445,297 +536,365 @@ msgstr "Eintritt zur Veranstaltung \"{}\""
msgid "API"
msgstr "API"
-#: apps/food/apps.py:11 apps/food/models.py:105
+#: apps/food/apps.py:11
msgid "food"
msgstr ""
-#: apps/food/forms.py:32
-msgid "Fully used"
-msgstr ""
-
-#: apps/food/forms.py:50
+#: apps/food/forms.py:49
msgid "Pasta METRO 5kg"
msgstr ""
-#: apps/food/forms.py:96
+#: apps/food/forms.py:53 apps/food/forms.py:81
+msgid "Specific order given to GCKs"
+msgstr ""
+
+#: apps/food/forms.py:77
msgid "Lasagna"
msgstr ""
-#: apps/food/models.py:18
+#: apps/food/forms.py:116
+msgid "Shelf life (in hours)"
+msgstr ""
+
+#: apps/food/forms.py:138 apps/food/forms.py:162
+#: apps/food/templates/food/transformedfood_update.html:25
+msgid "Fully used"
+msgstr ""
+
+#: apps/food/forms.py:171 apps/food/templates/food/qrcode.html:29
+#: apps/food/templates/food/transformedfood_update.html:23
+#: apps/note/templates/note/transaction_form.html:132
+#: apps/treasury/models.py:61
+msgid "Name"
+msgstr "Name"
+
+#: apps/food/forms.py:181
#, fuzzy
#| msgid "phone number"
-msgid "QR-code number"
+msgid "QR code number"
msgstr "Telefonnummer"
-#: apps/food/models.py:26
-msgid "food container"
-msgstr ""
-
-#: apps/food/models.py:30
-msgid "QR-code"
-msgstr ""
-
-#: apps/food/models.py:31
-msgid "QR-codes"
-msgstr ""
-
-#: apps/food/models.py:34
-#, python-brace-format
-msgid "QR-code number {qr_code_number}"
-msgstr ""
-
-#: apps/food/models.py:47
+#: apps/food/models.py:23
msgid "Allergen"
msgstr ""
-#: apps/food/models.py:48 apps/food/templates/food/basicfood_detail.html:17
-#: apps/food/templates/food/transformedfood_detail.html:20
+#: apps/food/models.py:24
msgid "Allergens"
msgstr ""
-#: apps/food/models.py:64
+#: apps/food/models.py:43
msgid "owner"
msgstr ""
-#: apps/food/models.py:70
-msgid "allergen"
+#: apps/food/models.py:49
+msgid "allergens"
msgstr ""
-#: apps/food/models.py:74
+#: apps/food/models.py:53
#, fuzzy
#| msgid "birth date"
msgid "expiry date"
msgstr "Geburtsdatum"
-#: apps/food/models.py:80
-msgid "was eaten"
+#: apps/food/models.py:59
+msgid "end of life"
msgstr ""
-#: apps/food/models.py:89
+#: apps/food/models.py:64
msgid "is ready"
msgstr ""
-#: apps/food/models.py:94
-#, fuzzy
-#| msgid "active"
-msgid "is active"
-msgstr "Aktiv"
-
-#: apps/food/models.py:106
-msgid "foods"
+#: apps/food/models.py:70
+msgid "order"
msgstr ""
-#: apps/food/models.py:122
+#: apps/food/models.py:107 apps/food/views.py:34
+#: note_kfet/templates/base.html:72
+msgid "Food"
+msgstr ""
+
+#: apps/food/models.py:108
+msgid "Foods"
+msgstr ""
+
+#: apps/food/models.py:117
#, fuzzy
#| msgid "start date"
msgid "arrival date"
msgstr "Anfangsdatum"
-#: apps/food/models.py:152
+#: apps/food/models.py:169
msgid "Basic food"
msgstr ""
-#: apps/food/models.py:153
+#: apps/food/models.py:170
msgid "Basic foods"
msgstr ""
-#: apps/food/models.py:161
+#: apps/food/models.py:182
#, fuzzy
#| msgid "created at"
msgid "creation date"
msgstr "erschafft am"
-#: apps/food/models.py:169
-msgid "transformed ingredient"
-msgstr ""
-
-#: apps/food/models.py:174
+#: apps/food/models.py:188
msgid "shelf life"
msgstr ""
-#: apps/food/models.py:225 apps/food/views.py:365
+#: apps/food/models.py:196
+msgid "transformed ingredient"
+msgstr ""
+
+#: apps/food/models.py:258
#, fuzzy
#| msgid "Transfer money"
msgid "Transformed food"
msgstr "Geld überweisen"
-#: apps/food/models.py:226
+#: apps/food/models.py:259
msgid "Transformed foods"
msgstr ""
-#: apps/food/templates/food/basicfood_detail.html:14
-#: apps/food/templates/food/qrcode_detail.html:15
-#: apps/food/templates/food/transformedfood_detail.html:14
+#: apps/food/models.py:271
#, fuzzy
-#| msgid "Owned"
-msgid "Owner"
-msgstr "Besetzt"
+#| msgid "phone number"
+msgid "qr code number"
+msgstr "Telefonnummer"
-#: apps/food/templates/food/basicfood_detail.html:15
-#, fuzzy
-#| msgid "start date"
-msgid "Arrival date"
-msgstr "Anfangsdatum"
-
-#: apps/food/templates/food/basicfood_detail.html:16
-#: apps/food/templates/food/qrcode_detail.html:16
-#: apps/food/templates/food/transformedfood_detail.html:19
-#, fuzzy
-#| msgid "birth date"
-msgid "Expiry date"
-msgstr "Geburtsdatum"
-
-#: apps/food/templates/food/basicfood_detail.html:24
-#: apps/food/templates/food/transformedfood_detail.html:36
-#, fuzzy
-#| msgid "active"
-msgid "Active"
-msgstr "Aktiv"
-
-#: apps/food/templates/food/basicfood_detail.html:25
-#: apps/food/templates/food/transformedfood_detail.html:37
-msgid "Eaten"
+#: apps/food/models.py:278
+msgid "food container"
msgstr ""
-#: apps/food/templates/food/basicfood_detail.html:28
-#: apps/food/templates/food/qrcode_detail.html:20
-#: apps/food/templates/food/qrcode_detail.html:24
-#: apps/food/templates/food/transformedfood_detail.html:41
+#: apps/food/models.py:282
+msgid "QR-code"
+msgstr ""
+
+#: apps/food/models.py:283
+msgid "QR-codes"
+msgstr ""
+
+#: apps/food/models.py:286
+#: apps/food/templates/food/transformedfood_update.html:24
+#, fuzzy
+#| msgid "phone number"
+msgid "QR-code number"
+msgstr "Telefonnummer"
+
+#: apps/food/templates/food/food_detail.html:19
+msgid "Contained in"
+msgstr ""
+
+#: apps/food/templates/food/food_detail.html:26
+msgid "Contain"
+msgstr ""
+
+#: apps/food/templates/food/food_detail.html:35
#, fuzzy
#| msgid "Update bus"
msgid "Update"
msgstr "Bus bearbeiten"
-#: apps/food/templates/food/basicfood_detail.html:32
-#: apps/food/templates/food/qrcode_detail.html:34
-#: apps/food/templates/food/transformedfood_detail.html:46
+#: apps/food/templates/food/food_detail.html:40
#, fuzzy
#| msgid "Add team"
msgid "Add to a meal"
msgstr "Neue Team"
-#: apps/food/templates/food/create_qrcode_form.html:14
+#: apps/food/templates/food/food_detail.html:45
#, fuzzy
-#| msgid "Transfer money"
-msgid "New basic food"
-msgstr "Geld überweisen"
+#| msgid "manage entries"
+msgid "Manage ingredients"
+msgstr "Einträge verwalten"
-#: apps/food/templates/food/qrcode_detail.html:10
+#: apps/food/templates/food/food_detail.html:49
#, fuzzy
-#| msgid "phone number"
-msgid "number"
-msgstr "Telefonnummer"
+#| msgid "Return to credit list"
+msgid "Return to the food list"
+msgstr "Zurück zur Kreditlist"
-#: apps/food/templates/food/qrcode_detail.html:14
-#: apps/note/templates/note/transaction_form.html:132
-#: apps/treasury/models.py:60
-msgid "Name"
-msgstr "Name"
-
-#: apps/food/templates/food/qrcode_detail.html:29
-#, fuzzy
-#| msgid "Profile detail"
-msgid "View details"
-msgstr "Profile detail"
-
-#: apps/food/templates/food/transformedfood_detail.html:16
-#: apps/food/templates/food/transformedfood_detail.html:35
-msgid "Ready"
-msgstr ""
-
-#: apps/food/templates/food/transformedfood_detail.html:18
-#, fuzzy
-#| msgid "created at"
-msgid "Creation date"
-msgstr "erschafft am"
-
-#: apps/food/templates/food/transformedfood_detail.html:27
-msgid "Ingredients"
-msgstr ""
-
-#: apps/food/templates/food/transformedfood_detail.html:34
-msgid "Shelf life"
-msgstr ""
-
-#: apps/food/templates/food/transformedfood_list.html:11
+#: apps/food/templates/food/food_list.html:14
msgid "Meal served"
msgstr ""
-#: apps/food/templates/food/transformedfood_list.html:16
+#: apps/food/templates/food/food_list.html:19
#, fuzzy
#| msgid "New user"
msgid "New meal"
msgstr "Neue User"
-#: apps/food/templates/food/transformedfood_list.html:25
+#: apps/food/templates/food/food_list.html:28
#, fuzzy
#| msgid "There is no results."
msgid "There is no meal served."
msgstr "Es gibt keine Ergebnisse."
-#: apps/food/templates/food/transformedfood_list.html:33
-msgid "Open"
+#: apps/food/templates/food/food_list.html:35
+msgid "Free food"
msgstr ""
-#: apps/food/templates/food/transformedfood_list.html:40
+#: apps/food/templates/food/food_list.html:42
#, fuzzy
#| msgid "There is no results."
-msgid "There is no free meal."
+msgid "There is no free food."
msgstr "Es gibt keine Ergebnisse."
-#: apps/food/templates/food/transformedfood_list.html:48
-msgid "All meals"
+#: apps/food/templates/food/food_list.html:50
+#, fuzzy
+#| msgid "for club"
+msgid "Food of your clubs"
+msgstr "Für Club"
+
+#: apps/food/templates/food/food_list.html:56
+#, fuzzy
+#| msgid "for club"
+msgid "Food of club"
+msgstr "Für Club"
+
+#: apps/food/templates/food/food_list.html:63
+msgid "Yours club has not food yet."
msgstr ""
-#: apps/food/templates/food/transformedfood_list.html:55
-#, fuzzy
-#| msgid "There is no results."
-msgid "There is no meal."
-msgstr "Es gibt keine Ergebnisse."
-
-#: apps/food/views.py:28
-msgid "Add the ingredient"
+#: apps/food/templates/food/manage_ingredients.html:45
+#: apps/food/templates/food/transformedfood_update.html:42
+msgid "Add ingredient"
msgstr ""
-#: apps/food/views.py:42
+#: apps/food/templates/food/manage_ingredients.html:46
+#: apps/food/templates/food/transformedfood_update.html:43
#, fuzzy
-#| msgid "This credit is already validated."
-msgid "The product is already prepared"
-msgstr "Dieser Kredit ist bereits validiert."
+#| msgid "Remove product"
+msgid "Remove ingredient"
+msgstr "Produkt entfernen"
-#: apps/food/views.py:70
+#: apps/food/templates/food/qrcode.html:22
+msgid "Copy constructor"
+msgstr ""
+
+#: apps/food/templates/food/qrcode.html:23
+#, fuzzy
+#| msgid "Transfer money"
+msgid "New food"
+msgstr "Geld überweisen"
+
+#: apps/food/templates/food/qrcode.html:32
+#, fuzzy
+#| msgid "Owned"
+msgid "Owner"
+msgstr "Besetzt"
+
+#: apps/food/templates/food/qrcode.html:35
+#, fuzzy
+#| msgid "birth date"
+msgid "Expiry date"
+msgstr "Geburtsdatum"
+
+#: apps/food/utils.py:6
+msgid "second"
+msgstr ""
+
+#: apps/food/utils.py:6
+msgid "seconds"
+msgstr ""
+
+#: apps/food/utils.py:7
+msgid "minute"
+msgstr ""
+
+#: apps/food/utils.py:7
+msgid "minutes"
+msgstr ""
+
+#: apps/food/utils.py:8
+msgid "hour"
+msgstr ""
+
+#: apps/food/utils.py:8
+msgid "hours"
+msgstr ""
+
+#: apps/food/utils.py:9
+#, fuzzy
+#| msgid "days"
+msgid "day"
+msgstr "Tagen"
+
+#: apps/food/utils.py:9 apps/member/templates/member/includes/club_info.html:27
+msgid "days"
+msgstr "Tagen"
+
+#: apps/food/utils.py:10
+msgid "week"
+msgstr ""
+
+#: apps/food/utils.py:10
+msgid "weeks"
+msgstr ""
+
+#: apps/food/utils.py:53
+#: env/lib/python3.11/site-packages/django/db/models/base.py:1423
+#: env/lib/python3.11/site-packages/django/forms/models.py:893
+#, fuzzy
+#| msgid "add"
+msgid "and"
+msgstr "hinzufügen"
+
+#: apps/food/views.py:118
+msgid "Add a new QRCode"
+msgstr ""
+
+#: apps/food/views.py:167
+#, fuzzy
+#| msgid "Update an invoice"
+msgid "Add an aliment"
+msgstr "Rechnung bearbeiten"
+
+#: apps/food/views.py:235
+#, fuzzy
+#| msgid "Add team"
+msgid "Add a meal"
+msgstr "Neue Team"
+
+#: apps/food/views.py:275
+#, fuzzy
+#| msgid "manage entries"
+msgid "Manage ingredients of:"
+msgstr "Einträge verwalten"
+
+#: apps/food/views.py:289 apps/food/views.py:297
+#, python-brace-format
+msgid "Fully used in {meal}"
+msgstr ""
+
+#: apps/food/views.py:344
+msgid "Add the ingredient:"
+msgstr ""
+
+#: apps/food/views.py:370
+#, python-brace-format
+msgid "Food fully used in : {meal.name}"
+msgstr ""
+
+#: apps/food/views.py:389
#, fuzzy
#| msgid "Update an invoice"
msgid "Update an aliment"
msgstr "Rechnung bearbeiten"
-#: apps/food/views.py:97
+#: apps/food/views.py:437
#, fuzzy
#| msgid "WEI Detail"
msgid "Details of:"
msgstr "WEI Infos"
-#: apps/food/views.py:121
-msgid "Add a new basic food with QRCode"
-msgstr ""
+#: apps/food/views.py:447 apps/treasury/tables.py:149
+#: env/lib/python3.11/site-packages/django/forms/widgets.py:795
+msgid "Yes"
+msgstr "Ja"
-#: apps/food/views.py:185
-msgid "Add a new QRCode"
-msgstr ""
-
-#: apps/food/views.py:235
-msgid "QRCode"
-msgstr ""
-
-#: apps/food/views.py:271
-msgid "Add a new meal"
-msgstr ""
-
-#: apps/food/views.py:337
-#, fuzzy
-#| msgid "Update team"
-msgid "Update a meal"
-msgstr "Team bearbeiten"
+#: apps/food/views.py:449 apps/member/models.py:99 apps/treasury/tables.py:149
+#: env/lib/python3.11/site-packages/django/forms/widgets.py:796
+msgid "No"
+msgstr "Nein"
#: apps/logs/apps.py:11
msgid "Logs"
@@ -765,12 +924,6 @@ msgstr "neue Daten"
msgid "create"
msgstr "schaffen"
-#: apps/logs/models.py:65 apps/note/tables.py:230 apps/note/tables.py:277
-#: apps/permission/models.py:126 apps/treasury/tables.py:38
-#: apps/wei/tables.py:74
-msgid "delete"
-msgstr "entfernen"
-
#: apps/logs/models.py:68
msgid "action"
msgstr "Aktion"
@@ -806,11 +959,11 @@ msgstr "Mitgliedschaftpreis (bezahlte Studenten)"
msgid "membership fee (unpaid students)"
msgstr "Mitgliedschaftpreis (unbezahlte Studenten)"
-#: apps/member/admin.py:65 apps/member/models.py:330
+#: apps/member/admin.py:65 apps/member/models.py:337
msgid "roles"
msgstr "Rollen"
-#: apps/member/admin.py:66 apps/member/models.py:344
+#: apps/member/admin.py:66 apps/member/models.py:351
msgid "fee"
msgstr "Preis"
@@ -818,26 +971,26 @@ msgstr "Preis"
msgid "member"
msgstr "Mitglied"
-#: apps/member/forms.py:24
+#: apps/member/forms.py:25
msgid "Permission mask"
msgstr "Berechtigungsmaske"
-#: apps/member/forms.py:46
+#: apps/member/forms.py:48
msgid "Report frequency"
msgstr "Bericht Frequenz"
-#: apps/member/forms.py:48
+#: apps/member/forms.py:50
msgid "Last report date"
msgstr "Letzen Bericht Datum"
-#: apps/member/forms.py:52
+#: apps/member/forms.py:54
msgid ""
"Anti-VSS (Violences Sexistes et Sexuelles) charter read and approved"
msgstr ""
"Anti-VSS (Violences Sexistes et Sexuelles) Charta gelesen und "
"angenommen"
-#: apps/member/forms.py:53
+#: apps/member/forms.py:55
msgid ""
"Tick after having read and accepted the anti-VSS charter "
@@ -847,65 +1000,65 @@ msgstr ""
"haben, die hier als pdf-Datei verfügbar ist"
-#: apps/member/forms.py:60
+#: apps/member/forms.py:62
msgid "You can't register to the note if you come from the future."
msgstr "Sie dürfen nicht einloggen wenn sie aus der Zukunft kommen."
-#: apps/member/forms.py:86
+#: apps/member/forms.py:89
msgid "select an image"
msgstr "Wählen sie ein Bild aus"
-#: apps/member/forms.py:87
+#: apps/member/forms.py:90
msgid "Maximal size: 2MB"
msgstr "Maximal Größe: 2MB"
-#: apps/member/forms.py:112
+#: apps/member/forms.py:115
msgid "This image cannot be loaded."
msgstr "Dieses Bild kann nicht geladen werden."
-#: apps/member/forms.py:151 apps/member/views.py:102
-#: apps/registration/forms.py:33 apps/registration/views.py:276
+#: apps/member/forms.py:154 apps/member/views.py:117
+#: apps/registration/forms.py:33 apps/registration/views.py:282
msgid "An alias with a similar name already exists."
msgstr "Ein ähnliches Alias ist schon benutzt."
-#: apps/member/forms.py:175
+#: apps/member/forms.py:178
msgid "Inscription paid by Société Générale"
msgstr "Mitgliedschaft von der Société Générale bezahlt"
-#: apps/member/forms.py:177
+#: apps/member/forms.py:180
msgid "Check this case if the Société Générale paid the inscription."
msgstr "Die Société Générale die Mitgliedschaft bezahlt."
-#: apps/member/forms.py:182 apps/registration/forms.py:78
-#: apps/wei/forms/registration.py:91
+#: apps/member/forms.py:185 apps/registration/forms.py:78
+#: apps/wei/forms/registration.py:103
msgid "Credit type"
msgstr "Kredittype"
-#: apps/member/forms.py:183 apps/registration/forms.py:79
-#: apps/wei/forms/registration.py:92
+#: apps/member/forms.py:186 apps/registration/forms.py:79
+#: apps/wei/forms/registration.py:104
msgid "No credit"
msgstr "Kein Kredit"
-#: apps/member/forms.py:185
+#: apps/member/forms.py:188
msgid "You can credit the note of the user."
msgstr "Sie dûrfen diese Note kreditieren."
-#: apps/member/forms.py:189 apps/registration/forms.py:84
-#: apps/wei/forms/registration.py:97
+#: apps/member/forms.py:192 apps/registration/forms.py:84
+#: apps/wei/forms/registration.py:109
msgid "Credit amount"
msgstr "Kreditanzahl"
-#: apps/member/forms.py:206 apps/note/templates/note/transaction_form.html:144
+#: apps/member/forms.py:209 apps/note/templates/note/transaction_form.html:144
#: apps/registration/forms.py:101 apps/treasury/forms.py:135
-#: apps/wei/forms/registration.py:114
+#: apps/wei/forms/registration.py:126
msgid "Bank"
msgstr "Bank"
-#: apps/member/forms.py:233
+#: apps/member/forms.py:236
msgid "User"
msgstr "User"
-#: apps/member/forms.py:247
+#: apps/member/forms.py:250
msgid "Roles"
msgstr "Rollen"
@@ -1040,10 +1193,6 @@ msgstr "bezahlt"
msgid "Tells if the user receive a salary."
msgstr "User ist bezahlt."
-#: apps/member/models.py:99 apps/treasury/tables.py:143
-msgid "No"
-msgstr "Nein"
-
#: apps/member/models.py:100
msgid "Yes (receive them in french)"
msgstr "Ja (auf Fränzosich)"
@@ -1108,7 +1257,7 @@ msgstr "Ihre Note Kfet Konto bestätigen"
#: apps/member/templates/member/includes/club_info.html:55
#: apps/member/templates/member/includes/profile_info.html:40
#: apps/registration/templates/registration/future_profile_detail.html:22
-#: apps/wei/templates/wei/base.html:70
+#: apps/wei/templates/wei/base.html:68
#: apps/wei/templates/wei/weimembership_form.html:20
msgid "email"
msgstr "Email"
@@ -1161,8 +1310,8 @@ msgstr ""
msgid "add to registration form"
msgstr "Registrierung validieren"
-#: apps/member/models.py:268 apps/member/models.py:324
-#: apps/note/models/notes.py:176
+#: apps/member/models.py:268 apps/member/models.py:331
+#: apps/note/models/notes.py:176 apps/wei/models.py:86
msgid "club"
msgstr "Club"
@@ -1170,37 +1319,37 @@ msgstr "Club"
msgid "clubs"
msgstr "Clubs"
-#: apps/member/models.py:335
+#: apps/member/models.py:342
msgid "membership starts on"
msgstr "Mitgliedschaft fängt an"
-#: apps/member/models.py:339
+#: apps/member/models.py:346
msgid "membership ends on"
msgstr "Mitgliedschaft endet am"
-#: apps/member/models.py:348 apps/note/models/transactions.py:385
+#: apps/member/models.py:355 apps/note/models/transactions.py:385
msgid "membership"
msgstr "Mitgliedschaft"
-#: apps/member/models.py:349
+#: apps/member/models.py:356
msgid "memberships"
msgstr "Mitgliedschaften"
-#: apps/member/models.py:353
+#: apps/member/models.py:360
#, python-brace-format
msgid "Membership of {user} for the club {club}"
msgstr "Mitgliedschaft von {user} für das Club {club}"
-#: apps/member/models.py:372
+#: apps/member/models.py:379
#, python-brace-format
msgid "The role {role} does not apply to the club {club}."
msgstr "Die Rolle {role} ist nicht erlaubt für das Club {club}."
-#: apps/member/models.py:381 apps/member/views.py:715
+#: apps/member/models.py:388 apps/member/views.py:759
msgid "User is already a member of the club"
msgstr "User ist schon ein Mitglied dieser club"
-#: apps/member/models.py:393 apps/member/views.py:724
+#: apps/member/models.py:400 apps/member/views.py:768
msgid "User is not a member of the parent club"
msgstr "User ist noch nicht Mitglied des Urclubs"
@@ -1255,7 +1404,7 @@ msgid "Account #"
msgstr "Konto #"
#: apps/member/templates/member/base.html:48
-#: apps/member/templates/member/base.html:62 apps/member/views.py:59
+#: apps/member/templates/member/base.html:62 apps/member/views.py:61
#: apps/registration/templates/registration/future_profile_detail.html:48
#: apps/wei/templates/wei/weimembership_form.html:117
msgid "Update Profile"
@@ -1316,20 +1465,11 @@ msgstr ""
"erlaubt."
#: apps/member/templates/member/club_alias.html:10
-#: apps/member/templates/member/profile_alias.html:10 apps/member/views.py:287
-#: apps/member/views.py:520
+#: apps/member/templates/member/profile_alias.html:10 apps/member/views.py:318
+#: apps/member/views.py:559
msgid "Note aliases"
msgstr "Note Aliases"
-#: apps/member/templates/member/club_alias.html:20
-#: apps/member/templates/member/profile_alias.html:19
-#: apps/member/templates/member/profile_trust.html:19
-#: apps/treasury/tables.py:99
-#: apps/treasury/templates/treasury/sogecredit_list.html:34
-#: apps/treasury/templates/treasury/sogecredit_list.html:73
-msgid "Add"
-msgstr "Neue"
-
#: apps/member/templates/member/club_detail.html:13
#: apps/permission/templates/permission/all_rights.html:32
msgid "Club managers"
@@ -1366,10 +1506,6 @@ msgstr "Keine Mitgliedschaft mit diesem pattern gefunden."
msgid "Club Parent"
msgstr "Urclub"
-#: apps/member/templates/member/includes/club_info.html:27
-msgid "days"
-msgstr "Tagen"
-
#: apps/member/templates/member/includes/club_info.html:31
#: apps/wei/templates/wei/base.html:40
msgid "membership fee"
@@ -1378,13 +1514,13 @@ msgstr "Mitgliedsachftpreis"
#: apps/member/templates/member/includes/club_info.html:43
#: apps/member/templates/member/includes/profile_info.html:55
#: apps/treasury/templates/treasury/sogecredit_detail.html:24
-#: apps/wei/templates/wei/base.html:60
+#: apps/wei/templates/wei/base.html:58
msgid "balance"
msgstr "Kontostand"
#: apps/member/templates/member/includes/club_info.html:47
#: apps/member/templates/member/includes/profile_info.html:20
-#: apps/note/models/notes.py:287 apps/wei/templates/wei/base.html:66
+#: apps/note/models/notes.py:287 apps/wei/templates/wei/base.html:64
msgid "aliases"
msgstr "Aliases"
@@ -1473,11 +1609,11 @@ msgstr ""
msgid "Show my applications"
msgstr ""
-#: apps/member/templates/member/picture_update.html:38
+#: apps/member/templates/member/picture_update.html:40
msgid "Nevermind"
msgstr "Vergessen"
-#: apps/member/templates/member/picture_update.html:39
+#: apps/member/templates/member/picture_update.html:41
msgid "Crop and upload"
msgstr "Beschneiden und hochladen"
@@ -1522,51 +1658,51 @@ msgstr "Speichern"
msgid "Registrations"
msgstr "Anmeldung"
-#: apps/member/views.py:72 apps/registration/forms.py:23
+#: apps/member/views.py:74 apps/registration/forms.py:23
msgid "This address must be valid."
msgstr "Diese Adresse muss gültig sein."
-#: apps/member/views.py:139
+#: apps/member/views.py:154
msgid "Profile detail"
msgstr "Profile detail"
-#: apps/member/views.py:205
+#: apps/member/views.py:220
msgid "Search user"
msgstr "User finden"
-#: apps/member/views.py:253
+#: apps/member/views.py:272
msgid "Note friendships"
msgstr ""
-#: apps/member/views.py:308
+#: apps/member/views.py:342
msgid "Update note picture"
msgstr "Notebild ändern"
-#: apps/member/views.py:357
+#: apps/member/views.py:391
msgid "Manage auth token"
msgstr "Auth token bearbeiten"
-#: apps/member/views.py:384
+#: apps/member/views.py:418
msgid "Create new club"
msgstr "Neue Club"
-#: apps/member/views.py:403
+#: apps/member/views.py:437
msgid "Search club"
msgstr "Club finden"
-#: apps/member/views.py:436
+#: apps/member/views.py:475
msgid "Club detail"
msgstr "Club Details"
-#: apps/member/views.py:543
+#: apps/member/views.py:587
msgid "Update club"
msgstr "Club bearbeiten"
-#: apps/member/views.py:577
+#: apps/member/views.py:621
msgid "Add new member to the club"
msgstr "Neue Mitglieder"
-#: apps/member/views.py:706 apps/wei/views.py:973
+#: apps/member/views.py:750
msgid ""
"This user don't have enough money to join this club, and can't have a "
"negative balance."
@@ -1574,19 +1710,19 @@ msgstr ""
"Diese User hat nicht genug Geld um Mitglied zu werden, und darf nich im Rot "
"sein."
-#: apps/member/views.py:728
+#: apps/member/views.py:772
msgid "The membership must start after {:%m-%d-%Y}."
msgstr "Die Mitgliedschaft muss nach {:%m-%d-Y} anfängen."
-#: apps/member/views.py:733
+#: apps/member/views.py:777
msgid "The membership must begin before {:%m-%d-%Y}."
msgstr "Die Mitgliedschaft muss vor {:%m-%d-Y} anfängen."
-#: apps/member/views.py:883
+#: apps/member/views.py:927
msgid "Manage roles of an user in the club"
msgstr "Rollen in diesen Club bearbeiten"
-#: apps/member/views.py:908
+#: apps/member/views.py:952
msgid "Members of the club"
msgstr "Mitlglieder dieses Club"
@@ -1619,35 +1755,35 @@ msgstr ""
"Diese Transaktion ist nicht möglich weil die Note des Sender oder des "
"Empfänger inaktiv ist."
-#: apps/note/forms.py:39
+#: apps/note/forms.py:40
msgid "Source"
msgstr "Sender"
-#: apps/note/forms.py:53
+#: apps/note/forms.py:54
msgid "Destination"
msgstr "Empfänger"
-#: apps/note/forms.py:74 apps/note/templates/note/transaction_form.html:123
+#: apps/note/forms.py:75 apps/note/templates/note/transaction_form.html:123
msgid "Reason"
msgstr "Grund"
-#: apps/note/forms.py:79 apps/treasury/tables.py:136
+#: apps/note/forms.py:80 apps/treasury/tables.py:141
msgid "Valid"
msgstr "Gültig"
-#: apps/note/forms.py:85
+#: apps/note/forms.py:86
msgid "Total amount greater than"
msgstr "Totalanzahl größer als"
-#: apps/note/forms.py:93
+#: apps/note/forms.py:94
msgid "Total amount less than"
msgstr "Totalanzahl kleiner als"
-#: apps/note/forms.py:99
+#: apps/note/forms.py:100
msgid "Created after"
msgstr "Erschafft nacht"
-#: apps/note/forms.py:106
+#: apps/note/forms.py:107
msgid "Created before"
msgstr "Erschafft vor"
@@ -1752,7 +1888,7 @@ msgstr ""
#: apps/note/models/notes.py:243
#, fuzzy
#| msgid "Manage aliases"
-msgid "friendship"
+msgid "frienship"
msgstr "Aliases bearbeiten"
#: apps/note/models/notes.py:248
@@ -1902,8 +2038,9 @@ msgstr ""
"Zahlungsmethode zugeordnet ist, und einem User oder einem Club möglich"
#: apps/note/models/transactions.py:357 apps/note/models/transactions.py:360
-#: apps/note/models/transactions.py:363 apps/wei/views.py:978
-#: apps/wei/views.py:982
+#: apps/note/models/transactions.py:363 apps/wei/views.py:1097
+#: apps/wei/views.py:1101
+#: env/lib/python3.11/site-packages/django/forms/fields.py:91
msgid "This field is required."
msgstr "Dies ist ein Pflichtfeld."
@@ -1911,7 +2048,7 @@ msgstr "Dies ist ein Pflichtfeld."
msgid "membership transaction"
msgstr "Mitgliedschafttransaktion"
-#: apps/note/models/transactions.py:381 apps/treasury/models.py:300
+#: apps/note/models/transactions.py:381 apps/treasury/models.py:301
msgid "membership transactions"
msgstr "Mitgliedschaftttransaktionen"
@@ -1927,18 +2064,6 @@ msgstr "Klicken Sie zum gültigmachen"
msgid "No reason specified"
msgstr "Kein Grund gegeben"
-#: apps/note/tables.py:166 apps/note/tables.py:173 apps/note/tables.py:234
-#: apps/note/tables.py:279 apps/treasury/tables.py:39
-#: apps/treasury/templates/treasury/invoice_confirm_delete.html:30
-#: apps/treasury/templates/treasury/sogecredit_detail.html:65
-#: apps/wei/tables.py:75 apps/wei/tables.py:118
-#: apps/wei/templates/wei/weiregistration_confirm_delete.html:31
-#: note_kfet/templates/oauth2_provider/application_confirm_delete.html:18
-#: note_kfet/templates/oauth2_provider/application_detail.html:39
-#: note_kfet/templates/oauth2_provider/authorized-token-delete.html:12
-msgid "Delete"
-msgstr "Löschen"
-
#: apps/note/tables.py:191
msgid "Trust back"
msgstr ""
@@ -1951,15 +2076,16 @@ msgstr "Neue Bus"
#: apps/note/tables.py:262 apps/note/templates/note/conso_form.html:151
#: apps/wei/tables.py:49 apps/wei/tables.py:50
-#: apps/wei/templates/wei/base.html:89
-#: apps/wei/templates/wei/bus_detail.html:20
+#: apps/wei/templates/wei/base.html:87
+#: apps/wei/templates/wei/bus_detail.html:24
#: apps/wei/templates/wei/busteam_detail.html:20
-#: apps/wei/templates/wei/busteam_detail.html:40
+#: apps/wei/templates/wei/busteam_detail.html:42
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_detail.html:37
#: note_kfet/templates/oauth2_provider/application_detail.html:38
msgid "Edit"
msgstr "Bearbeiten"
-#: apps/note/tables.py:266 apps/note/tables.py:293
+#: apps/note/tables.py:267 apps/note/tables.py:296
msgid "Hide/Show"
msgstr ""
@@ -2045,8 +2171,8 @@ msgid "Action"
msgstr "Aktion"
#: apps/note/templates/note/transaction_form.html:116
-#: apps/treasury/forms.py:137 apps/treasury/tables.py:67
-#: apps/treasury/tables.py:132
+#: apps/treasury/forms.py:137 apps/treasury/tables.py:68
+#: apps/treasury/tables.py:136
#: apps/treasury/templates/treasury/remittance_form.html:23
msgid "Amount"
msgstr "Anzahl"
@@ -2112,34 +2238,35 @@ msgid "Button displayed"
msgstr "Tastenliste"
#: apps/note/templates/note/transactiontemplate_list.html:100
+#: apps/wrapped/templates/wrapped/wrapped_list.html:70
msgid "An error occured"
msgstr ""
-#: apps/note/views.py:36
+#: apps/note/views.py:37
msgid "Transfer money"
msgstr "Geld überweisen"
-#: apps/note/views.py:74
+#: apps/note/views.py:75
msgid "Create new button"
msgstr "Neue Tatse berstellen"
-#: apps/note/views.py:83
+#: apps/note/views.py:84
msgid "Search button"
msgstr "Tatsen finden"
-#: apps/note/views.py:111
+#: apps/note/views.py:116
msgid "Update button"
msgstr "Tatse bearbeiten"
-#: apps/note/views.py:151 note_kfet/templates/base.html:66
+#: apps/note/views.py:156 note_kfet/templates/base.html:66
msgid "Consumptions"
msgstr "Verbräuche"
-#: apps/note/views.py:165
+#: apps/note/views.py:170
msgid "You can't see any button."
msgstr "Sie können keine Taste sehen."
-#: apps/note/views.py:204
+#: apps/note/views.py:209
msgid "Search transactions"
msgstr "Transaktion finden"
@@ -2231,7 +2358,7 @@ msgstr ""
"Sie haben nicht die Berechtigung, das Feld {field} in dieser Instanz von "
"Modell {app_label} zu ändern. {model_name}"
-#: apps/permission/signals.py:83 apps/permission/views.py:105
+#: apps/permission/signals.py:83 apps/permission/views.py:104
#, python-brace-format
msgid ""
"You don't have the permission to add an instance of model {app_label}."
@@ -2294,21 +2421,24 @@ msgid "Available scopes"
msgstr ""
#: apps/permission/templates/permission/scopes.html:42
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_list.html:17
#: note_kfet/templates/oauth2_provider/application_list.html:24
msgid "No applications defined"
msgstr ""
#: apps/permission/templates/permission/scopes.html:43
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_list.html:17
#: note_kfet/templates/oauth2_provider/application_list.html:25
msgid "Click here"
msgstr ""
#: apps/permission/templates/permission/scopes.html:43
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_list.html:17
#: note_kfet/templates/oauth2_provider/application_list.html:25
msgid "if you want to register a new one"
msgstr ""
-#: apps/permission/views.py:72
+#: apps/permission/views.py:71
#, python-brace-format
msgid ""
"You don't have the permission to update this instance of the model "
@@ -2318,7 +2448,7 @@ msgstr ""
"diesen Parametern zu aktualisieren. Bitte korrigieren Sie Ihre Daten und "
"versuchen Sie es erneut."
-#: apps/permission/views.py:76
+#: apps/permission/views.py:75
#, python-brace-format
msgid ""
"You don't have the permission to create an instance of the model \"{model}\" "
@@ -2328,11 +2458,11 @@ msgstr ""
"diesen Parametern zu erstellen. Bitte korrigieren Sie Ihre Daten und "
"versuchen Sie es erneut."
-#: apps/permission/views.py:112 note_kfet/templates/base.html:114
+#: apps/permission/views.py:111 note_kfet/templates/base.html:120
msgid "Rights"
msgstr "Rechten"
-#: apps/permission/views.py:117
+#: apps/permission/views.py:137
msgid "All rights"
msgstr "Alle Rechten"
@@ -2422,7 +2552,7 @@ msgstr "Sie haben bereits ein Konto in der Société générale eröffnet."
#: apps/registration/templates/registration/future_profile_detail.html:73
#: apps/wei/templates/wei/weimembership_form.html:127
-#: apps/wei/templates/wei/weimembership_form.html:186
+#: apps/wei/templates/wei/weimembership_form.html:196
msgid "Validate registration"
msgstr "Registrierung validieren"
@@ -2472,60 +2602,68 @@ msgstr "Danke"
msgid "The Note Kfet team."
msgstr "Die NoteKfet Team."
-#: apps/registration/views.py:42
+#: apps/registration/views.py:43
msgid "Register new user"
msgstr "Neuen User registrieren"
-#: apps/registration/views.py:100
+#: apps/registration/views.py:101
msgid "Email validation"
msgstr "Email validierung"
-#: apps/registration/views.py:102
+#: apps/registration/views.py:103
msgid "Validate email"
msgstr "Email validieren"
-#: apps/registration/views.py:146
+#: apps/registration/views.py:147
msgid "Email validation unsuccessful"
msgstr "Email validierung unerfolgreich"
-#: apps/registration/views.py:157
+#: apps/registration/views.py:158
msgid "Email validation email sent"
msgstr "Validierungsemail wurde gesendet"
-#: apps/registration/views.py:165
+#: apps/registration/views.py:166
msgid "Resend email validation link"
msgstr "E-Mail-Validierungslink erneut senden"
-#: apps/registration/views.py:183
+#: apps/registration/views.py:184
msgid "Pre-registered users list"
msgstr "Vorregistrierte Userliste"
-#: apps/registration/views.py:207
+#: apps/registration/views.py:213
msgid "Unregistered users"
msgstr "Unregistrierte Users"
-#: apps/registration/views.py:220
+#: apps/registration/views.py:226
msgid "Registration detail"
msgstr "Registrierung Detailen"
-#: apps/registration/views.py:256
+#: apps/registration/views.py:262
#, fuzzy, python-format
#| msgid "Note of %(club)s club"
msgid "Join %(club)s Club"
msgstr "%(club)s Note"
-#: apps/registration/views.py:299
-msgid "You must join the BDE."
+#: apps/registration/views.py:305
+#, fuzzy
+#| msgid "You must join the BDE."
+msgid "You must join a club."
msgstr "Sie müssen die BDE beitreten."
-#: apps/registration/views.py:330
+#: apps/registration/views.py:309
+#, fuzzy
+#| msgid "You must join the BDE."
+msgid "You must also join the parent club BDE."
+msgstr "Sie müssen die BDE beitreten."
+
+#: apps/registration/views.py:340
msgid ""
"The entered amount is not enough for the memberships, should be at least {}"
msgstr ""
"Der eingegebene Betrag reicht für die Mitgliedschaft nicht aus, sollte "
"mindestens {} betragen"
-#: apps/registration/views.py:425
+#: apps/registration/views.py:435
msgid "Invalidate pre-registration"
msgstr "Ungültige Vorregistrierung"
@@ -2533,7 +2671,7 @@ msgstr "Ungültige Vorregistrierung"
msgid "Treasury"
msgstr "Quaestor"
-#: apps/treasury/forms.py:26 apps/treasury/models.py:112
+#: apps/treasury/forms.py:26 apps/treasury/models.py:113
#: apps/treasury/templates/treasury/invoice_form.html:22
msgid "This invoice is locked and can no longer be edited."
msgstr "Diese Rechnung ist gesperrt und kann nicht mehr bearbeitet werden."
@@ -2546,8 +2684,8 @@ msgstr "Überweisung ist bereits geschlossen."
msgid "You can't change the type of the remittance."
msgstr "Sie können die Art der Überweisung nicht ändern."
-#: apps/treasury/forms.py:125 apps/treasury/models.py:275
-#: apps/treasury/tables.py:97 apps/treasury/tables.py:105
+#: apps/treasury/forms.py:125 apps/treasury/models.py:276
+#: apps/treasury/tables.py:99 apps/treasury/tables.py:108
#: apps/treasury/templates/treasury/invoice_list.html:16
#: apps/treasury/templates/treasury/remittance_list.html:16
#: apps/treasury/templates/treasury/sogecredit_list.html:17
@@ -2562,142 +2700,143 @@ msgstr "Keine beigefügte Überweisung"
msgid "Invoice identifier"
msgstr "Rechnungskennung"
-#: apps/treasury/models.py:42
+#: apps/treasury/models.py:43 apps/wrapped/models.py:28
+#: apps/wrapped/models.py:29
msgid "BDE"
msgstr "BDE"
-#: apps/treasury/models.py:46
+#: apps/treasury/models.py:47
#, fuzzy
#| msgid "location"
msgid "Quotation"
msgstr "Ort"
-#: apps/treasury/models.py:51
+#: apps/treasury/models.py:52
msgid "Object"
msgstr "Objekt"
-#: apps/treasury/models.py:55
+#: apps/treasury/models.py:56
msgid "Description"
msgstr "Beschreibung"
-#: apps/treasury/models.py:64
+#: apps/treasury/models.py:65
msgid "Address"
msgstr "Adresse"
-#: apps/treasury/models.py:69 apps/treasury/models.py:202
+#: apps/treasury/models.py:70 apps/treasury/models.py:203
msgid "Date"
msgstr "Datum"
-#: apps/treasury/models.py:75
+#: apps/treasury/models.py:76
#, fuzzy
#| msgid "end date"
msgid "Payment date"
msgstr "Abschlussdatum"
-#: apps/treasury/models.py:79
+#: apps/treasury/models.py:80
msgid "Acquitted"
msgstr "Bezahlt"
-#: apps/treasury/models.py:84
+#: apps/treasury/models.py:85
msgid "Locked"
msgstr "Gesperrt"
-#: apps/treasury/models.py:85
+#: apps/treasury/models.py:86
msgid "An invoice can't be edited when it is locked."
msgstr "Eine Rechnung kann nicht bearbeitet werden, wenn sie gesperrt ist."
-#: apps/treasury/models.py:91
+#: apps/treasury/models.py:92
msgid "tex source"
msgstr "Tex Quelle"
-#: apps/treasury/models.py:95 apps/treasury/models.py:140
+#: apps/treasury/models.py:96 apps/treasury/models.py:141
msgid "invoice"
msgstr "Rechnung"
-#: apps/treasury/models.py:96
+#: apps/treasury/models.py:97
msgid "invoices"
msgstr "Rechnungen"
-#: apps/treasury/models.py:99
+#: apps/treasury/models.py:100
#, python-brace-format
msgid "Invoice #{id}"
msgstr "Rechnung #{id}"
-#: apps/treasury/models.py:145
+#: apps/treasury/models.py:146
msgid "Designation"
msgstr "Bezeichnung"
-#: apps/treasury/models.py:151
+#: apps/treasury/models.py:152
msgid "Quantity"
msgstr "Qualität"
-#: apps/treasury/models.py:156
+#: apps/treasury/models.py:157
msgid "Unit price"
msgstr "Einzelpreis"
-#: apps/treasury/models.py:160
+#: apps/treasury/models.py:161
msgid "product"
msgstr "Produkt"
-#: apps/treasury/models.py:161
+#: apps/treasury/models.py:162
msgid "products"
msgstr "Produkten"
-#: apps/treasury/models.py:189
+#: apps/treasury/models.py:190
msgid "remittance type"
msgstr "Überweisungstyp"
-#: apps/treasury/models.py:190
+#: apps/treasury/models.py:191
msgid "remittance types"
msgstr "Überweisungstypen"
-#: apps/treasury/models.py:213
+#: apps/treasury/models.py:214
msgid "Comment"
msgstr "Kommentar"
-#: apps/treasury/models.py:218
+#: apps/treasury/models.py:219
msgid "Closed"
msgstr "Geschlossen"
-#: apps/treasury/models.py:222
+#: apps/treasury/models.py:223
msgid "remittance"
msgstr "Überweisung"
-#: apps/treasury/models.py:223
+#: apps/treasury/models.py:224
msgid "remittances"
msgstr "Überweisungen"
-#: apps/treasury/models.py:226
+#: apps/treasury/models.py:227
msgid "Remittance #{:d}: {}"
msgstr "Überweisung #{:d}:{}"
-#: apps/treasury/models.py:279
+#: apps/treasury/models.py:280
msgid "special transaction proxy"
msgstr "spezielle Transaktion Proxy"
-#: apps/treasury/models.py:280
+#: apps/treasury/models.py:281
msgid "special transaction proxies"
msgstr "spezielle Transaktion Proxies"
-#: apps/treasury/models.py:306
+#: apps/treasury/models.py:307
msgid "credit transaction"
msgstr "Kredit Transaktion"
-#: apps/treasury/models.py:311
+#: apps/treasury/models.py:312
#: apps/treasury/templates/treasury/sogecredit_detail.html:10
msgid "Credit from the Société générale"
msgstr "Kredit von der Société générale"
-#: apps/treasury/models.py:312
+#: apps/treasury/models.py:313
msgid "Credits from the Société générale"
msgstr "Krediten von der Société générale"
-#: apps/treasury/models.py:315
+#: apps/treasury/models.py:316
#, python-brace-format
msgid "Soge credit for {user}"
msgstr "Kredit von der Société générale für {user}"
-#: apps/treasury/models.py:445
+#: apps/treasury/models.py:446
msgid ""
"This user doesn't have enough money to pay the memberships with its note. "
"Please ask her/him to credit the note before invalidating this credit."
@@ -2716,25 +2855,22 @@ msgstr "Rechnung #{:d}"
msgid "Invoice"
msgstr "Rechnung"
-#: apps/treasury/tables.py:65
+#: apps/treasury/tables.py:66
msgid "Transaction count"
msgstr "Transaktionanzahl"
-#: apps/treasury/tables.py:70 apps/treasury/tables.py:72
+#: apps/treasury/tables.py:71 apps/treasury/tables.py:73
+#: apps/wei/templates/wei/busteam_detail.html:22 apps/wrapped/tables.py:42
msgid "View"
msgstr "Schauen"
-#: apps/treasury/tables.py:143
-msgid "Yes"
-msgstr "Ja"
-
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:10
-#: apps/treasury/views.py:173
+#: apps/treasury/views.py:174
msgid "Delete invoice"
msgstr "Rechnung löschen"
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:15
-#: apps/treasury/views.py:177
+#: apps/treasury/views.py:178
msgid "This invoice is locked and can't be deleted."
msgstr "Eine Rechnung kann nicht gelöscht werden, wenn sie gesperrt ist."
@@ -2912,63 +3048,63 @@ msgstr "Kredit von der Société générale"
msgid "Credit successfully registered"
msgstr "Taste erfolgreich gelöscht "
-#: apps/treasury/views.py:40
+#: apps/treasury/views.py:41
msgid "Create new invoice"
msgstr "Neue Rechnung"
-#: apps/treasury/views.py:97
+#: apps/treasury/views.py:98
msgid "Invoices list"
msgstr "Rechnunglist"
-#: apps/treasury/views.py:105 apps/treasury/views.py:275
-#: apps/treasury/views.py:401
+#: apps/treasury/views.py:106 apps/treasury/views.py:281
+#: apps/treasury/views.py:394
msgid "You are not able to see the treasury interface."
msgstr "Sie können die Quaestor-App nicht sehen."
-#: apps/treasury/views.py:115
+#: apps/treasury/views.py:116
msgid "Update an invoice"
msgstr "Rechnung bearbeiten"
-#: apps/treasury/views.py:240
+#: apps/treasury/views.py:241
msgid "Create a new remittance"
msgstr "Neue Überweisung"
-#: apps/treasury/views.py:267
+#: apps/treasury/views.py:265
msgid "Remittances list"
msgstr "Überweisungliste"
-#: apps/treasury/views.py:326
+#: apps/treasury/views.py:320
msgid "Update a remittance"
msgstr "Überweisung bearbeiten"
-#: apps/treasury/views.py:349
+#: apps/treasury/views.py:342
msgid "Attach a transaction to a remittance"
msgstr "Fügen Sie einer Überweisung eine Transaktion hinzu"
-#: apps/treasury/views.py:393
+#: apps/treasury/views.py:386
msgid "List of credits from the Société générale"
msgstr "Kreditliste von Société générale"
-#: apps/treasury/views.py:438
+#: apps/treasury/views.py:436
msgid "Manage credits from the Société générale"
msgstr "Krediten von der Société générale handeln"
-#: apps/wei/apps.py:10 apps/wei/models.py:37 apps/wei/models.py:38
-#: apps/wei/models.py:62 apps/wei/models.py:178
+#: apps/wei/apps.py:10 apps/wei/models.py:42 apps/wei/models.py:43
+#: apps/wei/models.py:67 apps/wei/models.py:192
#: note_kfet/templates/base.html:108
msgid "WEI"
msgstr "WEI"
-#: apps/wei/forms/registration.py:35
+#: apps/wei/forms/registration.py:37
msgid "The selected user is not validated. Please validate its account first"
msgstr ""
-#: apps/wei/forms/registration.py:59 apps/wei/models.py:126
-#: apps/wei/models.py:324
+#: apps/wei/forms/registration.py:71 apps/wei/models.py:140
+#: apps/wei/models.py:348
msgid "bus"
msgstr "Bus"
-#: apps/wei/forms/registration.py:60
+#: apps/wei/forms/registration.py:72
msgid ""
"This choice is not definitive. The WEI organizers are free to attribute for "
"you a bus and a team, in particular if you are a free eletron."
@@ -2977,11 +3113,11 @@ msgstr ""
"einen Bus und ein Team zuzuweisen, insbesondere wenn Sie ein freies Elektron "
"sind."
-#: apps/wei/forms/registration.py:67
+#: apps/wei/forms/registration.py:79
msgid "Team"
msgstr "Team"
-#: apps/wei/forms/registration.py:69
+#: apps/wei/forms/registration.py:81
msgid ""
"Leave this field empty if you won't be in a team (staff, bus chief, free "
"electron)"
@@ -2989,16 +3125,16 @@ msgstr ""
"Lassen Sie dieses Feld leer, wenn Sie nicht in einem Team sind (Mitarbeiter, "
"Buschef, freies Elektron)"
-#: apps/wei/forms/registration.py:75 apps/wei/forms/registration.py:85
-#: apps/wei/models.py:160
+#: apps/wei/forms/registration.py:87 apps/wei/forms/registration.py:97
+#: apps/wei/models.py:174
msgid "WEI Roles"
msgstr "WEI Rollen"
-#: apps/wei/forms/registration.py:76
+#: apps/wei/forms/registration.py:88
msgid "Select the roles that you are interested in."
msgstr "Wählen Sie die Rollen aus, an denen Sie interessiert sind."
-#: apps/wei/forms/registration.py:122
+#: apps/wei/forms/registration.py:134
msgid "This team doesn't belong to the given bus."
msgstr "Dieses Team gehört nicht zum angegebenen Bus."
@@ -3011,126 +3147,149 @@ msgid "year"
msgstr "Jahr"
#: apps/wei/models.py:29 apps/wei/templates/wei/base.html:30
+#: apps/wrapped/models.py:20
msgid "date start"
msgstr "Anfangsdatum"
#: apps/wei/models.py:33 apps/wei/templates/wei/base.html:33
+#: apps/wrapped/models.py:24
msgid "date end"
msgstr "Abschlussdatum"
-#: apps/wei/models.py:71 apps/wei/tables.py:305
+#: apps/wei/models.py:37
+#, fuzzy
+#| msgid "total amount"
+msgid "caution amount"
+msgstr "Totalanzahlt"
+
+#: apps/wei/models.py:76 apps/wei/tables.py:305
#, fuzzy
#| msgid "The user joined the bus"
msgid "seat count in the bus"
msgstr "Der Benutzer ist dem Bus beigetreten"
-#: apps/wei/models.py:83
+#: apps/wei/models.py:97
msgid "survey information"
msgstr "Umfrage Infos"
-#: apps/wei/models.py:84
+#: apps/wei/models.py:98
msgid "Information about the survey for new members, encoded in JSON"
msgstr "Informationen zur Umfrage für neue Mitglieder, codiert in JSON"
-#: apps/wei/models.py:88
+#: apps/wei/models.py:102
msgid "Bus"
msgstr "Bus"
-#: apps/wei/models.py:89 apps/wei/templates/wei/weiclub_detail.html:51
+#: apps/wei/models.py:103 apps/wei/templates/wei/weiclub_detail.html:51
msgid "Buses"
msgstr "Buses"
-#: apps/wei/models.py:135
+#: apps/wei/models.py:149
msgid "color"
msgstr "Farbe"
-#: apps/wei/models.py:136
+#: apps/wei/models.py:150
msgid "The color of the T-Shirt, stored with its number equivalent"
msgstr "Die Farbe des T-Shirts, gespeichert mit der entsprechenden Nummer"
-#: apps/wei/models.py:147
+#: apps/wei/models.py:161
msgid "Bus team"
msgstr "Bus Team"
-#: apps/wei/models.py:148
+#: apps/wei/models.py:162
msgid "Bus teams"
msgstr "Bus Teams"
-#: apps/wei/models.py:159
+#: apps/wei/models.py:173
msgid "WEI Role"
msgstr "WEI Rolle"
-#: apps/wei/models.py:183
+#: apps/wei/models.py:197
msgid "Credit from Société générale"
msgstr "Kredit von der Société générale"
-#: apps/wei/models.py:188
+#: apps/wei/models.py:202 apps/wei/views.py:984
msgid "Caution check given"
msgstr "Caution check given"
-#: apps/wei/models.py:192 apps/wei/templates/wei/weimembership_form.html:64
+#: apps/wei/models.py:208
+msgid "Check"
+msgstr ""
+
+#: apps/wei/models.py:209
+#, fuzzy
+#| msgid "transactions"
+msgid "Note transaction"
+msgstr "Transaktionen"
+
+#: apps/wei/models.py:212
+#, fuzzy
+#| msgid "created at"
+msgid "caution type"
+msgstr "erschafft am"
+
+#: apps/wei/models.py:216 apps/wei/templates/wei/weimembership_form.html:64
msgid "birth date"
msgstr "Geburtsdatum"
-#: apps/wei/models.py:198 apps/wei/models.py:208
+#: apps/wei/models.py:222 apps/wei/models.py:232
msgid "Male"
msgstr "Männlich"
-#: apps/wei/models.py:199 apps/wei/models.py:209
+#: apps/wei/models.py:223 apps/wei/models.py:233
msgid "Female"
msgstr "Weiblich"
-#: apps/wei/models.py:200
+#: apps/wei/models.py:224
msgid "Non binary"
msgstr "Nicht binär"
-#: apps/wei/models.py:202 apps/wei/templates/wei/attribute_bus_1A.html:22
+#: apps/wei/models.py:226 apps/wei/templates/wei/attribute_bus_1A.html:22
#: apps/wei/templates/wei/weimembership_form.html:55
msgid "gender"
msgstr "Geschlecht"
-#: apps/wei/models.py:210
+#: apps/wei/models.py:234
msgid "Unisex"
msgstr "Unisex"
-#: apps/wei/models.py:213 apps/wei/templates/wei/weimembership_form.html:58
+#: apps/wei/models.py:237 apps/wei/templates/wei/weimembership_form.html:58
msgid "clothing cut"
msgstr "Kleidung Schnitt"
-#: apps/wei/models.py:226 apps/wei/templates/wei/weimembership_form.html:61
+#: apps/wei/models.py:250 apps/wei/templates/wei/weimembership_form.html:61
msgid "clothing size"
msgstr "Kleidergröße"
-#: apps/wei/models.py:232 apps/wei/templates/wei/attribute_bus_1A.html:28
-#: apps/wei/templates/wei/weimembership_form.html:67
+#: apps/wei/models.py:256
msgid "health issues"
msgstr "Gesundheitsprobleme"
-#: apps/wei/models.py:237 apps/wei/templates/wei/weimembership_form.html:70
+#: apps/wei/models.py:261 apps/wei/templates/wei/weimembership_form.html:70
msgid "emergency contact name"
msgstr "Notfall-Kontakt"
-#: apps/wei/models.py:238
+#: apps/wei/models.py:262
msgid "The emergency contact must not be a WEI participant"
msgstr "Der Notfallkontakt darf kein WEI-Teilnehmer sein"
-#: apps/wei/models.py:243 apps/wei/templates/wei/weimembership_form.html:73
+#: apps/wei/models.py:267 apps/wei/templates/wei/weimembership_form.html:73
msgid "emergency contact phone"
msgstr "Notfallkontakttelefon"
-#: apps/wei/models.py:248 apps/wei/templates/wei/weimembership_form.html:52
+#: apps/wei/models.py:272 apps/wei/templates/wei/weimembership_form.html:52
msgid "first year"
msgstr "Erste Jahr"
-#: apps/wei/models.py:249
+#: apps/wei/models.py:273
msgid "Tells if the user is new in the school."
msgstr "Gibt an, ob der USer neu in der Schule ist."
-#: apps/wei/models.py:254
+#: apps/wei/models.py:278
msgid "registration information"
msgstr "Registrierung Detailen"
-#: apps/wei/models.py:255
+#: apps/wei/models.py:279
msgid ""
"Information about the registration (buses for old members, survey for the "
"new members), encoded in JSON"
@@ -3138,27 +3297,27 @@ msgstr ""
"Informationen zur Registrierung (Busse für alte Mitglieder, Umfrage für neue "
"Mitglieder), verschlüsselt in JSON"
-#: apps/wei/models.py:261
+#: apps/wei/models.py:285
msgid "WEI User"
msgstr "WEI User"
-#: apps/wei/models.py:262
+#: apps/wei/models.py:286
msgid "WEI Users"
msgstr "WEI Users"
-#: apps/wei/models.py:334
+#: apps/wei/models.py:358
msgid "team"
msgstr "Team"
-#: apps/wei/models.py:344
+#: apps/wei/models.py:368
msgid "WEI registration"
msgstr "WEI Registrierung"
-#: apps/wei/models.py:348
+#: apps/wei/models.py:372
msgid "WEI membership"
msgstr "WEI Mitgliedschaft"
-#: apps/wei/models.py:349
+#: apps/wei/models.py:373
msgid "WEI memberships"
msgstr "WEI Mitgliedschaften"
@@ -3190,8 +3349,8 @@ msgstr "Jahr"
msgid "preferred bus"
msgstr "bevorzugter Bus"
-#: apps/wei/tables.py:210 apps/wei/templates/wei/bus_detail.html:32
-#: apps/wei/templates/wei/busteam_detail.html:50
+#: apps/wei/tables.py:210 apps/wei/templates/wei/bus_detail.html:36
+#: apps/wei/templates/wei/busteam_detail.html:52
msgid "Teams"
msgstr "Teams"
@@ -3230,13 +3389,20 @@ msgid "Attribute first year members into buses"
msgstr ""
#: apps/wei/templates/wei/1A_list.html:15
-msgid "Start attribution!"
+msgid "Start attribution !"
msgstr ""
#: apps/wei/templates/wei/attribute_bus_1A.html:8
msgid "Bus attribution"
msgstr ""
+#: apps/wei/templates/wei/attribute_bus_1A.html:28
+#: apps/wei/templates/wei/weimembership_form.html:67
+#, fuzzy
+#| msgid "health issues"
+msgid "health issues or specific diet"
+msgstr "Gesundheitsprobleme"
+
#: apps/wei/templates/wei/attribute_bus_1A.html:31
msgid "suggested bus"
msgstr ""
@@ -3257,53 +3423,61 @@ msgstr "Tastenliste"
msgid "WEI fee (paid students)"
msgstr "WEI Preis (bezahlte Studenten)"
-#: apps/wei/templates/wei/base.html:47 apps/wei/templates/wei/base.html:54
-msgid "The BDE membership is included in the WEI registration."
-msgstr "Die BDE-Mitgliedschaft ist in der WEI-Registrierung enthalten."
-
-#: apps/wei/templates/wei/base.html:51
+#: apps/wei/templates/wei/base.html:47
msgid "WEI fee (unpaid students)"
msgstr "WEI Preis (unbezahlte Studenten)"
-#: apps/wei/templates/wei/base.html:76
+#: apps/wei/templates/wei/base.html:53
+#, fuzzy
+#| msgid "total amount"
+msgid "Caution amount"
+msgstr "Totalanzahlt"
+
+#: apps/wei/templates/wei/base.html:74
msgid "WEI list"
msgstr "WEI Liste"
-#: apps/wei/templates/wei/base.html:81 apps/wei/views.py:528
+#: apps/wei/templates/wei/base.html:79 apps/wei/views.py:550
msgid "Register 1A"
msgstr "1A Registrieren"
-#: apps/wei/templates/wei/base.html:85 apps/wei/views.py:614
+#: apps/wei/templates/wei/base.html:83 apps/wei/views.py:644
msgid "Register 2A+"
msgstr "2A+ Registrieren"
-#: apps/wei/templates/wei/base.html:93
+#: apps/wei/templates/wei/base.html:91
msgid "Add bus"
msgstr "Neue Bus"
-#: apps/wei/templates/wei/base.html:97
+#: apps/wei/templates/wei/base.html:95
msgid "View WEI"
msgstr "WEI schauen"
-#: apps/wei/templates/wei/bus_detail.html:22
-#: apps/wei/templates/wei/busteam_detail.html:22
+#: apps/wei/templates/wei/bus_detail.html:21
+#, fuzzy
+#| msgid "club"
+msgid "View club"
+msgstr "Club"
+
+#: apps/wei/templates/wei/bus_detail.html:26
+#: apps/wei/templates/wei/busteam_detail.html:24
msgid "Add team"
msgstr "Neue Team"
-#: apps/wei/templates/wei/bus_detail.html:45
+#: apps/wei/templates/wei/bus_detail.html:49
msgid "Members"
msgstr "Mitglied"
-#: apps/wei/templates/wei/bus_detail.html:54
-#: apps/wei/templates/wei/busteam_detail.html:60
+#: apps/wei/templates/wei/bus_detail.html:58
+#: apps/wei/templates/wei/busteam_detail.html:62
#: apps/wei/templates/wei/weimembership_list.html:31
msgid "View as PDF"
msgstr "Als PDF schauen"
#: apps/wei/templates/wei/survey.html:11
#: apps/wei/templates/wei/survey_closed.html:11
-#: apps/wei/templates/wei/survey_end.html:11 apps/wei/views.py:1028
-#: apps/wei/views.py:1083 apps/wei/views.py:1130
+#: apps/wei/templates/wei/survey_end.html:11 apps/wei/views.py:1159
+#: apps/wei/views.py:1214 apps/wei/views.py:1261
msgid "Survey WEI"
msgstr "WEI Umfrage"
@@ -3347,7 +3521,7 @@ msgstr "Unvalidierte Registrierungen"
msgid "Attribute buses"
msgstr ""
-#: apps/wei/templates/wei/weiclub_list.html:14 apps/wei/views.py:79
+#: apps/wei/templates/wei/weiclub_list.html:14 apps/wei/views.py:82
msgid "Create WEI"
msgstr "Neue WEI"
@@ -3431,29 +3605,42 @@ msgstr ""
"validieren, sobald die Bank die Erstellung des Kontos validiert hat, oder "
"die Zahlungsmethode ändern."
+#: apps/wei/templates/wei/weimembership_form.html:147
+msgid "Required payments:"
+msgstr ""
+
#: apps/wei/templates/wei/weimembership_form.html:149
-#, python-format
-msgid ""
-"The note don't have enough money (%(balance)s, %(pretty_fee)s required). The "
-"registration may fail if you don't credit the note now."
-msgstr ""
-"Die Note hat nicht genug Geld (%(balance)s,%(pretty_fee)s erforderlich). Die "
-"Registrierung kann fehlschlagen, wenn Sie die Note jetzt nicht gutschreiben."
+#, fuzzy, python-format
+#| msgid "membership fee (paid students)"
+msgid "Membership fees: %(amount)s"
+msgstr "Mitgliedschaftpreis (bezahlte Studenten)"
-#: apps/wei/templates/wei/weimembership_form.html:157
+#: apps/wei/templates/wei/weimembership_form.html:153
#, python-format
-msgid ""
-"The note has enough money (%(pretty_fee)s required), the registration is "
-"possible."
+msgid "Deposit (by Note transaction): %(amount)s"
msgstr ""
-"Die Note hat genug Geld (%(pretty_fee)s erforderlich), die Registrierung ist "
-"möglich."
-#: apps/wei/templates/wei/weimembership_form.html:166
+#: apps/wei/templates/wei/weimembership_form.html:156
+#: apps/wei/templates/wei/weimembership_form.html:163
+#, python-format
+msgid "Total needed: %(total)s"
+msgstr ""
+
+#: apps/wei/templates/wei/weimembership_form.html:160
+#, python-format
+msgid "Deposit (by check): %(amount)s"
+msgstr ""
+
+#: apps/wei/templates/wei/weimembership_form.html:168
+#, python-format
+msgid "Current balance: %(balance)s"
+msgstr ""
+
+#: apps/wei/templates/wei/weimembership_form.html:176
msgid "The user didn't give her/his caution check."
msgstr "Der User hat nicht sein Vorsichtsprüfung gegeben."
-#: apps/wei/templates/wei/weimembership_form.html:174
+#: apps/wei/templates/wei/weimembership_form.html:184
msgid ""
"This user is not a member of the Kfet club for the coming year. The "
"membership will be processed automatically, the WEI registration includes "
@@ -3489,67 +3676,67 @@ msgstr "Bei diesem Muster wurde keine Vorregistrierung gefunden."
msgid "View validated memberships..."
msgstr "Validierte Mitgliedschaften anzeigen ..."
-#: apps/wei/views.py:58
+#: apps/wei/views.py:61
msgid "Search WEI"
msgstr "WEI finden"
-#: apps/wei/views.py:109
+#: apps/wei/views.py:112
msgid "WEI Detail"
msgstr "WEI Infos"
-#: apps/wei/views.py:208
+#: apps/wei/views.py:212
msgid "View members of the WEI"
msgstr "Mitglied der WEI schauen"
-#: apps/wei/views.py:236
+#: apps/wei/views.py:245
msgid "Find WEI Membership"
msgstr "WEI Mitgliedschaft finden"
-#: apps/wei/views.py:246
+#: apps/wei/views.py:255
msgid "View registrations to the WEI"
msgstr "Mitglied der WEI schauen"
-#: apps/wei/views.py:270
+#: apps/wei/views.py:284
msgid "Find WEI Registration"
msgstr "WEI Registrierung finden"
-#: apps/wei/views.py:281
+#: apps/wei/views.py:295
msgid "Update the WEI"
msgstr "WEI bearbeiten"
-#: apps/wei/views.py:302
+#: apps/wei/views.py:316
msgid "Create new bus"
msgstr "Neue Bus"
-#: apps/wei/views.py:340
+#: apps/wei/views.py:354
msgid "Update bus"
msgstr "Bus bearbeiten"
-#: apps/wei/views.py:372
+#: apps/wei/views.py:386
msgid "Manage bus"
msgstr "Bus ändern"
-#: apps/wei/views.py:399
+#: apps/wei/views.py:413
msgid "Create new team"
msgstr "Neue Bus Team"
-#: apps/wei/views.py:439
+#: apps/wei/views.py:457
msgid "Update team"
msgstr "Team bearbeiten"
-#: apps/wei/views.py:470
+#: apps/wei/views.py:492
msgid "Manage WEI team"
msgstr "WEI Team bearbeiten"
-#: apps/wei/views.py:492
+#: apps/wei/views.py:514
msgid "Register first year student to the WEI"
msgstr "Registrieren Sie den Erstsemester beim WEI"
-#: apps/wei/views.py:550 apps/wei/views.py:649
+#: apps/wei/views.py:580 apps/wei/views.py:689
msgid "This user is already registered to this WEI."
msgstr "Dieser Benutzer ist bereits bei dieser WEI registriert."
-#: apps/wei/views.py:555
+#: apps/wei/views.py:585
msgid ""
"This user can't be in her/his first year since he/she has already "
"participated to a WEI."
@@ -3557,51 +3744,1819 @@ msgstr ""
"Dieser Benutzer kann nicht in seinem ersten Jahr sein, da er bereits an "
"einer WEI teilgenommen hat."
-#: apps/wei/views.py:578
+#: apps/wei/views.py:608
msgid "Register old student to the WEI"
msgstr "Registrieren Sie einen alten Studenten beim WEI"
-#: apps/wei/views.py:633 apps/wei/views.py:721
+#: apps/wei/views.py:663 apps/wei/views.py:768
msgid "You already opened an account in the Société générale."
msgstr "Sie haben bereits ein Konto in der Société générale eröffnet."
-#: apps/wei/views.py:685
+#: apps/wei/views.py:676 apps/wei/views.py:785
+msgid "Choose how you want to pay the deposit"
+msgstr ""
+
+#: apps/wei/views.py:728
msgid "Update WEI Registration"
msgstr "WEI Registrierung aktualisieren"
-#: apps/wei/views.py:795
+#: apps/wei/views.py:810
+#, fuzzy
+#| msgid "The BDE membership is included in the WEI registration."
+msgid "No membership found for this registration"
+msgstr "Die BDE-Mitgliedschaft ist in der WEI-Registrierung enthalten."
+
+#: apps/wei/views.py:819
+#, fuzzy
+#| msgid ""
+#| "You don't have the permission to add an instance of model {app_label}."
+#| "{model_name}."
+msgid "You don't have the permission to update memberships"
+msgstr ""
+"Sie haben nicht die Berechtigung, eine Instanz von model {app_label}. "
+"{model_name} hinzufügen."
+
+#: apps/wei/views.py:825
+#, fuzzy, python-format
+#| msgid ""
+#| "You don't have the permission to delete this instance of model "
+#| "{app_label}.{model_name}."
+msgid "You don't have the permission to update the field %(field)s"
+msgstr ""
+"Sie haben nicht die Berechtigung, eine Instanz von model {app_label}. "
+"{model_name} zulöschen."
+
+#: apps/wei/views.py:870
msgid "Delete WEI registration"
msgstr "WEI Registrierung löschen"
-#: apps/wei/views.py:806
+#: apps/wei/views.py:881
msgid "You don't have the right to delete this WEI registration."
msgstr "Sie haben nicht das Recht, diese WEI-Registrierung zu löschen."
-#: apps/wei/views.py:824
+#: apps/wei/views.py:899
msgid "Validate WEI registration"
msgstr "Überprüfen Sie die WEI-Registrierung"
-#: apps/wei/views.py:1223
+#: apps/wei/views.py:985
+#, fuzzy
+#| msgid "Please ask the user to credit its note before deleting this credit."
+msgid "Please make sure the check is given before validating the registration"
+msgstr ""
+"Bitte bitten Sie den Benutzer, seine Note gutzuschreiben, bevor Sie diese "
+"Kredit löschen."
+
+#: apps/wei/views.py:991
+#, fuzzy
+#| msgid "credit transaction"
+msgid "Create deposit transaction"
+msgstr "Kredit Transaktion"
+
+#: apps/wei/views.py:992
+#, python-format
+msgid ""
+"A transaction of %(amount).2f€ will be created from the user's Note account"
+msgstr ""
+
+#: apps/wei/views.py:1087
+#, fuzzy, python-format
+#| msgid ""
+#| "This user don't have enough money to join this club, and can't have a "
+#| "negative balance."
+msgid ""
+"This user doesn't have enough money to join this club and pay the deposit. "
+"Current balance: %(balance)d€, credit: %(credit)d€, needed: %(needed)d€"
+msgstr ""
+"Diese User hat nicht genug Geld um Mitglied zu werden, und darf nich im Rot "
+"sein."
+
+#: apps/wei/views.py:1140
+#, fuzzy, python-format
+#| msgid "created at"
+msgid "Caution %(name)s"
+msgstr "erschafft am"
+
+#: apps/wei/views.py:1354
msgid "Attribute buses to first year members"
msgstr ""
-#: apps/wei/views.py:1248
+#: apps/wei/views.py:1379
msgid "Attribute bus"
msgstr ""
-#: note_kfet/settings/base.py:173
+#: apps/wei/views.py:1419
+msgid ""
+"No first year student without a bus found. Either all of them have a bus, or "
+"none has filled the survey yet."
+msgstr ""
+
+#: apps/wrapped/apps.py:10
+msgid "wrapped"
+msgstr ""
+
+#: apps/wrapped/models.py:40
+#, fuzzy
+#| msgid "Regenerate token"
+msgid "generated"
+msgstr "Token erneuern"
+
+#: apps/wrapped/models.py:45
+msgid "public"
+msgstr ""
+
+#: apps/wrapped/models.py:53
+msgid "bde"
+msgstr ""
+
+#: apps/wrapped/models.py:65
+msgid "data json"
+msgstr ""
+
+#: apps/wrapped/models.py:66
+msgid "data in the wrapped and generated by the script generate_wrapped"
+msgstr ""
+
+#: apps/wrapped/models.py:70 note_kfet/templates/base.html:114
+msgid "Wrapped"
+msgstr ""
+
+#: apps/wrapped/models.py:71
+msgid "Wrappeds"
+msgstr ""
+
+#: apps/wrapped/tables.py:40
+msgid "view the wrapped"
+msgstr ""
+
+#: apps/wrapped/tables.py:55
+msgid "Click to make this wrapped private"
+msgstr ""
+
+#: apps/wrapped/tables.py:56
+msgid "Click to make this wrapped public"
+msgstr ""
+
+#: apps/wrapped/tables.py:67
+msgid "Share"
+msgstr ""
+
+#: apps/wrapped/tables.py:73
+msgid "Click to copy the link in the press paper"
+msgstr ""
+
+#: apps/wrapped/tables.py:81
+msgid "Copy link"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_base.html:16
+#: note_kfet/templates/base.html:14
+msgid "The ENS Paris-Saclay BDE note."
+msgstr "Die BDE ENS-Paris-Saclay Note."
+
+#: apps/wrapped/templates/wrapped/1/wrapped_base.html:58
+#, fuzzy
+#| msgid "The Note Kfet team."
+msgid "The NoteKfet this year it's also"
+msgstr "Die NoteKfet Team."
+
+#: apps/wrapped/templates/wrapped/1/wrapped_base.html:60
+#, fuzzy
+#| msgid "transactions"
+msgid " transactions"
+msgstr "Transaktionen"
+
+#: apps/wrapped/templates/wrapped/1/wrapped_base.html:61
+msgid " parties"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_base.html:62
+#, fuzzy
+#| msgid "entries"
+msgid " Pot entries"
+msgstr "Eintritte"
+
+#: apps/wrapped/templates/wrapped/1/wrapped_base.html:72
+msgid " old dickhead behind the bar"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_club.html:9
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:9
+msgid "NoteKfet Wrapped"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_club.html:11
+msgid "Your best consumer:"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_club.html:13
+msgid "Your worst creditor:"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_club.html:16
+msgid "party·ies organised"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_club.html:17
+#, fuzzy
+#| msgid "Add member"
+msgid "distinct members"
+msgstr "Neue Mitglied"
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_club.html:26
+msgid "Infortunately, you doesn't have consumer this year"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_club.html:28
+msgid "Congratulations you are a real rat !"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:13
+msgid "You participate to the wei: "
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:13
+#, fuzzy
+#| msgid "in the team"
+msgid "in the"
+msgstr "In der Team"
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:18
+msgid "pots !"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:27
+msgid "Your first conso of the year: "
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:28
+msgid "Your prefered consumtion category: "
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:41
+msgid ": it's the number of time your reload your note"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:44
+msgid "Your overall expenses: "
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:47
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:60
+msgid "with"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:57
+msgid "Your expenses to BDE: "
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/wrapped_list.html:13
+msgid "My wrapped"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/wrapped_list.html:22
+msgid "Public wrapped"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/wrapped_list.html:33
+msgid ""
+"Do not forget to ask permission to people who are in your wrapped before to "
+"make them public"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/wrapped_list.html:40
+msgid "Link copied"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/wrapped_list.html:65
+msgid "Wrapped is private"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/wrapped_list.html:66
+msgid "Wrapped is public"
+msgstr ""
+
+#: apps/wrapped/views.py:28
+msgid "List of wrapped"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/contrib/messages/apps.py:15
+msgid "Messages"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/contrib/sitemaps/apps.py:8
+msgid "Site Maps"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/contrib/staticfiles/apps.py:9
+msgid "Static Files"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/contrib/syndication/apps.py:7
+#, fuzzy
+#| msgid "Invitation"
+msgid "Syndication"
+msgstr "Einladung"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+#: env/lib/python3.11/site-packages/django/core/paginator.py:30
+msgid "…"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/core/paginator.py:50
+msgid "That page number is not an integer"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/core/paginator.py:52
+msgid "That page number is less than 1"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/core/paginator.py:54
+#, fuzzy
+#| msgid "There is no results."
+msgid "That page contains no results"
+msgstr "Es gibt keine Ergebnisse."
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:22
+#, fuzzy
+#| msgid "Email validation"
+msgid "Enter a valid value."
+msgstr "Email validierung"
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:104
+#: env/lib/python3.11/site-packages/django/forms/fields.py:752
+#, fuzzy
+#| msgid "Email validation"
+msgid "Enter a valid URL."
+msgstr "Email validierung"
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:165
+#, fuzzy
+#| msgid "Email validation"
+msgid "Enter a valid integer."
+msgstr "Email validierung"
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:176
+#, fuzzy
+#| msgid "Email validation"
+msgid "Enter a valid email address."
+msgstr "Email validierung"
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+#: env/lib/python3.11/site-packages/django/core/validators.py:259
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:267
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:281
+#: env/lib/python3.11/site-packages/django/core/validators.py:289
+#: env/lib/python3.11/site-packages/django/core/validators.py:318
+#, fuzzy
+#| msgid "This activity is not validated yet."
+msgid "Enter a valid IPv4 address."
+msgstr "Diese Veranstaltung ist noch nicht bestätigt."
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:298
+#: env/lib/python3.11/site-packages/django/core/validators.py:319
+#, fuzzy
+#| msgid "This activity is not validated yet."
+msgid "Enter a valid IPv6 address."
+msgstr "Diese Veranstaltung ist noch nicht bestätigt."
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:310
+#: env/lib/python3.11/site-packages/django/core/validators.py:317
+#, fuzzy
+#| msgid "This activity is not validated yet."
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "Diese Veranstaltung ist noch nicht bestätigt."
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:353
+msgid "Enter only digits separated by commas."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:359
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:394
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:403
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:412
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:422
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:440
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:463
+#: env/lib/python3.11/site-packages/django/forms/fields.py:347
+#: env/lib/python3.11/site-packages/django/forms/fields.py:386
+#, fuzzy
+#| msgid "phone number"
+msgid "Enter a number."
+msgstr "Telefonnummer"
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:465
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] ""
+msgstr[1] ""
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:470
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] ""
+msgstr[1] ""
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:475
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+msgstr[1] ""
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:546
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/core/validators.py:607
+msgid "Null characters are not allowed."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/base.py:1425
+#, fuzzy, python-format
+#| msgid "A template with this name already exist"
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "Eine Vorlage mit diesem Namen ist bereits vorhanden"
+
+#: env/lib/python3.11/site-packages/django/db/models/constraints.py:17
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:128
+#, fuzzy, python-format
+#| msgid "This activity is not validated yet."
+msgid "Value %(value)r is not a valid choice."
+msgstr "Diese Veranstaltung ist noch nicht bestätigt."
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:129
+#, fuzzy
+#| msgid "This image cannot be loaded."
+msgid "This field cannot be null."
+msgstr "Dieses Bild kann nicht geladen werden."
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:130
+#, fuzzy
+#| msgid "This image cannot be loaded."
+msgid "This field cannot be blank."
+msgstr "Dieses Bild kann nicht geladen werden."
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:131
+#, fuzzy, python-format
+#| msgid "A template with this name already exist"
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "Eine Vorlage mit diesem Namen ist bereits vorhanden"
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:135
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:173
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1094
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1095
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1097
+msgid "Boolean (Either True or False)"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1147
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1149
+msgid "String (unlimited)"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1253
+msgid "Comma-separated integers"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1354
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1358
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1493
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1362
+msgid "Date (without time)"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1489
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1497
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1502
+msgid "Date (with time)"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1626
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1628
+#, fuzzy
+#| msgid "phone number"
+msgid "Decimal number"
+msgstr "Telefonnummer"
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1789
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1793
+#, fuzzy
+#| msgid "action"
+msgid "Duration"
+msgstr "Aktion"
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1845
+#, fuzzy
+#| msgid "address"
+msgid "Email address"
+msgstr "Adresse"
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1870
+msgid "File path"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1948
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1950
+#, fuzzy
+#| msgid "phone number"
+msgid "Floating point number"
+msgstr "Telefonnummer"
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1990
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1992
+msgid "Integer"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2088
+msgid "Big (8 byte) integer"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2105
+msgid "Small integer"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2113
+#, fuzzy
+#| msgid "IP Address"
+msgid "IPv4 address"
+msgstr "IP Adresse"
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2144
+#, fuzzy
+#| msgid "IP Address"
+msgid "IP address"
+msgstr "IP Adresse"
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2237
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2238
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2240
+msgid "Boolean (Either True, False or None)"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2291
+msgid "Positive big integer"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2306
+msgid "Positive integer"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2321
+msgid "Positive small integer"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2337
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2373
+msgid "Text"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2448
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2452
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2456
+msgid "Time"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2564
+msgid "URL"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2588
+msgid "Raw binary data"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2653
+#, fuzzy, python-format
+#| msgid "This activity is not validated yet."
+msgid "“%(value)s” is not a valid UUID."
+msgstr "Diese Veranstaltung ist noch nicht bestätigt."
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2655
+#, fuzzy
+#| msgid "Invoice identifier"
+msgid "Universally unique identifier"
+msgstr "Rechnungskennung"
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/files.py:232
+msgid "File"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/files.py:393
+msgid "Image"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/json.py:26
+#, fuzzy
+#| msgid "Object"
+msgid "A JSON object"
+msgstr "Objekt"
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/json.py:28
+#, fuzzy
+#| msgid "This address must be valid."
+msgid "Value must be valid JSON."
+msgstr "Diese Adresse muss gültig sein."
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/related.py:919
+#, fuzzy, python-format
+#| msgid "A template with this name already exist"
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr "Eine Vorlage mit diesem Namen ist bereits vorhanden"
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/related.py:921
+msgid "Foreign Key (type determined by related field)"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/related.py:1212
+msgid "One-to-one relationship"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/related.py:1269
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/related.py:1271
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/db/models/fields/related.py:1319
+msgid "Many-to-many relationship"
+msgstr ""
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the label
+#: env/lib/python3.11/site-packages/django/forms/boundfield.py:184
+msgid ":?.!"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:298
+#, fuzzy
+#| msgid "phone number"
+msgid "Enter a whole number."
+msgstr "Telefonnummer"
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:467
+#: env/lib/python3.11/site-packages/django/forms/fields.py:1241
+#, fuzzy
+#| msgid "Email validation"
+msgid "Enter a valid date."
+msgstr "Email validierung"
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:490
+#: env/lib/python3.11/site-packages/django/forms/fields.py:1242
+#, fuzzy
+#| msgid "Email validation"
+msgid "Enter a valid time."
+msgstr "Email validierung"
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:517
+#, fuzzy
+#| msgid "Email validation"
+msgid "Enter a valid date/time."
+msgstr "Email validierung"
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:551
+#, fuzzy
+#| msgid "Email validation"
+msgid "Enter a valid duration."
+msgstr "Email validierung"
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:552
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:621
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:622
+msgid "No file was submitted."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:623
+msgid "The submitted file is empty."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:625
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:630
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:694
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:857
+#: env/lib/python3.11/site-packages/django/forms/fields.py:949
+#: env/lib/python3.11/site-packages/django/forms/models.py:1566
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:951
+#: env/lib/python3.11/site-packages/django/forms/fields.py:1070
+#: env/lib/python3.11/site-packages/django/forms/models.py:1564
+#, fuzzy
+#| msgid "Email validation"
+msgid "Enter a list of values."
+msgstr "Email validierung"
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:1071
+#, fuzzy
+#| msgid "phone number"
+msgid "Enter a complete value."
+msgstr "Telefonnummer"
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:1313
+#, fuzzy
+#| msgid "Email validation"
+msgid "Enter a valid UUID."
+msgstr "Email validierung"
+
+#: env/lib/python3.11/site-packages/django/forms/fields.py:1343
+#, fuzzy
+#| msgid "Email validation"
+msgid "Enter a valid JSON."
+msgstr "Email validierung"
+
+#. Translators: This is the default suffix added to form field labels
+#: env/lib/python3.11/site-packages/django/forms/forms.py:98
+msgid ":"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/forms.py:244
+#: env/lib/python3.11/site-packages/django/forms/forms.py:328
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/formsets.py:63
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/formsets.py:67
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+
+#: env/lib/python3.11/site-packages/django/forms/formsets.py:72
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+
+#: env/lib/python3.11/site-packages/django/forms/formsets.py:484
+#: env/lib/python3.11/site-packages/django/forms/formsets.py:491
+msgid "Order"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/models.py:886
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/models.py:891
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/models.py:898
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/models.py:907
+msgid "Please correct the duplicate values below."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/models.py:1338
+msgid "The inline value did not match the parent instance."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/models.py:1429
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/models.py:1568
+#, fuzzy, python-format
+#| msgid "This activity is not validated yet."
+msgid "“%(pk)s” is not a valid value."
+msgstr "Diese Veranstaltung ist noch nicht bestätigt."
+
+#: env/lib/python3.11/site-packages/django/forms/utils.py:226
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/widgets.py:463
+msgid "Clear"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/forms/widgets.py:464
+#, fuzzy
+#| msgid "Current activity"
+msgid "Currently"
+msgstr "Aktuelle Veranstaltung"
+
+#: env/lib/python3.11/site-packages/django/forms/widgets.py:465
+#, fuzzy
+#| msgid "change"
+msgid "Change"
+msgstr "bearbeiten"
+
+#: env/lib/python3.11/site-packages/django/forms/widgets.py:794
+msgid "Unknown"
+msgstr ""
+
+#. Translators: Please do not add spaces around commas.
+#: env/lib/python3.11/site-packages/django/template/defaultfilters.py:874
+msgid "yes,no,maybe"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/template/defaultfilters.py:904
+#: env/lib/python3.11/site-packages/django/template/defaultfilters.py:921
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: env/lib/python3.11/site-packages/django/template/defaultfilters.py:923
+#, python-format
+msgid "%s KB"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/template/defaultfilters.py:925
+#, python-format
+msgid "%s MB"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/template/defaultfilters.py:927
+#, python-format
+msgid "%s GB"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/template/defaultfilters.py:929
+#, python-format
+msgid "%s TB"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/template/defaultfilters.py:931
+#, python-format
+msgid "%s PB"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dateformat.py:73
+msgid "p.m."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dateformat.py:74
+msgid "a.m."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dateformat.py:79
+msgid "PM"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dateformat.py:80
+msgid "AM"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dateformat.py:152
+msgid "midnight"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dateformat.py:154
+msgid "noon"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:7
+msgid "Monday"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:8
+msgid "Tuesday"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:9
+msgid "Wednesday"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:10
+msgid "Thursday"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:11
+msgid "Friday"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:12
+msgid "Saturday"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:13
+msgid "Sunday"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:16
+msgid "Mon"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:17
+msgid "Tue"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:18
+msgid "Wed"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:19
+msgid "Thu"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:20
+msgid "Fri"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:21
+msgid "Sat"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:22
+msgid "Sun"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:25
+msgid "January"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:26
+msgid "February"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:27
+#, fuzzy
+#| msgid "Search WEI"
+msgid "March"
+msgstr "WEI finden"
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:28
+msgid "April"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:29
+msgid "May"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:30
+msgid "June"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:31
+msgid "July"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:32
+msgid "August"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:33
+#, fuzzy
+#| msgid "member"
+msgid "September"
+msgstr "Mitglied"
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:34
+msgid "October"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:35
+#, fuzzy
+#| msgid "member"
+msgid "November"
+msgstr "Mitglied"
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:36
+#, fuzzy
+#| msgid "member"
+msgid "December"
+msgstr "Mitglied"
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:39
+#, fuzzy
+#| msgid "add"
+msgid "jan"
+msgstr "hinzufügen"
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:40
+#, fuzzy
+#| msgid "fee"
+msgid "feb"
+msgstr "Preis"
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:41
+msgid "mar"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:42
+msgid "apr"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:43
+msgid "may"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:44
+#, fuzzy
+#| msgid "add"
+msgid "jun"
+msgstr "hinzufügen"
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:45
+msgid "jul"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:46
+msgid "aug"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:47
+msgid "sep"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:48
+#, fuzzy
+#| msgid "product"
+msgid "oct"
+msgstr "Produkt"
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:49
+msgid "nov"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:50
+msgid "dec"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:53
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:54
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:55
+#, fuzzy
+#| msgid "Search WEI"
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "WEI finden"
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:56
+msgctxt "abbrev. month"
+msgid "April"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:57
+msgctxt "abbrev. month"
+msgid "May"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:58
+msgctxt "abbrev. month"
+msgid "June"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:59
+msgctxt "abbrev. month"
+msgid "July"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:60
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:61
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:62
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:63
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:64
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:67
+msgctxt "alt. month"
+msgid "January"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:68
+msgctxt "alt. month"
+msgid "February"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:69
+#, fuzzy
+#| msgid "Search WEI"
+msgctxt "alt. month"
+msgid "March"
+msgstr "WEI finden"
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:70
+msgctxt "alt. month"
+msgid "April"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:71
+msgctxt "alt. month"
+msgid "May"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:72
+msgctxt "alt. month"
+msgid "June"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:73
+msgctxt "alt. month"
+msgid "July"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:74
+msgctxt "alt. month"
+msgid "August"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:75
+#, fuzzy
+#| msgid "member"
+msgctxt "alt. month"
+msgid "September"
+msgstr "Mitglied"
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:76
+msgctxt "alt. month"
+msgid "October"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:77
+#, fuzzy
+#| msgid "member"
+msgctxt "alt. month"
+msgid "November"
+msgstr "Mitglied"
+
+#: env/lib/python3.11/site-packages/django/utils/dates.py:78
+#, fuzzy
+#| msgid "member"
+msgctxt "alt. month"
+msgid "December"
+msgstr "Mitglied"
+
+#: env/lib/python3.11/site-packages/django/utils/ipv6.py:20
+#, fuzzy
+#| msgid "This activity is not validated yet."
+msgid "This is not a valid IPv6 address."
+msgstr "Diese Veranstaltung ist noch nicht bestätigt."
+
+#: env/lib/python3.11/site-packages/django/utils/text.py:138
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/text.py:323
+msgid "or"
+msgstr ""
+
+#. Translators: This string is used as a separator between list elements
+#: env/lib/python3.11/site-packages/django/utils/text.py:342
+#: env/lib/python3.11/site-packages/django/utils/timesince.py:135
+msgid ", "
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/utils/timesince.py:8
+#, fuzzy, python-format
+#| msgid "year"
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "Jahr"
+msgstr[1] "Jahr"
+
+#: env/lib/python3.11/site-packages/django/utils/timesince.py:9
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] ""
+msgstr[1] ""
+
+#: env/lib/python3.11/site-packages/django/utils/timesince.py:10
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#: env/lib/python3.11/site-packages/django/utils/timesince.py:11
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#: env/lib/python3.11/site-packages/django/utils/timesince.py:12
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#: env/lib/python3.11/site-packages/django/utils/timesince.py:13
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: env/lib/python3.11/site-packages/django/views/csrf.py:111
+msgid "Forbidden"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/csrf.py:112
+msgid "CSRF verification failed. Request aborted."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/csrf.py:116
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/csrf.py:122
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/csrf.py:127
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/csrf.py:136
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/csrf.py:142
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/csrf.py:148
+msgid "More information is available with DEBUG=True."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/generic/dates.py:44
+#, fuzzy
+#| msgid "No reason specified"
+msgid "No year specified"
+msgstr "Kein Grund gegeben"
+
+#: env/lib/python3.11/site-packages/django/views/generic/dates.py:64
+#: env/lib/python3.11/site-packages/django/views/generic/dates.py:115
+#: env/lib/python3.11/site-packages/django/views/generic/dates.py:214
+msgid "Date out of range"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/generic/dates.py:94
+#, fuzzy
+#| msgid "No reason specified"
+msgid "No month specified"
+msgstr "Kein Grund gegeben"
+
+#: env/lib/python3.11/site-packages/django/views/generic/dates.py:147
+#, fuzzy
+#| msgid "No reason specified"
+msgid "No day specified"
+msgstr "Kein Grund gegeben"
+
+#: env/lib/python3.11/site-packages/django/views/generic/dates.py:194
+#, fuzzy
+#| msgid "No reason specified"
+msgid "No week specified"
+msgstr "Kein Grund gegeben"
+
+#: env/lib/python3.11/site-packages/django/views/generic/dates.py:349
+#: env/lib/python3.11/site-packages/django/views/generic/dates.py:380
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/generic/dates.py:652
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/generic/dates.py:692
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/generic/detail.py:56
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/generic/list.py:70
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/generic/list.py:77
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/generic/list.py:169
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/static.py:38
+msgid "Directory indexes are not allowed here."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/static.py:40
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/static.py:79
+#, python-format
+msgid "Index of %(directory)s"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:7
+#: env/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:220
+msgid "The install worked successfully! Congratulations!"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:206
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:221
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:229
+msgid "Django Documentation"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:230
+msgid "Topics, references, & how-to’s"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:238
+msgid "Tutorial: A Polling App"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:239
+msgid "Get started with Django"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:247
+msgid "Django Community"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:248
+msgid "Connect, get help, or contribute"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:69
+msgid "Confidential"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:70
+msgid "Public"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:79
+msgid "Authorization code"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:80
+msgid "Implicit"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:81
+#, fuzzy
+#| msgid "Reset my password"
+msgid "Resource owner password-based"
+msgstr "Mein Passwort zurücksetzen"
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:82
+msgid "Client credentials"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:83
+msgid "OpenID connect hybrid"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:90
+msgid "No OIDC support"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:91
+msgid "RSA with SHA-2 256"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:92
+msgid "HMAC with SHA-2 256"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:107
+msgid "Allowed URIs list, space separated"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:111
+msgid "Allowed Post Logout URIs list, space separated"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:120
+msgid "Hashed on Save. Copy it now if this is a new secret."
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:190
+#, python-brace-format
+msgid "Unauthorized redirect scheme: {scheme}"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:194
+#, python-brace-format
+msgid "redirect_uris cannot be empty with grant_type {grant_type}"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:200
+msgid "You must set OIDC_RSA_PRIVATE_KEY to use RSA algorithm"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/models.py:209
+msgid "You cannot use HS256 with public grants or clients"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/oauth2_validators.py:211
+#, fuzzy
+#| msgid "This address must be valid."
+msgid "The access token is invalid."
+msgstr "Diese Adresse muss gültig sein."
+
+#: env/lib/python3.11/site-packages/oauth2_provider/oauth2_validators.py:218
+#, fuzzy
+#| msgid "This address must be valid."
+msgid "The access token has expired."
+msgstr "Diese Adresse muss gültig sein."
+
+#: env/lib/python3.11/site-packages/oauth2_provider/oauth2_validators.py:225
+#, fuzzy
+#| msgid "This address must be valid."
+msgid "The access token is valid but does not have enough scope."
+msgstr "Diese Adresse muss gültig sein."
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_confirm_delete.html:6
+#: note_kfet/templates/oauth2_provider/application_confirm_delete.html:8
+#, fuzzy
+#| msgid ""
+#| "Are you sure you want to delete this invoice? This action can't be undone."
+msgid "Are you sure to delete the application"
+msgstr ""
+"Möchten Sie diese Rechnung wirklich löschen? Diese Aktion kann nicht "
+"rückgängig gemacht werden."
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_confirm_delete.html:12
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/authorize.html:29
+#: note_kfet/templates/oauth2_provider/application_confirm_delete.html:17
+#: note_kfet/templates/oauth2_provider/authorize.html:28
+#, fuzzy
+#| msgid "Balance"
+msgid "Cancel"
+msgstr "Kontostand"
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_detail.html:10
+#: note_kfet/templates/oauth2_provider/application_detail.html:11
+msgid "Client id"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_detail.html:15
+#: note_kfet/templates/oauth2_provider/application_detail.html:14
+msgid "Client secret"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_detail.html:20
+#: note_kfet/templates/oauth2_provider/application_detail.html:17
+#, fuzzy
+#| msgid "Credit type"
+msgid "Client type"
+msgstr "Kredittype"
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_detail.html:25
+#: note_kfet/templates/oauth2_provider/application_detail.html:20
+msgid "Authorization Grant Type"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_detail.html:30
+#: note_kfet/templates/oauth2_provider/application_detail.html:23
+msgid "Redirect Uris"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_detail.html:36
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_form.html:35
+#: note_kfet/templates/oauth2_provider/application_detail.html:37
+#: note_kfet/templates/oauth2_provider/application_form.html:23
+msgid "Go Back"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_form.html:9
+#: note_kfet/templates/oauth2_provider/application_form.html:12
+#, fuzzy
+#| msgid "Email validation"
+msgid "Edit application"
+msgstr "Email validierung"
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_form.html:37
+msgid "Save"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_list.html:6
+#: note_kfet/templates/oauth2_provider/application_list.html:7
+msgid "Your applications"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_list.html:14
+#: note_kfet/templates/oauth2_provider/application_list.html:30
+#, fuzzy
+#| msgid "location"
+msgid "New Application"
+msgstr "Ort"
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/application_registration_form.html:5
+#: note_kfet/templates/oauth2_provider/application_registration_form.html:5
+#, fuzzy
+#| msgid "Registrations"
+msgid "Register a new application"
+msgstr "Anmeldung"
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/authorize.html:8
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/authorize.html:30
+#: note_kfet/templates/oauth2_provider/authorize.html:9
+#: note_kfet/templates/oauth2_provider/authorize.html:29
+msgid "Authorize"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/authorize.html:17
+msgid "Application requires the following permissions"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/authorized-token-delete.html:6
+#: note_kfet/templates/oauth2_provider/authorized-token-delete.html:9
+#, fuzzy
+#| msgid ""
+#| "Are you sure you want to delete this invoice? This action can't be undone."
+msgid "Are you sure you want to delete this token?"
+msgstr ""
+"Möchten Sie diese Rechnung wirklich löschen? Diese Aktion kann nicht "
+"rückgängig gemacht werden."
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/authorized-tokens.html:6
+#: note_kfet/templates/oauth2_provider/authorized-tokens.html:7
+#, fuzzy
+#| msgid "Token"
+msgid "Tokens"
+msgstr "Token"
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/authorized-tokens.html:11
+msgid "revoke"
+msgstr ""
+
+#: env/lib/python3.11/site-packages/oauth2_provider/templates/oauth2_provider/authorized-tokens.html:19
+#: note_kfet/templates/oauth2_provider/authorized-tokens.html:22
+#, fuzzy
+#| msgid "There is no closed remittance yet."
+msgid "There are no authorized tokens yet."
+msgstr "Es gibt noch keine geschlossene Überweisung."
+
+#: note_kfet/settings/base.py:177
msgid "German"
msgstr "Deutsch"
-#: note_kfet/settings/base.py:174
+#: note_kfet/settings/base.py:178
msgid "English"
msgstr "English"
-#: note_kfet/settings/base.py:175
+#: note_kfet/settings/base.py:179
msgid "Spanish"
msgstr "Spanisch"
-#: note_kfet/settings/base.py:176
+#: note_kfet/settings/base.py:180
msgid "French"
msgstr "Französich"
@@ -3661,14 +5616,6 @@ msgstr ""
msgid "Reset"
msgstr "Reset"
-#: note_kfet/templates/base.html:14
-msgid "The ENS Paris-Saclay BDE note."
-msgstr "Die BDE ENS-Paris-Saclay Note."
-
-#: note_kfet/templates/base.html:72
-msgid "Food"
-msgstr ""
-
#: note_kfet/templates/base.html:84
msgid "Users"
msgstr "Users"
@@ -3677,26 +5624,26 @@ msgstr "Users"
msgid "Clubs"
msgstr "Clubs"
-#: note_kfet/templates/base.html:119
+#: note_kfet/templates/base.html:125
msgid "Admin"
msgstr "Admin"
-#: note_kfet/templates/base.html:133
+#: note_kfet/templates/base.html:139
msgid "My account"
msgstr "Mein Konto"
-#: note_kfet/templates/base.html:136
+#: note_kfet/templates/base.html:142
msgid "Log out"
msgstr "Abmelden"
-#: note_kfet/templates/base.html:144
+#: note_kfet/templates/base.html:150
#: note_kfet/templates/registration/signup.html:6
#: note_kfet/templates/registration/signup.html:11
#: note_kfet/templates/registration/signup.html:28
msgid "Sign up"
msgstr "Registrieren"
-#: note_kfet/templates/base.html:151
+#: note_kfet/templates/base.html:157
#: note_kfet/templates/registration/login.html:6
#: note_kfet/templates/registration/login.html:15
#: note_kfet/templates/registration/login.html:38
@@ -3704,13 +5651,13 @@ msgstr "Registrieren"
msgid "Log in"
msgstr "Anmelden"
-#: note_kfet/templates/base.html:165
+#: note_kfet/templates/base.html:171
msgid ""
"You are not a BDE member anymore. Please renew your membership if you want "
"to use the note."
msgstr ""
-#: note_kfet/templates/base.html:171
+#: note_kfet/templates/base.html:177
msgid ""
"Your e-mail address is not validated. Please check your mail inbox and click "
"on the validation link."
@@ -3718,7 +5665,7 @@ msgstr ""
"Ihre E-Mail-Adresse ist nicht validiert. Bitte überprüfen Sie Ihren "
"Posteingang und klicken Sie auf den Validierungslink."
-#: note_kfet/templates/base.html:177
+#: note_kfet/templates/base.html:183
msgid ""
"You declared that you opened a bank account in the Société générale. The "
"bank did not validate the creation of the account to the BDE, so the "
@@ -3727,19 +5674,19 @@ msgid ""
"creation."
msgstr ""
-#: note_kfet/templates/base.html:200
+#: note_kfet/templates/base.html:206
msgid "Contact us"
msgstr "Kontakt"
-#: note_kfet/templates/base.html:202
+#: note_kfet/templates/base.html:208
msgid "Technical Support"
msgstr ""
-#: note_kfet/templates/base.html:204
+#: note_kfet/templates/base.html:210
msgid "Charte Info (FR)"
msgstr ""
-#: note_kfet/templates/base.html:206
+#: note_kfet/templates/base.html:212
msgid "FAQ (FR)"
msgstr "FAQ (FR)"
@@ -3751,44 +5698,6 @@ msgstr "Suche nach Attributen wie Name..."
msgid "There is no results."
msgstr "Es gibt keine Ergebnisse."
-#: note_kfet/templates/oauth2_provider/application_confirm_delete.html:8
-#, fuzzy
-#| msgid ""
-#| "Are you sure you want to delete this invoice? This action can't be undone."
-msgid "Are you sure to delete the application"
-msgstr ""
-"Möchten Sie diese Rechnung wirklich löschen? Diese Aktion kann nicht "
-"rückgängig gemacht werden."
-
-#: note_kfet/templates/oauth2_provider/application_confirm_delete.html:17
-#: note_kfet/templates/oauth2_provider/authorize.html:28
-#, fuzzy
-#| msgid "Balance"
-msgid "Cancel"
-msgstr "Kontostand"
-
-#: note_kfet/templates/oauth2_provider/application_detail.html:11
-msgid "Client id"
-msgstr ""
-
-#: note_kfet/templates/oauth2_provider/application_detail.html:14
-msgid "Client secret"
-msgstr ""
-
-#: note_kfet/templates/oauth2_provider/application_detail.html:17
-#, fuzzy
-#| msgid "Credit type"
-msgid "Client type"
-msgstr "Kredittype"
-
-#: note_kfet/templates/oauth2_provider/application_detail.html:20
-msgid "Authorization Grant Type"
-msgstr ""
-
-#: note_kfet/templates/oauth2_provider/application_detail.html:23
-msgid "Redirect Uris"
-msgstr ""
-
#: note_kfet/templates/oauth2_provider/application_detail.html:29
#, python-format
msgid ""
@@ -3797,48 +5706,16 @@ msgid ""
"that you want to grant for your application."
msgstr ""
-#: note_kfet/templates/oauth2_provider/application_detail.html:37
-#: note_kfet/templates/oauth2_provider/application_form.html:23
-msgid "Go Back"
-msgstr ""
-
-#: note_kfet/templates/oauth2_provider/application_form.html:12
-#, fuzzy
-#| msgid "Email validation"
-msgid "Edit application"
-msgstr "Email validierung"
-
-#: note_kfet/templates/oauth2_provider/application_list.html:7
-msgid "Your applications"
-msgstr ""
-
#: note_kfet/templates/oauth2_provider/application_list.html:11
msgid ""
"You can find on this page the list of the applications that you already "
"registered."
msgstr ""
-#: note_kfet/templates/oauth2_provider/application_list.html:30
-#, fuzzy
-#| msgid "location"
-msgid "New Application"
-msgstr "Ort"
-
#: note_kfet/templates/oauth2_provider/application_list.html:31
msgid "Authorized Tokens"
msgstr ""
-#: note_kfet/templates/oauth2_provider/application_registration_form.html:5
-#, fuzzy
-#| msgid "Registrations"
-msgid "Register a new application"
-msgstr "Anmeldung"
-
-#: note_kfet/templates/oauth2_provider/authorize.html:9
-#: note_kfet/templates/oauth2_provider/authorize.html:29
-msgid "Authorize"
-msgstr ""
-
#: note_kfet/templates/oauth2_provider/authorize.html:14
msgid "Application requires following permissions:"
msgstr ""
@@ -3856,27 +5733,6 @@ msgstr ""
msgid "Please return to your application and enter this code:"
msgstr ""
-#: note_kfet/templates/oauth2_provider/authorized-token-delete.html:9
-#, fuzzy
-#| msgid ""
-#| "Are you sure you want to delete this invoice? This action can't be undone."
-msgid "Are you sure you want to delete this token?"
-msgstr ""
-"Möchten Sie diese Rechnung wirklich löschen? Diese Aktion kann nicht "
-"rückgängig gemacht werden."
-
-#: note_kfet/templates/oauth2_provider/authorized-tokens.html:7
-#, fuzzy
-#| msgid "Token"
-msgid "Tokens"
-msgstr "Token"
-
-#: note_kfet/templates/oauth2_provider/authorized-tokens.html:22
-#, fuzzy
-#| msgid "There is no closed remittance yet."
-msgid "There are no authorized tokens yet."
-msgstr "Es gibt noch keine geschlossene Überweisung."
-
#: note_kfet/templates/registration/logged_out.html:13
msgid "Thanks for spending some quality time with the Web site today."
msgstr ""
@@ -3990,293 +5846,76 @@ msgstr ""
"müssen Ihre E-Mail-Adresse auch überprüfen, indem Sie dem Link folgen, den "
"Sie erhalten haben."
+#~ msgid "The BDE membership is included in the WEI registration."
+#~ msgstr "Die BDE-Mitgliedschaft ist in der WEI-Registrierung enthalten."
+
+#, python-format
+#~ msgid ""
+#~ "The note don't have enough money (%(balance)s, %(pretty_fee)s required). "
+#~ "The registration may fail if you don't credit the note now."
+#~ msgstr ""
+#~ "Die Note hat nicht genug Geld (%(balance)s,%(pretty_fee)s erforderlich). "
+#~ "Die Registrierung kann fehlschlagen, wenn Sie die Note jetzt nicht "
+#~ "gutschreiben."
+
+#, python-format
+#~ msgid ""
+#~ "The note has enough money (%(pretty_fee)s required), the registration is "
+#~ "possible."
+#~ msgstr ""
+#~ "Die Note hat genug Geld (%(pretty_fee)s erforderlich), die Registrierung "
+#~ "ist möglich."
+
+#, fuzzy
+#~| msgid "You don't have the right to delete this WEI registration."
+#~ msgid "You don't have the permission to validate registrations"
+#~ msgstr "Sie haben nicht das Recht, diese WEI-Registrierung zu löschen."
+
+#, fuzzy
+#~| msgid "active"
+#~ msgid "is active"
+#~ msgstr "Aktiv"
+
+#, fuzzy
+#~| msgid "start date"
+#~ msgid "Arrival date"
+#~ msgstr "Anfangsdatum"
+
+#, fuzzy
+#~| msgid "active"
+#~ msgid "Active"
+#~ msgstr "Aktiv"
+
+#, fuzzy
+#~| msgid "phone number"
+#~ msgid "number"
+#~ msgstr "Telefonnummer"
+
+#, fuzzy
+#~| msgid "Profile detail"
+#~ msgid "View details"
+#~ msgstr "Profile detail"
+
+#, fuzzy
+#~| msgid "There is no results."
+#~ msgid "There is no meal."
+#~ msgstr "Es gibt keine Ergebnisse."
+
+#, fuzzy
+#~| msgid "This credit is already validated."
+#~ msgid "The product is already prepared"
+#~ msgstr "Dieser Kredit ist bereits validiert."
+
+#, fuzzy
+#~| msgid "Update team"
+#~ msgid "Update a meal"
+#~ msgstr "Team bearbeiten"
+
#, fuzzy
#~| msgid "Email validation"
#~ msgid "Enter a valid color."
#~ msgstr "Email validierung"
-#, fuzzy
-#~| msgid "Email validation"
-#~ msgid "Enter a valid value."
-#~ msgstr "Email validierung"
-
-#, fuzzy
-#~| msgid "Invitation"
-#~ msgid "Syndication"
-#~ msgstr "Einladung"
-
-#, fuzzy
-#~| msgid "There is no results."
-#~ msgid "That page contains no results"
-#~ msgstr "Es gibt keine Ergebnisse."
-
-#, fuzzy
-#~| msgid "Email validation"
-#~ msgid "Enter a valid URL."
-#~ msgstr "Email validierung"
-
-#, fuzzy
-#~| msgid "Email validation"
-#~ msgid "Enter a valid integer."
-#~ msgstr "Email validierung"
-
-#, fuzzy
-#~| msgid "Email validation"
-#~ msgid "Enter a valid email address."
-#~ msgstr "Email validierung"
-
-#, fuzzy
-#~| msgid "This activity is not validated yet."
-#~ msgid "Enter a valid IPv4 address."
-#~ msgstr "Diese Veranstaltung ist noch nicht bestätigt."
-
-#, fuzzy
-#~| msgid "This activity is not validated yet."
-#~ msgid "Enter a valid IPv6 address."
-#~ msgstr "Diese Veranstaltung ist noch nicht bestätigt."
-
-#, fuzzy
-#~| msgid "This activity is not validated yet."
-#~ msgid "Enter a valid IPv4 or IPv6 address."
-#~ msgstr "Diese Veranstaltung ist noch nicht bestätigt."
-
-#, fuzzy
-#~| msgid "phone number"
-#~ msgid "Enter a number."
-#~ msgstr "Telefonnummer"
-
-#, fuzzy
-#~| msgid "add"
-#~ msgid "and"
-#~ msgstr "hinzufügen"
-
-#, fuzzy, python-format
-#~| msgid "A template with this name already exist"
-#~ msgid "%(model_name)s with this %(field_labels)s already exists."
-#~ msgstr "Eine Vorlage mit diesem Namen ist bereits vorhanden"
-
-#, fuzzy
-#~| msgid "This image cannot be loaded."
-#~ msgid "This field cannot be null."
-#~ msgstr "Dieses Bild kann nicht geladen werden."
-
-#, fuzzy
-#~| msgid "This image cannot be loaded."
-#~ msgid "This field cannot be blank."
-#~ msgstr "Dieses Bild kann nicht geladen werden."
-
-#, fuzzy, python-format
-#~| msgid "A template with this name already exist"
-#~ msgid "%(model_name)s with this %(field_label)s already exists."
-#~ msgstr "Eine Vorlage mit diesem Namen ist bereits vorhanden"
-
-#, fuzzy
-#~| msgid "phone number"
-#~ msgid "Decimal number"
-#~ msgstr "Telefonnummer"
-
-#, fuzzy
-#~| msgid "action"
-#~ msgid "Duration"
-#~ msgstr "Aktion"
-
-#, fuzzy
-#~| msgid "address"
-#~ msgid "Email address"
-#~ msgstr "Adresse"
-
-#, fuzzy
-#~| msgid "phone number"
-#~ msgid "Floating point number"
-#~ msgstr "Telefonnummer"
-
-#, fuzzy
-#~| msgid "IP Address"
-#~ msgid "IPv4 address"
-#~ msgstr "IP Adresse"
-
-#, fuzzy
-#~| msgid "IP Address"
-#~ msgid "IP address"
-#~ msgstr "IP Adresse"
-
-#, fuzzy
-#~| msgid "Invoice identifier"
-#~ msgid "Universally unique identifier"
-#~ msgstr "Rechnungskennung"
-
-#, fuzzy, python-format
-#~| msgid "A template with this name already exist"
-#~ msgid "%(model)s instance with %(field)s %(value)r does not exist."
-#~ msgstr "Eine Vorlage mit diesem Namen ist bereits vorhanden"
-
-#, fuzzy
-#~| msgid "phone number"
-#~ msgid "Enter a whole number."
-#~ msgstr "Telefonnummer"
-
-#, fuzzy
-#~| msgid "Email validation"
-#~ msgid "Enter a valid date."
-#~ msgstr "Email validierung"
-
-#, fuzzy
-#~| msgid "Email validation"
-#~ msgid "Enter a valid time."
-#~ msgstr "Email validierung"
-
-#, fuzzy
-#~| msgid "Email validation"
-#~ msgid "Enter a valid date/time."
-#~ msgstr "Email validierung"
-
-#, fuzzy
-#~| msgid "Email validation"
-#~ msgid "Enter a valid duration."
-#~ msgstr "Email validierung"
-
-#, fuzzy
-#~| msgid "phone number"
-#~ msgid "Enter a complete value."
-#~ msgstr "Telefonnummer"
-
-#, fuzzy
-#~| msgid "Email validation"
-#~ msgid "Enter a valid UUID."
-#~ msgstr "Email validierung"
-
-#, fuzzy, python-format
-#~| msgid "This activity is not validated yet."
-#~ msgid "\"%(pk)s\" is not a valid value."
-#~ msgstr "Diese Veranstaltung ist noch nicht bestätigt."
-
-#, fuzzy
-#~| msgid "Current activity"
-#~ msgid "Currently"
-#~ msgstr "Aktuelle Veranstaltung"
-
-#, fuzzy
-#~| msgid "change"
-#~ msgid "Change"
-#~ msgstr "bearbeiten"
-
-#, fuzzy
-#~| msgid "Search WEI"
-#~ msgid "March"
-#~ msgstr "WEI finden"
-
-#, fuzzy
-#~| msgid "member"
-#~ msgid "September"
-#~ msgstr "Mitglied"
-
-#, fuzzy
-#~| msgid "member"
-#~ msgid "November"
-#~ msgstr "Mitglied"
-
-#, fuzzy
-#~| msgid "member"
-#~ msgid "December"
-#~ msgstr "Mitglied"
-
-#, fuzzy
-#~| msgid "add"
-#~ msgid "jan"
-#~ msgstr "hinzufügen"
-
-#, fuzzy
-#~| msgid "fee"
-#~ msgid "feb"
-#~ msgstr "Preis"
-
-#, fuzzy
-#~| msgid "product"
-#~ msgid "oct"
-#~ msgstr "Produkt"
-
-#, fuzzy
-#~| msgid "Search WEI"
-#~ msgctxt "abbrev. month"
-#~ msgid "March"
-#~ msgstr "WEI finden"
-
-#, fuzzy
-#~| msgid "Search WEI"
-#~ msgctxt "alt. month"
-#~ msgid "March"
-#~ msgstr "WEI finden"
-
-#, fuzzy
-#~| msgid "member"
-#~ msgctxt "alt. month"
-#~ msgid "September"
-#~ msgstr "Mitglied"
-
-#, fuzzy
-#~| msgid "member"
-#~ msgctxt "alt. month"
-#~ msgid "November"
-#~ msgstr "Mitglied"
-
-#, fuzzy
-#~| msgid "member"
-#~ msgctxt "alt. month"
-#~ msgid "December"
-#~ msgstr "Mitglied"
-
-#, fuzzy
-#~| msgid "This activity is not validated yet."
-#~ msgid "This is not a valid IPv6 address."
-#~ msgstr "Diese Veranstaltung ist noch nicht bestätigt."
-
-#, fuzzy, python-format
-#~| msgid "year"
-#~ msgid "%d year"
-#~ msgid_plural "%d years"
-#~ msgstr[0] "Jahr"
-#~ msgstr[1] "Jahr"
-
-#, fuzzy
-#~| msgid "No reason specified"
-#~ msgid "No year specified"
-#~ msgstr "Kein Grund gegeben"
-
-#, fuzzy
-#~| msgid "No reason specified"
-#~ msgid "No month specified"
-#~ msgstr "Kein Grund gegeben"
-
-#, fuzzy
-#~| msgid "No reason specified"
-#~ msgid "No day specified"
-#~ msgstr "Kein Grund gegeben"
-
-#, fuzzy
-#~| msgid "No reason specified"
-#~ msgid "No week specified"
-#~ msgstr "Kein Grund gegeben"
-
-#, fuzzy
-#~| msgid "Reset my password"
-#~ msgid "Resource owner password-based"
-#~ msgstr "Mein Passwort zurücksetzen"
-
-#, fuzzy
-#~| msgid "This address must be valid."
-#~ msgid "The access token is invalid."
-#~ msgstr "Diese Adresse muss gültig sein."
-
-#, fuzzy
-#~| msgid "This address must be valid."
-#~ msgid "The access token has expired."
-#~ msgstr "Diese Adresse muss gültig sein."
-
-#, fuzzy
-#~| msgid "This address must be valid."
-#~ msgid "The access token is valid but does not have enough scope."
-#~ msgstr "Diese Adresse muss gültig sein."
-
#, fuzzy
#~| msgid "WEI registration"
#~ msgid "In preparation"
diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po
index 6dcf73a1..3baa260d 100644
--- a/locale/es/LC_MESSAGES/django.po
+++ b/locale/es/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-17 11:57+0200\n"
+"POT-Creation-Date: 2025-06-20 14:02+0200\n"
"PO-Revision-Date: 2022-04-11 23:12+0200\n"
"Last-Translator: bleizi \n"
"Language-Team: \n"
@@ -18,50 +18,56 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0.1\n"
+#: apps/activity/api/serializers.py:77
+#, fuzzy
+#| msgid "This credit is already validated."
+msgid "This opener already exists"
+msgstr "Este crédito ya fue validado."
+
#: apps/activity/apps.py:10 apps/activity/models.py:129
-#: apps/activity/models.py:169
+#: apps/activity/models.py:169 apps/activity/models.py:329
msgid "activity"
msgstr "actividad"
-#: apps/activity/forms.py:34
+#: apps/activity/forms.py:35
msgid "The note of this club is inactive."
msgstr "La note del club está inactiva."
-#: apps/activity/forms.py:41 apps/activity/models.py:142
+#: apps/activity/forms.py:42 apps/activity/models.py:142
msgid "The end date must be after the start date."
msgstr "La fecha final tiene que ser después de la fecha de inicio."
-#: apps/activity/forms.py:82 apps/activity/models.py:271
+#: apps/activity/forms.py:83 apps/activity/models.py:277
msgid "You can't invite someone once the activity is started."
msgstr "No se puede invitar a alguien una vez que arrancó la actividad."
-#: apps/activity/forms.py:85 apps/activity/models.py:274
+#: apps/activity/forms.py:86 apps/activity/models.py:280
msgid "This activity is not validated yet."
msgstr "Esta actividad no fue validada por ahora."
-#: apps/activity/forms.py:95 apps/activity/models.py:282
+#: apps/activity/forms.py:96 apps/activity/models.py:288
msgid "This person has been already invited 5 times this year."
msgstr "Esta persona ya fue invitada 5 veces este año."
-#: apps/activity/forms.py:99 apps/activity/models.py:286
+#: apps/activity/forms.py:100 apps/activity/models.py:292
msgid "This person is already invited."
msgstr "Esta persona ya está invitada."
-#: apps/activity/forms.py:103 apps/activity/models.py:290
+#: apps/activity/forms.py:104 apps/activity/models.py:296
msgid "You can't invite more than 3 people to this activity."
msgstr "Usted no puede invitar más de 3 persona a esta actividad."
-#: apps/activity/models.py:28 apps/activity/models.py:63 apps/food/models.py:42
-#: apps/food/models.py:56 apps/member/models.py:203
+#: apps/activity/models.py:28 apps/activity/models.py:63 apps/food/models.py:18
+#: apps/food/models.py:35 apps/member/models.py:203
#: apps/member/templates/member/includes/club_info.html:4
#: apps/member/templates/member/includes/profile_info.html:4
#: apps/note/models/notes.py:263 apps/note/models/transactions.py:26
#: apps/note/models/transactions.py:46 apps/note/models/transactions.py:299
#: apps/permission/models.py:329
#: apps/registration/templates/registration/future_profile_detail.html:16
-#: apps/wei/models.py:67 apps/wei/models.py:131 apps/wei/tables.py:282
+#: apps/wei/models.py:72 apps/wei/models.py:145 apps/wei/tables.py:282
#: apps/wei/templates/wei/base.html:26
-#: apps/wei/templates/wei/weimembership_form.html:14
+#: apps/wei/templates/wei/weimembership_form.html:14 apps/wrapped/models.py:16
msgid "name"
msgstr "nombre"
@@ -94,7 +100,7 @@ msgstr "tipos de actividad"
#: apps/activity/models.py:68
#: apps/activity/templates/activity/includes/activity_info.html:19
#: apps/note/models/transactions.py:82 apps/permission/models.py:109
-#: apps/permission/models.py:188 apps/wei/models.py:78 apps/wei/models.py:142
+#: apps/permission/models.py:188 apps/wei/models.py:92 apps/wei/models.py:156
msgid "description"
msgstr "descripción"
@@ -113,9 +119,9 @@ msgstr "Lugar donde se organiza la actividad, por ejemplo la Kfet."
msgid "type"
msgstr "tipo"
-#: apps/activity/models.py:91 apps/logs/models.py:22 apps/member/models.py:318
-#: apps/note/models/notes.py:148 apps/treasury/models.py:293
-#: apps/wei/models.py:171 apps/wei/templates/wei/attribute_bus_1A.html:13
+#: apps/activity/models.py:91 apps/logs/models.py:22 apps/member/models.py:325
+#: apps/note/models/notes.py:148 apps/treasury/models.py:294
+#: apps/wei/models.py:185 apps/wei/templates/wei/attribute_bus_1A.html:13
#: apps/wei/templates/wei/survey.html:15
msgid "user"
msgstr "usuario"
@@ -170,7 +176,7 @@ msgid "entry time"
msgstr "hora de entrada"
#: apps/activity/models.py:180 apps/note/apps.py:14
-#: apps/note/models/notes.py:77
+#: apps/note/models/notes.py:77 apps/wrapped/models.py:60
msgid "note"
msgstr "note"
@@ -198,21 +204,21 @@ msgstr "Entrada para {note} en la actividad {activity}"
msgid "Already entered on "
msgstr "Entrado ya el "
-#: apps/activity/models.py:204 apps/activity/tables.py:56
+#: apps/activity/models.py:205 apps/activity/tables.py:58
msgid "{:%Y-%m-%d %H:%M:%S}"
msgstr "{:%d/%m/%Y %H:%M:%S}"
-#: apps/activity/models.py:212
+#: apps/activity/models.py:213
msgid "The balance is negative."
msgstr "El saldo es negativo."
-#: apps/activity/models.py:242
+#: apps/activity/models.py:243
#: apps/treasury/templates/treasury/sogecredit_detail.html:14
#: apps/wei/templates/wei/attribute_bus_1A.html:16
msgid "last name"
msgstr "apellido"
-#: apps/activity/models.py:247
+#: apps/activity/models.py:248
#: apps/member/templates/member/includes/profile_info.html:4
#: apps/registration/templates/registration/future_profile_detail.html:16
#: apps/treasury/templates/treasury/sogecredit_detail.html:17
@@ -221,77 +227,135 @@ msgstr "apellido"
msgid "first name"
msgstr "nombre"
-#: apps/activity/models.py:254
+#: apps/activity/models.py:253
+msgid "school"
+msgstr ""
+
+#: apps/activity/models.py:260
msgid "inviter"
msgstr "huésped"
-#: apps/activity/models.py:258
+#: apps/activity/models.py:264
msgid "guest"
msgstr "invitado"
-#: apps/activity/models.py:259
+#: apps/activity/models.py:265
msgid "guests"
msgstr "invitados"
-#: apps/activity/models.py:312
+#: apps/activity/models.py:318
msgid "Invitation"
msgstr "Invitación"
-#: apps/activity/tables.py:27
+#: apps/activity/models.py:336 apps/activity/models.py:340
+#, fuzzy
+#| msgid "opened"
+msgid "Opener"
+msgstr "abierto"
+
+#: apps/activity/models.py:341
+#: apps/activity/templates/activity/activity_detail.html:16
+#, fuzzy
+#| msgid "opened"
+msgid "Openers"
+msgstr "abierto"
+
+#: apps/activity/models.py:345
+#, fuzzy, python-brace-format
+#| msgid "Entry for {note} to the activity {activity}"
+msgid "{opener} is opener of activity {acivity}"
+msgstr "Entrada para {note} en la actividad {activity}"
+
+#: apps/activity/tables.py:29
msgid "The activity is currently open."
msgstr "La actividad está actualmente abierta."
-#: apps/activity/tables.py:28
+#: apps/activity/tables.py:30
msgid "The validation of the activity is pending."
msgstr "La validación de esta actividad es pendiente."
-#: apps/activity/tables.py:43
+#: apps/activity/tables.py:45
#: apps/member/templates/member/picture_update.html:18
-#: apps/treasury/tables.py:107
+#: apps/treasury/tables.py:110
msgid "Remove"
msgstr "Quitar"
-#: apps/activity/tables.py:56
+#: apps/activity/tables.py:58
msgid "Entered on "
msgstr "Entrado el "
-#: apps/activity/tables.py:58
+#: apps/activity/tables.py:60
msgid "remove"
msgstr "quitar"
-#: apps/activity/tables.py:82 apps/note/forms.py:68 apps/treasury/models.py:208
+#: apps/activity/tables.py:84 apps/note/forms.py:69 apps/treasury/models.py:209
msgid "Type"
msgstr "Tipo"
-#: apps/activity/tables.py:84 apps/member/forms.py:196
+#: apps/activity/tables.py:86 apps/member/forms.py:199
#: apps/registration/forms.py:91 apps/treasury/forms.py:131
-#: apps/wei/forms/registration.py:104
+#: apps/wei/forms/registration.py:129
msgid "Last name"
msgstr "Apellido"
-#: apps/activity/tables.py:86 apps/member/forms.py:201
+#: apps/activity/tables.py:88 apps/member/forms.py:204
#: apps/note/templates/note/transaction_form.html:138
#: apps/registration/forms.py:96 apps/treasury/forms.py:133
-#: apps/wei/forms/registration.py:109
+#: apps/wei/forms/registration.py:134
msgid "First name"
msgstr "Nombre"
-#: apps/activity/tables.py:88 apps/note/models/notes.py:86
+#: apps/activity/tables.py:90 apps/note/models/notes.py:86
msgid "Note"
msgstr "Note"
-#: apps/activity/tables.py:90 apps/member/tables.py:50
+#: apps/activity/tables.py:92 apps/member/tables.py:50
msgid "Balance"
msgstr "Saldo de la cuenta"
-#: apps/activity/templates/activity/activity_detail.html:15
+#: apps/activity/tables.py:141 apps/activity/tables.py:148
+#: apps/note/tables.py:166 apps/note/tables.py:173 apps/note/tables.py:234
+#: apps/note/tables.py:281 apps/treasury/tables.py:39
+#: apps/treasury/templates/treasury/invoice_confirm_delete.html:30
+#: apps/treasury/templates/treasury/sogecredit_detail.html:65
+#: apps/wei/tables.py:75 apps/wei/tables.py:118
+#: apps/wei/templates/wei/weiregistration_confirm_delete.html:31
+#: note_kfet/templates/oauth2_provider/application_confirm_delete.html:18
+#: note_kfet/templates/oauth2_provider/application_detail.html:39
+#: note_kfet/templates/oauth2_provider/authorized-token-delete.html:12
+msgid "Delete"
+msgstr "Suprimir"
+
+#: apps/activity/templates/activity/activity_detail.html:24
+#: apps/member/templates/member/club_alias.html:20
+#: apps/member/templates/member/profile_alias.html:19
+#: apps/member/templates/member/profile_trust.html:19
+#: apps/treasury/tables.py:101
+#: apps/treasury/templates/treasury/sogecredit_list.html:34
+#: apps/treasury/templates/treasury/sogecredit_list.html:73
+msgid "Add"
+msgstr "Añadir"
+
+#: apps/activity/templates/activity/activity_detail.html:35
msgid "Guests list"
msgstr "Lista de los invitados"
-#: apps/activity/templates/activity/activity_detail.html:33
+#: apps/activity/templates/activity/activity_detail.html:55
msgid "Guest deleted"
msgstr "Invitados suprimidos"
+#: apps/activity/templates/activity/activity_detail.html:99
+#, fuzzy
+#| msgid "Are you sure you want to delete this token?"
+msgid "Are you sure you want to delete this activity?"
+msgstr "¿ Usted está seguro de querer suprimir este token ?"
+
+#: apps/activity/templates/activity/activity_detail.html:110
+#, fuzzy
+#| msgid "Activity detail"
+msgid "Activity deleted"
+msgstr "Detalles de la actividad"
+
#: apps/activity/templates/activity/activity_entry.html:14
#: apps/note/models/transactions.py:261
#: apps/note/templates/note/transaction_form.html:17
@@ -331,17 +395,17 @@ msgid "Entry done!"
msgstr "Entrada echa !"
#: apps/activity/templates/activity/activity_form.html:16
-#: apps/food/templates/food/add_ingredient_form.html:16
-#: apps/food/templates/food/basicfood_form.html:16
-#: apps/food/templates/food/create_qrcode_form.html:19
-#: apps/food/templates/food/transformedfood_form.html:16
+#: apps/food/templates/food/food_update.html:17
+#: apps/food/templates/food/manage_ingredients.html:48
+#: apps/food/templates/food/qrcode.html:18
+#: apps/food/templates/food/transformedfood_update.html:45
#: apps/member/templates/member/add_members.html:46
#: apps/member/templates/member/club_form.html:16
#: apps/note/templates/note/transactiontemplate_form.html:18
#: apps/treasury/forms.py:89 apps/treasury/forms.py:143
#: apps/treasury/templates/treasury/invoice_form.html:74
#: apps/wei/templates/wei/bus_form.html:17
-#: apps/wei/templates/wei/busteam_form.html:17
+#: apps/wei/templates/wei/busteam_form.html:18
#: apps/wei/templates/wei/weiclub_form.html:17
#: apps/wei/templates/wei/weiregistration_form.html:18
msgid "Submit"
@@ -397,44 +461,66 @@ msgid "edit"
msgstr "modificar"
#: apps/activity/templates/activity/includes/activity_info.html:74
+#: apps/logs/models.py:65 apps/note/tables.py:230 apps/note/tables.py:279
+#: apps/permission/models.py:126 apps/treasury/tables.py:38
+#: apps/wei/tables.py:74
+msgid "delete"
+msgstr "suprimir"
+
+#: apps/activity/templates/activity/includes/activity_info.html:77
msgid "Invite"
msgstr "Invitar"
-#: apps/activity/views.py:37
+#: apps/activity/views.py:38
msgid "Create new activity"
msgstr "Crear una nueva actividad"
-#: apps/activity/views.py:67 note_kfet/templates/base.html:96
+#: apps/activity/views.py:71 note_kfet/templates/base.html:96
msgid "Activities"
msgstr "Actividades"
-#: apps/activity/views.py:108
+#: apps/activity/views.py:105
msgid "Activity detail"
msgstr "Detalles de la actividad"
-#: apps/activity/views.py:128
+#: apps/activity/views.py:150
msgid "Update activity"
msgstr "Modificar la actividad"
-#: apps/activity/views.py:155
+#: apps/activity/views.py:177
+#, fuzzy
+#| msgid ""
+#| "You are not allowed to display the entry interface for this activity."
+msgid "You are not allowed to delete this activity."
+msgstr ""
+"Usted no tiene derecho a mostrar la interfaz de las entradas para esta "
+"actividad."
+
+#: apps/activity/views.py:180
+#, fuzzy
+#| msgid "This activity is closed."
+msgid "This activity is valid."
+msgstr "Esta actividad esta cerrada."
+
+#: apps/activity/views.py:206
msgid "Invite guest to the activity \"{}\""
msgstr "Invitar alguien para la actividad \"{}\""
-#: apps/activity/views.py:193
+#: apps/activity/views.py:246
msgid "You are not allowed to display the entry interface for this activity."
msgstr ""
"Usted no tiene derecho a mostrar la interfaz de las entradas para esta "
"actividad."
-#: apps/activity/views.py:196
+#: apps/activity/views.py:249
msgid "This activity does not support activity entries."
msgstr "Esta actividad no necesita entradas."
-#: apps/activity/views.py:199
+#: apps/activity/views.py:252
msgid "This activity is closed."
msgstr "Esta actividad esta cerrada."
-#: apps/activity/views.py:295
+#: apps/activity/views.py:357
msgid "Entry for activity \"{}\""
msgstr "Entradas para la actividad \"{}\""
@@ -442,297 +528,363 @@ msgstr "Entradas para la actividad \"{}\""
msgid "API"
msgstr "API"
-#: apps/food/apps.py:11 apps/food/models.py:105
+#: apps/food/apps.py:11
msgid "food"
msgstr ""
-#: apps/food/forms.py:32
-msgid "Fully used"
-msgstr ""
-
-#: apps/food/forms.py:50
+#: apps/food/forms.py:49
msgid "Pasta METRO 5kg"
msgstr ""
-#: apps/food/forms.py:96
+#: apps/food/forms.py:53 apps/food/forms.py:81
+msgid "Specific order given to GCKs"
+msgstr ""
+
+#: apps/food/forms.py:77
msgid "Lasagna"
msgstr ""
-#: apps/food/models.py:18
+#: apps/food/forms.py:116
+msgid "Shelf life (in hours)"
+msgstr ""
+
+#: apps/food/forms.py:138 apps/food/forms.py:162
+#: apps/food/templates/food/transformedfood_update.html:25
+msgid "Fully used"
+msgstr ""
+
+#: apps/food/forms.py:171 apps/food/templates/food/qrcode.html:29
+#: apps/food/templates/food/transformedfood_update.html:23
+#: apps/note/templates/note/transaction_form.html:132
+#: apps/treasury/models.py:61
+msgid "Name"
+msgstr "Nombre"
+
+#: apps/food/forms.py:181
#, fuzzy
#| msgid "phone number"
-msgid "QR-code number"
+msgid "QR code number"
msgstr "número de teléfono"
-#: apps/food/models.py:26
-msgid "food container"
-msgstr ""
-
-#: apps/food/models.py:30
-msgid "QR-code"
-msgstr ""
-
-#: apps/food/models.py:31
-msgid "QR-codes"
-msgstr ""
-
-#: apps/food/models.py:34
-#, python-brace-format
-msgid "QR-code number {qr_code_number}"
-msgstr ""
-
-#: apps/food/models.py:47
+#: apps/food/models.py:23
msgid "Allergen"
msgstr ""
-#: apps/food/models.py:48 apps/food/templates/food/basicfood_detail.html:17
-#: apps/food/templates/food/transformedfood_detail.html:20
+#: apps/food/models.py:24
msgid "Allergens"
msgstr ""
-#: apps/food/models.py:64
+#: apps/food/models.py:43
msgid "owner"
msgstr ""
-#: apps/food/models.py:70
-msgid "allergen"
+#: apps/food/models.py:49
+msgid "allergens"
msgstr ""
-#: apps/food/models.py:74
+#: apps/food/models.py:53
#, fuzzy
#| msgid "birth date"
msgid "expiry date"
msgstr "fecha de nacimiento"
-#: apps/food/models.py:80
-msgid "was eaten"
+#: apps/food/models.py:59
+msgid "end of life"
msgstr ""
-#: apps/food/models.py:89
+#: apps/food/models.py:64
msgid "is ready"
msgstr ""
-#: apps/food/models.py:94
-#, fuzzy
-#| msgid "active"
-msgid "is active"
-msgstr "activo"
-
-#: apps/food/models.py:106
-msgid "foods"
+#: apps/food/models.py:70
+msgid "order"
msgstr ""
-#: apps/food/models.py:122
+#: apps/food/models.py:107 apps/food/views.py:34
+#: note_kfet/templates/base.html:72
+msgid "Food"
+msgstr ""
+
+#: apps/food/models.py:108
+msgid "Foods"
+msgstr ""
+
+#: apps/food/models.py:117
#, fuzzy
#| msgid "invalidate"
msgid "arrival date"
msgstr "invalidar"
-#: apps/food/models.py:152
+#: apps/food/models.py:169
msgid "Basic food"
msgstr ""
-#: apps/food/models.py:153
+#: apps/food/models.py:170
msgid "Basic foods"
msgstr ""
-#: apps/food/models.py:161
+#: apps/food/models.py:182
#, fuzzy
#| msgid "created at"
msgid "creation date"
msgstr "creada el"
-#: apps/food/models.py:169
-msgid "transformed ingredient"
-msgstr ""
-
-#: apps/food/models.py:174
+#: apps/food/models.py:188
msgid "shelf life"
msgstr ""
-#: apps/food/models.py:225 apps/food/views.py:365
+#: apps/food/models.py:196
+msgid "transformed ingredient"
+msgstr ""
+
+#: apps/food/models.py:258
#, fuzzy
#| msgid "Transfer money"
msgid "Transformed food"
msgstr "Transferir dinero"
-#: apps/food/models.py:226
+#: apps/food/models.py:259
msgid "Transformed foods"
msgstr ""
-#: apps/food/templates/food/basicfood_detail.html:14
-#: apps/food/templates/food/qrcode_detail.html:15
-#: apps/food/templates/food/transformedfood_detail.html:14
+#: apps/food/models.py:271
#, fuzzy
-#| msgid "Owned"
-msgid "Owner"
-msgstr "Tenido"
+#| msgid "phone number"
+msgid "qr code number"
+msgstr "número de teléfono"
-#: apps/food/templates/food/basicfood_detail.html:15
-#, fuzzy
-#| msgid "invalidate"
-msgid "Arrival date"
-msgstr "invalidar"
-
-#: apps/food/templates/food/basicfood_detail.html:16
-#: apps/food/templates/food/qrcode_detail.html:16
-#: apps/food/templates/food/transformedfood_detail.html:19
-#, fuzzy
-#| msgid "birth date"
-msgid "Expiry date"
-msgstr "fecha de nacimiento"
-
-#: apps/food/templates/food/basicfood_detail.html:24
-#: apps/food/templates/food/transformedfood_detail.html:36
-#, fuzzy
-#| msgid "active"
-msgid "Active"
-msgstr "activo"
-
-#: apps/food/templates/food/basicfood_detail.html:25
-#: apps/food/templates/food/transformedfood_detail.html:37
-msgid "Eaten"
+#: apps/food/models.py:278
+msgid "food container"
msgstr ""
-#: apps/food/templates/food/basicfood_detail.html:28
-#: apps/food/templates/food/qrcode_detail.html:20
-#: apps/food/templates/food/qrcode_detail.html:24
-#: apps/food/templates/food/transformedfood_detail.html:41
+#: apps/food/models.py:282
+msgid "QR-code"
+msgstr ""
+
+#: apps/food/models.py:283
+msgid "QR-codes"
+msgstr ""
+
+#: apps/food/models.py:286
+#: apps/food/templates/food/transformedfood_update.html:24
+#, fuzzy
+#| msgid "phone number"
+msgid "QR-code number"
+msgstr "número de teléfono"
+
+#: apps/food/templates/food/food_detail.html:19
+msgid "Contained in"
+msgstr ""
+
+#: apps/food/templates/food/food_detail.html:26
+msgid "Contain"
+msgstr ""
+
+#: apps/food/templates/food/food_detail.html:35
#, fuzzy
#| msgid "Update bus"
msgid "Update"
msgstr "Modificar el bus"
-#: apps/food/templates/food/basicfood_detail.html:32
-#: apps/food/templates/food/qrcode_detail.html:34
-#: apps/food/templates/food/transformedfood_detail.html:46
+#: apps/food/templates/food/food_detail.html:40
#, fuzzy
#| msgid "Add team"
msgid "Add to a meal"
msgstr "Añadir un equipo"
-#: apps/food/templates/food/create_qrcode_form.html:14
+#: apps/food/templates/food/food_detail.html:45
#, fuzzy
-#| msgid "Transfer money"
-msgid "New basic food"
-msgstr "Transferir dinero"
+#| msgid "manage entries"
+msgid "Manage ingredients"
+msgstr "gestionar las entradas"
-#: apps/food/templates/food/qrcode_detail.html:10
+#: apps/food/templates/food/food_detail.html:49
#, fuzzy
-#| msgid "phone number"
-msgid "number"
-msgstr "número de teléfono"
+#| msgid "Return to credit list"
+msgid "Return to the food list"
+msgstr "Regresar a la lista de los créditos"
-#: apps/food/templates/food/qrcode_detail.html:14
-#: apps/note/templates/note/transaction_form.html:132
-#: apps/treasury/models.py:60
-msgid "Name"
-msgstr "Nombre"
-
-#: apps/food/templates/food/qrcode_detail.html:29
-#, fuzzy
-#| msgid "Profile detail"
-msgid "View details"
-msgstr "Detalles del usuario"
-
-#: apps/food/templates/food/transformedfood_detail.html:16
-#: apps/food/templates/food/transformedfood_detail.html:35
-msgid "Ready"
-msgstr ""
-
-#: apps/food/templates/food/transformedfood_detail.html:18
-#, fuzzy
-#| msgid "created at"
-msgid "Creation date"
-msgstr "creada el"
-
-#: apps/food/templates/food/transformedfood_detail.html:27
-msgid "Ingredients"
-msgstr ""
-
-#: apps/food/templates/food/transformedfood_detail.html:34
-msgid "Shelf life"
-msgstr ""
-
-#: apps/food/templates/food/transformedfood_list.html:11
+#: apps/food/templates/food/food_list.html:14
msgid "Meal served"
msgstr ""
-#: apps/food/templates/food/transformedfood_list.html:16
+#: apps/food/templates/food/food_list.html:19
#, fuzzy
#| msgid "New user"
msgid "New meal"
msgstr "Nuevo usuario"
-#: apps/food/templates/food/transformedfood_list.html:25
+#: apps/food/templates/food/food_list.html:28
#, fuzzy
#| msgid "There is no results."
msgid "There is no meal served."
msgstr "No hay resultado."
-#: apps/food/templates/food/transformedfood_list.html:33
-msgid "Open"
+#: apps/food/templates/food/food_list.html:35
+msgid "Free food"
msgstr ""
-#: apps/food/templates/food/transformedfood_list.html:40
+#: apps/food/templates/food/food_list.html:42
#, fuzzy
#| msgid "There is no results."
-msgid "There is no free meal."
+msgid "There is no free food."
msgstr "No hay resultado."
-#: apps/food/templates/food/transformedfood_list.html:48
-msgid "All meals"
+#: apps/food/templates/food/food_list.html:50
+#, fuzzy
+#| msgid "for club"
+msgid "Food of your clubs"
+msgstr "interesa el club"
+
+#: apps/food/templates/food/food_list.html:56
+#, fuzzy
+#| msgid "for club"
+msgid "Food of club"
+msgstr "interesa el club"
+
+#: apps/food/templates/food/food_list.html:63
+msgid "Yours club has not food yet."
msgstr ""
-#: apps/food/templates/food/transformedfood_list.html:55
+#: apps/food/templates/food/manage_ingredients.html:45
+#: apps/food/templates/food/transformedfood_update.html:42
#, fuzzy
-#| msgid "There is no results."
-msgid "There is no meal."
-msgstr "No hay resultado."
+#| msgid "Add friends"
+msgid "Add ingredient"
+msgstr "Añadir amig@s"
-#: apps/food/views.py:28
-msgid "Add the ingredient"
+#: apps/food/templates/food/manage_ingredients.html:46
+#: apps/food/templates/food/transformedfood_update.html:43
+#, fuzzy
+#| msgid "Remove product"
+msgid "Remove ingredient"
+msgstr "Quitar un producto"
+
+#: apps/food/templates/food/qrcode.html:22
+msgid "Copy constructor"
msgstr ""
-#: apps/food/views.py:42
+#: apps/food/templates/food/qrcode.html:23
#, fuzzy
-#| msgid "This credit is already validated."
-msgid "The product is already prepared"
-msgstr "Este crédito ya fue validado."
+#| msgid "Transfer money"
+msgid "New food"
+msgstr "Transferir dinero"
-#: apps/food/views.py:70
+#: apps/food/templates/food/qrcode.html:32
+#, fuzzy
+#| msgid "Owned"
+msgid "Owner"
+msgstr "Tenido"
+
+#: apps/food/templates/food/qrcode.html:35
+#, fuzzy
+#| msgid "birth date"
+msgid "Expiry date"
+msgstr "fecha de nacimiento"
+
+#: apps/food/utils.py:6
+msgid "second"
+msgstr ""
+
+#: apps/food/utils.py:6
+msgid "seconds"
+msgstr ""
+
+#: apps/food/utils.py:7
+msgid "minute"
+msgstr ""
+
+#: apps/food/utils.py:7
+msgid "minutes"
+msgstr ""
+
+#: apps/food/utils.py:8
+msgid "hour"
+msgstr ""
+
+#: apps/food/utils.py:8
+msgid "hours"
+msgstr ""
+
+#: apps/food/utils.py:9
+#, fuzzy
+#| msgid "days"
+msgid "day"
+msgstr "días"
+
+#: apps/food/utils.py:9 apps/member/templates/member/includes/club_info.html:27
+msgid "days"
+msgstr "días"
+
+#: apps/food/utils.py:10
+msgid "week"
+msgstr ""
+
+#: apps/food/utils.py:10
+msgid "weeks"
+msgstr ""
+
+#: apps/food/utils.py:53
+#, fuzzy
+#| msgid "add"
+msgid "and"
+msgstr "añadir"
+
+#: apps/food/views.py:118
+msgid "Add a new QRCode"
+msgstr ""
+
+#: apps/food/views.py:167
+#, fuzzy
+#| msgid "Update an invoice"
+msgid "Add an aliment"
+msgstr "Modificar una factura"
+
+#: apps/food/views.py:235
+#, fuzzy
+#| msgid "Add team"
+msgid "Add a meal"
+msgstr "Añadir un equipo"
+
+#: apps/food/views.py:275
+#, fuzzy
+#| msgid "manage entries"
+msgid "Manage ingredients of:"
+msgstr "gestionar las entradas"
+
+#: apps/food/views.py:289 apps/food/views.py:297
+#, python-brace-format
+msgid "Fully used in {meal}"
+msgstr ""
+
+#: apps/food/views.py:344
+msgid "Add the ingredient:"
+msgstr ""
+
+#: apps/food/views.py:370
+#, python-brace-format
+msgid "Food fully used in : {meal.name}"
+msgstr ""
+
+#: apps/food/views.py:389
#, fuzzy
#| msgid "Update an invoice"
msgid "Update an aliment"
msgstr "Modificar una factura"
-#: apps/food/views.py:97
+#: apps/food/views.py:437
#, fuzzy
#| msgid "WEI Detail"
msgid "Details of:"
msgstr "Detalles del WEI"
-#: apps/food/views.py:121
-msgid "Add a new basic food with QRCode"
-msgstr ""
+#: apps/food/views.py:447 apps/treasury/tables.py:149
+msgid "Yes"
+msgstr "Sí"
-#: apps/food/views.py:185
-msgid "Add a new QRCode"
-msgstr ""
-
-#: apps/food/views.py:235
-msgid "QRCode"
-msgstr ""
-
-#: apps/food/views.py:271
-msgid "Add a new meal"
-msgstr ""
-
-#: apps/food/views.py:337
-#, fuzzy
-#| msgid "Update team"
-msgid "Update a meal"
-msgstr "Modificar el equipo"
+#: apps/food/views.py:449 apps/member/models.py:99 apps/treasury/tables.py:149
+msgid "No"
+msgstr "No"
#: apps/logs/apps.py:11
msgid "Logs"
@@ -762,12 +914,6 @@ msgstr "nuevos datos"
msgid "create"
msgstr "crear"
-#: apps/logs/models.py:65 apps/note/tables.py:230 apps/note/tables.py:277
-#: apps/permission/models.py:126 apps/treasury/tables.py:38
-#: apps/wei/tables.py:74
-msgid "delete"
-msgstr "suprimir"
-
#: apps/logs/models.py:68
msgid "action"
msgstr "acción"
@@ -803,11 +949,11 @@ msgstr "pago de afiliación (estudiantes pagados)"
msgid "membership fee (unpaid students)"
msgstr "pago de afiliación (estudiantes no pagados)"
-#: apps/member/admin.py:65 apps/member/models.py:330
+#: apps/member/admin.py:65 apps/member/models.py:337
msgid "roles"
msgstr "papel"
-#: apps/member/admin.py:66 apps/member/models.py:344
+#: apps/member/admin.py:66 apps/member/models.py:351
msgid "fee"
msgstr "pago"
@@ -815,25 +961,25 @@ msgstr "pago"
msgid "member"
msgstr "miembro"
-#: apps/member/forms.py:24
+#: apps/member/forms.py:25
msgid "Permission mask"
msgstr "Antifaz de permisos"
-#: apps/member/forms.py:46
+#: apps/member/forms.py:48
msgid "Report frequency"
msgstr "Frecuencia de los informes (en días)"
-#: apps/member/forms.py:48
+#: apps/member/forms.py:50
msgid "Last report date"
msgstr "Fecha del último informe"
-#: apps/member/forms.py:52
+#: apps/member/forms.py:54
msgid ""
"Anti-VSS (Violences Sexistes et Sexuelles) charter read and approved"
msgstr ""
"Carta Anti-VSS (Violences Sexistes et Sexuelles) leída y aprobada"
-#: apps/member/forms.py:53
+#: apps/member/forms.py:55
msgid ""
"Tick after having read and accepted the anti-VSS charter "
@@ -843,65 +989,65 @@ msgstr ""
"perso.crans.org/club-bde/Charte-anti-VSS.pdf target=_blank> disponible en "
"pdf aquí"
-#: apps/member/forms.py:60
+#: apps/member/forms.py:62
msgid "You can't register to the note if you come from the future."
msgstr "Usted no puede registrar si viene del futuro."
-#: apps/member/forms.py:86
+#: apps/member/forms.py:89
msgid "select an image"
msgstr "elegir una imagen"
-#: apps/member/forms.py:87
+#: apps/member/forms.py:90
msgid "Maximal size: 2MB"
msgstr "Tamaño máximo : 2Mo"
-#: apps/member/forms.py:112
+#: apps/member/forms.py:115
msgid "This image cannot be loaded."
msgstr "Esta imagen no puede ser cargada."
-#: apps/member/forms.py:151 apps/member/views.py:102
-#: apps/registration/forms.py:33 apps/registration/views.py:276
+#: apps/member/forms.py:154 apps/member/views.py:117
+#: apps/registration/forms.py:33 apps/registration/views.py:282
msgid "An alias with a similar name already exists."
msgstr "Un alias similar ya existe."
-#: apps/member/forms.py:175
+#: apps/member/forms.py:178
msgid "Inscription paid by Société Générale"
msgstr "Registración pagadas por Société Générale"
-#: apps/member/forms.py:177
+#: apps/member/forms.py:180
msgid "Check this case if the Société Générale paid the inscription."
msgstr "Marcar esta casilla si Société Générale pagó la registración."
-#: apps/member/forms.py:182 apps/registration/forms.py:78
-#: apps/wei/forms/registration.py:91
+#: apps/member/forms.py:185 apps/registration/forms.py:78
+#: apps/wei/forms/registration.py:116
msgid "Credit type"
msgstr "Tipo de crédito"
-#: apps/member/forms.py:183 apps/registration/forms.py:79
-#: apps/wei/forms/registration.py:92
+#: apps/member/forms.py:186 apps/registration/forms.py:79
+#: apps/wei/forms/registration.py:117
msgid "No credit"
msgstr "No crédito"
-#: apps/member/forms.py:185
+#: apps/member/forms.py:188
msgid "You can credit the note of the user."
msgstr "Usted puede acreditar la note del usuario."
-#: apps/member/forms.py:189 apps/registration/forms.py:84
-#: apps/wei/forms/registration.py:97
+#: apps/member/forms.py:192 apps/registration/forms.py:84
+#: apps/wei/forms/registration.py:122
msgid "Credit amount"
msgstr "Valor del crédito"
-#: apps/member/forms.py:206 apps/note/templates/note/transaction_form.html:144
+#: apps/member/forms.py:209 apps/note/templates/note/transaction_form.html:144
#: apps/registration/forms.py:101 apps/treasury/forms.py:135
-#: apps/wei/forms/registration.py:114
+#: apps/wei/forms/registration.py:139
msgid "Bank"
msgstr "Banco"
-#: apps/member/forms.py:233
+#: apps/member/forms.py:236
msgid "User"
msgstr "Usuario"
-#: apps/member/forms.py:247
+#: apps/member/forms.py:250
msgid "Roles"
msgstr "Papeles"
@@ -1034,10 +1180,6 @@ msgstr "pagado"
msgid "Tells if the user receive a salary."
msgstr "Indica si el usuario percibe un salario."
-#: apps/member/models.py:99 apps/treasury/tables.py:143
-msgid "No"
-msgstr "No"
-
#: apps/member/models.py:100
msgid "Yes (receive them in french)"
msgstr "Si (recibirles en francés)"
@@ -1102,7 +1244,7 @@ msgstr "Active su cuenta Note Kfet"
#: apps/member/templates/member/includes/club_info.html:55
#: apps/member/templates/member/includes/profile_info.html:40
#: apps/registration/templates/registration/future_profile_detail.html:22
-#: apps/wei/templates/wei/base.html:70
+#: apps/wei/templates/wei/base.html:68
#: apps/wei/templates/wei/weimembership_form.html:20
msgid "email"
msgstr "correo electrónico"
@@ -1154,8 +1296,8 @@ msgstr ""
msgid "add to registration form"
msgstr "Validar la afiliación"
-#: apps/member/models.py:268 apps/member/models.py:324
-#: apps/note/models/notes.py:176
+#: apps/member/models.py:268 apps/member/models.py:331
+#: apps/note/models/notes.py:176 apps/wei/models.py:86
msgid "club"
msgstr "club"
@@ -1163,37 +1305,37 @@ msgstr "club"
msgid "clubs"
msgstr "clubs"
-#: apps/member/models.py:335
+#: apps/member/models.py:342
msgid "membership starts on"
msgstr "afiliación empezá el"
-#: apps/member/models.py:339
+#: apps/member/models.py:346
msgid "membership ends on"
msgstr "afiliación termina el"
-#: apps/member/models.py:348 apps/note/models/transactions.py:385
+#: apps/member/models.py:355 apps/note/models/transactions.py:385
msgid "membership"
msgstr "afiliación"
-#: apps/member/models.py:349
+#: apps/member/models.py:356
msgid "memberships"
msgstr "afiliaciones"
-#: apps/member/models.py:353
+#: apps/member/models.py:360
#, python-brace-format
msgid "Membership of {user} for the club {club}"
msgstr "Afiliación of {user} for the club {club}"
-#: apps/member/models.py:372
+#: apps/member/models.py:379
#, python-brace-format
msgid "The role {role} does not apply to the club {club}."
msgstr "El papel {role} no se encuentra en el club {club}."
-#: apps/member/models.py:381 apps/member/views.py:715
+#: apps/member/models.py:388 apps/member/views.py:759
msgid "User is already a member of the club"
msgstr "Usuario ya esta un miembro del club"
-#: apps/member/models.py:393 apps/member/views.py:724
+#: apps/member/models.py:400 apps/member/views.py:768
msgid "User is not a member of the parent club"
msgstr "Usuario no es un miembro del club pariente"
@@ -1245,7 +1387,7 @@ msgid "Account #"
msgstr "Cuenta n°"
#: apps/member/templates/member/base.html:48
-#: apps/member/templates/member/base.html:62 apps/member/views.py:59
+#: apps/member/templates/member/base.html:62 apps/member/views.py:61
#: apps/registration/templates/registration/future_profile_detail.html:48
#: apps/wei/templates/wei/weimembership_form.html:117
msgid "Update Profile"
@@ -1306,20 +1448,11 @@ msgstr ""
"nuevo posibles."
#: apps/member/templates/member/club_alias.html:10
-#: apps/member/templates/member/profile_alias.html:10 apps/member/views.py:287
-#: apps/member/views.py:520
+#: apps/member/templates/member/profile_alias.html:10 apps/member/views.py:318
+#: apps/member/views.py:559
msgid "Note aliases"
msgstr "Alias de la note"
-#: apps/member/templates/member/club_alias.html:20
-#: apps/member/templates/member/profile_alias.html:19
-#: apps/member/templates/member/profile_trust.html:19
-#: apps/treasury/tables.py:99
-#: apps/treasury/templates/treasury/sogecredit_list.html:34
-#: apps/treasury/templates/treasury/sogecredit_list.html:73
-msgid "Add"
-msgstr "Añadir"
-
#: apps/member/templates/member/club_detail.html:13
#: apps/permission/templates/permission/all_rights.html:32
msgid "Club managers"
@@ -1356,10 +1489,6 @@ msgstr "No hay afiliación encontrada con esta entrada."
msgid "Club Parent"
msgstr "Club pariente"
-#: apps/member/templates/member/includes/club_info.html:27
-msgid "days"
-msgstr "días"
-
#: apps/member/templates/member/includes/club_info.html:31
#: apps/wei/templates/wei/base.html:40
msgid "membership fee"
@@ -1368,13 +1497,13 @@ msgstr "pago de afiliación"
#: apps/member/templates/member/includes/club_info.html:43
#: apps/member/templates/member/includes/profile_info.html:55
#: apps/treasury/templates/treasury/sogecredit_detail.html:24
-#: apps/wei/templates/wei/base.html:60
+#: apps/wei/templates/wei/base.html:58
msgid "balance"
msgstr "saldo de la cuenta"
#: apps/member/templates/member/includes/club_info.html:47
#: apps/member/templates/member/includes/profile_info.html:20
-#: apps/note/models/notes.py:287 apps/wei/templates/wei/base.html:66
+#: apps/note/models/notes.py:287 apps/wei/templates/wei/base.html:64
msgid "aliases"
msgstr "alias"
@@ -1455,11 +1584,11 @@ msgstr "Introspección :"
msgid "Show my applications"
msgstr "Mostrar mis aplicaciones"
-#: apps/member/templates/member/picture_update.html:38
+#: apps/member/templates/member/picture_update.html:40
msgid "Nevermind"
msgstr "No importa"
-#: apps/member/templates/member/picture_update.html:39
+#: apps/member/templates/member/picture_update.html:41
msgid "Crop and upload"
msgstr "Podar y subir"
@@ -1508,51 +1637,51 @@ msgstr "Guardar cambios"
msgid "Registrations"
msgstr "Registraciones"
-#: apps/member/views.py:72 apps/registration/forms.py:23
+#: apps/member/views.py:74 apps/registration/forms.py:23
msgid "This address must be valid."
msgstr "Este correo tiene que ser valido."
-#: apps/member/views.py:139
+#: apps/member/views.py:154
msgid "Profile detail"
msgstr "Detalles del usuario"
-#: apps/member/views.py:205
+#: apps/member/views.py:220
msgid "Search user"
msgstr "Buscar un usuario"
-#: apps/member/views.py:253
+#: apps/member/views.py:272
msgid "Note friendships"
msgstr "Amistades de note"
-#: apps/member/views.py:308
+#: apps/member/views.py:342
msgid "Update note picture"
msgstr "Modificar la imagen de la note"
-#: apps/member/views.py:357
+#: apps/member/views.py:391
msgid "Manage auth token"
msgstr "Gestionar los token de autentificación"
-#: apps/member/views.py:384
+#: apps/member/views.py:418
msgid "Create new club"
msgstr "Crear un nuevo club"
-#: apps/member/views.py:403
+#: apps/member/views.py:437
msgid "Search club"
msgstr "Buscar un club"
-#: apps/member/views.py:436
+#: apps/member/views.py:475
msgid "Club detail"
msgstr "Detalles del club"
-#: apps/member/views.py:543
+#: apps/member/views.py:587
msgid "Update club"
msgstr "Modificar el club"
-#: apps/member/views.py:577
+#: apps/member/views.py:621
msgid "Add new member to the club"
msgstr "Añadir un nuevo miembro al club"
-#: apps/member/views.py:706 apps/wei/views.py:973
+#: apps/member/views.py:750
msgid ""
"This user don't have enough money to join this club, and can't have a "
"negative balance."
@@ -1560,19 +1689,19 @@ msgstr ""
"Este usuario no tiene suficiente dinero para unirse a este club, y no puede "
"tener un saldo negativo."
-#: apps/member/views.py:728
+#: apps/member/views.py:772
msgid "The membership must start after {:%m-%d-%Y}."
msgstr "La afiliación tiene que empezar después del {:%d-%m-%Y}."
-#: apps/member/views.py:733
+#: apps/member/views.py:777
msgid "The membership must begin before {:%m-%d-%Y}."
msgstr "La afiliación tiene que empezar antes del {:%d-%m-%Y}."
-#: apps/member/views.py:883
+#: apps/member/views.py:927
msgid "Manage roles of an user in the club"
msgstr "Gestionar los papeles de un usuario en el club"
-#: apps/member/views.py:908
+#: apps/member/views.py:952
msgid "Members of the club"
msgstr "Miembros del club"
@@ -1605,35 +1734,35 @@ msgstr ""
"La transacción no puede ser guardada puesto que la note fuente o la note "
"destino no esta activa."
-#: apps/note/forms.py:39
+#: apps/note/forms.py:40
msgid "Source"
msgstr "Fuente"
-#: apps/note/forms.py:53
+#: apps/note/forms.py:54
msgid "Destination"
msgstr "Destino"
-#: apps/note/forms.py:74 apps/note/templates/note/transaction_form.html:123
+#: apps/note/forms.py:75 apps/note/templates/note/transaction_form.html:123
msgid "Reason"
msgstr "Motivo"
-#: apps/note/forms.py:79 apps/treasury/tables.py:136
+#: apps/note/forms.py:80 apps/treasury/tables.py:141
msgid "Valid"
msgstr "Valido"
-#: apps/note/forms.py:85
+#: apps/note/forms.py:86
msgid "Total amount greater than"
msgstr "Monto total mayor que"
-#: apps/note/forms.py:93
+#: apps/note/forms.py:94
msgid "Total amount less than"
msgstr "Monto total menor que"
-#: apps/note/forms.py:99
+#: apps/note/forms.py:100
msgid "Created after"
msgstr "Creado después"
-#: apps/note/forms.py:106
+#: apps/note/forms.py:107
msgid "Created before"
msgstr "Creado antes"
@@ -1739,7 +1868,7 @@ msgstr "amigo"
#: apps/note/models/notes.py:243
#, fuzzy
#| msgid "friendships"
-msgid "friendship"
+msgid "frienship"
msgstr "amistades"
#: apps/note/models/notes.py:248
@@ -1888,8 +2017,8 @@ msgstr ""
"pago y un usuario o un club"
#: apps/note/models/transactions.py:357 apps/note/models/transactions.py:360
-#: apps/note/models/transactions.py:363 apps/wei/views.py:978
-#: apps/wei/views.py:982
+#: apps/note/models/transactions.py:363 apps/wei/views.py:1097
+#: apps/wei/views.py:1101
msgid "This field is required."
msgstr "Este campo es obligatorio."
@@ -1897,7 +2026,7 @@ msgstr "Este campo es obligatorio."
msgid "membership transaction"
msgstr "transacción de afiliación"
-#: apps/note/models/transactions.py:381 apps/treasury/models.py:300
+#: apps/note/models/transactions.py:381 apps/treasury/models.py:301
msgid "membership transactions"
msgstr "transacciones de afiliación"
@@ -1913,18 +2042,6 @@ msgstr "Hacer clic para validar"
msgid "No reason specified"
msgstr "Ningún motivo dado"
-#: apps/note/tables.py:166 apps/note/tables.py:173 apps/note/tables.py:234
-#: apps/note/tables.py:279 apps/treasury/tables.py:39
-#: apps/treasury/templates/treasury/invoice_confirm_delete.html:30
-#: apps/treasury/templates/treasury/sogecredit_detail.html:65
-#: apps/wei/tables.py:75 apps/wei/tables.py:118
-#: apps/wei/templates/wei/weiregistration_confirm_delete.html:31
-#: note_kfet/templates/oauth2_provider/application_confirm_delete.html:18
-#: note_kfet/templates/oauth2_provider/application_detail.html:39
-#: note_kfet/templates/oauth2_provider/authorized-token-delete.html:12
-msgid "Delete"
-msgstr "Suprimir"
-
#: apps/note/tables.py:191
msgid "Trust back"
msgstr "Añadir como amig@"
@@ -1935,15 +2052,15 @@ msgstr "Añadir en retorno"
#: apps/note/tables.py:262 apps/note/templates/note/conso_form.html:151
#: apps/wei/tables.py:49 apps/wei/tables.py:50
-#: apps/wei/templates/wei/base.html:89
-#: apps/wei/templates/wei/bus_detail.html:20
+#: apps/wei/templates/wei/base.html:87
+#: apps/wei/templates/wei/bus_detail.html:24
#: apps/wei/templates/wei/busteam_detail.html:20
-#: apps/wei/templates/wei/busteam_detail.html:40
+#: apps/wei/templates/wei/busteam_detail.html:42
#: note_kfet/templates/oauth2_provider/application_detail.html:38
msgid "Edit"
msgstr "Editar"
-#: apps/note/tables.py:266 apps/note/tables.py:293
+#: apps/note/tables.py:267 apps/note/tables.py:296
msgid "Hide/Show"
msgstr "Ocultar/Mostrar"
@@ -2029,8 +2146,8 @@ msgid "Action"
msgstr "Acción"
#: apps/note/templates/note/transaction_form.html:116
-#: apps/treasury/forms.py:137 apps/treasury/tables.py:67
-#: apps/treasury/tables.py:132
+#: apps/treasury/forms.py:137 apps/treasury/tables.py:68
+#: apps/treasury/tables.py:136
#: apps/treasury/templates/treasury/remittance_form.html:23
msgid "Amount"
msgstr "Monto"
@@ -2092,34 +2209,35 @@ msgid "Button displayed"
msgstr "Botón mostrado"
#: apps/note/templates/note/transactiontemplate_list.html:100
+#: apps/wrapped/templates/wrapped/wrapped_list.html:70
msgid "An error occured"
msgstr "Un error ocurrió"
-#: apps/note/views.py:36
+#: apps/note/views.py:37
msgid "Transfer money"
msgstr "Transferir dinero"
-#: apps/note/views.py:74
+#: apps/note/views.py:75
msgid "Create new button"
msgstr "Crear un nuevo botón"
-#: apps/note/views.py:83
+#: apps/note/views.py:84
msgid "Search button"
msgstr "Buscar un botón"
-#: apps/note/views.py:111
+#: apps/note/views.py:116
msgid "Update button"
msgstr "Modificar el botón"
-#: apps/note/views.py:151 note_kfet/templates/base.html:66
+#: apps/note/views.py:156 note_kfet/templates/base.html:66
msgid "Consumptions"
msgstr "Consumiciones"
-#: apps/note/views.py:165
+#: apps/note/views.py:170
msgid "You can't see any button."
msgstr "Usted no puede ver ningún botón."
-#: apps/note/views.py:204
+#: apps/note/views.py:209
msgid "Search transactions"
msgstr "Buscar transacciones"
@@ -2213,7 +2331,7 @@ msgstr ""
"Usted no tiene permiso a cambiar el campo {field} on this instance of model "
"{app_label}.{model_name}."
-#: apps/permission/signals.py:83 apps/permission/views.py:105
+#: apps/permission/signals.py:83 apps/permission/views.py:104
#, python-brace-format
msgid ""
"You don't have the permission to add an instance of model {app_label}."
@@ -2292,25 +2410,25 @@ msgstr "Pulsar aquí"
msgid "if you want to register a new one"
msgstr "si quiere crear una nueva"
-#: apps/permission/views.py:72
+#: apps/permission/views.py:71
#, python-brace-format
msgid ""
"You don't have the permission to update this instance of the model "
"\"{model}\" with these parameters. Please correct your data and retry."
msgstr ""
-#: apps/permission/views.py:76
+#: apps/permission/views.py:75
#, python-brace-format
msgid ""
"You don't have the permission to create an instance of the model \"{model}\" "
"with these parameters. Please correct your data and retry."
msgstr ""
-#: apps/permission/views.py:112 note_kfet/templates/base.html:114
+#: apps/permission/views.py:111 note_kfet/templates/base.html:120
msgid "Rights"
msgstr "Permisos"
-#: apps/permission/views.py:117
+#: apps/permission/views.py:137
msgid "All rights"
msgstr "Todos los permisos"
@@ -2397,7 +2515,7 @@ msgstr "El usuario declara que ya abrió una cuenta a la Société Générale."
#: apps/registration/templates/registration/future_profile_detail.html:73
#: apps/wei/templates/wei/weimembership_form.html:127
-#: apps/wei/templates/wei/weimembership_form.html:186
+#: apps/wei/templates/wei/weimembership_form.html:196
msgid "Validate registration"
msgstr "Validar la afiliación"
@@ -2447,60 +2565,68 @@ msgstr "Gracias"
msgid "The Note Kfet team."
msgstr "El equipo Note Kfet."
-#: apps/registration/views.py:42
+#: apps/registration/views.py:43
msgid "Register new user"
msgstr "Registrar un nuevo usuario"
-#: apps/registration/views.py:100
+#: apps/registration/views.py:101
msgid "Email validation"
msgstr "Validación del correo electrónico"
-#: apps/registration/views.py:102
+#: apps/registration/views.py:103
msgid "Validate email"
msgstr "Validar el correo electrónico"
-#: apps/registration/views.py:146
+#: apps/registration/views.py:147
msgid "Email validation unsuccessful"
msgstr "La validación del correo electrónico fracasó"
-#: apps/registration/views.py:157
+#: apps/registration/views.py:158
msgid "Email validation email sent"
msgstr "Correo de validación enviado"
-#: apps/registration/views.py:165
+#: apps/registration/views.py:166
msgid "Resend email validation link"
msgstr "Reenviar el enlace de validación"
-#: apps/registration/views.py:183
+#: apps/registration/views.py:184
msgid "Pre-registered users list"
msgstr "Lista de los usuarios con afiliación pendiente"
-#: apps/registration/views.py:207
+#: apps/registration/views.py:213
msgid "Unregistered users"
msgstr "Usuarios con afiliación pendiente"
-#: apps/registration/views.py:220
+#: apps/registration/views.py:226
msgid "Registration detail"
msgstr "Detalles de la afiliación"
-#: apps/registration/views.py:256
+#: apps/registration/views.py:262
#, fuzzy, python-format
#| msgid "Note of %(club)s club"
msgid "Join %(club)s Club"
msgstr "Note del club %(club)s"
-#: apps/registration/views.py:299
-msgid "You must join the BDE."
+#: apps/registration/views.py:305
+#, fuzzy
+#| msgid "You must join the BDE."
+msgid "You must join a club."
msgstr "Usted tiene que afiliarse al BDE."
-#: apps/registration/views.py:330
+#: apps/registration/views.py:309
+#, fuzzy
+#| msgid "You must join the BDE."
+msgid "You must also join the parent club BDE."
+msgstr "Usted tiene que afiliarse al BDE."
+
+#: apps/registration/views.py:340
msgid ""
"The entered amount is not enough for the memberships, should be at least {}"
msgstr ""
"El monto dado no es suficiente para las afiliaciones, tiene que ser al menos "
"{}"
-#: apps/registration/views.py:425
+#: apps/registration/views.py:435
msgid "Invalidate pre-registration"
msgstr "Invalidar la afiliación"
@@ -2508,7 +2634,7 @@ msgstr "Invalidar la afiliación"
msgid "Treasury"
msgstr "Tesorería"
-#: apps/treasury/forms.py:26 apps/treasury/models.py:112
+#: apps/treasury/forms.py:26 apps/treasury/models.py:113
#: apps/treasury/templates/treasury/invoice_form.html:22
msgid "This invoice is locked and can no longer be edited."
msgstr "Esta factura esta bloqueada y no puede ser modificada."
@@ -2521,8 +2647,8 @@ msgstr "El descuento ya esta cerrado."
msgid "You can't change the type of the remittance."
msgstr "No puede cambiar el tipo de descuento."
-#: apps/treasury/forms.py:125 apps/treasury/models.py:275
-#: apps/treasury/tables.py:97 apps/treasury/tables.py:105
+#: apps/treasury/forms.py:125 apps/treasury/models.py:276
+#: apps/treasury/tables.py:99 apps/treasury/tables.py:108
#: apps/treasury/templates/treasury/invoice_list.html:16
#: apps/treasury/templates/treasury/remittance_list.html:16
#: apps/treasury/templates/treasury/sogecredit_list.html:17
@@ -2537,142 +2663,143 @@ msgstr "No hay descuento relacionado"
msgid "Invoice identifier"
msgstr "Numero de factura"
-#: apps/treasury/models.py:42
+#: apps/treasury/models.py:43 apps/wrapped/models.py:28
+#: apps/wrapped/models.py:29
msgid "BDE"
msgstr "BDE"
-#: apps/treasury/models.py:46
+#: apps/treasury/models.py:47
#, fuzzy
#| msgid "location"
msgid "Quotation"
msgstr "ubicación"
-#: apps/treasury/models.py:51
+#: apps/treasury/models.py:52
msgid "Object"
msgstr "Asunto"
-#: apps/treasury/models.py:55
+#: apps/treasury/models.py:56
msgid "Description"
msgstr "Descripción"
-#: apps/treasury/models.py:64
+#: apps/treasury/models.py:65
msgid "Address"
msgstr "Dirección"
-#: apps/treasury/models.py:69 apps/treasury/models.py:202
+#: apps/treasury/models.py:70 apps/treasury/models.py:203
msgid "Date"
msgstr "Fecha"
-#: apps/treasury/models.py:75
+#: apps/treasury/models.py:76
#, fuzzy
#| msgid "end date"
msgid "Payment date"
msgstr "fecha de fin"
-#: apps/treasury/models.py:79
+#: apps/treasury/models.py:80
msgid "Acquitted"
msgstr "Pagada"
-#: apps/treasury/models.py:84
+#: apps/treasury/models.py:85
msgid "Locked"
msgstr "Bloqueada"
-#: apps/treasury/models.py:85
+#: apps/treasury/models.py:86
msgid "An invoice can't be edited when it is locked."
msgstr "Une factura no puede ser modificada cuando esta bloqueada."
-#: apps/treasury/models.py:91
+#: apps/treasury/models.py:92
msgid "tex source"
msgstr "código fuente TeX"
-#: apps/treasury/models.py:95 apps/treasury/models.py:140
+#: apps/treasury/models.py:96 apps/treasury/models.py:141
msgid "invoice"
msgstr "factura"
-#: apps/treasury/models.py:96
+#: apps/treasury/models.py:97
msgid "invoices"
msgstr "facturas"
-#: apps/treasury/models.py:99
+#: apps/treasury/models.py:100
#, python-brace-format
msgid "Invoice #{id}"
msgstr "Factura n°{id}"
-#: apps/treasury/models.py:145
+#: apps/treasury/models.py:146
msgid "Designation"
msgstr "Designación"
-#: apps/treasury/models.py:151
+#: apps/treasury/models.py:152
msgid "Quantity"
msgstr "Cantidad"
-#: apps/treasury/models.py:156
+#: apps/treasury/models.py:157
msgid "Unit price"
msgstr "Precio unitario"
-#: apps/treasury/models.py:160
+#: apps/treasury/models.py:161
msgid "product"
msgstr "producto"
-#: apps/treasury/models.py:161
+#: apps/treasury/models.py:162
msgid "products"
msgstr "productos"
-#: apps/treasury/models.py:189
+#: apps/treasury/models.py:190
msgid "remittance type"
msgstr "tipo de descuento"
-#: apps/treasury/models.py:190
+#: apps/treasury/models.py:191
msgid "remittance types"
msgstr "tipos de descuentos"
-#: apps/treasury/models.py:213
+#: apps/treasury/models.py:214
msgid "Comment"
msgstr "Comentario"
-#: apps/treasury/models.py:218
+#: apps/treasury/models.py:219
msgid "Closed"
msgstr "Cerrada"
-#: apps/treasury/models.py:222
+#: apps/treasury/models.py:223
msgid "remittance"
msgstr "descuento"
-#: apps/treasury/models.py:223
+#: apps/treasury/models.py:224
msgid "remittances"
msgstr "descuentos"
-#: apps/treasury/models.py:226
+#: apps/treasury/models.py:227
msgid "Remittance #{:d}: {}"
msgstr "Descuento n°{:d} : {}"
-#: apps/treasury/models.py:279
+#: apps/treasury/models.py:280
msgid "special transaction proxy"
msgstr "proxy de transacción especial"
-#: apps/treasury/models.py:280
+#: apps/treasury/models.py:281
msgid "special transaction proxies"
msgstr "proxys de transacciones especiales"
-#: apps/treasury/models.py:306
+#: apps/treasury/models.py:307
msgid "credit transaction"
msgstr "transacción de crédito"
-#: apps/treasury/models.py:311
+#: apps/treasury/models.py:312
#: apps/treasury/templates/treasury/sogecredit_detail.html:10
msgid "Credit from the Société générale"
msgstr "Crédito de la Société Générale"
-#: apps/treasury/models.py:312
+#: apps/treasury/models.py:313
msgid "Credits from the Société générale"
msgstr "Créditos de la Société Générale"
-#: apps/treasury/models.py:315
+#: apps/treasury/models.py:316
#, python-brace-format
msgid "Soge credit for {user}"
msgstr "Crédito de la Société Générale para {user}"
-#: apps/treasury/models.py:445
+#: apps/treasury/models.py:446
msgid ""
"This user doesn't have enough money to pay the memberships with its note. "
"Please ask her/him to credit the note before invalidating this credit."
@@ -2692,25 +2819,22 @@ msgstr "Factura n°{:d}"
msgid "Invoice"
msgstr "Factura"
-#: apps/treasury/tables.py:65
+#: apps/treasury/tables.py:66
msgid "Transaction count"
msgstr "Cantidad de transacciones"
-#: apps/treasury/tables.py:70 apps/treasury/tables.py:72
+#: apps/treasury/tables.py:71 apps/treasury/tables.py:73
+#: apps/wei/templates/wei/busteam_detail.html:22 apps/wrapped/tables.py:42
msgid "View"
msgstr "Ver"
-#: apps/treasury/tables.py:143
-msgid "Yes"
-msgstr "Sí"
-
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:10
-#: apps/treasury/views.py:173
+#: apps/treasury/views.py:174
msgid "Delete invoice"
msgstr "Suprimir la factura"
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:15
-#: apps/treasury/views.py:177
+#: apps/treasury/views.py:178
msgid "This invoice is locked and can't be deleted."
msgstr "Esta factura esta bloqueada y no puede ser suprimida."
@@ -2878,64 +3002,64 @@ msgstr "Anãdir un crédito de la Société Générale"
msgid "Credit successfully registered"
msgstr "Crédito creado con éxito"
-#: apps/treasury/views.py:40
+#: apps/treasury/views.py:41
msgid "Create new invoice"
msgstr "Crear una nueva factura"
-#: apps/treasury/views.py:97
+#: apps/treasury/views.py:98
msgid "Invoices list"
msgstr "Lista de las facturas"
-#: apps/treasury/views.py:105 apps/treasury/views.py:275
-#: apps/treasury/views.py:401
+#: apps/treasury/views.py:106 apps/treasury/views.py:281
+#: apps/treasury/views.py:394
msgid "You are not able to see the treasury interface."
msgstr "Usted no tiene derecho a ver la interfaz de tesorería."
-#: apps/treasury/views.py:115
+#: apps/treasury/views.py:116
msgid "Update an invoice"
msgstr "Modificar una factura"
-#: apps/treasury/views.py:240
+#: apps/treasury/views.py:241
msgid "Create a new remittance"
msgstr "Crear un nuevo descuento"
-#: apps/treasury/views.py:267
+#: apps/treasury/views.py:265
msgid "Remittances list"
msgstr "Lista de los descuentos"
-#: apps/treasury/views.py:326
+#: apps/treasury/views.py:320
msgid "Update a remittance"
msgstr "Modificar un descuento"
-#: apps/treasury/views.py:349
+#: apps/treasury/views.py:342
msgid "Attach a transaction to a remittance"
msgstr "Unir una transacción con un descuento"
-#: apps/treasury/views.py:393
+#: apps/treasury/views.py:386
msgid "List of credits from the Société générale"
msgstr "Lista de los créditos de la Société Générale"
-#: apps/treasury/views.py:438
+#: apps/treasury/views.py:436
msgid "Manage credits from the Société générale"
msgstr "Gestionar los créditos de la Société Générale"
-#: apps/wei/apps.py:10 apps/wei/models.py:37 apps/wei/models.py:38
-#: apps/wei/models.py:62 apps/wei/models.py:178
+#: apps/wei/apps.py:10 apps/wei/models.py:42 apps/wei/models.py:43
+#: apps/wei/models.py:67 apps/wei/models.py:192
#: note_kfet/templates/base.html:108
msgid "WEI"
msgstr "WEI"
-#: apps/wei/forms/registration.py:35
+#: apps/wei/forms/registration.py:37
msgid "The selected user is not validated. Please validate its account first"
msgstr ""
"El usuario seleccionado no ha sido validado. Validar esta cuenta primero"
-#: apps/wei/forms/registration.py:59 apps/wei/models.py:126
-#: apps/wei/models.py:324
+#: apps/wei/forms/registration.py:84 apps/wei/models.py:140
+#: apps/wei/models.py:348
msgid "bus"
msgstr "bus"
-#: apps/wei/forms/registration.py:60
+#: apps/wei/forms/registration.py:85
msgid ""
"This choice is not definitive. The WEI organizers are free to attribute for "
"you a bus and a team, in particular if you are a free eletron."
@@ -2944,11 +3068,11 @@ msgstr ""
"derecho de imponer su bus y su equipo, en particular para los electrones "
"libres."
-#: apps/wei/forms/registration.py:67
+#: apps/wei/forms/registration.py:92
msgid "Team"
msgstr "Equipo"
-#: apps/wei/forms/registration.py:69
+#: apps/wei/forms/registration.py:94
msgid ""
"Leave this field empty if you won't be in a team (staff, bus chief, free "
"electron)"
@@ -2956,16 +3080,16 @@ msgstr ""
"Deje este campo vacío si no quiere estar en un equipo (staff, jefe de bus, "
"electrón libre)"
-#: apps/wei/forms/registration.py:75 apps/wei/forms/registration.py:85
-#: apps/wei/models.py:160
+#: apps/wei/forms/registration.py:100 apps/wei/forms/registration.py:110
+#: apps/wei/models.py:174
msgid "WEI Roles"
msgstr "Papeles en el WEI"
-#: apps/wei/forms/registration.py:76
+#: apps/wei/forms/registration.py:101
msgid "Select the roles that you are interested in."
msgstr "Elegir los papeles que le interesa."
-#: apps/wei/forms/registration.py:122
+#: apps/wei/forms/registration.py:147
msgid "This team doesn't belong to the given bus."
msgstr "Este equipo no pertenece al bus dado."
@@ -2978,126 +3102,149 @@ msgid "year"
msgstr "año"
#: apps/wei/models.py:29 apps/wei/templates/wei/base.html:30
+#: apps/wrapped/models.py:20
msgid "date start"
msgstr "fecha de inicio"
#: apps/wei/models.py:33 apps/wei/templates/wei/base.html:33
+#: apps/wrapped/models.py:24
msgid "date end"
msgstr "fecha de fin"
-#: apps/wei/models.py:71 apps/wei/tables.py:305
+#: apps/wei/models.py:37
+#, fuzzy
+#| msgid "total amount"
+msgid "caution amount"
+msgstr "monto total"
+
+#: apps/wei/models.py:76 apps/wei/tables.py:305
msgid "seat count in the bus"
msgstr "cantidad de asientos en el bus"
-#: apps/wei/models.py:83
+#: apps/wei/models.py:97
msgid "survey information"
msgstr "informaciones sobre el cuestionario"
-#: apps/wei/models.py:84
+#: apps/wei/models.py:98
msgid "Information about the survey for new members, encoded in JSON"
msgstr ""
"Informaciones sobre el cuestionario para los nuevos miembros, registrado en "
"JSON"
-#: apps/wei/models.py:88
+#: apps/wei/models.py:102
msgid "Bus"
msgstr "Bus"
-#: apps/wei/models.py:89 apps/wei/templates/wei/weiclub_detail.html:51
+#: apps/wei/models.py:103 apps/wei/templates/wei/weiclub_detail.html:51
msgid "Buses"
msgstr "Bus"
-#: apps/wei/models.py:135
+#: apps/wei/models.py:149
msgid "color"
msgstr "color"
-#: apps/wei/models.py:136
+#: apps/wei/models.py:150
msgid "The color of the T-Shirt, stored with its number equivalent"
msgstr "El color de la camiseta, registrado con su número equivalente"
-#: apps/wei/models.py:147
+#: apps/wei/models.py:161
msgid "Bus team"
msgstr "Equipo de bus"
-#: apps/wei/models.py:148
+#: apps/wei/models.py:162
msgid "Bus teams"
msgstr "Equipos de bus"
-#: apps/wei/models.py:159
+#: apps/wei/models.py:173
msgid "WEI Role"
msgstr "Papeles en el WEI"
-#: apps/wei/models.py:183
+#: apps/wei/models.py:197
msgid "Credit from Société générale"
msgstr "Crédito de la Société Générale"
-#: apps/wei/models.py:188
+#: apps/wei/models.py:202 apps/wei/views.py:984
msgid "Caution check given"
msgstr "Cheque de garantía dado"
-#: apps/wei/models.py:192 apps/wei/templates/wei/weimembership_form.html:64
+#: apps/wei/models.py:208
+msgid "Check"
+msgstr ""
+
+#: apps/wei/models.py:209
+#, fuzzy
+#| msgid "transactions"
+msgid "Note transaction"
+msgstr "Transacción"
+
+#: apps/wei/models.py:212
+#, fuzzy
+#| msgid "created at"
+msgid "caution type"
+msgstr "tipo de fianza"
+
+#: apps/wei/models.py:216 apps/wei/templates/wei/weimembership_form.html:64
msgid "birth date"
msgstr "fecha de nacimiento"
-#: apps/wei/models.py:198 apps/wei/models.py:208
+#: apps/wei/models.py:222 apps/wei/models.py:232
msgid "Male"
msgstr "Hombre"
-#: apps/wei/models.py:199 apps/wei/models.py:209
+#: apps/wei/models.py:223 apps/wei/models.py:233
msgid "Female"
msgstr "Mujer"
-#: apps/wei/models.py:200
+#: apps/wei/models.py:224
msgid "Non binary"
msgstr "No binari@"
-#: apps/wei/models.py:202 apps/wei/templates/wei/attribute_bus_1A.html:22
+#: apps/wei/models.py:226 apps/wei/templates/wei/attribute_bus_1A.html:22
#: apps/wei/templates/wei/weimembership_form.html:55
msgid "gender"
msgstr "género"
-#: apps/wei/models.py:210
+#: apps/wei/models.py:234
msgid "Unisex"
msgstr "Unisex"
-#: apps/wei/models.py:213 apps/wei/templates/wei/weimembership_form.html:58
+#: apps/wei/models.py:237 apps/wei/templates/wei/weimembership_form.html:58
msgid "clothing cut"
msgstr "forma de ropa"
-#: apps/wei/models.py:226 apps/wei/templates/wei/weimembership_form.html:61
+#: apps/wei/models.py:250 apps/wei/templates/wei/weimembership_form.html:61
msgid "clothing size"
msgstr "medida de ropa"
-#: apps/wei/models.py:232 apps/wei/templates/wei/attribute_bus_1A.html:28
-#: apps/wei/templates/wei/weimembership_form.html:67
+#: apps/wei/models.py:256
msgid "health issues"
msgstr "problemas de salud"
-#: apps/wei/models.py:237 apps/wei/templates/wei/weimembership_form.html:70
+#: apps/wei/models.py:261 apps/wei/templates/wei/weimembership_form.html:70
msgid "emergency contact name"
msgstr "nombre del contacto de emergencia"
-#: apps/wei/models.py:238
+#: apps/wei/models.py:262
msgid "The emergency contact must not be a WEI participant"
msgstr "El contacto de emergencia no debe ser un participante de WEI"
-#: apps/wei/models.py:243 apps/wei/templates/wei/weimembership_form.html:73
+#: apps/wei/models.py:267 apps/wei/templates/wei/weimembership_form.html:73
msgid "emergency contact phone"
msgstr "teléfono del contacto de emergencia"
-#: apps/wei/models.py:248 apps/wei/templates/wei/weimembership_form.html:52
+#: apps/wei/models.py:272 apps/wei/templates/wei/weimembership_form.html:52
msgid "first year"
msgstr "primer año"
-#: apps/wei/models.py:249
+#: apps/wei/models.py:273
msgid "Tells if the user is new in the school."
msgstr "Indica si el usuario es nuevo en la escuela."
-#: apps/wei/models.py:254
+#: apps/wei/models.py:278
msgid "registration information"
msgstr "informaciones sobre la afiliación"
-#: apps/wei/models.py:255
+#: apps/wei/models.py:279
msgid ""
"Information about the registration (buses for old members, survey for the "
"new members), encoded in JSON"
@@ -3105,27 +3252,27 @@ msgstr ""
"Informaciones sobre la afiliacion (bus para miembros ancianos, cuestionario "
"para los nuevos miembros), registrado en JSON"
-#: apps/wei/models.py:261
+#: apps/wei/models.py:285
msgid "WEI User"
msgstr "Participante WEI"
-#: apps/wei/models.py:262
+#: apps/wei/models.py:286
msgid "WEI Users"
msgstr "Participantes WEI"
-#: apps/wei/models.py:334
+#: apps/wei/models.py:358
msgid "team"
msgstr "equipo"
-#: apps/wei/models.py:344
+#: apps/wei/models.py:368
msgid "WEI registration"
msgstr "Apuntación al WEI"
-#: apps/wei/models.py:348
+#: apps/wei/models.py:372
msgid "WEI membership"
msgstr "Afiliación al WEI"
-#: apps/wei/models.py:349
+#: apps/wei/models.py:373
msgid "WEI memberships"
msgstr "Afiliaciones al WEI"
@@ -3153,8 +3300,8 @@ msgstr "Año"
msgid "preferred bus"
msgstr "bus preferido"
-#: apps/wei/tables.py:210 apps/wei/templates/wei/bus_detail.html:32
-#: apps/wei/templates/wei/busteam_detail.html:50
+#: apps/wei/tables.py:210 apps/wei/templates/wei/bus_detail.html:36
+#: apps/wei/templates/wei/busteam_detail.html:52
msgid "Teams"
msgstr "Equipos"
@@ -3187,13 +3334,22 @@ msgid "Attribute first year members into buses"
msgstr "Repartir los primer años en los buses"
#: apps/wei/templates/wei/1A_list.html:15
-msgid "Start attribution!"
+#, fuzzy
+#| msgid "Start attribution!"
+msgid "Start attribution !"
msgstr "Empezar repartición !"
#: apps/wei/templates/wei/attribute_bus_1A.html:8
msgid "Bus attribution"
msgstr "Repartición de los buses"
+#: apps/wei/templates/wei/attribute_bus_1A.html:28
+#: apps/wei/templates/wei/weimembership_form.html:67
+#, fuzzy
+#| msgid "health issues"
+msgid "health issues or specific diet"
+msgstr "problemas de salud"
+
#: apps/wei/templates/wei/attribute_bus_1A.html:31
msgid "suggested bus"
msgstr "bus sugerido"
@@ -3210,53 +3366,59 @@ msgstr "Volver a la lista principal"
msgid "WEI fee (paid students)"
msgstr "Pago de entrada del WEI (estudiantes pagados)"
-#: apps/wei/templates/wei/base.html:47 apps/wei/templates/wei/base.html:54
-msgid "The BDE membership is included in the WEI registration."
-msgstr "La afiliación al BDE esta incluida en la afiliación WEI."
-
-#: apps/wei/templates/wei/base.html:51
+#: apps/wei/templates/wei/base.html:47
msgid "WEI fee (unpaid students)"
msgstr "Pago de entrada del WEI (estudiantes no pagados)"
-#: apps/wei/templates/wei/base.html:76
+#: apps/wei/templates/wei/base.html:53
+#, fuzzy
+#| msgid "total amount"
+msgid "Caution amount"
+msgstr "monto total"
+
+#: apps/wei/templates/wei/base.html:74
msgid "WEI list"
msgstr "Lista de los WEI"
-#: apps/wei/templates/wei/base.html:81 apps/wei/views.py:528
+#: apps/wei/templates/wei/base.html:79 apps/wei/views.py:550
msgid "Register 1A"
msgstr "Apuntar un 1A"
-#: apps/wei/templates/wei/base.html:85 apps/wei/views.py:614
+#: apps/wei/templates/wei/base.html:83 apps/wei/views.py:644
msgid "Register 2A+"
msgstr "Apuntar un 2A+"
-#: apps/wei/templates/wei/base.html:93
+#: apps/wei/templates/wei/base.html:91
msgid "Add bus"
msgstr "Añadir un bus"
-#: apps/wei/templates/wei/base.html:97
+#: apps/wei/templates/wei/base.html:95
msgid "View WEI"
msgstr "Ver un WEI"
-#: apps/wei/templates/wei/bus_detail.html:22
-#: apps/wei/templates/wei/busteam_detail.html:22
+#: apps/wei/templates/wei/bus_detail.html:21
+msgid "View club"
+msgstr "Ver club"
+
+#: apps/wei/templates/wei/bus_detail.html:26
+#: apps/wei/templates/wei/busteam_detail.html:24
msgid "Add team"
msgstr "Añadir un equipo"
-#: apps/wei/templates/wei/bus_detail.html:45
+#: apps/wei/templates/wei/bus_detail.html:49
msgid "Members"
msgstr "Miembros"
-#: apps/wei/templates/wei/bus_detail.html:54
-#: apps/wei/templates/wei/busteam_detail.html:60
+#: apps/wei/templates/wei/bus_detail.html:58
+#: apps/wei/templates/wei/busteam_detail.html:62
#: apps/wei/templates/wei/weimembership_list.html:31
msgid "View as PDF"
msgstr "Descargar un PDF"
#: apps/wei/templates/wei/survey.html:11
#: apps/wei/templates/wei/survey_closed.html:11
-#: apps/wei/templates/wei/survey_end.html:11 apps/wei/views.py:1028
-#: apps/wei/views.py:1083 apps/wei/views.py:1130
+#: apps/wei/templates/wei/survey_end.html:11 apps/wei/views.py:1159
+#: apps/wei/views.py:1214 apps/wei/views.py:1261
msgid "Survey WEI"
msgstr "Cuestionario WEI"
@@ -3300,7 +3462,7 @@ msgstr "Inscripciones sin validación"
msgid "Attribute buses"
msgstr "Repartición en los buses"
-#: apps/wei/templates/wei/weiclub_list.html:14 apps/wei/views.py:79
+#: apps/wei/templates/wei/weiclub_list.html:14 apps/wei/views.py:82
msgid "Create WEI"
msgstr "Crear un WEI"
@@ -3381,29 +3543,42 @@ msgstr ""
"resultará invalida. Tendrá que validarla una vez que el banco confirmará la "
"creación de la cuenta, o cambiará el método de pago."
+#: apps/wei/templates/wei/weimembership_form.html:147
+msgid "Required payments:"
+msgstr ""
+
#: apps/wei/templates/wei/weimembership_form.html:149
-#, python-format
-msgid ""
-"The note don't have enough money (%(balance)s, %(pretty_fee)s required). The "
-"registration may fail if you don't credit the note now."
-msgstr ""
-"La note no tiene suficiente dinero (%(balance)s, %(pretty_fee)s pedidos). La "
-"afiliación puede fallar si usted no acredita la note ahora."
+#, fuzzy, python-format
+#| msgid "membership fee (paid students)"
+msgid "Membership fees: %(amount)s"
+msgstr "Pagos de afiliación (estudiantes pagados)"
-#: apps/wei/templates/wei/weimembership_form.html:157
+#: apps/wei/templates/wei/weimembership_form.html:153
#, python-format
-msgid ""
-"The note has enough money (%(pretty_fee)s required), the registration is "
-"possible."
-msgstr ""
-"La note tiene suficiente dinero (%(pretty_fee)s pedidos), la afiliación es "
-"posible."
+msgid "Deposit (by Note transaction): %(amount)s"
+msgstr "Fianza (transacción) : %(amount)s"
-#: apps/wei/templates/wei/weimembership_form.html:166
+#: apps/wei/templates/wei/weimembership_form.html:156
+#: apps/wei/templates/wei/weimembership_form.html:163
+#, python-format
+msgid "Total needed: %(total)s"
+msgstr "Total necesario : %(total)s"
+
+#: apps/wei/templates/wei/weimembership_form.html:160
+#, python-format
+msgid "Deposit (by check): %(amount)s"
+msgstr "Fianza (cheque) : %(amount)s"
+
+#: apps/wei/templates/wei/weimembership_form.html:168
+#, python-format
+msgid "Current balance: %(balance)s"
+msgstr "Saldo actual : %(balance)s"
+
+#: apps/wei/templates/wei/weimembership_form.html:176
msgid "The user didn't give her/his caution check."
msgstr "El usuario no dio su cheque de garantía."
-#: apps/wei/templates/wei/weimembership_form.html:174
+#: apps/wei/templates/wei/weimembership_form.html:184
msgid ""
"This user is not a member of the Kfet club for the coming year. The "
"membership will be processed automatically, the WEI registration includes "
@@ -3437,117 +3612,373 @@ msgstr "No hay pre-inscripción encontrada con esta entrada."
msgid "View validated memberships..."
msgstr "Ver las inscripciones validadas..."
-#: apps/wei/views.py:58
+#: apps/wei/views.py:61
msgid "Search WEI"
msgstr "Buscar un WEI"
-#: apps/wei/views.py:109
+#: apps/wei/views.py:112
msgid "WEI Detail"
msgstr "Detalles del WEI"
-#: apps/wei/views.py:208
+#: apps/wei/views.py:212
msgid "View members of the WEI"
msgstr "Ver los miembros del WEI"
-#: apps/wei/views.py:236
+#: apps/wei/views.py:245
msgid "Find WEI Membership"
msgstr "Buscar una afiliación al WEI"
-#: apps/wei/views.py:246
+#: apps/wei/views.py:255
msgid "View registrations to the WEI"
msgstr "Ver las inscripciones al WEI"
-#: apps/wei/views.py:270
+#: apps/wei/views.py:284
msgid "Find WEI Registration"
msgstr "Buscar una inscripción al WEI"
-#: apps/wei/views.py:281
+#: apps/wei/views.py:295
msgid "Update the WEI"
msgstr "Modificar el WEI"
-#: apps/wei/views.py:302
+#: apps/wei/views.py:316
msgid "Create new bus"
msgstr "Añadir un bus"
-#: apps/wei/views.py:340
+#: apps/wei/views.py:354
msgid "Update bus"
msgstr "Modificar el bus"
-#: apps/wei/views.py:372
+#: apps/wei/views.py:386
msgid "Manage bus"
msgstr "Gestionar el bus"
-#: apps/wei/views.py:399
+#: apps/wei/views.py:413
msgid "Create new team"
msgstr "Añadir un equipo"
-#: apps/wei/views.py:439
+#: apps/wei/views.py:457
msgid "Update team"
msgstr "Modificar el equipo"
-#: apps/wei/views.py:470
+#: apps/wei/views.py:492
msgid "Manage WEI team"
msgstr "Gestionar el equipo"
-#: apps/wei/views.py:492
+#: apps/wei/views.py:514
msgid "Register first year student to the WEI"
msgstr "Registrar un 1A al WEI"
-#: apps/wei/views.py:550 apps/wei/views.py:649
+#: apps/wei/views.py:580 apps/wei/views.py:689
msgid "This user is already registered to this WEI."
msgstr "Este usuario ya afilió a este WEI."
-#: apps/wei/views.py:555
+#: apps/wei/views.py:585
msgid ""
"This user can't be in her/his first year since he/she has already "
"participated to a WEI."
msgstr "Este usuario no puede ser un 1A porque ya participó en un WEI."
-#: apps/wei/views.py:578
+#: apps/wei/views.py:608
msgid "Register old student to the WEI"
msgstr "Registrar un 2A+ al WEI"
-#: apps/wei/views.py:633 apps/wei/views.py:721
+#: apps/wei/views.py:663 apps/wei/views.py:768
msgid "You already opened an account in the Société générale."
msgstr "Usted ya abrió una cuenta a la Société Générale."
-#: apps/wei/views.py:685
+#: apps/wei/views.py:676 apps/wei/views.py:785
+msgid "Choose how you want to pay the deposit"
+msgstr ""
+
+#: apps/wei/views.py:728
msgid "Update WEI Registration"
msgstr "Modificar la inscripción WEI"
-#: apps/wei/views.py:795
+#: apps/wei/views.py:810
+#, fuzzy
+#| msgid "The BDE membership is included in the WEI registration."
+msgid "No membership found for this registration"
+msgstr "La afiliación al BDE esta incluida en la afiliación WEI."
+
+#: apps/wei/views.py:819
+#| msgid ""
+#| "You don't have the permission to add an instance of model {app_label}."
+#| "{model_name}."
+msgid "You don't have the permission to update memberships"
+msgstr ""
+"Usted no tiene permiso a añadir una instancia al modelo {app_label}."
+"{model_name}."
+
+#: apps/wei/views.py:825
+#, python-format
+#| msgid ""
+#| "You don't have the permission to delete this instance of model "
+#| "{app_label}.{model_name}."
+msgid "You don't have the permission to update the field %(field)s"
+msgstr "Usted no tiene permiso a modificar el campo %(field)s"
+
+#: apps/wei/views.py:870
msgid "Delete WEI registration"
msgstr "Suprimir la inscripción WEI"
-#: apps/wei/views.py:806
+#: apps/wei/views.py:881
msgid "You don't have the right to delete this WEI registration."
msgstr "Usted no tiene derecho a suprimir esta inscripción WEI."
-#: apps/wei/views.py:824
+#: apps/wei/views.py:899
msgid "Validate WEI registration"
msgstr "Validar la inscripción WEI"
-#: apps/wei/views.py:1223
+#: apps/wei/views.py:985
+msgid "Please make sure the check is given before validating the registration"
+msgstr ""
+"Por favor asegúrese de que el cheque se entrega antes de validar el registro"
+
+#: apps/wei/views.py:991
+#| msgid "credit transaction"
+msgid "Create deposit transaction"
+msgstr "Crear transacción de crédito"
+
+#: apps/wei/views.py:992
+#, python-format
+msgid ""
+"A transaction of %(amount).2f€ will be created from the user's Note account"
+msgstr ""
+
+#: apps/wei/views.py:1087
+#, python-format
+#| msgid ""
+#| "This user don't have enough money to join this club, and can't have a "
+#| "negative balance."
+msgid ""
+"This user doesn't have enough money. "
+"Current balance: %(balance)d€, credit: %(credit)d€, needed: %(needed)d€"
+msgstr ""
+"Este usuario no tiene suficiente dinero. "
+"Saldo actual : %(balance)d€, crédito: %(credit)d€, requerido: %(needed)d€"
+
+#: apps/wei/views.py:1140
+#, python-format
+#| msgid "created at"
+msgid "Caution %(name)s"
+msgstr "Fianza %(name)s"
+
+#: apps/wei/views.py:1354
msgid "Attribute buses to first year members"
msgstr "Repartir los primer años en los buses"
-#: apps/wei/views.py:1248
+#: apps/wei/views.py:1379
msgid "Attribute bus"
msgstr "Repartir en un bus"
-#: note_kfet/settings/base.py:173
+#: apps/wei/views.py:1419
+msgid ""
+"No first year student without a bus found. Either all of them have a bus, or "
+"none has filled the survey yet."
+msgstr ""
+
+#: apps/wrapped/apps.py:10
+msgid "wrapped"
+msgstr ""
+
+#: apps/wrapped/models.py:40
+#, fuzzy
+#| msgid "Regenerate token"
+msgid "generated"
+msgstr "Regenerar token"
+
+#: apps/wrapped/models.py:45
+msgid "public"
+msgstr ""
+
+#: apps/wrapped/models.py:53
+msgid "bde"
+msgstr ""
+
+#: apps/wrapped/models.py:65
+msgid "data json"
+msgstr ""
+
+#: apps/wrapped/models.py:66
+msgid "data in the wrapped and generated by the script generate_wrapped"
+msgstr ""
+
+#: apps/wrapped/models.py:70 note_kfet/templates/base.html:114
+msgid "Wrapped"
+msgstr ""
+
+#: apps/wrapped/models.py:71
+msgid "Wrappeds"
+msgstr ""
+
+#: apps/wrapped/tables.py:40
+msgid "view the wrapped"
+msgstr ""
+
+#: apps/wrapped/tables.py:55
+msgid "Click to make this wrapped private"
+msgstr ""
+
+#: apps/wrapped/tables.py:56
+msgid "Click to make this wrapped public"
+msgstr ""
+
+#: apps/wrapped/tables.py:67
+msgid "Share"
+msgstr ""
+
+#: apps/wrapped/tables.py:73
+msgid "Click to copy the link in the press paper"
+msgstr ""
+
+#: apps/wrapped/tables.py:81
+msgid "Copy link"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_base.html:16
+#: note_kfet/templates/base.html:14
+msgid "The ENS Paris-Saclay BDE note."
+msgstr "La note del BDE de la ENS Paris-Saclay."
+
+#: apps/wrapped/templates/wrapped/1/wrapped_base.html:58
+#, fuzzy
+#| msgid "The Note Kfet team."
+msgid "The NoteKfet this year it's also"
+msgstr "El equipo Note Kfet."
+
+#: apps/wrapped/templates/wrapped/1/wrapped_base.html:60
+#, fuzzy
+#| msgid "transactions"
+msgid " transactions"
+msgstr "transacciones"
+
+#: apps/wrapped/templates/wrapped/1/wrapped_base.html:61
+msgid " parties"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_base.html:62
+#, fuzzy
+#| msgid "entries"
+msgid " Pot entries"
+msgstr "entradas"
+
+#: apps/wrapped/templates/wrapped/1/wrapped_base.html:72
+msgid " old dickhead behind the bar"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_club.html:9
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:9
+msgid "NoteKfet Wrapped"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_club.html:11
+msgid "Your best consumer:"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_club.html:13
+msgid "Your worst creditor:"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_club.html:16
+msgid "party·ies organised"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_club.html:17
+#, fuzzy
+#| msgid "Add member"
+msgid "distinct members"
+msgstr "Añadir un miembro"
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_club.html:26
+msgid "Infortunately, you doesn't have consumer this year"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_club.html:28
+msgid "Congratulations you are a real rat !"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:13
+msgid "You participate to the wei: "
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:13
+#, fuzzy
+#| msgid "in the team"
+msgid "in the"
+msgstr "en el equipo"
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:18
+msgid "pots !"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:27
+msgid "Your first conso of the year: "
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:28
+msgid "Your prefered consumtion category: "
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:41
+msgid ": it's the number of time your reload your note"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:44
+msgid "Your overall expenses: "
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:47
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:60
+msgid "with"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/1/wrapped_view_user.html:57
+msgid "Your expenses to BDE: "
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/wrapped_list.html:13
+msgid "My wrapped"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/wrapped_list.html:22
+msgid "Public wrapped"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/wrapped_list.html:33
+msgid ""
+"Do not forget to ask permission to people who are in your wrapped before to "
+"make them public"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/wrapped_list.html:40
+msgid "Link copied"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/wrapped_list.html:65
+msgid "Wrapped is private"
+msgstr ""
+
+#: apps/wrapped/templates/wrapped/wrapped_list.html:66
+msgid "Wrapped is public"
+msgstr ""
+
+#: apps/wrapped/views.py:28
+msgid "List of wrapped"
+msgstr ""
+
+#: note_kfet/settings/base.py:177
msgid "German"
msgstr "Alemán"
-#: note_kfet/settings/base.py:174
+#: note_kfet/settings/base.py:178
msgid "English"
msgstr "Ingles"
-#: note_kfet/settings/base.py:175
+#: note_kfet/settings/base.py:179
msgid "Spanish"
msgstr "Español"
-#: note_kfet/settings/base.py:176
+#: note_kfet/settings/base.py:180
msgid "French"
msgstr "Francés"
@@ -3605,14 +4036,6 @@ msgstr ""
msgid "Reset"
msgstr "Reiniciar"
-#: note_kfet/templates/base.html:14
-msgid "The ENS Paris-Saclay BDE note."
-msgstr "La note del BDE de la ENS Paris-Saclay."
-
-#: note_kfet/templates/base.html:72
-msgid "Food"
-msgstr ""
-
#: note_kfet/templates/base.html:84
msgid "Users"
msgstr "Usuarios"
@@ -3621,26 +4044,26 @@ msgstr "Usuarios"
msgid "Clubs"
msgstr "Clubs"
-#: note_kfet/templates/base.html:119
+#: note_kfet/templates/base.html:125
msgid "Admin"
msgstr ""
-#: note_kfet/templates/base.html:133
+#: note_kfet/templates/base.html:139
msgid "My account"
msgstr "Mi cuenta"
-#: note_kfet/templates/base.html:136
+#: note_kfet/templates/base.html:142
msgid "Log out"
msgstr "Desconectarse"
-#: note_kfet/templates/base.html:144
+#: note_kfet/templates/base.html:150
#: note_kfet/templates/registration/signup.html:6
#: note_kfet/templates/registration/signup.html:11
#: note_kfet/templates/registration/signup.html:28
msgid "Sign up"
msgstr "Registrar"
-#: note_kfet/templates/base.html:151
+#: note_kfet/templates/base.html:157
#: note_kfet/templates/registration/login.html:6
#: note_kfet/templates/registration/login.html:15
#: note_kfet/templates/registration/login.html:38
@@ -3648,7 +4071,7 @@ msgstr "Registrar"
msgid "Log in"
msgstr "Conectarse"
-#: note_kfet/templates/base.html:165
+#: note_kfet/templates/base.html:171
msgid ""
"You are not a BDE member anymore. Please renew your membership if you want "
"to use the note."
@@ -3656,7 +4079,7 @@ msgstr ""
"Usted ya no está miembro del BDE. Por favor renueva su afiliación si quiere "
"usar la note."
-#: note_kfet/templates/base.html:171
+#: note_kfet/templates/base.html:177
msgid ""
"Your e-mail address is not validated. Please check your mail inbox and click "
"on the validation link."
@@ -3664,7 +4087,7 @@ msgstr ""
"Su correo electrónico no fue validado. Por favor mire en sus correos y haga "
"clic en el enlace de validación."
-#: note_kfet/templates/base.html:177
+#: note_kfet/templates/base.html:183
msgid ""
"You declared that you opened a bank account in the Société générale. The "
"bank did not validate the creation of the account to the BDE, so the "
@@ -3677,19 +4100,19 @@ msgstr ""
"pagados. El proceso de convalidación puede durar unos días. Por favor "
"comprueba que fue hasta el final de la creación de la cuenta."
-#: note_kfet/templates/base.html:200
+#: note_kfet/templates/base.html:206
msgid "Contact us"
msgstr "Contactarnos"
-#: note_kfet/templates/base.html:202
+#: note_kfet/templates/base.html:208
msgid "Technical Support"
msgstr "Soporte técnico"
-#: note_kfet/templates/base.html:204
+#: note_kfet/templates/base.html:210
msgid "Charte Info (FR)"
msgstr ""
-#: note_kfet/templates/base.html:206
+#: note_kfet/templates/base.html:212
msgid "FAQ (FR)"
msgstr "FAQ (FR)"
@@ -3914,16 +4337,6 @@ msgstr ""
"pagar su afiliación. Tambien tiene que validar su correo electronico con el "
"enlace que recibió."
-#, fuzzy
-#~| msgid "invalidate"
-#~ msgid "Enter a valid color."
-#~ msgstr "invalidar"
-
-#, fuzzy
-#~| msgid "invalidate"
-#~ msgid "Enter a valid value."
-#~ msgstr "invalidar"
-
#, fuzzy
#~| msgid "Invitation"
#~ msgid "Syndication"
@@ -3934,6 +4347,11 @@ msgstr ""
#~ msgid "That page contains no results"
#~ msgstr "No hay resultado."
+#, fuzzy
+#~| msgid "invalidate"
+#~ msgid "Enter a valid value."
+#~ msgstr "invalidar"
+
#, fuzzy
#~| msgid "invalidate"
#~ msgid "Enter a valid URL."
@@ -3969,16 +4387,16 @@ msgstr ""
#~ msgid "Enter a number."
#~ msgstr "número de teléfono"
-#, fuzzy
-#~| msgid "add"
-#~ msgid "and"
-#~ msgstr "añadir"
-
#, fuzzy, python-format
#~| msgid "A template with this name already exist"
#~ msgid "%(model_name)s with this %(field_labels)s already exists."
#~ msgstr "Un plantilla de transacción con un nombre similar ya existe"
+#, fuzzy, python-format
+#~| msgid "This activity is not validated yet."
+#~ msgid "Value %(value)r is not a valid choice."
+#~ msgstr "Esta actividad no fue validada por ahora."
+
#, fuzzy
#~| msgid "This image cannot be loaded."
#~ msgid "This field cannot be null."
@@ -4024,11 +4442,26 @@ msgstr ""
#~ msgid "IP address"
#~ msgstr "Dirección IP"
+#, fuzzy, python-format
+#~| msgid "This activity is not validated yet."
+#~ msgid "“%(value)s” is not a valid UUID."
+#~ msgstr "Esta actividad no fue validada por ahora."
+
#, fuzzy
#~| msgid "Invoice identifier"
#~ msgid "Universally unique identifier"
#~ msgstr "Numero de factura"
+#, fuzzy
+#~| msgid "Object"
+#~ msgid "A JSON object"
+#~ msgstr "Asunto"
+
+#, fuzzy
+#~| msgid "This address must be valid."
+#~ msgid "Value must be valid JSON."
+#~ msgstr "Este correo tiene que ser valido."
+
#, fuzzy, python-format
#~| msgid "A template with this name already exist"
#~ msgid "%(model)s instance with %(field)s %(value)r does not exist."
@@ -4074,9 +4507,14 @@ msgstr ""
#~ msgid "Enter a valid UUID."
#~ msgstr "invalidar"
+#, fuzzy
+#~| msgid "invalidate"
+#~ msgid "Enter a valid JSON."
+#~ msgstr "invalidar"
+
#, fuzzy, python-format
#~| msgid "This activity is not validated yet."
-#~ msgid "\"%(pk)s\" is not a valid value."
+#~ msgid "“%(pk)s” is not a valid value."
#~ msgstr "Esta actividad no fue validada por ahora."
#, fuzzy
@@ -4119,6 +4557,11 @@ msgstr ""
#~ msgid "feb"
#~ msgstr "pago"
+#, fuzzy
+#~| msgid "add"
+#~ msgid "jun"
+#~ msgstr "añadir"
+
#, fuzzy
#~| msgid "product"
#~ msgid "oct"
@@ -4161,8 +4604,8 @@ msgstr ""
#, fuzzy, python-format
#~| msgid "year"
-#~ msgid "%d year"
-#~ msgid_plural "%d years"
+#~ msgid "%(num)d year"
+#~ msgid_plural "%(num)d years"
#~ msgstr[0] "año"
#~ msgstr[1] "año"
@@ -4223,9 +4666,78 @@ msgstr ""
#, fuzzy
#~| msgid "Application requires following permissions:"
-#~ msgid "Application requires following permissions"
+#~ msgid "Application requires the following permissions"
#~ msgstr "La aplicación necesita los derechos siguientes :"
+#~ msgid "The BDE membership is included in the WEI registration."
+#~ msgstr "La afiliación al BDE esta incluida en la afiliación WEI."
+
+#, python-format
+#~ msgid ""
+#~ "The note don't have enough money (%(balance)s, %(pretty_fee)s required). "
+#~ "The registration may fail if you don't credit the note now."
+#~ msgstr ""
+#~ "La note no tiene suficiente dinero (%(balance)s, %(pretty_fee)s pedidos). "
+#~ "La afiliación puede fallar si usted no acredita la note ahora."
+
+#, python-format
+#~ msgid ""
+#~ "The note has enough money (%(pretty_fee)s required), the registration is "
+#~ "possible."
+#~ msgstr ""
+#~ "La note tiene suficiente dinero (%(pretty_fee)s pedidos), la afiliación "
+#~ "es posible."
+
+#, fuzzy
+#~| msgid "You don't have the right to delete this WEI registration."
+#~ msgid "You don't have the permission to validate registrations"
+#~ msgstr "Usted no tiene derecho a suprimir esta inscripción WEI."
+
+#, fuzzy
+#~| msgid "active"
+#~ msgid "is active"
+#~ msgstr "activo"
+
+#, fuzzy
+#~| msgid "invalidate"
+#~ msgid "Arrival date"
+#~ msgstr "invalidar"
+
+#, fuzzy
+#~| msgid "active"
+#~ msgid "Active"
+#~ msgstr "activo"
+
+#, fuzzy
+#~| msgid "phone number"
+#~ msgid "number"
+#~ msgstr "número de teléfono"
+
+#, fuzzy
+#~| msgid "Profile detail"
+#~ msgid "View details"
+#~ msgstr "Detalles del usuario"
+
+#, fuzzy
+#~| msgid "There is no results."
+#~ msgid "There is no meal."
+#~ msgstr "No hay resultado."
+
+#, fuzzy
+#~| msgid "This credit is already validated."
+#~ msgid "The product is already prepared"
+#~ msgstr "Este crédito ya fue validado."
+
+#, fuzzy
+#~| msgid "Update team"
+#~ msgid "Update a meal"
+#~ msgstr "Modificar el equipo"
+
+#, fuzzy
+#~| msgid "invalidate"
+#~ msgid "Enter a valid color."
+#~ msgstr "invalidar"
+
#, fuzzy
#~| msgid "WEI registration"
#~ msgid "In preparation"
diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po
index 23ba06dd..70aa20ce 100644
--- a/locale/fr/LC_MESSAGES/django.po
+++ b/locale/fr/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-04-30 11:44+0200\n"
+"POT-Creation-Date: 2025-06-20 13:50+0200\n"
"PO-Revision-Date: 2022-04-11 22:05+0200\n"
"Last-Translator: bleizi \n"
"Language-Team: French \n"
@@ -66,7 +66,7 @@ msgstr "Vous ne pouvez pas inviter plus de 3 personnes à cette activité."
#: apps/note/models/transactions.py:46 apps/note/models/transactions.py:299
#: apps/permission/models.py:329
#: apps/registration/templates/registration/future_profile_detail.html:16
-#: apps/wei/models.py:67 apps/wei/models.py:131 apps/wei/tables.py:282
+#: apps/wei/models.py:72 apps/wei/models.py:145 apps/wei/tables.py:282
#: apps/wei/templates/wei/base.html:26
#: apps/wei/templates/wei/weimembership_form.html:14 apps/wrapped/models.py:16
msgid "name"
@@ -101,7 +101,7 @@ msgstr "types d'activité"
#: apps/activity/models.py:68
#: apps/activity/templates/activity/includes/activity_info.html:19
#: apps/note/models/transactions.py:82 apps/permission/models.py:109
-#: apps/permission/models.py:188 apps/wei/models.py:78 apps/wei/models.py:142
+#: apps/permission/models.py:188 apps/wei/models.py:92 apps/wei/models.py:156
msgid "description"
msgstr "description"
@@ -122,7 +122,7 @@ msgstr "type"
#: apps/activity/models.py:91 apps/logs/models.py:22 apps/member/models.py:325
#: apps/note/models/notes.py:148 apps/treasury/models.py:294
-#: apps/wei/models.py:171 apps/wei/templates/wei/attribute_bus_1A.html:13
+#: apps/wei/models.py:185 apps/wei/templates/wei/attribute_bus_1A.html:13
#: apps/wei/templates/wei/survey.html:15
msgid "user"
msgstr "utilisateur⋅rice"
@@ -291,14 +291,14 @@ msgstr "Type"
#: apps/activity/tables.py:86 apps/member/forms.py:199
#: apps/registration/forms.py:91 apps/treasury/forms.py:131
-#: apps/wei/forms/registration.py:110
+#: apps/wei/forms/registration.py:129
msgid "Last name"
msgstr "Nom de famille"
#: apps/activity/tables.py:88 apps/member/forms.py:204
#: apps/note/templates/note/transaction_form.html:138
#: apps/registration/forms.py:96 apps/treasury/forms.py:133
-#: apps/wei/forms/registration.py:115
+#: apps/wei/forms/registration.py:134
msgid "First name"
msgstr "Prénom"
@@ -341,6 +341,18 @@ msgstr "Liste des invité·e·s"
msgid "Guest deleted"
msgstr "Invité·e supprimé·e"
+#: apps/activity/templates/activity/activity_detail.html:99
+#, fuzzy
+#| msgid "Are you sure you want to delete this token?"
+msgid "Are you sure you want to delete this activity?"
+msgstr "Êtes-vous sûr⋅e de vouloir supprimer ce jeton ?"
+
+#: apps/activity/templates/activity/activity_detail.html:110
+#, fuzzy
+#| msgid "Activity detail"
+msgid "Activity deleted"
+msgstr "Détails de l'activité"
+
#: apps/activity/templates/activity/activity_entry.html:14
#: apps/note/models/transactions.py:261
#: apps/note/templates/note/transaction_form.html:17
@@ -392,7 +404,7 @@ msgstr "Entrée effectuée !"
#: apps/treasury/forms.py:89 apps/treasury/forms.py:143
#: apps/treasury/templates/treasury/invoice_form.html:74
#: apps/wei/templates/wei/bus_form.html:17
-#: apps/wei/templates/wei/busteam_form.html:17
+#: apps/wei/templates/wei/busteam_form.html:18
#: apps/wei/templates/wei/weiclub_form.html:17
#: apps/wei/templates/wei/weiregistration_form.html:18
msgid "Submit"
@@ -448,6 +460,13 @@ msgid "edit"
msgstr "modifier"
#: apps/activity/templates/activity/includes/activity_info.html:74
+#: apps/logs/models.py:65 apps/note/tables.py:230 apps/note/tables.py:279
+#: apps/permission/models.py:126 apps/treasury/tables.py:38
+#: apps/wei/tables.py:74
+msgid "delete"
+msgstr "supprimer"
+
+#: apps/activity/templates/activity/includes/activity_info.html:77
msgid "Invite"
msgstr "Inviter"
@@ -467,25 +486,40 @@ msgstr "Détails de l'activité"
msgid "Update activity"
msgstr "Modifier l'activité"
-#: apps/activity/views.py:178
+#: apps/activity/views.py:177
+#, fuzzy
+#| msgid ""
+#| "You are not allowed to display the entry interface for this activity."
+msgid "You are not allowed to delete this activity."
+msgstr ""
+"Vous n'êtes pas autorisé·e à afficher l'interface des entrées pour cette "
+"activité."
+
+#: apps/activity/views.py:180
+#, fuzzy
+#| msgid "This activity is closed."
+msgid "This activity is valid."
+msgstr "Cette activité est fermée."
+
+#: apps/activity/views.py:206
msgid "Invite guest to the activity \"{}\""
msgstr "Invitation pour l'activité « {} »"
-#: apps/activity/views.py:218
+#: apps/activity/views.py:246
msgid "You are not allowed to display the entry interface for this activity."
msgstr ""
"Vous n'êtes pas autorisé·e à afficher l'interface des entrées pour cette "
"activité."
-#: apps/activity/views.py:221
+#: apps/activity/views.py:249
msgid "This activity does not support activity entries."
msgstr "Cette activité ne requiert pas d'entrées."
-#: apps/activity/views.py:224
+#: apps/activity/views.py:252
msgid "This activity is closed."
msgstr "Cette activité est fermée."
-#: apps/activity/views.py:329
+#: apps/activity/views.py:357
msgid "Entry for activity \"{}\""
msgstr "Entrées pour l'activité « {} »"
@@ -759,41 +793,41 @@ msgstr "Ajouter un nouveau QR-code"
msgid "Add an aliment"
msgstr "Ajouter un nouvel aliment"
-#: apps/food/views.py:226
+#: apps/food/views.py:235
msgid "Add a meal"
msgstr "Ajouter un plat"
-#: apps/food/views.py:262
+#: apps/food/views.py:275
msgid "Manage ingredients of:"
msgstr "Gestion des ingrédienrs de :"
-#: apps/food/views.py:276 apps/food/views.py:284
+#: apps/food/views.py:289 apps/food/views.py:297
#, python-brace-format
msgid "Fully used in {meal}"
msgstr "Aliment entièrement utilisé dans : {meal}"
-#: apps/food/views.py:323
+#: apps/food/views.py:344
msgid "Add the ingredient:"
msgstr "Ajouter l'ingrédient"
-#: apps/food/views.py:349
+#: apps/food/views.py:370
#, python-brace-format
msgid "Food fully used in : {meal.name}"
msgstr "Aliment entièrement utilisé dans : {meal.name}"
-#: apps/food/views.py:368
+#: apps/food/views.py:389
msgid "Update an aliment"
msgstr "Modifier un aliment"
-#: apps/food/views.py:416
+#: apps/food/views.py:437
msgid "Details of:"
msgstr "Détails de :"
-#: apps/food/views.py:426 apps/treasury/tables.py:149
+#: apps/food/views.py:447 apps/treasury/tables.py:149
msgid "Yes"
msgstr "Oui"
-#: apps/food/views.py:428 apps/member/models.py:99 apps/treasury/tables.py:149
+#: apps/food/views.py:449 apps/member/models.py:99 apps/treasury/tables.py:149
msgid "No"
msgstr "Non"
@@ -825,12 +859,6 @@ msgstr "nouvelles données"
msgid "create"
msgstr "créer"
-#: apps/logs/models.py:65 apps/note/tables.py:230 apps/note/tables.py:279
-#: apps/permission/models.py:126 apps/treasury/tables.py:38
-#: apps/wei/tables.py:74
-msgid "delete"
-msgstr "supprimer"
-
#: apps/logs/models.py:68
msgid "action"
msgstr "action"
@@ -935,12 +963,12 @@ msgid "Check this case if the Société Générale paid the inscription."
msgstr "Cochez cette case si la Société Générale a payé l'inscription."
#: apps/member/forms.py:185 apps/registration/forms.py:78
-#: apps/wei/forms/registration.py:97
+#: apps/wei/forms/registration.py:116
msgid "Credit type"
msgstr "Type de rechargement"
#: apps/member/forms.py:186 apps/registration/forms.py:79
-#: apps/wei/forms/registration.py:98
+#: apps/wei/forms/registration.py:117
msgid "No credit"
msgstr "Pas de rechargement"
@@ -949,13 +977,13 @@ msgid "You can credit the note of the user."
msgstr "Vous pouvez créditer la note de l'utilisateur⋅rice avant l'adhésion."
#: apps/member/forms.py:192 apps/registration/forms.py:84
-#: apps/wei/forms/registration.py:103
+#: apps/wei/forms/registration.py:122
msgid "Credit amount"
msgstr "Montant à créditer"
#: apps/member/forms.py:209 apps/note/templates/note/transaction_form.html:144
#: apps/registration/forms.py:101 apps/treasury/forms.py:135
-#: apps/wei/forms/registration.py:120
+#: apps/wei/forms/registration.py:139
msgid "Bank"
msgstr "Banque"
@@ -1160,7 +1188,7 @@ msgstr "Activez votre compte Note Kfet"
#: apps/member/templates/member/includes/club_info.html:55
#: apps/member/templates/member/includes/profile_info.html:40
#: apps/registration/templates/registration/future_profile_detail.html:22
-#: apps/wei/templates/wei/base.html:70
+#: apps/wei/templates/wei/base.html:68
#: apps/wei/templates/wei/weimembership_form.html:20
msgid "email"
msgstr "courriel"
@@ -1212,7 +1240,7 @@ msgid "add to registration form"
msgstr "ajouter au formulaire d'inscription"
#: apps/member/models.py:268 apps/member/models.py:331
-#: apps/note/models/notes.py:176
+#: apps/note/models/notes.py:176 apps/wei/models.py:86
msgid "club"
msgstr "club"
@@ -1413,13 +1441,13 @@ msgstr "cotisation pour adhérer"
#: apps/member/templates/member/includes/club_info.html:43
#: apps/member/templates/member/includes/profile_info.html:55
#: apps/treasury/templates/treasury/sogecredit_detail.html:24
-#: apps/wei/templates/wei/base.html:60
+#: apps/wei/templates/wei/base.html:58
msgid "balance"
msgstr "solde du compte"
#: apps/member/templates/member/includes/club_info.html:47
#: apps/member/templates/member/includes/profile_info.html:20
-#: apps/note/models/notes.py:287 apps/wei/templates/wei/base.html:66
+#: apps/note/models/notes.py:287 apps/wei/templates/wei/base.html:64
msgid "aliases"
msgstr "alias"
@@ -1597,7 +1625,7 @@ msgstr "Modifier le club"
msgid "Add new member to the club"
msgstr "Ajouter un·e nouvelleau membre au club"
-#: apps/member/views.py:750 apps/wei/views.py:991
+#: apps/member/views.py:750
msgid ""
"This user don't have enough money to join this club, and can't have a "
"negative balance."
@@ -1934,8 +1962,8 @@ msgstr ""
"mode de paiement et un⋅e utilisateur⋅rice ou un club"
#: apps/note/models/transactions.py:357 apps/note/models/transactions.py:360
-#: apps/note/models/transactions.py:363 apps/wei/views.py:996
-#: apps/wei/views.py:1000
+#: apps/note/models/transactions.py:363 apps/wei/views.py:1097
+#: apps/wei/views.py:1101
msgid "This field is required."
msgstr "Ce champ est requis."
@@ -1969,10 +1997,10 @@ msgstr "Ajouter"
#: apps/note/tables.py:262 apps/note/templates/note/conso_form.html:151
#: apps/wei/tables.py:49 apps/wei/tables.py:50
-#: apps/wei/templates/wei/base.html:89
-#: apps/wei/templates/wei/bus_detail.html:20
+#: apps/wei/templates/wei/base.html:87
+#: apps/wei/templates/wei/bus_detail.html:24
#: apps/wei/templates/wei/busteam_detail.html:20
-#: apps/wei/templates/wei/busteam_detail.html:40
+#: apps/wei/templates/wei/busteam_detail.html:42
#: note_kfet/templates/oauth2_provider/application_detail.html:38
msgid "Edit"
msgstr "Éditer"
@@ -2440,7 +2468,7 @@ msgstr ""
#: apps/registration/templates/registration/future_profile_detail.html:73
#: apps/wei/templates/wei/weimembership_form.html:127
-#: apps/wei/templates/wei/weimembership_form.html:186
+#: apps/wei/templates/wei/weimembership_form.html:196
msgid "Validate registration"
msgstr "Valider l'inscription"
@@ -2742,7 +2770,7 @@ msgid "Transaction count"
msgstr "Nombre de transactions"
#: apps/treasury/tables.py:71 apps/treasury/tables.py:73
-#: apps/wrapped/tables.py:42
+#: apps/wei/templates/wei/busteam_detail.html:22 apps/wrapped/tables.py:42
msgid "View"
msgstr "Voir"
@@ -2966,24 +2994,24 @@ msgstr "Liste des crédits de la Société générale"
msgid "Manage credits from the Société générale"
msgstr "Gérer les crédits de la Société générale"
-#: apps/wei/apps.py:10 apps/wei/models.py:37 apps/wei/models.py:38
-#: apps/wei/models.py:62 apps/wei/models.py:178
+#: apps/wei/apps.py:10 apps/wei/models.py:42 apps/wei/models.py:43
+#: apps/wei/models.py:67 apps/wei/models.py:192
#: note_kfet/templates/base.html:108
msgid "WEI"
msgstr "WEI"
-#: apps/wei/forms/registration.py:36
+#: apps/wei/forms/registration.py:37
msgid "The selected user is not validated. Please validate its account first"
msgstr ""
"L'utilisateur·rice sélectionné·e n'est pas validé·e. Merci de d'abord "
"valider son compte"
-#: apps/wei/forms/registration.py:60 apps/wei/models.py:126
-#: apps/wei/models.py:324
+#: apps/wei/forms/registration.py:84 apps/wei/models.py:140
+#: apps/wei/models.py:348
msgid "bus"
msgstr "bus"
-#: apps/wei/forms/registration.py:61
+#: apps/wei/forms/registration.py:85
msgid ""
"This choice is not definitive. The WEI organizers are free to attribute for "
"you a bus and a team, in particular if you are a free eletron."
@@ -2992,11 +3020,11 @@ msgstr ""
"vous attribuer un bus et une équipe, en particulier si vous êtes un·e "
"électron libre."
-#: apps/wei/forms/registration.py:68
+#: apps/wei/forms/registration.py:92
msgid "Team"
msgstr "Équipe"
-#: apps/wei/forms/registration.py:70
+#: apps/wei/forms/registration.py:94
msgid ""
"Leave this field empty if you won't be in a team (staff, bus chief, free "
"electron)"
@@ -3004,20 +3032,16 @@ msgstr ""
"Laissez ce champ vide si vous ne serez pas dans une équipe (staff, chef de "
"bus ou électron libre)"
-#: apps/wei/forms/registration.py:76 apps/wei/forms/registration.py:91
-#: apps/wei/models.py:160
+#: apps/wei/forms/registration.py:100 apps/wei/forms/registration.py:110
+#: apps/wei/models.py:174
msgid "WEI Roles"
msgstr "Rôles au WEI"
-#: apps/wei/forms/registration.py:77
+#: apps/wei/forms/registration.py:101
msgid "Select the roles that you are interested in."
msgstr "Sélectionnez les rôles qui vous intéressent."
-#: apps/wei/forms/registration.py:86 apps/wei/models.py:188
-msgid "Caution check given"
-msgstr "Chèque de caution donné"
-
-#: apps/wei/forms/registration.py:128
+#: apps/wei/forms/registration.py:147
msgid "This team doesn't belong to the given bus."
msgstr "Cette équipe n'appartient pas à ce bus."
@@ -3039,116 +3063,138 @@ msgstr "début"
msgid "date end"
msgstr "fin"
-#: apps/wei/models.py:71 apps/wei/tables.py:305
+#: apps/wei/models.py:37
+#, fuzzy
+#| msgid "total amount"
+msgid "caution amount"
+msgstr "montant total"
+
+#: apps/wei/models.py:76 apps/wei/tables.py:305
msgid "seat count in the bus"
msgstr "nombre de sièges dans le bus"
-#: apps/wei/models.py:83
+#: apps/wei/models.py:97
msgid "survey information"
msgstr "informations sur le questionnaire"
-#: apps/wei/models.py:84
+#: apps/wei/models.py:98
msgid "Information about the survey for new members, encoded in JSON"
msgstr ""
"Informations sur le sondage pour les nouveaux membres, encodées en JSON"
-#: apps/wei/models.py:88
+#: apps/wei/models.py:102
msgid "Bus"
msgstr "Bus"
-#: apps/wei/models.py:89 apps/wei/templates/wei/weiclub_detail.html:51
+#: apps/wei/models.py:103 apps/wei/templates/wei/weiclub_detail.html:51
msgid "Buses"
msgstr "Bus"
-#: apps/wei/models.py:135
+#: apps/wei/models.py:149
msgid "color"
msgstr "couleur"
-#: apps/wei/models.py:136
+#: apps/wei/models.py:150
msgid "The color of the T-Shirt, stored with its number equivalent"
msgstr ""
"La couleur du T-Shirt, stocké sous la forme de son équivalent numérique"
-#: apps/wei/models.py:147
+#: apps/wei/models.py:161
msgid "Bus team"
msgstr "Équipe de bus"
-#: apps/wei/models.py:148
+#: apps/wei/models.py:162
msgid "Bus teams"
msgstr "Équipes de bus"
-#: apps/wei/models.py:159
+#: apps/wei/models.py:173
msgid "WEI Role"
msgstr "Rôle au WEI"
-#: apps/wei/models.py:183
+#: apps/wei/models.py:197
msgid "Credit from Société générale"
msgstr "Crédit de la Société générale"
-#: apps/wei/models.py:192 apps/wei/templates/wei/weimembership_form.html:64
+#: apps/wei/models.py:202 apps/wei/views.py:984
+msgid "Caution check given"
+msgstr "Chèque de caution donné"
+
+#: apps/wei/models.py:208
+msgid "Check"
+msgstr ""
+
+#: apps/wei/models.py:209
+msgid "Note transaction"
+msgstr "Transaction Note"
+
+#: apps/wei/models.py:212
+msgid "caution type"
+msgstr "date de création"
+
+#: apps/wei/models.py:216 apps/wei/templates/wei/weimembership_form.html:64
msgid "birth date"
msgstr "date de naissance"
-#: apps/wei/models.py:198 apps/wei/models.py:208
+#: apps/wei/models.py:222 apps/wei/models.py:232
msgid "Male"
msgstr "Homme"
-#: apps/wei/models.py:199 apps/wei/models.py:209
+#: apps/wei/models.py:223 apps/wei/models.py:233
msgid "Female"
msgstr "Femme"
-#: apps/wei/models.py:200
+#: apps/wei/models.py:224
msgid "Non binary"
msgstr "Non-binaire"
-#: apps/wei/models.py:202 apps/wei/templates/wei/attribute_bus_1A.html:22
+#: apps/wei/models.py:226 apps/wei/templates/wei/attribute_bus_1A.html:22
#: apps/wei/templates/wei/weimembership_form.html:55
msgid "gender"
msgstr "genre"
-#: apps/wei/models.py:210
+#: apps/wei/models.py:234
msgid "Unisex"
msgstr "Unisexe"
-#: apps/wei/models.py:213 apps/wei/templates/wei/weimembership_form.html:58
+#: apps/wei/models.py:237 apps/wei/templates/wei/weimembership_form.html:58
msgid "clothing cut"
msgstr "coupe de vêtement"
-#: apps/wei/models.py:226 apps/wei/templates/wei/weimembership_form.html:61
+#: apps/wei/models.py:250 apps/wei/templates/wei/weimembership_form.html:61
msgid "clothing size"
msgstr "taille de vêtement"
-#: apps/wei/models.py:232
+#: apps/wei/models.py:256
msgid "health issues"
msgstr "problèmes de santé"
-#: apps/wei/models.py:237 apps/wei/templates/wei/weimembership_form.html:70
+#: apps/wei/models.py:261 apps/wei/templates/wei/weimembership_form.html:70
msgid "emergency contact name"
msgstr "nom du contact en cas d'urgence"
-#: apps/wei/models.py:238
+#: apps/wei/models.py:262
msgid "The emergency contact must not be a WEI participant"
msgstr ""
"Le contact en cas d'urgence ne doit pas être une personne qui participe au "
"WEI"
-#: apps/wei/models.py:243 apps/wei/templates/wei/weimembership_form.html:73
+#: apps/wei/models.py:267 apps/wei/templates/wei/weimembership_form.html:73
msgid "emergency contact phone"
msgstr "téléphone du contact en cas d'urgence"
-#: apps/wei/models.py:248 apps/wei/templates/wei/weimembership_form.html:52
+#: apps/wei/models.py:272 apps/wei/templates/wei/weimembership_form.html:52
msgid "first year"
msgstr "première année"
-#: apps/wei/models.py:249
+#: apps/wei/models.py:273
msgid "Tells if the user is new in the school."
msgstr "Indique si l'utilisateur⋅rice est nouvelleeau dans l'école."
-#: apps/wei/models.py:254
+#: apps/wei/models.py:278
msgid "registration information"
msgstr "informations sur l'inscription"
-#: apps/wei/models.py:255
+#: apps/wei/models.py:279
msgid ""
"Information about the registration (buses for old members, survey for the "
"new members), encoded in JSON"
@@ -3156,27 +3202,27 @@ msgstr ""
"Informations sur l'inscription (bus pour les 2A+, questionnaire pour les "
"1A), encodées en JSON"
-#: apps/wei/models.py:261
+#: apps/wei/models.py:285
msgid "WEI User"
msgstr "Participant·e au WEI"
-#: apps/wei/models.py:262
+#: apps/wei/models.py:286
msgid "WEI Users"
msgstr "Participant·e·s au WEI"
-#: apps/wei/models.py:334
+#: apps/wei/models.py:358
msgid "team"
msgstr "équipe"
-#: apps/wei/models.py:344
+#: apps/wei/models.py:368
msgid "WEI registration"
msgstr "Inscription au WEI"
-#: apps/wei/models.py:348
+#: apps/wei/models.py:372
msgid "WEI membership"
msgstr "Adhésion au WEI"
-#: apps/wei/models.py:349
+#: apps/wei/models.py:373
msgid "WEI memberships"
msgstr "Adhésions au WEI"
@@ -3204,8 +3250,8 @@ msgstr "Année"
msgid "preferred bus"
msgstr "bus préféré"
-#: apps/wei/tables.py:210 apps/wei/templates/wei/bus_detail.html:32
-#: apps/wei/templates/wei/busteam_detail.html:50
+#: apps/wei/tables.py:210 apps/wei/templates/wei/bus_detail.html:36
+#: apps/wei/templates/wei/busteam_detail.html:52
msgid "Teams"
msgstr "Équipes"
@@ -3238,8 +3284,6 @@ msgid "Attribute first year members into buses"
msgstr "Attribuer les 1A dans les bus"
#: apps/wei/templates/wei/1A_list.html:15
-#, fuzzy
-#| msgid "Start attribution!"
msgid "Start attribution !"
msgstr "Démarrer l'attribution !"
@@ -3249,8 +3293,6 @@ msgstr "Répartition des bus"
#: apps/wei/templates/wei/attribute_bus_1A.html:28
#: apps/wei/templates/wei/weimembership_form.html:67
-#, fuzzy
-#| msgid "health issues"
msgid "health issues or specific diet"
msgstr "problèmes de santé"
@@ -3270,53 +3312,59 @@ msgstr "Retour à la liste principale"
msgid "WEI fee (paid students)"
msgstr "Prix du WEI (élèves)"
-#: apps/wei/templates/wei/base.html:47 apps/wei/templates/wei/base.html:54
-msgid "The BDE membership is included in the WEI registration."
-msgstr "L'adhésion au BDE est offerte avec l'inscription au WEI."
-
-#: apps/wei/templates/wei/base.html:51
+#: apps/wei/templates/wei/base.html:47
msgid "WEI fee (unpaid students)"
msgstr "Prix du WEI (étudiant⋅es)"
-#: apps/wei/templates/wei/base.html:76
+#: apps/wei/templates/wei/base.html:53
+#, fuzzy
+#| msgid "total amount"
+msgid "Caution amount"
+msgstr "montant total"
+
+#: apps/wei/templates/wei/base.html:74
msgid "WEI list"
msgstr "Liste des WEI"
-#: apps/wei/templates/wei/base.html:81 apps/wei/views.py:540
+#: apps/wei/templates/wei/base.html:79 apps/wei/views.py:550
msgid "Register 1A"
msgstr "Inscrire un⋅e 1A"
-#: apps/wei/templates/wei/base.html:85 apps/wei/views.py:626
+#: apps/wei/templates/wei/base.html:83 apps/wei/views.py:644
msgid "Register 2A+"
msgstr "Inscrire un⋅e 2A+"
-#: apps/wei/templates/wei/base.html:93
+#: apps/wei/templates/wei/base.html:91
msgid "Add bus"
msgstr "Ajouter un bus"
-#: apps/wei/templates/wei/base.html:97
+#: apps/wei/templates/wei/base.html:95
msgid "View WEI"
msgstr "Voir le WEI"
-#: apps/wei/templates/wei/bus_detail.html:22
-#: apps/wei/templates/wei/busteam_detail.html:22
+#: apps/wei/templates/wei/bus_detail.html:21
+msgid "View club"
+msgstr "Voir le lub"
+
+#: apps/wei/templates/wei/bus_detail.html:26
+#: apps/wei/templates/wei/busteam_detail.html:24
msgid "Add team"
msgstr "Ajouter une équipe"
-#: apps/wei/templates/wei/bus_detail.html:45
+#: apps/wei/templates/wei/bus_detail.html:49
msgid "Members"
msgstr "Membres"
-#: apps/wei/templates/wei/bus_detail.html:54
-#: apps/wei/templates/wei/busteam_detail.html:60
+#: apps/wei/templates/wei/bus_detail.html:58
+#: apps/wei/templates/wei/busteam_detail.html:62
#: apps/wei/templates/wei/weimembership_list.html:31
msgid "View as PDF"
msgstr "Télécharger au format PDF"
#: apps/wei/templates/wei/survey.html:11
#: apps/wei/templates/wei/survey_closed.html:11
-#: apps/wei/templates/wei/survey_end.html:11 apps/wei/views.py:1046
-#: apps/wei/views.py:1101 apps/wei/views.py:1148
+#: apps/wei/templates/wei/survey_end.html:11 apps/wei/views.py:1159
+#: apps/wei/views.py:1214 apps/wei/views.py:1261
msgid "Survey WEI"
msgstr "Questionnaire WEI"
@@ -3361,7 +3409,7 @@ msgstr "Inscriptions non validées"
msgid "Attribute buses"
msgstr "Répartition dans les bus"
-#: apps/wei/templates/wei/weiclub_list.html:14 apps/wei/views.py:80
+#: apps/wei/templates/wei/weiclub_list.html:14 apps/wei/views.py:82
msgid "Create WEI"
msgstr "Créer un WEI"
@@ -3442,28 +3490,42 @@ msgstr ""
"mais invalide. Vous devrez la valider une fois que la banque aura validé la "
"création du compte, ou bien changer de moyen de paiement."
+#: apps/wei/templates/wei/weimembership_form.html:147
+msgid "Required payments:"
+msgstr "Paiements requis"
+
#: apps/wei/templates/wei/weimembership_form.html:149
-#, python-format
-msgid ""
-"The note don't have enough money (%(balance)s, %(pretty_fee)s required). The "
-"registration may fail if you don't credit the note now."
-msgstr ""
-"La note n'a pas assez d'argent (%(balance)s, %(pretty_fee)s requis). "
-"L'inscription peut échouer si vous ne rechargez pas la note dès maintenant."
+#, fuzzy, python-format
+#| msgid "membership fee (paid students)"
+msgid "Membership fees: %(amount)s"
+msgstr "cotisation pour adhérer (normalien·ne élève)"
-#: apps/wei/templates/wei/weimembership_form.html:157
+#: apps/wei/templates/wei/weimembership_form.html:153
#, python-format
-msgid ""
-"The note has enough money (%(pretty_fee)s required), the registration is "
-"possible."
-msgstr ""
-"La note a assez d'argent (%(pretty_fee)s requis), l'inscription est possible."
+msgid "Deposit (by Note transaction): %(amount)s"
+msgstr "Caution (par transaction) : %(amount)s"
-#: apps/wei/templates/wei/weimembership_form.html:166
+#: apps/wei/templates/wei/weimembership_form.html:156
+#: apps/wei/templates/wei/weimembership_form.html:163
+#, python-format
+msgid "Total needed: %(total)s"
+msgstr "Total nécessaire : %(total)s"
+
+#: apps/wei/templates/wei/weimembership_form.html:160
+#, python-format
+msgid "Deposit (by check): %(amount)s"
+msgstr "Caution (par chèque) : %(amount)s"
+
+#: apps/wei/templates/wei/weimembership_form.html:168
+#, python-format
+msgid "Current balance: %(balance)s"
+msgstr "Solde actuel : %(balance)s"
+
+#: apps/wei/templates/wei/weimembership_form.html:176
msgid "The user didn't give her/his caution check."
msgstr "L'utilisateur⋅rice n'a pas donné son chèque de caution."
-#: apps/wei/templates/wei/weimembership_form.html:174
+#: apps/wei/templates/wei/weimembership_form.html:184
msgid ""
"This user is not a member of the Kfet club for the coming year. The "
"membership will be processed automatically, the WEI registration includes "
@@ -3495,72 +3557,70 @@ msgid "There is no pre-registration found with this pattern."
msgstr "Il n'y a pas de pré-inscription en attente avec cette entrée."
#: apps/wei/templates/wei/weiregistration_list.html:27
-#, fuzzy
-#| msgid "View validated membershipis..."
msgid "View validated memberships..."
msgstr "Voir les adhésions validées..."
-#: apps/wei/views.py:59
+#: apps/wei/views.py:61
msgid "Search WEI"
msgstr "Chercher un WEI"
-#: apps/wei/views.py:110
+#: apps/wei/views.py:112
msgid "WEI Detail"
msgstr "Détails du WEI"
-#: apps/wei/views.py:210
+#: apps/wei/views.py:212
msgid "View members of the WEI"
msgstr "Voir les membres du WEI"
-#: apps/wei/views.py:243
+#: apps/wei/views.py:245
msgid "Find WEI Membership"
msgstr "Trouver une adhésion au WEI"
-#: apps/wei/views.py:253
+#: apps/wei/views.py:255
msgid "View registrations to the WEI"
msgstr "Voir les inscriptions au WEI"
-#: apps/wei/views.py:282
+#: apps/wei/views.py:284
msgid "Find WEI Registration"
msgstr "Trouver une inscription au WEI"
-#: apps/wei/views.py:293
+#: apps/wei/views.py:295
msgid "Update the WEI"
msgstr "Modifier le WEI"
-#: apps/wei/views.py:314
+#: apps/wei/views.py:316
msgid "Create new bus"
msgstr "Ajouter un nouveau bus"
-#: apps/wei/views.py:352
+#: apps/wei/views.py:354
msgid "Update bus"
msgstr "Modifier le bus"
-#: apps/wei/views.py:384
+#: apps/wei/views.py:386
msgid "Manage bus"
msgstr "Gérer le bus"
-#: apps/wei/views.py:411
+#: apps/wei/views.py:413
msgid "Create new team"
msgstr "Créer une nouvelle équipe"
-#: apps/wei/views.py:451
+#: apps/wei/views.py:457
msgid "Update team"
msgstr "Modifier l'équipe"
-#: apps/wei/views.py:482
+#: apps/wei/views.py:492
msgid "Manage WEI team"
msgstr "Gérer l'équipe WEI"
-#: apps/wei/views.py:504
+#: apps/wei/views.py:514
msgid "Register first year student to the WEI"
msgstr "Inscrire un⋅e 1A au WEI"
-#: apps/wei/views.py:562 apps/wei/views.py:661
+#: apps/wei/views.py:580 apps/wei/views.py:689
msgid "This user is already registered to this WEI."
msgstr "Cette personne est déjà inscrite au WEI."
-#: apps/wei/views.py:567
+#: apps/wei/views.py:585
msgid ""
"This user can't be in her/his first year since he/she has already "
"participated to a WEI."
@@ -3568,38 +3628,96 @@ msgstr ""
"Cet⋅te utilisateur⋅rice ne peut pas être en première année puisqu'iel a déjà "
"participé à un WEI."
-#: apps/wei/views.py:590
+#: apps/wei/views.py:608
msgid "Register old student to the WEI"
msgstr "Inscrire un⋅e 2A+ au WEI"
-#: apps/wei/views.py:645 apps/wei/views.py:733
+#: apps/wei/views.py:663 apps/wei/views.py:768
msgid "You already opened an account in the Société générale."
msgstr "Vous avez déjà ouvert un compte auprès de la société générale."
-#: apps/wei/views.py:697
+#: apps/wei/views.py:676 apps/wei/views.py:785
+msgid "Choose how you want to pay the deposit"
+msgstr ""
+
+#: apps/wei/views.py:728
msgid "Update WEI Registration"
msgstr "Modifier l'inscription WEI"
-#: apps/wei/views.py:807
+#: apps/wei/views.py:810
+msgid "No membership found for this registration"
+msgstr "Pas d'adhésion trouvée pour cette inscription"
+
+#: apps/wei/views.py:819
+msgid "You don't have the permission to update memberships"
+msgstr ""
+"Vous n'avez pas la permission d'ajouter une instance du modèle {app_label}."
+"{model_name}."
+
+#: apps/wei/views.py:825
+#, python-format
+msgid "You don't have the permission to update the field %(field)s"
+msgstr "Vous n'avez pas la permission de modifier le champ %(field)s"
+
+#: apps/wei/views.py:870
msgid "Delete WEI registration"
msgstr "Supprimer l'inscription WEI"
-#: apps/wei/views.py:818
+#: apps/wei/views.py:881
msgid "You don't have the right to delete this WEI registration."
msgstr "Vous n'avez pas la permission de supprimer cette inscription au WEI."
-#: apps/wei/views.py:836
+#: apps/wei/views.py:899
msgid "Validate WEI registration"
msgstr "Valider l'inscription WEI"
-#: apps/wei/views.py:1241
+#: apps/wei/views.py:985
+msgid "Please make sure the check is given before validating the registration"
+msgstr ""
+"Merci de vous assurer que le chèque a bien été donné avant de valider "
+"l'adhésion"
+
+#: apps/wei/views.py:991
+msgid "Create deposit transaction"
+msgstr "Créer une transaction de caution"
+
+#: apps/wei/views.py:992
+#, python-format
+msgid ""
+"A transaction of %(amount).2f€ will be created from the user's Note account"
+msgstr ""
+"Un transaction de %(amount).2f€ va être créée depuis la note de l'utilisateur"
+
+#: apps/wei/views.py:1087
+#, python-format
+msgid ""
+"This user doesn't have enough money to join this club and pay the deposit. "
+"Current balance: %(balance)d€, credit: %(credit)d€, needed: %(needed)d€"
+msgstr ""
+"Cet⋅te utilisateur⋅rice n'a pas assez d'argent pour rejoindre ce club et "
+"payer la cautionSolde actuel : %(balance)d€, crédit : %(credit)d€, requis : "
+"%(needed)d€"
+
+#: apps/wei/views.py:1140
+#, fuzzy, python-format
+#| msgid "total amount"
+msgid "Caution %(name)s"
+msgstr "montant total"
+
+#: apps/wei/views.py:1354
msgid "Attribute buses to first year members"
msgstr "Répartir les 1A dans les bus"
-#: apps/wei/views.py:1266
+#: apps/wei/views.py:1379
msgid "Attribute bus"
msgstr "Attribuer un bus"
+#: apps/wei/views.py:1419
+msgid ""
+"No first year student without a bus found. Either all of them have a bus, or "
+"none has filled the survey yet."
+msgstr ""
+
#: apps/wrapped/apps.py:10
msgid "wrapped"
msgstr "wrapped"
@@ -4161,87 +4279,21 @@ msgstr ""
"d'adhésion. Vous devez également valider votre adresse email en suivant le "
"lien que vous avez reçu."
-#, python-brace-format
-#~ msgid "QR-code number {qr_code_number}"
-#~ msgstr "numéro du QR-code {qr_code_number}"
-
-#~ msgid "was eaten"
-#~ msgstr "a été mangé"
-
-#~ msgid "is active"
-#~ msgstr "est en cours"
-
-#~ msgid "foods"
-#~ msgstr "bouffes"
-
-#~ msgid "Arrival date"
-#~ msgstr "Date d'arrivée"
-
-#~ msgid "Active"
-#~ msgstr "Actif"
-
-#~ msgid "Eaten"
-#~ msgstr "Mangé"
-
-#~ msgid "number"
-#~ msgstr "numéro"
-
-#~ msgid "View details"
-#~ msgstr "Voir plus"
-
-#~ msgid "Ready"
-#~ msgstr "Prêt"
-
-#~ msgid "Creation date"
-#~ msgstr "Date de création"
-
-#~ msgid "Ingredients"
-#~ msgstr "Ingrédients"
-
-#~ msgid "Open"
-#~ msgstr "Open"
-
-#~ msgid "All meals"
-#~ msgstr "Tout les plats"
-
-#~ msgid "There is no meal."
-#~ msgstr "Il n'y a pas de plat"
-
-#~ msgid "The product is already prepared"
-#~ msgstr "Le produit est déjà prêt"
-
-#~ msgid "Add a new basic food with QRCode"
-#~ msgstr "Ajouter un nouvel ingrédient avec un QR-code"
-
-#~ msgid "QRCode"
-#~ msgstr "QR-code"
-
-#~ msgid "Add a new meal"
-#~ msgstr "Ajouter un nouveau plat"
-
-#~ msgid "Update a meal"
-#~ msgstr "Modifier le plat"
-
-#, fuzzy
-#~| msgid "invalidate"
-#~ msgid "Enter a valid color."
-#~ msgstr "dévalider"
-
-#, fuzzy
-#~| msgid "invalidate"
-#~ msgid "Enter a valid value."
-#~ msgstr "dévalider"
-
-#, fuzzy
-#~| msgid "Invitation"
-#~ msgid "Syndication"
-#~ msgstr "Invitation"
+#, fuzzy, python-format
+#~| msgid "Creation date"
+#~ msgid "Deposit %(name)s"
+#~ msgstr "Caution %(name)s"
#, fuzzy
#~| msgid "There is no results."
#~ msgid "That page contains no results"
#~ msgstr "Il n'y a pas de résultat."
+#, fuzzy
+#~| msgid "invalidate"
+#~ msgid "Enter a valid value."
+#~ msgstr "dévalider"
+
#, fuzzy
#~| msgid "invalidate"
#~ msgid "Enter a valid URL."
@@ -4282,6 +4334,11 @@ msgstr ""
#~ msgid "%(model_name)s with this %(field_labels)s already exists."
#~ msgstr "Un modèle de transaction avec un nom similaire existe déjà"
+#, fuzzy, python-format
+#~| msgid "This activity is not validated yet."
+#~ msgid "Value %(value)r is not a valid choice."
+#~ msgstr "Cette activité n'est pas encore validée."
+
#, fuzzy
#~| msgid "This image cannot be loaded."
#~ msgid "This field cannot be null."
@@ -4327,11 +4384,26 @@ msgstr ""
#~ msgid "IP address"
#~ msgstr "Adresse IP"
+#, fuzzy, python-format
+#~| msgid "This activity is not validated yet."
+#~ msgid "“%(value)s” is not a valid UUID."
+#~ msgstr "Cette activité n'est pas encore validée."
+
#, fuzzy
#~| msgid "Invoice identifier"
#~ msgid "Universally unique identifier"
#~ msgstr "Numéro de facture"
+#, fuzzy
+#~| msgid "Object"
+#~ msgid "A JSON object"
+#~ msgstr "Objet"
+
+#, fuzzy
+#~| msgid "This address must be valid."
+#~ msgid "Value must be valid JSON."
+#~ msgstr "Cette adresse doit être valide."
+
#, fuzzy, python-format
#~| msgid "A template with this name already exist"
#~ msgid "%(model)s instance with %(field)s %(value)r does not exist."
@@ -4377,9 +4449,19 @@ msgstr ""
#~ msgid "Enter a valid UUID."
#~ msgstr "dévalider"
+#, fuzzy
+#~| msgid "invalidate"
+#~ msgid "Enter a valid JSON."
+#~ msgstr "dévalider"
+
+#, fuzzy
+#~| msgid "order"
+#~ msgid "Order"
+#~ msgstr "consigne"
+
#, fuzzy, python-format
#~| msgid "This activity is not validated yet."
-#~ msgid "\"%(pk)s\" is not a valid value."
+#~ msgid "“%(pk)s” is not a valid value."
#~ msgstr "Cette activité n'est pas encore validée."
#, fuzzy
@@ -4392,11 +4474,21 @@ msgstr ""
#~ msgid "Change"
#~ msgstr "modifier"
+#, fuzzy
+#~| msgid "Wrapped"
+#~ msgid "Wed"
+#~ msgstr "Wrapped"
+
#, fuzzy
#~| msgid "Search"
#~ msgid "March"
#~ msgstr "Recherche"
+#, fuzzy
+#~| msgid "day"
+#~ msgid "May"
+#~ msgstr "jour"
+
#, fuzzy
#~| msgid "member"
#~ msgid "September"
@@ -4422,23 +4514,50 @@ msgstr ""
#~ msgid "feb"
#~ msgstr "cotisation"
+#, fuzzy
+#~| msgid "day"
+#~ msgid "may"
+#~ msgstr "jour"
+
+#, fuzzy
+#~| msgid "add"
+#~ msgid "jun"
+#~ msgstr "ajouter"
+
#, fuzzy
#~| msgid "product"
#~ msgid "oct"
#~ msgstr "produit"
+#, fuzzy
+#~| msgid "bde"
+#~ msgid "dec"
+#~ msgstr "bde"
+
#, fuzzy
#~| msgid "Search"
#~ msgctxt "abbrev. month"
#~ msgid "March"
#~ msgstr "Recherche"
+#, fuzzy
+#~| msgid "day"
+#~ msgctxt "abbrev. month"
+#~ msgid "May"
+#~ msgstr "jour"
+
#, fuzzy
#~| msgid "Search"
#~ msgctxt "alt. month"
#~ msgid "March"
#~ msgstr "Recherche"
+#, fuzzy
+#~| msgid "day"
+#~ msgctxt "alt. month"
+#~ msgid "May"
+#~ msgstr "jour"
+
#, fuzzy
#~| msgid "member"
#~ msgctxt "alt. month"
@@ -4462,13 +4581,25 @@ msgstr ""
#~ msgid "This is not a valid IPv6 address."
#~ msgstr "Cette activité n'est pas encore validée."
+#, fuzzy
+#~| msgid "hour"
+#~ msgid "or"
+#~ msgstr "heure"
+
#, fuzzy, python-format
#~| msgid "year"
-#~ msgid "%d year"
-#~ msgid_plural "%d years"
+#~ msgid "%(num)d year"
+#~ msgid_plural "%(num)d years"
#~ msgstr[0] "année"
#~ msgstr[1] "année"
+#, fuzzy, python-format
+#~| msgid "minute"
+#~ msgid "%(num)d minute"
+#~ msgid_plural "%(num)d minutes"
+#~ msgstr[0] "minute"
+#~ msgstr[1] "minute"
+
#, fuzzy
#~| msgid "No reason specified"
#~ msgid "No year specified"
@@ -4494,6 +4625,11 @@ msgstr ""
#~ msgid "Confidential"
#~ msgstr "Secret client"
+#, fuzzy
+#~| msgid "public"
+#~ msgid "Public"
+#~ msgstr "public"
+
#, fuzzy
#~| msgid "Authorization:"
#~ msgid "Authorization code"
@@ -4526,9 +4662,101 @@ msgstr ""
#, fuzzy
#~| msgid "Application requires following permissions:"
-#~ msgid "Application requires following permissions"
+#~ msgid "Application requires the following permissions"
#~ msgstr "L'application requiert les permissions suivantes :"
+#~ msgid "Deposit amount"
+#~ msgstr "Caution"
+
+#~ msgid "The BDE membership is included in the WEI registration."
+#~ msgstr "L'adhésion au BDE est offerte avec l'inscription au WEI."
+
+#, python-format
+#~ msgid ""
+#~ "The note don't have enough money (%(balance)s, %(pretty_fee)s required). "
+#~ "The registration may fail if you don't credit the note now."
+#~ msgstr ""
+#~ "La note n'a pas assez d'argent (%(balance)s, %(pretty_fee)s requis). "
+#~ "L'inscription peut échouer si vous ne rechargez pas la note dès "
+#~ "maintenant."
+
+#, python-format
+#~ msgid ""
+#~ "The note has enough money (%(pretty_fee)s required), the registration is "
+#~ "possible."
+#~ msgstr ""
+#~ "La note a assez d'argent (%(pretty_fee)s requis), l'inscription est "
+#~ "possible."
+
+#, fuzzy
+#~| msgid "You don't have the right to delete this WEI registration."
+#~ msgid "You don't have the permission to validate registrations"
+#~ msgstr ""
+#~ "Vous n'avez pas la permission de supprimer cette inscription au WEI."
+
+#, python-brace-format
+#~ msgid "QR-code number {qr_code_number}"
+#~ msgstr "numéro du QR-code {qr_code_number}"
+
+#~ msgid "was eaten"
+#~ msgstr "a été mangé"
+
+#~ msgid "is active"
+#~ msgstr "est en cours"
+
+#~ msgid "foods"
+#~ msgstr "bouffes"
+
+#~ msgid "Arrival date"
+#~ msgstr "Date d'arrivée"
+
+#~ msgid "Active"
+#~ msgstr "Actif"
+
+#~ msgid "Eaten"
+#~ msgstr "Mangé"
+
+#~ msgid "number"
+#~ msgstr "numéro"
+
+#~ msgid "View details"
+#~ msgstr "Voir plus"
+
+#~ msgid "Ready"
+#~ msgstr "Prêt"
+
+#~ msgid "Ingredients"
+#~ msgstr "Ingrédients"
+
+#~ msgid "Open"
+#~ msgstr "Open"
+
+#~ msgid "All meals"
+#~ msgstr "Tout les plats"
+
+#~ msgid "There is no meal."
+#~ msgstr "Il n'y a pas de plat"
+
+#~ msgid "The product is already prepared"
+#~ msgstr "Le produit est déjà prêt"
+
+#~ msgid "Add a new basic food with QRCode"
+#~ msgstr "Ajouter un nouvel ingrédient avec un QR-code"
+
+#~ msgid "QRCode"
+#~ msgstr "QR-code"
+
+#~ msgid "Add a new meal"
+#~ msgstr "Ajouter un nouveau plat"
+
+#~ msgid "Update a meal"
+#~ msgstr "Modifier le plat"
+
+#, fuzzy
+#~| msgid "invalidate"
+#~ msgid "Enter a valid color."
+#~ msgstr "dévalider"
+
#~ msgid "pasta"
#~ msgstr "pâtes"
diff --git a/note_kfet/inputs.py b/note_kfet/inputs.py
index a05b61e4..6de3c7d9 100644
--- a/note_kfet/inputs.py
+++ b/note_kfet/inputs.py
@@ -63,8 +63,16 @@ class ColorWidget(Widget):
def format_value(self, value):
if value is None:
value = 0xFFFFFF
- return "#{:06X}".format(value)
+ if isinstance(value, str):
+ return value # Assume it's already a hex string like "#FFAA33"
+ try:
+ return "#{:06X}".format(value)
+ except Exception:
+ return "#FFFFFF"
+
def value_from_datadict(self, data, files, name):
val = super().value_from_datadict(data, files, name)
- return int(val[1:], 16)
+ if val:
+ return int(val[1:], 16)
+ return None
\ No newline at end of file
diff --git a/note_kfet/templates/colorfield/color.html b/note_kfet/templates/colorfield/color.html
new file mode 100644
index 00000000..5c0457c5
--- /dev/null
+++ b/note_kfet/templates/colorfield/color.html
@@ -0,0 +1,5 @@
+
\ No newline at end of file