Compare commits

..

20 Commits

Author SHA1 Message Date
Alexandre Iooss 9a52c81bff Simplify NGINX examples 2020-08-09 20:33:48 +02:00
Alexandre Iooss 48d3e8960a Do not cover virtualenv and migrations 2020-08-09 19:54:31 +02:00
Alexandre Iooss f6dfbb0b6c Fix amount of \ in apps/activity/views.py 2020-08-09 19:49:11 +02:00
Alexandre Iooss c6e3a57801 Reorder import in apps/treasury/admin.py 2020-08-09 19:43:21 +02:00
Alexandre Iooss 40b826a375 Fix hanging indent in apps/note/tables.py 2020-08-09 19:42:09 +02:00
Alexandre Iooss f0089d0bc5 Remove unused django.template.loader.render_to_string import 2020-08-09 19:39:17 +02:00
Alexandre Iooss 5e75a56eda missing whitespace after ':' in apps/wei/forms/registration.py 2020-08-09 19:38:23 +02:00
Alexandre Iooss d73f7c31a1 Define BASE_DIR in development.py 2020-08-09 19:36:11 +02:00
Alexandre Iooss 31f4105c9a Do not test against Py3.6 2020-08-09 19:34:01 +02:00
Alexandre Iooss e9ae8531b8 Fix date-picker.html import 2020-08-09 19:16:11 +02:00
Alexandre Iooss 7b40ee1ca4 Reorder templates 2020-08-09 19:06:57 +02:00
Alexandre Iooss 53b496546d Add django-bootstrap-datepicker-plus and django-colorfield, move statics 2020-08-09 18:54:20 +02:00
Alexandre Iooss 8c1cf754ed Revert to NOTE_URL 2020-08-09 18:39:17 +02:00
Alexandre Iooss efe833cec3 Merge production settings in base settings 2020-08-09 18:34:51 +02:00
Alexandre Iooss ccfc37d226 Reorder base Django settings and read env vars 2020-08-09 17:52:19 +02:00
Yohann D'ANELLO 764eaafb95 Emails are unique. Translate mail foooters. Closes #55 #56 2020-08-09 16:38:37 +02:00
Yohann D'ANELLO 5846f03220 🐛 Last report date is a datetime, not a date 2020-08-09 15:53:50 +02:00
Yohann D'ANELLO 52e8b46aa2 🐛 Last report date is a datetime, not a date 2020-08-09 15:50:51 +02:00
Yohann D'ANELLO 29f84ea007 Remove test code 2020-08-09 15:42:07 +02:00
Yohann D'ANELLO 49bda926c6 Disable turbolinks for pages that require custom JS, like calendars or autocomplete fields 2020-08-09 15:31:38 +02:00
336 changed files with 519 additions and 37427 deletions

View File

@ -1,6 +1,6 @@
DJANGO_APP_STAGE=prod DJANGO_APP_STAGE=prod
# Only used in dev mode, change to "postgresql" if you want to use PostgreSQL in dev # Only used in dev mode, change to "postgresql" if you want to use PostgreSQL in dev
DJANGO_DEV_STORE_METHOD=sqllite DJANGO_DEV_STORE_METHOD=sqlite
DJANGO_DB_HOST=localhost DJANGO_DB_HOST=localhost
DJANGO_DB_NAME=note_db DJANGO_DB_NAME=note_db
DJANGO_DB_USER=note DJANGO_DB_USER=note
@ -10,11 +10,15 @@ DJANGO_SECRET_KEY=CHANGE_ME
DJANGO_SETTINGS_MODULE=note_kfet.settings DJANGO_SETTINGS_MODULE=note_kfet.settings
CONTACT_EMAIL=tresorerie.bde@localhost CONTACT_EMAIL=tresorerie.bde@localhost
NOTE_URL=localhost NOTE_URL=localhost
DOMAIN=localhost
# Config for mails. Only used in production # Config for mails. Only used in production
NOTE_MAIL=notekfet@localhost NOTE_MAIL=notekfet@localhost
EMAIL_HOST=smtp.localhost EMAIL_HOST=smtp.localhost
EMAIL_PORT=465 EMAIL_PORT=25
EMAIL_USER=notekfet@localhost EMAIL_USER=notekfet@localhost
EMAIL_PASSWORD=CHANGE_ME EMAIL_PASSWORD=CHANGE_ME
# Wiki configuration
WIKI_USER=NoteKfet2020 WIKI_USER=NoteKfet2020
WIKI_PASSWORD= WIKI_PASSWORD=

1
.gitignore vendored
View File

@ -40,6 +40,7 @@ secrets.py
map.json map.json
*.log *.log
backups/ backups/
static/
media/ media/
# Virtualenv # Virtualenv

View File

@ -7,11 +7,6 @@ stages:
before_script: before_script:
- pip install tox - pip install tox
py36-django22:
image: python:3.6
stage: test
script: tox -e py36-django22
py37-django22: py37-django22:
image: python:3.7 image: python:3.7
stage: test stage: test

View File

@ -107,7 +107,7 @@ On supposera pour la suite que vous utilisez Debian/Ubuntu sur un serveur tout n
et on renseigne des secrets et des paramètres : et on renseigne des secrets et des paramètres :
DJANGO_APP_STAGE=dev # ou "prod" DJANGO_APP_STAGE=dev # ou "prod"
DJANGO_DEV_STORE_METHOD=sqllite # ou "postgres" DJANGO_DEV_STORE_METHOD=sqlite # ou "postgres"
DJANGO_DB_HOST=localhost DJANGO_DB_HOST=localhost
DJANGO_DB_NAME=note_db DJANGO_DB_NAME=note_db
DJANGO_DB_USER=note DJANGO_DB_USER=note
@ -115,13 +115,13 @@ On supposera pour la suite que vous utilisez Debian/Ubuntu sur un serveur tout n
DJANGO_DB_PORT= DJANGO_DB_PORT=
DJANGO_SECRET_KEY=CHANGE_ME DJANGO_SECRET_KEY=CHANGE_ME
DJANGO_SETTINGS_MODULE="note_kfet.settings DJANGO_SETTINGS_MODULE="note_kfet.settings
NOTE_URL=localhost # URL où accéder à la note
DOMAIN=localhost # note.example.com DOMAIN=localhost # note.example.com
CONTACT_EMAIL=tresorerie.bde@localhost CONTACT_EMAIL=tresorerie.bde@localhost
NOTE_URL=localhost # URL où accéder à la note
# Le reste n'est utile qu'en production, pour configurer l'envoi des mails # Le reste n'est utile qu'en production, pour configurer l'envoi des mails
NOTE_MAIL=notekfet@localhost NOTE_MAIL=notekfet@localhost
EMAIL_HOST=smtp.localhost EMAIL_HOST=smtp.localhost
EMAIL_PORT=465 EMAIL_PORT=25
EMAIL_USER=notekfet@localhost EMAIL_USER=notekfet@localhost
EMAIL_PASSWORD=CHANGE_ME EMAIL_PASSWORD=CHANGE_ME
WIKI_USER=NoteKfet2020 WIKI_USER=NoteKfet2020

View File

@ -68,10 +68,10 @@
<a class="btn btn-success btn-sm my-1" id="validate_activity"> {% if activity.valid %}{% trans "invalidate"|capfirst %}{% else %}{% trans "validate"|capfirst %}{% endif %}</a> <a class="btn btn-success btn-sm my-1" id="validate_activity"> {% if activity.valid %}{% trans "invalidate"|capfirst %}{% else %}{% trans "validate"|capfirst %}{% endif %}</a>
{% endif %} {% endif %}
{% if ".change_"|has_perm:activity %} {% if ".change_"|has_perm:activity %}
<a class="btn btn-primary btn-sm my-1" href="{% url 'activity:activity_update' pk=activity.pk %}"> {% trans "edit"|capfirst %}</a> <a class="btn btn-primary btn-sm my-1" href="{% url 'activity:activity_update' pk=activity.pk %}" data-turbolinks="false"> {% trans "edit"|capfirst %}</a>
{% endif %} {% endif %}
{% if activity.activity_type.can_invite and not activity_started %} {% if activity.activity_type.can_invite and not activity_started %}
<a class="btn btn-primary btn-sm my-1" href="{% url 'activity:activity_invite' pk=activity.pk %}"> {% trans "Invite" %}</a> <a class="btn btn-primary btn-sm my-1" href="{% url 'activity:activity_invite' pk=activity.pk %}" data-turbolinks="false"> {% trans "Invite" %}</a>
{% endif %} {% endif %}
{% endif %} {% endif %}
</div> </div>

View File

@ -19,7 +19,7 @@
</div> </div>
{% endif %} {% endif %}
<a class="btn btn-primary" href="{% url 'activity:activity_create' %}">{% trans 'New activity' %}</a> <a class="btn btn-primary" href="{% url 'activity:activity_create' %}" data-turbolinks="false">{% trans 'New activity' %}</a>
<hr> <hr>

View File

@ -151,14 +151,21 @@ class ActivityEntryView(LoginRequiredMixin, TemplateView):
first_name=F("note__noteuser__user__first_name"), first_name=F("note__noteuser__user__first_name"),
username=F("note__noteuser__user__username"), username=F("note__noteuser__user__username"),
note_name=F("name"), note_name=F("name"),
balance=F("note__balance"))\ balance=F("note__balance"))
.filter(note__noteuser__isnull=False)\
.filter( # Keep only users that have a note
note_qs = note_qs.filter(note__noteuser__isnull=False)
# Keep only members
note_qs = note_qs.filter(
note__noteuser__user__memberships__club=activity.attendees_club, note__noteuser__user__memberships__club=activity.attendees_club,
note__noteuser__user__memberships__date_start__lte=timezone.now(), note__noteuser__user__memberships__date_start__lte=timezone.now(),
note__noteuser__user__memberships__date_end__gte=timezone.now(), note__noteuser__user__memberships__date_end__gte=timezone.now(),
)\ )
.filter(PermissionBackend.filter_queryset(self.request.user, Alias, "view"))
# Filter with permission backend
note_qs = note_qs.filter(PermissionBackend.filter_queryset(self.request.user, Alias, "view"))
if pattern: if pattern:
note_qs = note_qs.filter( note_qs = note_qs.filter(
Q(note__noteuser__user__first_name__regex=pattern) Q(note__noteuser__user__first_name__regex=pattern)

View File

@ -50,7 +50,7 @@ class ProfileForm(forms.ModelForm):
class Meta: class Meta:
model = Profile model = Profile
fields = '__all__' fields = '__all__'
exclude = ('user', ) exclude = ('user', 'email_confirmed', 'registration_valid', )
class ClubForm(forms.ModelForm): class ClubForm(forms.ModelForm):

View File

@ -61,10 +61,10 @@
{% if not club.weiclub %} {% if not club.weiclub %}
<div class="card-footer text-center"> <div class="card-footer text-center">
{% if can_add_members %} {% if can_add_members %}
<a class="btn btn-primary btn-sm my-1" href="{% url 'member:club_add_member' club_pk=club.pk %}"> {% trans "Add member" %}</a> <a class="btn btn-primary btn-sm my-1" href="{% url 'member:club_add_member' club_pk=club.pk %}" data-turbolinks="false"> {% trans "Add member" %}</a>
{% endif %} {% endif %}
{% if ".change_"|has_perm:club %} {% if ".change_"|has_perm:club %}
<a class="btn btn-primary btn-sm my-1" href="{% url 'member:club_update' pk=club.pk %}"> {% trans "Edit" %}</a> <a class="btn btn-primary btn-sm my-1" href="{% url 'member:club_update' pk=club.pk %}" data-turbolinks="false"> {% trans "Edit" %}</a>
{% endif %} {% endif %}
{% url 'member:club_detail' club.pk as club_detail_url %} {% url 'member:club_detail' club.pk as club_detail_url %}
{%if request.path_info != club_detail_url %} {%if request.path_info != club_detail_url %}

View File

@ -6,7 +6,7 @@
<div class="col-md-10 text-center"> <div class="col-md-10 text-center">
<input class="form-control mx-auto w-25" type="text" id="search_field"/> <input class="form-control mx-auto w-25" type="text" id="search_field"/>
<hr> <hr>
<a class="btn btn-primary text-center my-4" href="{% url 'member:club_create' %}">{% trans "Create club" %}</a> <a class="btn btn-primary text-center my-4" href="{% url 'member:club_create' %}" data-turbolinks="false">{% trans "Create club" %}</a>
</div> </div>
</div> </div>
<div class="row justify-content-center"> <div class="row justify-content-center">

View File

@ -218,26 +218,18 @@ class Transaction(PolymorphicModel):
# When source == destination, no money is transferred and no transaction is created # When source == destination, no money is transferred and no transaction is created
return return
self.log("Saving")
# We save first the transaction, in case of the user has no right to transfer money # We save first the transaction, in case of the user has no right to transfer money
super().save(*args, **kwargs) super().save(*args, **kwargs)
self.log("Saved")
# Save notes # Save notes
self.source.refresh_from_db() self.source.refresh_from_db()
self.source.balance += diff_source self.source.balance += diff_source
self.source._force_save = True self.source._force_save = True
self.source.save() self.source.save()
self.log("Source saved")
self.destination.refresh_from_db() self.destination.refresh_from_db()
self.destination.balance += diff_dest self.destination.balance += diff_dest
self.destination._force_save = True self.destination._force_save = True
self.destination.save() self.destination.save()
self.log("Destination saved")
def log(self, msg):
with open("/tmp/log", "a") as f:
f.write(msg + "\n")
def delete(self, **kwargs): def delete(self, **kwargs):
""" """

View File

@ -153,13 +153,20 @@ class ButtonTable(tables.Table):
model = TransactionTemplate model = TransactionTemplate
exclude = ('id',) exclude = ('id',)
edit = tables.LinkColumn('note:template_update', edit = tables.LinkColumn(
'note:template_update',
args=[A('pk')], args=[A('pk')],
attrs={'td': {'class': 'col-sm-1'}, attrs={
'a': {'class': 'btn btn-sm btn-primary'}}, 'td': {'class': 'col-sm-1'},
'a': {
'class': 'btn btn-sm btn-primary',
'data-turbolinks': 'false',
}
},
text=_('edit'), text=_('edit'),
accessor='pk', accessor='pk',
verbose_name=_("Edit"),) verbose_name=_("Edit"),
)
delete_col = tables.TemplateColumn(template_code=DELETE_TEMPLATE, delete_col = tables.TemplateColumn(template_code=DELETE_TEMPLATE,
extra_context={"delete_trans": _('delete')}, extra_context={"delete_trans": _('delete')},

View File

@ -1,4 +1,5 @@
{% load pretty_money %} {% load pretty_money %}
{% load i18n %}
<!DOCTYPE html> <!DOCTYPE html>
<html lang="fr"> <html lang="fr">
@ -38,7 +39,7 @@
-- --
<p> <p>
Le BDE<br> Le BDE<br>
Mail généré par la Note Kfet le {% now "j F Y à H:i:s" %} {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}
</p> </p>
</body> </body>
</html> </html>

View File

@ -1,4 +1,5 @@
{% load pretty_money %} {% load pretty_money %}
{% load i18n %}
Bonjour {{ note.user.first_name }} {{ note.user.last_name }}, Bonjour {{ note.user.first_name }} {{ note.user.last_name }},
@ -20,4 +21,4 @@ virement bancaire.
-- --
Le BDE Le BDE
Mail généré par la Note Kfet le {% now "j F Y à H:i:s" %} {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}

View File

@ -1,4 +1,5 @@
{% load pretty_money %} {% load pretty_money %}
{% load i18n %}
<!DOCTYPE html> <!DOCTYPE html>
<html lang="fr"> <html lang="fr">
@ -35,7 +36,7 @@
-- --
<p> <p>
Le BDE<br> Le BDE<br>
Mail généré par la Note Kfet le {% now "j F Y à H:i:s" %} {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}
</p> </p>
</body> </body>
</html> </html>

View File

@ -1,4 +1,5 @@
{% load pretty_money %} {% load pretty_money %}
{% load i18n %}
Nom | Prénom | Pseudo | Email | Solde | Durée Nom | Prénom | Pseudo | Email | Solde | Durée
---------------------+------------+-----------------+-----------------------------------+----------+----------- ---------------------+------------+-----------------+-----------------------------------+----------+-----------
@ -9,4 +10,4 @@
-- --
Le BDE Le BDE
Mail généré par la Note Kfet le {% now "j F Y à H:i:s" %} {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}

View File

@ -1,5 +1,6 @@
{% load pretty_money %} {% load pretty_money %}
{% load render_table from django_tables2 %} {% load render_table from django_tables2 %}
{% load i18n %}
<!DOCTYPE html> <!DOCTYPE html>
<html lang="fr"> <html lang="fr">
@ -50,7 +51,7 @@
-- --
<p> <p>
Le BDE<br> Le BDE<br>
Mail généré par la Note Kfet le {% now "j F Y à H:i:s" %} {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}
</p> </p>
</body> </body>
</html> </html>

View File

@ -7,7 +7,7 @@
<div class="col-md-10 text-center"> <div class="col-md-10 text-center">
<input class="form-control mx-auto w-25" type="text" id="search_field" placeholder="{% trans "Name of the button..." %}"> <input class="form-control mx-auto w-25" type="text" id="search_field" placeholder="{% trans "Name of the button..." %}">
<hr> <hr>
<a class="btn btn-primary text-center my-1" href="{% url 'note:template_create' %}">{% trans "New button" %}</a> <a class="btn btn-primary text-center my-1" href="{% url 'note:template_create' %}" data-turbolinks="false">{% trans "New button" %}</a>
</div> </div>
</div> </div>
<div class="row justify-content-center"> <div class="row justify-content-center">

View File

@ -65,8 +65,6 @@ class InstancedPermission:
obj._force_delete = True obj._force_delete = True
Model.delete(obj) Model.delete(obj)
with open("/tmp/log", "w") as f:
f.write(str(obj) + ", " + str(obj.pk) + ", " + str(self.model.model_class().objects.filter(pk=0).exists()))
return ret return ret
if permission_type == self.type: if permission_type == self.type:

View File

@ -28,6 +28,12 @@ class SignUpForm(UserCreationForm):
self.add_error("username", _("An alias with a similar name already exists.")) self.add_error("username", _("An alias with a similar name already exists."))
return value return value
def clean_email(self):
email = self.cleaned_data["email"]
if User.objects.filter(email=email).exists():
self.add_error("email", _("This email address is already used."))
return email
class Meta: class Meta:
model = User model = User
fields = ('first_name', 'last_name', 'username', 'email', ) fields = ('first_name', 'last_name', 'username', 'email', )

View File

@ -36,6 +36,6 @@
-- --
<p> <p>
{% trans "The Note Kfet team." %} {% trans "The Note Kfet team." %}<br>
Mail généré par la Note Kfet le {% now "j F Y à H:i:s" %} {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}
</p> </p>

View File

@ -13,4 +13,4 @@ https://{{ domain }}{% url 'registration:email_validation' uidb64=uid token=toke
{% trans "Thanks" %}, {% trans "Thanks" %},
{% trans "The Note Kfet team." %} {% trans "The Note Kfet team." %}
Mail généré par la Note Kfet le {% now "j F Y à H:i:s" %} {% trans "Mail generated by the Note Kfet on the" %} {% now "j F Y à H:i:s" %}

@ -1 +1 @@
Subproject commit 53098f8adcf085fdb0e8ff058a3035bd2d4977a3 Subproject commit 2495128755f4d1fd803bfc3b641db8074fa65310

View File

@ -3,8 +3,8 @@
from django.contrib import admin from django.contrib import admin
from note_kfet.admin import admin_site from note_kfet.admin import admin_site
from .forms import ProductForm
from .forms import ProductForm
from .models import RemittanceType, Remittance, SogeCredit, Invoice, Product from .models import RemittanceType, Remittance, SogeCredit, Invoice, Product

View File

@ -13,7 +13,6 @@ from django.db.models import Q
from django.forms import Form from django.forms import Form
from django.http import HttpResponse from django.http import HttpResponse
from django.shortcuts import redirect from django.shortcuts import redirect
from django.template.loader import render_to_string
from django.urls import reverse_lazy from django.urls import reverse_lazy
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.views.generic import CreateView, UpdateView, DetailView from django.views.generic import CreateView, UpdateView, DetailView
@ -110,7 +109,6 @@ class InvoiceUpdateView(ProtectQuerysetMixin, LoginRequiredMixin, UpdateView):
for field_name in f.fields: for field_name in f.fields:
f.fields[field_name].disabled = True f.fields[field_name].disabled = True
return context return context
def form_valid(self, form): def form_valid(self, form):

View File

@ -47,7 +47,8 @@ class WEIRegistrationTable(tables.Table):
text=_("Edit"), text=_("Edit"),
attrs={ attrs={
'a': { 'a': {
'class': 'btn btn-warning' 'class': 'btn btn-warning',
'data-turbolinks': 'false',
} }
} }
) )

View File

@ -12,8 +12,8 @@
</div> </div>
<div class="card-footer text-center"> <div class="card-footer text-center">
<a class="btn btn-primary btn-sm my-1" href="{% url 'wei:update_bus' pk=object.pk %}">{% trans "Edit" %}</a> <a class="btn btn-primary btn-sm my-1" href="{% url 'wei:update_bus' pk=object.pk %}" data-turbolinks="false">{% trans "Edit" %}</a>
<a class="btn btn-primary btn-sm my-1" href="{% url 'wei:add_team' pk=object.pk %}">{% trans "Add team" %}</a> <a class="btn btn-primary btn-sm my-1" href="{% url 'wei:add_team' pk=object.pk %}" data-turbolinks="false">{% trans "Add team" %}</a>
</div> </div>
</div> </div>

View File

@ -12,8 +12,8 @@
</div> </div>
<div class="card-footer text-center"> <div class="card-footer text-center">
<a class="btn btn-primary btn-sm my-1" href="{% url 'wei:update_bus' pk=bus.pk %}">{% trans "Edit" %}</a> <a class="btn btn-primary btn-sm my-1" href="{% url 'wei:update_bus' pk=bus.pk %}" data-turbolinks="false">{% trans "Edit" %}</a>
<a class="btn btn-primary btn-sm my-1" href="{% url 'wei:add_team' pk=bus.pk %}">{% trans "Add team" %}</a> <a class="btn btn-primary btn-sm my-1" href="{% url 'wei:add_team' pk=bus.pk %}" data-turbolinks="false">{% trans "Add team" %}</a>
</div> </div>
</div> </div>

View File

@ -59,16 +59,16 @@
{% endif %} {% endif %}
{% if club.is_current_wei %} {% if club.is_current_wei %}
{% if can_add_first_year_member %} {% if can_add_first_year_member %}
<a class="btn btn-primary btn-sm my-1" href="{% url 'wei:wei_register_1A' wei_pk=club.pk %}"> {% trans "Register 1A" %}</a> <a class="btn btn-primary btn-sm my-1" href="{% url 'wei:wei_register_1A' wei_pk=club.pk %}" data-turbolinks="false"> {% trans "Register 1A" %}</a>
{% endif %} {% endif %}
{% if can_add_any_member %} {% if can_add_any_member %}
<a class="btn btn-primary btn-sm my-1" href="{% url 'wei:wei_register_2A' wei_pk=club.pk %}"> {% trans "Register 2A+" %}</a> <a class="btn btn-primary btn-sm my-1" href="{% url 'wei:wei_register_2A' wei_pk=club.pk %}" data-turbolinks="false"> {% trans "Register 2A+" %}</a>
{% endif %} {% endif %}
{% if "wei.change_"|has_perm:club %} {% if "wei.change_"|has_perm:club %}
<a class="btn btn-primary btn-sm my-1" href="{% url 'wei:wei_update' pk=club.pk %}"> {% trans "Edit" %}</a> <a class="btn btn-primary btn-sm my-1" href="{% url 'wei:wei_update' pk=club.pk %}" data-turbolinks="false"> {% trans "Edit" %}</a>
{% endif %} {% endif %}
{% if can_add_bus %} {% if can_add_bus %}
<a class="btn btn-primary btn-sm my-1" href="{% url 'wei:add_bus' pk=club.pk %}"> {% trans "Add bus" %}</a> <a class="btn btn-primary btn-sm my-1" href="{% url 'wei:add_bus' pk=club.pk %}" data-turbolinks="false"> {% trans "Add bus" %}</a>
{% endif %} {% endif %}
{% url 'wei:wei_detail' club.pk as club_detail_url %} {% url 'wei:wei_detail' club.pk as club_detail_url %}
{%if request.path_info != club_detail_url %} {%if request.path_info != club_detail_url %}

View File

@ -13,11 +13,11 @@
<div class="card-footer text-center"> <div class="card-footer text-center">
{% if not my_registration %} {% if not my_registration %}
{% if not not_first_year %} {% if not not_first_year %}
<a href="{% url "wei:wei_register_1A_myself" wei_pk=club.pk %}"><button class="btn btn-success">{% trans "Register to the WEI! 1A" %}</button></a> <a href="{% url "wei:wei_register_1A_myself" wei_pk=club.pk %}" data-turbolinks="false"><button class="btn btn-success">{% trans "Register to the WEI! 1A" %}</button></a>
{% endif %} {% endif %}
<a href="{% url "wei:wei_register_2A_myself" wei_pk=club.pk %}"><button class="btn btn-success">{% trans "Register to the WEI! 2A+" %}</button></a> <a href="{% url "wei:wei_register_2A_myself" wei_pk=club.pk %}" data-turbolinks="false"><button class="btn btn-success">{% trans "Register to the WEI! 2A+" %}</button></a>
{% else %} {% else %}
<a href="{% url "wei:wei_update_registration" pk=my_registration.pk %}"><button class="btn btn-warning">{% trans "Update my registration" %}</button></a> <a href="{% url "wei:wei_update_registration" pk=my_registration.pk %}" data-turbolinks="false"><button class="btn btn-warning">{% trans "Update my registration" %}</button></a>
{% endif %} {% endif %}
</div> </div>
{% endif %} {% endif %}

View File

@ -125,7 +125,7 @@
</dl> </dl>
</div> </div>
<div class="card-footer text-center"> <div class="card-footer text-center">
<a class="btn btn-primary btn-sm" href="{% url 'wei:wei_update_registration' registration.pk %}">{% trans 'Update registration' %}</a> <a class="btn btn-primary btn-sm" href="{% url 'wei:wei_update_registration' registration.pk %}" data-turbolinks="false">{% trans 'Update registration' %}</a>
{% if "auth.change_user"|has_perm:registration.user %} {% if "auth.change_user"|has_perm:registration.user %}
<a class="btn btn-primary btn-sm" href="{% url 'member:user_update_profile' registration.user.pk %}">{% trans 'Update Profile' %}</a> <a class="btn btn-primary btn-sm" href="{% url 'member:user_update_profile' registration.user.pk %}">{% trans 'Update Profile' %}</a>
{% endif %} {% endif %}

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-07 19:53+0200\n" "POT-Creation-Date: 2020-08-09 16:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -44,9 +44,9 @@ msgid "You can't invite more than 3 people to this activity."
msgstr "" msgstr ""
#: apps/activity/models.py:27 apps/activity/models.py:62 #: apps/activity/models.py:27 apps/activity/models.py:62
#: apps/member/models.py:172 apps/note/models/notes.py:212 #: apps/member/models.py:175 apps/note/models/notes.py:212
#: apps/note/models/transactions.py:25 apps/note/models/transactions.py:45 #: apps/note/models/transactions.py:25 apps/note/models/transactions.py:45
#: apps/note/models/transactions.py:295 apps/permission/models.py:331 #: apps/note/models/transactions.py:286 apps/permission/models.py:329
#: apps/wei/models.py:66 apps/wei/models.py:118 #: apps/wei/models.py:66 apps/wei/models.py:118
#: templates/member/club_info.html:13 templates/member/profile_info.html:14 #: templates/member/club_info.html:13 templates/member/profile_info.html:14
#: templates/registration/future_profile_detail.html:16 #: templates/registration/future_profile_detail.html:16
@ -78,8 +78,8 @@ msgstr ""
msgid "activity types" msgid "activity types"
msgstr "" msgstr ""
#: apps/activity/models.py:67 apps/note/models/transactions.py:81 #: apps/activity/models.py:67 apps/note/models/transactions.py:80
#: apps/permission/models.py:112 apps/permission/models.py:191 #: apps/permission/models.py:110 apps/permission/models.py:189
#: apps/wei/models.py:72 apps/wei/models.py:129 #: apps/wei/models.py:72 apps/wei/models.py:129
#: templates/activity/activity_info.html:19 #: templates/activity/activity_info.html:19
msgid "description" msgid "description"
@ -90,12 +90,12 @@ msgid "location"
msgstr "" msgstr ""
#: apps/activity/models.py:81 apps/note/models/notes.py:188 #: apps/activity/models.py:81 apps/note/models/notes.py:188
#: apps/note/models/transactions.py:66 apps/permission/models.py:166 #: apps/note/models/transactions.py:65 apps/permission/models.py:164
#: templates/activity/activity_info.html:22 #: templates/activity/activity_info.html:22
msgid "type" msgid "type"
msgstr "" msgstr ""
#: apps/activity/models.py:87 apps/logs/models.py:22 apps/member/models.py:277 #: apps/activity/models.py:87 apps/logs/models.py:22 apps/member/models.py:280
#: apps/note/models/notes.py:126 apps/treasury/models.py:266 #: apps/note/models/notes.py:126 apps/treasury/models.py:266
#: apps/wei/models.py:160 templates/treasury/sogecredit_detail.html:14 #: apps/wei/models.py:160 templates/treasury/sogecredit_detail.html:14
#: templates/wei/survey.html:16 #: templates/wei/survey.html:16
@ -118,7 +118,7 @@ msgstr ""
msgid "end date" msgid "end date"
msgstr "" msgstr ""
#: apps/activity/models.py:114 apps/note/models/transactions.py:146 #: apps/activity/models.py:114 apps/note/models/transactions.py:145
#: templates/activity/activity_info.html:50 #: templates/activity/activity_info.html:50
msgid "valid" msgid "valid"
msgstr "" msgstr ""
@ -199,14 +199,14 @@ msgid "Type"
msgstr "" msgstr ""
#: apps/activity/tables.py:81 apps/member/forms.py:106 #: apps/activity/tables.py:81 apps/member/forms.py:106
#: apps/registration/forms.py:70 apps/treasury/forms.py:135 #: apps/registration/forms.py:76 apps/treasury/forms.py:135
#: apps/wei/forms/registration.py:94 #: apps/wei/forms/registration.py:96
msgid "Last name" msgid "Last name"
msgstr "" msgstr ""
#: apps/activity/tables.py:83 apps/member/forms.py:111 #: apps/activity/tables.py:83 apps/member/forms.py:111
#: apps/registration/forms.py:75 apps/treasury/forms.py:137 #: apps/registration/forms.py:81 apps/treasury/forms.py:137
#: apps/wei/forms/registration.py:99 templates/note/transaction_form.html:131 #: apps/wei/forms/registration.py:101 templates/note/transaction_form.html:131
msgid "First name" msgid "First name"
msgstr "" msgstr ""
@ -254,7 +254,7 @@ msgstr ""
msgid "IP Address" msgid "IP Address"
msgstr "" msgstr ""
#: apps/logs/models.py:36 apps/permission/models.py:136 #: apps/logs/models.py:36 apps/permission/models.py:134
msgid "model" msgid "model"
msgstr "" msgstr ""
@ -274,14 +274,14 @@ msgstr ""
msgid "create" msgid "create"
msgstr "" msgstr ""
#: apps/logs/models.py:62 apps/note/tables.py:160 #: apps/logs/models.py:62 apps/note/tables.py:163
#: templates/activity/activity_info.html:71 #: templates/activity/activity_info.html:71
msgid "edit" msgid "edit"
msgstr "" msgstr ""
#: apps/logs/models.py:63 apps/note/tables.py:137 apps/note/tables.py:165 #: apps/logs/models.py:63 apps/note/tables.py:137 apps/note/tables.py:168
#: apps/permission/models.py:129 apps/treasury/tables.py:38 #: apps/permission/models.py:127 apps/treasury/tables.py:38
#: apps/wei/tables.py:73 #: apps/wei/tables.py:74
msgid "delete" msgid "delete"
msgstr "" msgstr ""
@ -305,25 +305,25 @@ msgstr ""
msgid "changelogs" msgid "changelogs"
msgstr "" msgstr ""
#: apps/member/admin.py:52 apps/member/models.py:199 #: apps/member/admin.py:52 apps/member/models.py:202
#: templates/member/club_info.html:41 #: templates/member/club_info.html:41
msgid "membership fee (paid students)" msgid "membership fee (paid students)"
msgstr "" msgstr ""
#: apps/member/admin.py:53 apps/member/models.py:204 #: apps/member/admin.py:53 apps/member/models.py:207
#: templates/member/club_info.html:44 #: templates/member/club_info.html:44
msgid "membership fee (unpaid students)" msgid "membership fee (unpaid students)"
msgstr "" msgstr ""
#: apps/member/admin.py:67 apps/member/models.py:288 #: apps/member/admin.py:67 apps/member/models.py:291
msgid "roles" msgid "roles"
msgstr "" msgstr ""
#: apps/member/admin.py:68 apps/member/models.py:302 #: apps/member/admin.py:68 apps/member/models.py:305
msgid "fee" msgid "fee"
msgstr "" msgstr ""
#: apps/member/apps.py:14 apps/wei/tables.py:179 apps/wei/tables.py:210 #: apps/member/apps.py:14 apps/wei/tables.py:180 apps/wei/tables.py:211
msgid "member" msgid "member"
msgstr "" msgstr ""
@ -340,21 +340,21 @@ msgstr ""
msgid "An alias with a similar name already exists." msgid "An alias with a similar name already exists."
msgstr "" msgstr ""
#: apps/member/forms.py:85 apps/registration/forms.py:50 #: apps/member/forms.py:85 apps/registration/forms.py:56
msgid "Inscription paid by Société Générale" msgid "Inscription paid by Société Générale"
msgstr "" msgstr ""
#: apps/member/forms.py:87 apps/registration/forms.py:52 #: apps/member/forms.py:87 apps/registration/forms.py:58
msgid "Check this case is the Société Générale paid the inscription." msgid "Check this case is the Société Générale paid the inscription."
msgstr "" msgstr ""
#: apps/member/forms.py:92 apps/registration/forms.py:57 #: apps/member/forms.py:92 apps/registration/forms.py:63
#: apps/wei/forms/registration.py:81 #: apps/wei/forms/registration.py:83
msgid "Credit type" msgid "Credit type"
msgstr "" msgstr ""
#: apps/member/forms.py:93 apps/registration/forms.py:58 #: apps/member/forms.py:93 apps/registration/forms.py:64
#: apps/wei/forms/registration.py:82 #: apps/wei/forms/registration.py:84
msgid "No credit" msgid "No credit"
msgstr "" msgstr ""
@ -362,13 +362,13 @@ msgstr ""
msgid "You can credit the note of the user." msgid "You can credit the note of the user."
msgstr "" msgstr ""
#: apps/member/forms.py:99 apps/registration/forms.py:63 #: apps/member/forms.py:99 apps/registration/forms.py:69
#: apps/wei/forms/registration.py:87 #: apps/wei/forms/registration.py:89
msgid "Credit amount" msgid "Credit amount"
msgstr "" msgstr ""
#: apps/member/forms.py:116 apps/registration/forms.py:80 #: apps/member/forms.py:116 apps/registration/forms.py:86
#: apps/treasury/forms.py:139 apps/wei/forms/registration.py:104 #: apps/treasury/forms.py:139 apps/wei/forms/registration.py:106
#: templates/note/transaction_form.html:137 #: templates/note/transaction_form.html:137
msgid "Bank" msgid "Bank"
msgstr "" msgstr ""
@ -509,92 +509,92 @@ msgstr ""
msgid "user profile" msgid "user profile"
msgstr "" msgstr ""
#: apps/member/models.py:148 #: apps/member/models.py:151
msgid "Activate your Note Kfet account" msgid "Activate your Note Kfet account"
msgstr "" msgstr ""
#: apps/member/models.py:177 templates/member/club_info.html:57 #: apps/member/models.py:180 templates/member/club_info.html:57
#: templates/registration/future_profile_detail.html:22 #: templates/registration/future_profile_detail.html:22
#: templates/wei/weiclub_info.html:52 templates/wei/weimembership_form.html:24 #: templates/wei/weiclub_info.html:52 templates/wei/weimembership_form.html:24
msgid "email" msgid "email"
msgstr "" msgstr ""
#: apps/member/models.py:184 #: apps/member/models.py:187
msgid "parent club" msgid "parent club"
msgstr "" msgstr ""
#: apps/member/models.py:193 #: apps/member/models.py:196
msgid "require memberships" msgid "require memberships"
msgstr "" msgstr ""
#: apps/member/models.py:194 #: apps/member/models.py:197
msgid "Uncheck if this club don't require memberships." msgid "Uncheck if this club don't require memberships."
msgstr "" msgstr ""
#: apps/member/models.py:210 templates/member/club_info.html:33 #: apps/member/models.py:213 templates/member/club_info.html:33
msgid "membership duration" msgid "membership duration"
msgstr "" msgstr ""
#: apps/member/models.py:211 #: apps/member/models.py:214
msgid "The longest time (in days) a membership can last (NULL = infinite)." msgid "The longest time (in days) a membership can last (NULL = infinite)."
msgstr "" msgstr ""
#: apps/member/models.py:218 templates/member/club_info.html:23 #: apps/member/models.py:221 templates/member/club_info.html:23
msgid "membership start" msgid "membership start"
msgstr "" msgstr ""
#: apps/member/models.py:219 #: apps/member/models.py:222
msgid "Date from which the members can renew their membership." msgid "Date from which the members can renew their membership."
msgstr "" msgstr ""
#: apps/member/models.py:225 templates/member/club_info.html:28 #: apps/member/models.py:228 templates/member/club_info.html:28
msgid "membership end" msgid "membership end"
msgstr "" msgstr ""
#: apps/member/models.py:226 #: apps/member/models.py:229
msgid "Maximal date of a membership, after which members must renew it." msgid "Maximal date of a membership, after which members must renew it."
msgstr "" msgstr ""
#: apps/member/models.py:258 apps/member/models.py:283 #: apps/member/models.py:261 apps/member/models.py:286
#: apps/note/models/notes.py:163 #: apps/note/models/notes.py:163
msgid "club" msgid "club"
msgstr "" msgstr ""
#: apps/member/models.py:259 #: apps/member/models.py:262
msgid "clubs" msgid "clubs"
msgstr "" msgstr ""
#: apps/member/models.py:293 #: apps/member/models.py:296
msgid "membership starts on" msgid "membership starts on"
msgstr "" msgstr ""
#: apps/member/models.py:297 #: apps/member/models.py:300
msgid "membership ends on" msgid "membership ends on"
msgstr "" msgstr ""
#: apps/member/models.py:348 #: apps/member/models.py:351
#, python-brace-format #, python-brace-format
msgid "The role {role} does not apply to the club {club}." msgid "The role {role} does not apply to the club {club}."
msgstr "" msgstr ""
#: apps/member/models.py:359 apps/member/views.py:592 #: apps/member/models.py:362 apps/member/views.py:592
msgid "User is already a member of the club" msgid "User is already a member of the club"
msgstr "" msgstr ""
#: apps/member/models.py:406 #: apps/member/models.py:409
msgid "User is not a member of the parent club" msgid "User is not a member of the parent club"
msgstr "" msgstr ""
#: apps/member/models.py:459 #: apps/member/models.py:462
#, python-brace-format #, python-brace-format
msgid "Membership of {user} for the club {club}" msgid "Membership of {user} for the club {club}"
msgstr "" msgstr ""
#: apps/member/models.py:462 #: apps/member/models.py:465
msgid "membership" msgid "membership"
msgstr "" msgstr ""
#: apps/member/models.py:463 #: apps/member/models.py:466
msgid "memberships" msgid "memberships"
msgstr "" msgstr ""
@ -680,17 +680,17 @@ msgstr ""
msgid "Members of the club" msgid "Members of the club"
msgstr "" msgstr ""
#: apps/note/admin.py:133 apps/note/models/transactions.py:106 #: apps/note/admin.py:133 apps/note/models/transactions.py:105
msgid "source" msgid "source"
msgstr "" msgstr ""
#: apps/note/admin.py:141 apps/note/admin.py:191 #: apps/note/admin.py:141 apps/note/admin.py:191
#: apps/note/models/transactions.py:55 apps/note/models/transactions.py:119 #: apps/note/models/transactions.py:55 apps/note/models/transactions.py:118
msgid "destination" msgid "destination"
msgstr "" msgstr ""
#: apps/note/admin.py:196 apps/note/models/transactions.py:59 #: apps/note/admin.py:196 apps/note/models/transactions.py:59
#: apps/note/models/transactions.py:137 #: apps/note/models/transactions.py:136
msgid "amount" msgid "amount"
msgstr "" msgstr ""
@ -764,7 +764,7 @@ msgstr ""
msgid "display image" msgid "display image"
msgstr "" msgstr ""
#: apps/note/models/notes.py:55 apps/note/models/transactions.py:129 #: apps/note/models/notes.py:55 apps/note/models/transactions.py:128
msgid "created at" msgid "created at"
msgstr "" msgstr ""
@ -847,115 +847,115 @@ msgstr ""
msgid "A template with this name already exist" msgid "A template with this name already exist"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:72 #: apps/note/models/transactions.py:71
msgid "display" msgid "display"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:77 #: apps/note/models/transactions.py:76
msgid "highlighted" msgid "highlighted"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:87 #: apps/note/models/transactions.py:86
msgid "transaction template" msgid "transaction template"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:88 #: apps/note/models/transactions.py:87
msgid "transaction templates" msgid "transaction templates"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:112 apps/note/models/transactions.py:125 #: apps/note/models/transactions.py:111 apps/note/models/transactions.py:124
#: apps/note/tables.py:35 apps/note/tables.py:44 #: apps/note/tables.py:35 apps/note/tables.py:44
msgid "used alias" msgid "used alias"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:133 #: apps/note/models/transactions.py:132
msgid "quantity" msgid "quantity"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:141 #: apps/note/models/transactions.py:140
msgid "reason" msgid "reason"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:151 apps/note/tables.py:112 #: apps/note/models/transactions.py:150 apps/note/tables.py:112
msgid "invalidity reason" msgid "invalidity reason"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:159 #: apps/note/models/transactions.py:158
msgid "transaction" msgid "transaction"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:160 #: apps/note/models/transactions.py:159
#: templates/treasury/sogecredit_detail.html:22 #: templates/treasury/sogecredit_detail.html:22
msgid "transactions" msgid "transactions"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:197 #: apps/note/models/transactions.py:192
msgid "" msgid ""
"The note balances must be between - 21 474 836.47 € and 21 474 836.47 €." "The note balances must be between - 21 474 836.47 € and 21 474 836.47 €."
msgstr "" msgstr ""
#: apps/note/models/transactions.py:212 #: apps/note/models/transactions.py:207
msgid "" msgid ""
"The transaction can't be saved since the source note or the destination note " "The transaction can't be saved since the source note or the destination note "
"is not active." "is not active."
msgstr "" msgstr ""
#: apps/note/models/transactions.py:257 #: apps/note/models/transactions.py:248
#: templates/activity/activity_entry.html:13 templates/base.html:99 #: templates/activity/activity_entry.html:13 templates/base.html:99
#: templates/note/transaction_form.html:15 #: templates/note/transaction_form.html:15
#: templates/note/transaction_form.html:145 #: templates/note/transaction_form.html:145
msgid "Transfer" msgid "Transfer"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:281 #: apps/note/models/transactions.py:272
msgid "Template" msgid "Template"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:284 #: apps/note/models/transactions.py:275
msgid "recurrent transaction" msgid "recurrent transaction"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:285 #: apps/note/models/transactions.py:276
msgid "recurrent transactions" msgid "recurrent transactions"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:300 #: apps/note/models/transactions.py:291
msgid "first_name" msgid "first_name"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:305 #: apps/note/models/transactions.py:296
msgid "bank" msgid "bank"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:311 #: apps/note/models/transactions.py:302
#: templates/activity/activity_entry.html:17 #: templates/activity/activity_entry.html:17
#: templates/note/transaction_form.html:20 #: templates/note/transaction_form.html:20
msgid "Credit" msgid "Credit"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:311 templates/note/transaction_form.html:25 #: apps/note/models/transactions.py:302 templates/note/transaction_form.html:25
msgid "Debit" msgid "Debit"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:322 #: apps/note/models/transactions.py:313
msgid "" msgid ""
"A special transaction is only possible between a Note associated to a " "A special transaction is only possible between a Note associated to a "
"payment method and a User or a Club" "payment method and a User or a Club"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:326 #: apps/note/models/transactions.py:317
msgid "Special transaction" msgid "Special transaction"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:327 #: apps/note/models/transactions.py:318
msgid "Special transactions" msgid "Special transactions"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:343 apps/note/models/transactions.py:348 #: apps/note/models/transactions.py:334 apps/note/models/transactions.py:339
msgid "membership transaction" msgid "membership transaction"
msgstr "" msgstr ""
#: apps/note/models/transactions.py:344 apps/treasury/models.py:272 #: apps/note/models/transactions.py:335 apps/treasury/models.py:272
msgid "membership transactions" msgid "membership transactions"
msgstr "" msgstr ""
@ -971,15 +971,15 @@ msgstr ""
msgid "No reason specified" msgid "No reason specified"
msgstr "" msgstr ""
#: apps/note/tables.py:139 apps/note/tables.py:167 apps/treasury/tables.py:39 #: apps/note/tables.py:139 apps/note/tables.py:170 apps/treasury/tables.py:39
#: apps/wei/tables.py:74 apps/wei/tables.py:100 #: apps/wei/tables.py:75 apps/wei/tables.py:101
#: templates/treasury/invoice_confirm_delete.html:28 #: templates/treasury/invoice_confirm_delete.html:28
#: templates/treasury/sogecredit_detail.html:59 #: templates/treasury/sogecredit_detail.html:59
#: templates/wei/weiregistration_confirm_delete.html:32 #: templates/wei/weiregistration_confirm_delete.html:32
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: apps/note/tables.py:162 apps/wei/tables.py:46 apps/wei/tables.py:47 #: apps/note/tables.py:165 apps/wei/tables.py:46 apps/wei/tables.py:47
#: templates/member/club_info.html:67 templates/note/conso_form.html:130 #: templates/member/club_info.html:67 templates/note/conso_form.html:130
#: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15 #: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15
#: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:68 #: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:68
@ -1010,79 +1010,79 @@ msgstr ""
msgid "Search transactions" msgid "Search transactions"
msgstr "" msgstr ""
#: apps/permission/models.py:91 #: apps/permission/models.py:89
#, python-brace-format #, python-brace-format
msgid "Can {type} {model}.{field} in {query}" msgid "Can {type} {model}.{field} in {query}"
msgstr "" msgstr ""
#: apps/permission/models.py:93 #: apps/permission/models.py:91
#, python-brace-format #, python-brace-format
msgid "Can {type} {model} in {query}" msgid "Can {type} {model} in {query}"
msgstr "" msgstr ""
#: apps/permission/models.py:106 #: apps/permission/models.py:104
msgid "rank" msgid "rank"
msgstr "" msgstr ""
#: apps/permission/models.py:119 #: apps/permission/models.py:117
msgid "permission mask" msgid "permission mask"
msgstr "" msgstr ""
#: apps/permission/models.py:120 #: apps/permission/models.py:118
msgid "permission masks" msgid "permission masks"
msgstr "" msgstr ""
#: apps/permission/models.py:126 #: apps/permission/models.py:124
msgid "add" msgid "add"
msgstr "" msgstr ""
#: apps/permission/models.py:127 #: apps/permission/models.py:125
msgid "view" msgid "view"
msgstr "" msgstr ""
#: apps/permission/models.py:128 #: apps/permission/models.py:126
msgid "change" msgid "change"
msgstr "" msgstr ""
#: apps/permission/models.py:160 #: apps/permission/models.py:158
msgid "query" msgid "query"
msgstr "" msgstr ""
#: apps/permission/models.py:173 #: apps/permission/models.py:171
msgid "mask" msgid "mask"
msgstr "" msgstr ""
#: apps/permission/models.py:179 #: apps/permission/models.py:177
msgid "field" msgid "field"
msgstr "" msgstr ""
#: apps/permission/models.py:184 #: apps/permission/models.py:182
msgid "" msgid ""
"Tells if the permission should be granted even if the membership of the user " "Tells if the permission should be granted even if the membership of the user "
"is expired." "is expired."
msgstr "" msgstr ""
#: apps/permission/models.py:185 templates/permission/all_rights.html:36 #: apps/permission/models.py:183 templates/permission/all_rights.html:36
msgid "permanent" msgid "permanent"
msgstr "" msgstr ""
#: apps/permission/models.py:196 #: apps/permission/models.py:194
msgid "permission" msgid "permission"
msgstr "" msgstr ""
#: apps/permission/models.py:197 apps/permission/models.py:336 #: apps/permission/models.py:195 apps/permission/models.py:334
msgid "permissions" msgid "permissions"
msgstr "" msgstr ""
#: apps/permission/models.py:202 #: apps/permission/models.py:200
msgid "Specifying field applies only to view and change permission types." msgid "Specifying field applies only to view and change permission types."
msgstr "" msgstr ""
#: apps/permission/models.py:341 #: apps/permission/models.py:339
msgid "for club" msgid "for club"
msgstr "" msgstr ""
#: apps/permission/models.py:351 apps/permission/models.py:352 #: apps/permission/models.py:349 apps/permission/models.py:350
msgid "role permissions" msgid "role permissions"
msgstr "" msgstr ""
@ -1119,21 +1119,25 @@ msgstr ""
msgid "registration" msgid "registration"
msgstr "" msgstr ""
#: apps/registration/forms.py:38 #: apps/registration/forms.py:34
msgid "This email address is already used."
msgstr ""
#: apps/registration/forms.py:44
msgid "Register to the WEI" msgid "Register to the WEI"
msgstr "" msgstr ""
#: apps/registration/forms.py:40 #: apps/registration/forms.py:46
msgid "" msgid ""
"Check this case if you want to register to the WEI. If you hesitate, you " "Check this case if you want to register to the WEI. If you hesitate, you "
"will be able to register later, after validating your account in the Kfet." "will be able to register later, after validating your account in the Kfet."
msgstr "" msgstr ""
#: apps/registration/forms.py:85 #: apps/registration/forms.py:91
msgid "Join BDE Club" msgid "Join BDE Club"
msgstr "" msgstr ""
#: apps/registration/forms.py:92 #: apps/registration/forms.py:98
msgid "Join Kfet Club" msgid "Join Kfet Club"
msgstr "" msgstr ""
@ -1446,41 +1450,41 @@ msgstr ""
msgid "WEI" msgid "WEI"
msgstr "" msgstr ""
#: apps/wei/forms/registration.py:49 apps/wei/models.py:113 #: apps/wei/forms/registration.py:51 apps/wei/models.py:113
#: apps/wei/models.py:298 #: apps/wei/models.py:298
msgid "bus" msgid "bus"
msgstr "" msgstr ""
#: apps/wei/forms/registration.py:50 #: apps/wei/forms/registration.py:52
msgid "" msgid ""
"This choice is not definitive. The WEI organizers are free to attribute for " "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." "you a bus and a team, in particular if you are a free eletron."
msgstr "" msgstr ""
#: apps/wei/forms/registration.py:57 #: apps/wei/forms/registration.py:59
msgid "Team" msgid "Team"
msgstr "" msgstr ""
#: apps/wei/forms/registration.py:59 #: apps/wei/forms/registration.py:61
msgid "" msgid ""
"Leave this field empty if you won't be in a team (staff, bus chief, free " "Leave this field empty if you won't be in a team (staff, bus chief, free "
"electron)" "electron)"
msgstr "" msgstr ""
#: apps/wei/forms/registration.py:65 apps/wei/forms/registration.py:75 #: apps/wei/forms/registration.py:67 apps/wei/forms/registration.py:77
#: apps/wei/models.py:148 #: apps/wei/models.py:148
msgid "WEI Roles" msgid "WEI Roles"
msgstr "" msgstr ""
#: apps/wei/forms/registration.py:66 #: apps/wei/forms/registration.py:68
msgid "Select the roles that you are interested in." msgid "Select the roles that you are interested in."
msgstr "" msgstr ""
#: apps/wei/forms/registration.py:111 #: apps/wei/forms/registration.py:113
msgid "This team doesn't belong to the given bus." msgid "This team doesn't belong to the given bus."
msgstr "" msgstr ""
#: apps/wei/forms/surveys/wei2020.py:26 #: apps/wei/forms/surveys/wei2020.py:29
msgid "Choose a word:" msgid "Choose a word:"
msgstr "" msgstr ""
@ -1640,25 +1644,25 @@ msgstr ""
msgid "WEI memberships" msgid "WEI memberships"
msgstr "" msgstr ""
#: apps/wei/tables.py:57 apps/wei/tables.py:58 apps/wei/tables.py:95 #: apps/wei/tables.py:58 apps/wei/tables.py:59 apps/wei/tables.py:96
#: templates/treasury/sogecredit_detail.html:57 #: templates/treasury/sogecredit_detail.html:57
msgid "Validate" msgid "Validate"
msgstr "" msgstr ""
#: apps/wei/tables.py:125 #: apps/wei/tables.py:126
msgid "Year" msgid "Year"
msgstr "" msgstr ""
#: apps/wei/tables.py:163 templates/wei/bus_tables.html:26 #: apps/wei/tables.py:164 templates/wei/bus_tables.html:26
#: templates/wei/busteam_tables.html:43 #: templates/wei/busteam_tables.html:43
msgid "Teams" msgid "Teams"
msgstr "" msgstr ""
#: apps/wei/tables.py:172 apps/wei/tables.py:213 #: apps/wei/tables.py:173 apps/wei/tables.py:214
msgid "Members count" msgid "Members count"
msgstr "" msgstr ""
#: apps/wei/tables.py:179 apps/wei/tables.py:210 #: apps/wei/tables.py:180 apps/wei/tables.py:211
msgid "members" msgid "members"
msgstr "" msgstr ""
@ -2316,6 +2320,10 @@ msgstr ""
msgid "The Note Kfet team." msgid "The Note Kfet team."
msgstr "" msgstr ""
#: templates/registration/mails/email_validation_email.html:40
msgid "Mail generated by the Note Kfet on the"
msgstr ""
#: templates/registration/password_change_done.html:8 #: templates/registration/password_change_done.html:8
msgid "Your password was changed." msgid "Your password was changed."
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-07 19:53+0200\n" "POT-Creation-Date: 2020-08-09 16:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -45,9 +45,9 @@ msgid "You can't invite more than 3 people to this activity."
msgstr "Vous ne pouvez pas inviter plus de 3 personnes à cette activité." msgstr "Vous ne pouvez pas inviter plus de 3 personnes à cette activité."
#: apps/activity/models.py:27 apps/activity/models.py:62 #: apps/activity/models.py:27 apps/activity/models.py:62
#: apps/member/models.py:172 apps/note/models/notes.py:212 #: apps/member/models.py:175 apps/note/models/notes.py:212
#: apps/note/models/transactions.py:25 apps/note/models/transactions.py:45 #: apps/note/models/transactions.py:25 apps/note/models/transactions.py:45
#: apps/note/models/transactions.py:295 apps/permission/models.py:331 #: apps/note/models/transactions.py:286 apps/permission/models.py:329
#: apps/wei/models.py:66 apps/wei/models.py:118 #: apps/wei/models.py:66 apps/wei/models.py:118
#: templates/member/club_info.html:13 templates/member/profile_info.html:14 #: templates/member/club_info.html:13 templates/member/profile_info.html:14
#: templates/registration/future_profile_detail.html:16 #: templates/registration/future_profile_detail.html:16
@ -79,8 +79,8 @@ msgstr "type d'activité"
msgid "activity types" msgid "activity types"
msgstr "types d'activité" msgstr "types d'activité"
#: apps/activity/models.py:67 apps/note/models/transactions.py:81 #: apps/activity/models.py:67 apps/note/models/transactions.py:80
#: apps/permission/models.py:112 apps/permission/models.py:191 #: apps/permission/models.py:110 apps/permission/models.py:189
#: apps/wei/models.py:72 apps/wei/models.py:129 #: apps/wei/models.py:72 apps/wei/models.py:129
#: templates/activity/activity_info.html:19 #: templates/activity/activity_info.html:19
msgid "description" msgid "description"
@ -91,12 +91,12 @@ msgid "location"
msgstr "lieu" msgstr "lieu"
#: apps/activity/models.py:81 apps/note/models/notes.py:188 #: apps/activity/models.py:81 apps/note/models/notes.py:188
#: apps/note/models/transactions.py:66 apps/permission/models.py:166 #: apps/note/models/transactions.py:65 apps/permission/models.py:164
#: templates/activity/activity_info.html:22 #: templates/activity/activity_info.html:22
msgid "type" msgid "type"
msgstr "type" msgstr "type"
#: apps/activity/models.py:87 apps/logs/models.py:22 apps/member/models.py:277 #: apps/activity/models.py:87 apps/logs/models.py:22 apps/member/models.py:280
#: apps/note/models/notes.py:126 apps/treasury/models.py:266 #: apps/note/models/notes.py:126 apps/treasury/models.py:266
#: apps/wei/models.py:160 templates/treasury/sogecredit_detail.html:14 #: apps/wei/models.py:160 templates/treasury/sogecredit_detail.html:14
#: templates/wei/survey.html:16 #: templates/wei/survey.html:16
@ -119,7 +119,7 @@ msgstr "date de début"
msgid "end date" msgid "end date"
msgstr "date de fin" msgstr "date de fin"
#: apps/activity/models.py:114 apps/note/models/transactions.py:146 #: apps/activity/models.py:114 apps/note/models/transactions.py:145
#: templates/activity/activity_info.html:50 #: templates/activity/activity_info.html:50
msgid "valid" msgid "valid"
msgstr "valide" msgstr "valide"
@ -200,14 +200,14 @@ msgid "Type"
msgstr "Type" msgstr "Type"
#: apps/activity/tables.py:81 apps/member/forms.py:106 #: apps/activity/tables.py:81 apps/member/forms.py:106
#: apps/registration/forms.py:70 apps/treasury/forms.py:135 #: apps/registration/forms.py:76 apps/treasury/forms.py:135
#: apps/wei/forms/registration.py:94 #: apps/wei/forms/registration.py:96
msgid "Last name" msgid "Last name"
msgstr "Nom de famille" msgstr "Nom de famille"
#: apps/activity/tables.py:83 apps/member/forms.py:111 #: apps/activity/tables.py:83 apps/member/forms.py:111
#: apps/registration/forms.py:75 apps/treasury/forms.py:137 #: apps/registration/forms.py:81 apps/treasury/forms.py:137
#: apps/wei/forms/registration.py:99 templates/note/transaction_form.html:131 #: apps/wei/forms/registration.py:101 templates/note/transaction_form.html:131
msgid "First name" msgid "First name"
msgstr "Prénom" msgstr "Prénom"
@ -255,7 +255,7 @@ msgstr "Logs"
msgid "IP Address" msgid "IP Address"
msgstr "Adresse IP" msgstr "Adresse IP"
#: apps/logs/models.py:36 apps/permission/models.py:136 #: apps/logs/models.py:36 apps/permission/models.py:134
msgid "model" msgid "model"
msgstr "Modèle" msgstr "Modèle"
@ -275,14 +275,14 @@ msgstr "Nouvelles données"
msgid "create" msgid "create"
msgstr "Créer" msgstr "Créer"
#: apps/logs/models.py:62 apps/note/tables.py:160 #: apps/logs/models.py:62 apps/note/tables.py:163
#: templates/activity/activity_info.html:71 #: templates/activity/activity_info.html:71
msgid "edit" msgid "edit"
msgstr "Modifier" msgstr "Modifier"
#: apps/logs/models.py:63 apps/note/tables.py:137 apps/note/tables.py:165 #: apps/logs/models.py:63 apps/note/tables.py:137 apps/note/tables.py:168
#: apps/permission/models.py:129 apps/treasury/tables.py:38 #: apps/permission/models.py:127 apps/treasury/tables.py:38
#: apps/wei/tables.py:73 #: apps/wei/tables.py:74
msgid "delete" msgid "delete"
msgstr "Supprimer" msgstr "Supprimer"
@ -306,25 +306,25 @@ msgstr "journal de modification"
msgid "changelogs" msgid "changelogs"
msgstr "journaux de modifications" msgstr "journaux de modifications"
#: apps/member/admin.py:52 apps/member/models.py:199 #: apps/member/admin.py:52 apps/member/models.py:202
#: templates/member/club_info.html:41 #: templates/member/club_info.html:41
msgid "membership fee (paid students)" msgid "membership fee (paid students)"
msgstr "cotisation pour adhérer (normalien élève)" msgstr "cotisation pour adhérer (normalien élève)"
#: apps/member/admin.py:53 apps/member/models.py:204 #: apps/member/admin.py:53 apps/member/models.py:207
#: templates/member/club_info.html:44 #: templates/member/club_info.html:44
msgid "membership fee (unpaid students)" msgid "membership fee (unpaid students)"
msgstr "cotisation pour adhérer (normalien étudiant)" msgstr "cotisation pour adhérer (normalien étudiant)"
#: apps/member/admin.py:67 apps/member/models.py:288 #: apps/member/admin.py:67 apps/member/models.py:291
msgid "roles" msgid "roles"
msgstr "rôles" msgstr "rôles"
#: apps/member/admin.py:68 apps/member/models.py:302 #: apps/member/admin.py:68 apps/member/models.py:305
msgid "fee" msgid "fee"
msgstr "cotisation" msgstr "cotisation"
#: apps/member/apps.py:14 apps/wei/tables.py:179 apps/wei/tables.py:210 #: apps/member/apps.py:14 apps/wei/tables.py:180 apps/wei/tables.py:211
msgid "member" msgid "member"
msgstr "adhérent" msgstr "adhérent"
@ -341,21 +341,21 @@ msgstr "Date de dernier rapport"
msgid "An alias with a similar name already exists." msgid "An alias with a similar name already exists."
msgstr "Un alias avec un nom similaire existe déjà." msgstr "Un alias avec un nom similaire existe déjà."
#: apps/member/forms.py:85 apps/registration/forms.py:50 #: apps/member/forms.py:85 apps/registration/forms.py:56
msgid "Inscription paid by Société Générale" msgid "Inscription paid by Société Générale"
msgstr "Inscription payée par la Société générale" msgstr "Inscription payée par la Société générale"
#: apps/member/forms.py:87 apps/registration/forms.py:52 #: apps/member/forms.py:87 apps/registration/forms.py:58
msgid "Check this case is the Société Générale paid the inscription." msgid "Check this case is the Société Générale paid the inscription."
msgstr "Cochez cette case si la Société Générale a payé l'inscription." msgstr "Cochez cette case si la Société Générale a payé l'inscription."
#: apps/member/forms.py:92 apps/registration/forms.py:57 #: apps/member/forms.py:92 apps/registration/forms.py:63
#: apps/wei/forms/registration.py:81 #: apps/wei/forms/registration.py:83
msgid "Credit type" msgid "Credit type"
msgstr "Type de rechargement" msgstr "Type de rechargement"
#: apps/member/forms.py:93 apps/registration/forms.py:58 #: apps/member/forms.py:93 apps/registration/forms.py:64
#: apps/wei/forms/registration.py:82 #: apps/wei/forms/registration.py:84
msgid "No credit" msgid "No credit"
msgstr "Pas de rechargement" msgstr "Pas de rechargement"
@ -363,13 +363,13 @@ msgstr "Pas de rechargement"
msgid "You can credit the note of the user." msgid "You can credit the note of the user."
msgstr "Vous pouvez créditer la note de l'utisateur avant l'adhésion." msgstr "Vous pouvez créditer la note de l'utisateur avant l'adhésion."
#: apps/member/forms.py:99 apps/registration/forms.py:63 #: apps/member/forms.py:99 apps/registration/forms.py:69
#: apps/wei/forms/registration.py:87 #: apps/wei/forms/registration.py:89
msgid "Credit amount" msgid "Credit amount"
msgstr "Montant à créditer" msgstr "Montant à créditer"
#: apps/member/forms.py:116 apps/registration/forms.py:80 #: apps/member/forms.py:116 apps/registration/forms.py:86
#: apps/treasury/forms.py:139 apps/wei/forms/registration.py:104 #: apps/treasury/forms.py:139 apps/wei/forms/registration.py:106
#: templates/note/transaction_form.html:137 #: templates/note/transaction_form.html:137
msgid "Bank" msgid "Bank"
msgstr "Banque" msgstr "Banque"
@ -510,95 +510,95 @@ msgstr "inscription valide"
msgid "user profile" msgid "user profile"
msgstr "profil utilisateur" msgstr "profil utilisateur"
#: apps/member/models.py:148 #: apps/member/models.py:151
msgid "Activate your Note Kfet account" msgid "Activate your Note Kfet account"
msgstr "Activez votre compte Note Kfet" msgstr "Activez votre compte Note Kfet"
#: apps/member/models.py:177 templates/member/club_info.html:57 #: apps/member/models.py:180 templates/member/club_info.html:57
#: templates/registration/future_profile_detail.html:22 #: templates/registration/future_profile_detail.html:22
#: templates/wei/weiclub_info.html:52 templates/wei/weimembership_form.html:24 #: templates/wei/weiclub_info.html:52 templates/wei/weimembership_form.html:24
msgid "email" msgid "email"
msgstr "courriel" msgstr "courriel"
#: apps/member/models.py:184 #: apps/member/models.py:187
msgid "parent club" msgid "parent club"
msgstr "club parent" msgstr "club parent"
#: apps/member/models.py:193 #: apps/member/models.py:196
msgid "require memberships" msgid "require memberships"
msgstr "nécessite des adhésions" msgstr "nécessite des adhésions"
#: apps/member/models.py:194 #: apps/member/models.py:197
msgid "Uncheck if this club don't require memberships." msgid "Uncheck if this club don't require memberships."
msgstr "Décochez si ce club n'utilise pas d'adhésions." msgstr "Décochez si ce club n'utilise pas d'adhésions."
#: apps/member/models.py:210 templates/member/club_info.html:33 #: apps/member/models.py:213 templates/member/club_info.html:33
msgid "membership duration" msgid "membership duration"
msgstr "durée de l'adhésion" msgstr "durée de l'adhésion"
#: apps/member/models.py:211 #: apps/member/models.py:214
msgid "The longest time (in days) a membership can last (NULL = infinite)." msgid "The longest time (in days) a membership can last (NULL = infinite)."
msgstr "La durée maximale (en jours) d'une adhésion (NULL = infinie)." msgstr "La durée maximale (en jours) d'une adhésion (NULL = infinie)."
#: apps/member/models.py:218 templates/member/club_info.html:23 #: apps/member/models.py:221 templates/member/club_info.html:23
msgid "membership start" msgid "membership start"
msgstr "début de l'adhésion" msgstr "début de l'adhésion"
#: apps/member/models.py:219 #: apps/member/models.py:222
msgid "Date from which the members can renew their membership." msgid "Date from which the members can renew their membership."
msgstr "" msgstr ""
"Date à partir de laquelle les adhérents peuvent renouveler leur adhésion." "Date à partir de laquelle les adhérents peuvent renouveler leur adhésion."
#: apps/member/models.py:225 templates/member/club_info.html:28 #: apps/member/models.py:228 templates/member/club_info.html:28
msgid "membership end" msgid "membership end"
msgstr "fin de l'adhésion" msgstr "fin de l'adhésion"
#: apps/member/models.py:226 #: apps/member/models.py:229
msgid "Maximal date of a membership, after which members must renew it." msgid "Maximal date of a membership, after which members must renew it."
msgstr "" msgstr ""
"Date maximale d'une fin d'adhésion, après laquelle les adhérents doivent la " "Date maximale d'une fin d'adhésion, après laquelle les adhérents doivent la "
"renouveler." "renouveler."
#: apps/member/models.py:258 apps/member/models.py:283 #: apps/member/models.py:261 apps/member/models.py:286
#: apps/note/models/notes.py:163 #: apps/note/models/notes.py:163
msgid "club" msgid "club"
msgstr "club" msgstr "club"
#: apps/member/models.py:259 #: apps/member/models.py:262
msgid "clubs" msgid "clubs"
msgstr "clubs" msgstr "clubs"
#: apps/member/models.py:293 #: apps/member/models.py:296
msgid "membership starts on" msgid "membership starts on"
msgstr "l'adhésion commence le" msgstr "l'adhésion commence le"
#: apps/member/models.py:297 #: apps/member/models.py:300
msgid "membership ends on" msgid "membership ends on"
msgstr "l'adhésion finit le" msgstr "l'adhésion finit le"
#: apps/member/models.py:348 #: apps/member/models.py:351
#, python-brace-format #, python-brace-format
msgid "The role {role} does not apply to the club {club}." msgid "The role {role} does not apply to the club {club}."
msgstr "Le rôle {role} ne s'applique pas au club {club}." msgstr "Le rôle {role} ne s'applique pas au club {club}."
#: apps/member/models.py:359 apps/member/views.py:592 #: apps/member/models.py:362 apps/member/views.py:592
msgid "User is already a member of the club" msgid "User is already a member of the club"
msgstr "L'utilisateur est déjà membre du club" msgstr "L'utilisateur est déjà membre du club"
#: apps/member/models.py:406 #: apps/member/models.py:409
msgid "User is not a member of the parent club" msgid "User is not a member of the parent club"
msgstr "L'utilisateur n'est pas membre du club parent" msgstr "L'utilisateur n'est pas membre du club parent"
#: apps/member/models.py:459 #: apps/member/models.py:462
#, python-brace-format #, python-brace-format
msgid "Membership of {user} for the club {club}" msgid "Membership of {user} for the club {club}"
msgstr "Adhésion de {user} pour le club {club}" msgstr "Adhésion de {user} pour le club {club}"
#: apps/member/models.py:462 #: apps/member/models.py:465
msgid "membership" msgid "membership"
msgstr "adhésion" msgstr "adhésion"
#: apps/member/models.py:463 #: apps/member/models.py:466
msgid "memberships" msgid "memberships"
msgstr "adhésions" msgstr "adhésions"
@ -686,17 +686,17 @@ msgstr "Gérer les rôles d'un utilisateur dans le club"
msgid "Members of the club" msgid "Members of the club"
msgstr "Membres du club" msgstr "Membres du club"
#: apps/note/admin.py:133 apps/note/models/transactions.py:106 #: apps/note/admin.py:133 apps/note/models/transactions.py:105
msgid "source" msgid "source"
msgstr "source" msgstr "source"
#: apps/note/admin.py:141 apps/note/admin.py:191 #: apps/note/admin.py:141 apps/note/admin.py:191
#: apps/note/models/transactions.py:55 apps/note/models/transactions.py:119 #: apps/note/models/transactions.py:55 apps/note/models/transactions.py:118
msgid "destination" msgid "destination"
msgstr "destination" msgstr "destination"
#: apps/note/admin.py:196 apps/note/models/transactions.py:59 #: apps/note/admin.py:196 apps/note/models/transactions.py:59
#: apps/note/models/transactions.py:137 #: apps/note/models/transactions.py:136
msgid "amount" msgid "amount"
msgstr "montant" msgstr "montant"
@ -771,7 +771,7 @@ msgstr ""
msgid "display image" msgid "display image"
msgstr "image affichée" msgstr "image affichée"
#: apps/note/models/notes.py:55 apps/note/models/transactions.py:129 #: apps/note/models/notes.py:55 apps/note/models/transactions.py:128
msgid "created at" msgid "created at"
msgstr "créée le" msgstr "créée le"
@ -854,56 +854,56 @@ msgstr "catégories de transaction"
msgid "A template with this name already exist" msgid "A template with this name already exist"
msgstr "Un modèle de transaction avec un nom similaire existe déjà." msgstr "Un modèle de transaction avec un nom similaire existe déjà."
#: apps/note/models/transactions.py:72 #: apps/note/models/transactions.py:71
msgid "display" msgid "display"
msgstr "afficher" msgstr "afficher"
#: apps/note/models/transactions.py:77 #: apps/note/models/transactions.py:76
msgid "highlighted" msgid "highlighted"
msgstr "mis en avant" msgstr "mis en avant"
#: apps/note/models/transactions.py:87 #: apps/note/models/transactions.py:86
msgid "transaction template" msgid "transaction template"
msgstr "Modèle de transaction" msgstr "Modèle de transaction"
#: apps/note/models/transactions.py:88 #: apps/note/models/transactions.py:87
msgid "transaction templates" msgid "transaction templates"
msgstr "Modèles de transaction" msgstr "Modèles de transaction"
#: apps/note/models/transactions.py:112 apps/note/models/transactions.py:125 #: apps/note/models/transactions.py:111 apps/note/models/transactions.py:124
#: apps/note/tables.py:35 apps/note/tables.py:44 #: apps/note/tables.py:35 apps/note/tables.py:44
msgid "used alias" msgid "used alias"
msgstr "alias utilisé" msgstr "alias utilisé"
#: apps/note/models/transactions.py:133 #: apps/note/models/transactions.py:132
msgid "quantity" msgid "quantity"
msgstr "quantité" msgstr "quantité"
#: apps/note/models/transactions.py:141 #: apps/note/models/transactions.py:140
msgid "reason" msgid "reason"
msgstr "raison" msgstr "raison"
#: apps/note/models/transactions.py:151 apps/note/tables.py:112 #: apps/note/models/transactions.py:150 apps/note/tables.py:112
msgid "invalidity reason" msgid "invalidity reason"
msgstr "Motif d'invalidité" msgstr "Motif d'invalidité"
#: apps/note/models/transactions.py:159 #: apps/note/models/transactions.py:158
msgid "transaction" msgid "transaction"
msgstr "Transaction" msgstr "Transaction"
#: apps/note/models/transactions.py:160 #: apps/note/models/transactions.py:159
#: templates/treasury/sogecredit_detail.html:22 #: templates/treasury/sogecredit_detail.html:22
msgid "transactions" msgid "transactions"
msgstr "Transactions" msgstr "Transactions"
#: apps/note/models/transactions.py:197 #: apps/note/models/transactions.py:192
msgid "" msgid ""
"The note balances must be between - 21 474 836.47 € and 21 474 836.47 €." "The note balances must be between - 21 474 836.47 € and 21 474 836.47 €."
msgstr "" msgstr ""
"Les montants des notes doivent se trouver entre - 21 474 836.47 € et 21 474 " "Les montants des notes doivent se trouver entre - 21 474 836.47 € et 21 474 "
"836.47 €. Ne cherchez pas à capitaliser l'argent du BDE." "836.47 €. Ne cherchez pas à capitaliser l'argent du BDE."
#: apps/note/models/transactions.py:212 #: apps/note/models/transactions.py:207
msgid "" msgid ""
"The transaction can't be saved since the source note or the destination note " "The transaction can't be saved since the source note or the destination note "
"is not active." "is not active."
@ -911,44 +911,44 @@ msgstr ""
"La transaction ne peut pas être sauvegardée puisque la note source ou la " "La transaction ne peut pas être sauvegardée puisque la note source ou la "
"note de destination n'est pas active." "note de destination n'est pas active."
#: apps/note/models/transactions.py:257 #: apps/note/models/transactions.py:248
#: templates/activity/activity_entry.html:13 templates/base.html:99 #: templates/activity/activity_entry.html:13 templates/base.html:99
#: templates/note/transaction_form.html:15 #: templates/note/transaction_form.html:15
#: templates/note/transaction_form.html:145 #: templates/note/transaction_form.html:145
msgid "Transfer" msgid "Transfer"
msgstr "Virement" msgstr "Virement"
#: apps/note/models/transactions.py:281 #: apps/note/models/transactions.py:272
msgid "Template" msgid "Template"
msgstr "Bouton" msgstr "Bouton"
#: apps/note/models/transactions.py:284 #: apps/note/models/transactions.py:275
msgid "recurrent transaction" msgid "recurrent transaction"
msgstr "Transaction issue de bouton" msgstr "Transaction issue de bouton"
#: apps/note/models/transactions.py:285 #: apps/note/models/transactions.py:276
msgid "recurrent transactions" msgid "recurrent transactions"
msgstr "Transactions issues de boutons" msgstr "Transactions issues de boutons"
#: apps/note/models/transactions.py:300 #: apps/note/models/transactions.py:291
msgid "first_name" msgid "first_name"
msgstr "prénom" msgstr "prénom"
#: apps/note/models/transactions.py:305 #: apps/note/models/transactions.py:296
msgid "bank" msgid "bank"
msgstr "banque" msgstr "banque"
#: apps/note/models/transactions.py:311 #: apps/note/models/transactions.py:302
#: templates/activity/activity_entry.html:17 #: templates/activity/activity_entry.html:17
#: templates/note/transaction_form.html:20 #: templates/note/transaction_form.html:20
msgid "Credit" msgid "Credit"
msgstr "Crédit" msgstr "Crédit"
#: apps/note/models/transactions.py:311 templates/note/transaction_form.html:25 #: apps/note/models/transactions.py:302 templates/note/transaction_form.html:25
msgid "Debit" msgid "Debit"
msgstr "Débit" msgstr "Débit"
#: apps/note/models/transactions.py:322 #: apps/note/models/transactions.py:313
msgid "" msgid ""
"A special transaction is only possible between a Note associated to a " "A special transaction is only possible between a Note associated to a "
"payment method and a User or a Club" "payment method and a User or a Club"
@ -956,19 +956,19 @@ msgstr ""
"Une transaction spéciale n'est possible que entre une note associée à un " "Une transaction spéciale n'est possible que entre une note associée à un "
"mode de paiement et un utilisateur ou un club." "mode de paiement et un utilisateur ou un club."
#: apps/note/models/transactions.py:326 #: apps/note/models/transactions.py:317
msgid "Special transaction" msgid "Special transaction"
msgstr "Transaction de crédit/retrait" msgstr "Transaction de crédit/retrait"
#: apps/note/models/transactions.py:327 #: apps/note/models/transactions.py:318
msgid "Special transactions" msgid "Special transactions"
msgstr "Transactions de crédit/retrait" msgstr "Transactions de crédit/retrait"
#: apps/note/models/transactions.py:343 apps/note/models/transactions.py:348 #: apps/note/models/transactions.py:334 apps/note/models/transactions.py:339
msgid "membership transaction" msgid "membership transaction"
msgstr "Transaction d'adhésion" msgstr "Transaction d'adhésion"
#: apps/note/models/transactions.py:344 apps/treasury/models.py:272 #: apps/note/models/transactions.py:335 apps/treasury/models.py:272
msgid "membership transactions" msgid "membership transactions"
msgstr "Transactions d'adhésion" msgstr "Transactions d'adhésion"
@ -984,15 +984,15 @@ msgstr "Cliquez pour valider"
msgid "No reason specified" msgid "No reason specified"
msgstr "Pas de motif spécifié" msgstr "Pas de motif spécifié"
#: apps/note/tables.py:139 apps/note/tables.py:167 apps/treasury/tables.py:39 #: apps/note/tables.py:139 apps/note/tables.py:170 apps/treasury/tables.py:39
#: apps/wei/tables.py:74 apps/wei/tables.py:100 #: apps/wei/tables.py:75 apps/wei/tables.py:101
#: templates/treasury/invoice_confirm_delete.html:28 #: templates/treasury/invoice_confirm_delete.html:28
#: templates/treasury/sogecredit_detail.html:59 #: templates/treasury/sogecredit_detail.html:59
#: templates/wei/weiregistration_confirm_delete.html:32 #: templates/wei/weiregistration_confirm_delete.html:32
msgid "Delete" msgid "Delete"
msgstr "Supprimer" msgstr "Supprimer"
#: apps/note/tables.py:162 apps/wei/tables.py:46 apps/wei/tables.py:47 #: apps/note/tables.py:165 apps/wei/tables.py:46 apps/wei/tables.py:47
#: templates/member/club_info.html:67 templates/note/conso_form.html:130 #: templates/member/club_info.html:67 templates/note/conso_form.html:130
#: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15 #: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15
#: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:68 #: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:68
@ -1023,53 +1023,53 @@ msgstr "Consommations"
msgid "Search transactions" msgid "Search transactions"
msgstr "Rechercher des transactions" msgstr "Rechercher des transactions"
#: apps/permission/models.py:91 #: apps/permission/models.py:89
#, python-brace-format #, python-brace-format
msgid "Can {type} {model}.{field} in {query}" msgid "Can {type} {model}.{field} in {query}"
msgstr "Can {type} {model}.{field} in {query}" msgstr "Can {type} {model}.{field} in {query}"
#: apps/permission/models.py:93 #: apps/permission/models.py:91
#, python-brace-format #, python-brace-format
msgid "Can {type} {model} in {query}" msgid "Can {type} {model} in {query}"
msgstr "Can {type} {model} in {query}" msgstr "Can {type} {model} in {query}"
#: apps/permission/models.py:106 #: apps/permission/models.py:104
msgid "rank" msgid "rank"
msgstr "Rang" msgstr "Rang"
#: apps/permission/models.py:119 #: apps/permission/models.py:117
msgid "permission mask" msgid "permission mask"
msgstr "masque de permissions" msgstr "masque de permissions"
#: apps/permission/models.py:120 #: apps/permission/models.py:118
msgid "permission masks" msgid "permission masks"
msgstr "masques de permissions" msgstr "masques de permissions"
#: apps/permission/models.py:126 #: apps/permission/models.py:124
msgid "add" msgid "add"
msgstr "ajouter" msgstr "ajouter"
#: apps/permission/models.py:127 #: apps/permission/models.py:125
msgid "view" msgid "view"
msgstr "voir" msgstr "voir"
#: apps/permission/models.py:128 #: apps/permission/models.py:126
msgid "change" msgid "change"
msgstr "modifier" msgstr "modifier"
#: apps/permission/models.py:160 #: apps/permission/models.py:158
msgid "query" msgid "query"
msgstr "requête" msgstr "requête"
#: apps/permission/models.py:173 #: apps/permission/models.py:171
msgid "mask" msgid "mask"
msgstr "masque" msgstr "masque"
#: apps/permission/models.py:179 #: apps/permission/models.py:177
msgid "field" msgid "field"
msgstr "champ" msgstr "champ"
#: apps/permission/models.py:184 #: apps/permission/models.py:182
msgid "" msgid ""
"Tells if the permission should be granted even if the membership of the user " "Tells if the permission should be granted even if the membership of the user "
"is expired." "is expired."
@ -1077,29 +1077,29 @@ msgstr ""
"Indique si la permission doit être attribuée même si l'adhésion de " "Indique si la permission doit être attribuée même si l'adhésion de "
"l'utilisateur est expirée." "l'utilisateur est expirée."
#: apps/permission/models.py:185 templates/permission/all_rights.html:36 #: apps/permission/models.py:183 templates/permission/all_rights.html:36
msgid "permanent" msgid "permanent"
msgstr "permanent" msgstr "permanent"
#: apps/permission/models.py:196 #: apps/permission/models.py:194
msgid "permission" msgid "permission"
msgstr "permission" msgstr "permission"
#: apps/permission/models.py:197 apps/permission/models.py:336 #: apps/permission/models.py:195 apps/permission/models.py:334
msgid "permissions" msgid "permissions"
msgstr "permissions" msgstr "permissions"
#: apps/permission/models.py:202 #: apps/permission/models.py:200
msgid "Specifying field applies only to view and change permission types." msgid "Specifying field applies only to view and change permission types."
msgstr "" msgstr ""
"Spécifie le champ concerné, ne fonctionne que pour les permissions view et " "Spécifie le champ concerné, ne fonctionne que pour les permissions view et "
"change." "change."
#: apps/permission/models.py:341 #: apps/permission/models.py:339
msgid "for club" msgid "for club"
msgstr "s'applique au club" msgstr "s'applique au club"
#: apps/permission/models.py:351 apps/permission/models.py:352 #: apps/permission/models.py:349 apps/permission/models.py:350
msgid "role permissions" msgid "role permissions"
msgstr "Permissions par rôles" msgstr "Permissions par rôles"
@ -1142,11 +1142,17 @@ msgstr "Tous les droits"
msgid "registration" msgid "registration"
msgstr "inscription" msgstr "inscription"
#: apps/registration/forms.py:38 #: apps/registration/forms.py:34
#, fuzzy
#| msgid "This alias is already taken."
msgid "This email address is already used."
msgstr "Cet alias est déjà pris."
#: apps/registration/forms.py:44
msgid "Register to the WEI" msgid "Register to the WEI"
msgstr "S'inscrire au WEI" msgstr "S'inscrire au WEI"
#: apps/registration/forms.py:40 #: apps/registration/forms.py:46
msgid "" msgid ""
"Check this case if you want to register to the WEI. If you hesitate, you " "Check this case if you want to register to the WEI. If you hesitate, you "
"will be able to register later, after validating your account in the Kfet." "will be able to register later, after validating your account in the Kfet."
@ -1155,11 +1161,11 @@ msgstr ""
"pourrez toujours vous inscrire plus tard, après avoir validé votre compte à " "pourrez toujours vous inscrire plus tard, après avoir validé votre compte à "
"la Kfet." "la Kfet."
#: apps/registration/forms.py:85 #: apps/registration/forms.py:91
msgid "Join BDE Club" msgid "Join BDE Club"
msgstr "Adhérer au club BDE" msgstr "Adhérer au club BDE"
#: apps/registration/forms.py:92 #: apps/registration/forms.py:98
msgid "Join Kfet Club" msgid "Join Kfet Club"
msgstr "Adhérer au club Kfet" msgstr "Adhérer au club Kfet"
@ -1476,12 +1482,12 @@ msgstr "Gérer les crédits de la Société générale"
msgid "WEI" msgid "WEI"
msgstr "WEI" msgstr "WEI"
#: apps/wei/forms/registration.py:49 apps/wei/models.py:113 #: apps/wei/forms/registration.py:51 apps/wei/models.py:113
#: apps/wei/models.py:298 #: apps/wei/models.py:298
msgid "bus" msgid "bus"
msgstr "Bus" msgstr "Bus"
#: apps/wei/forms/registration.py:50 #: apps/wei/forms/registration.py:52
msgid "" msgid ""
"This choice is not definitive. The WEI organizers are free to attribute for " "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." "you a bus and a team, in particular if you are a free eletron."
@ -1490,11 +1496,11 @@ msgstr ""
"attribuer un bus et une équipe, en particulier si vous êtes un électron " "attribuer un bus et une équipe, en particulier si vous êtes un électron "
"libre." "libre."
#: apps/wei/forms/registration.py:57 #: apps/wei/forms/registration.py:59
msgid "Team" msgid "Team"
msgstr "Équipe" msgstr "Équipe"
#: apps/wei/forms/registration.py:59 #: apps/wei/forms/registration.py:61
msgid "" msgid ""
"Leave this field empty if you won't be in a team (staff, bus chief, free " "Leave this field empty if you won't be in a team (staff, bus chief, free "
"electron)" "electron)"
@ -1502,20 +1508,20 @@ msgstr ""
"Laissez ce champ vide si vous ne serez pas dans une équipe (staff, chef de " "Laissez ce champ vide si vous ne serez pas dans une équipe (staff, chef de "
"bus ou électron libre)" "bus ou électron libre)"
#: apps/wei/forms/registration.py:65 apps/wei/forms/registration.py:75 #: apps/wei/forms/registration.py:67 apps/wei/forms/registration.py:77
#: apps/wei/models.py:148 #: apps/wei/models.py:148
msgid "WEI Roles" msgid "WEI Roles"
msgstr "Rôles au WEI" msgstr "Rôles au WEI"
#: apps/wei/forms/registration.py:66 #: apps/wei/forms/registration.py:68
msgid "Select the roles that you are interested in." msgid "Select the roles that you are interested in."
msgstr "Sélectionnez les rôles qui vous intéressent." msgstr "Sélectionnez les rôles qui vous intéressent."
#: apps/wei/forms/registration.py:111 #: apps/wei/forms/registration.py:113
msgid "This team doesn't belong to the given bus." msgid "This team doesn't belong to the given bus."
msgstr "Cette équipe n'appartient pas à ce bus." msgstr "Cette équipe n'appartient pas à ce bus."
#: apps/wei/forms/surveys/wei2020.py:26 #: apps/wei/forms/surveys/wei2020.py:29
msgid "Choose a word:" msgid "Choose a word:"
msgstr "Choisissez un mot :" msgstr "Choisissez un mot :"
@ -1685,25 +1691,25 @@ msgstr "adhésion au WEI"
msgid "WEI memberships" msgid "WEI memberships"
msgstr "adhésions au WEI" msgstr "adhésions au WEI"
#: apps/wei/tables.py:57 apps/wei/tables.py:58 apps/wei/tables.py:95 #: apps/wei/tables.py:58 apps/wei/tables.py:59 apps/wei/tables.py:96
#: templates/treasury/sogecredit_detail.html:57 #: templates/treasury/sogecredit_detail.html:57
msgid "Validate" msgid "Validate"
msgstr "Valider" msgstr "Valider"
#: apps/wei/tables.py:125 #: apps/wei/tables.py:126
msgid "Year" msgid "Year"
msgstr "Année" msgstr "Année"
#: apps/wei/tables.py:163 templates/wei/bus_tables.html:26 #: apps/wei/tables.py:164 templates/wei/bus_tables.html:26
#: templates/wei/busteam_tables.html:43 #: templates/wei/busteam_tables.html:43
msgid "Teams" msgid "Teams"
msgstr "Équipes" msgstr "Équipes"
#: apps/wei/tables.py:172 apps/wei/tables.py:213 #: apps/wei/tables.py:173 apps/wei/tables.py:214
msgid "Members count" msgid "Members count"
msgstr "Nombre de membres" msgstr "Nombre de membres"
#: apps/wei/tables.py:179 apps/wei/tables.py:210 #: apps/wei/tables.py:180 apps/wei/tables.py:211
msgid "members" msgid "members"
msgstr "adhérents" msgstr "adhérents"
@ -2400,6 +2406,10 @@ msgstr "Merci"
msgid "The Note Kfet team." msgid "The Note Kfet team."
msgstr "L'équipe de la Note Kfet." msgstr "L'équipe de la Note Kfet."
#: templates/registration/mails/email_validation_email.html:40
msgid "Mail generated by the Note Kfet on the"
msgstr "Mail généré par la Note Kfet le"
#: templates/registration/password_change_done.html:8 #: templates/registration/password_change_done.html:8
msgid "Your password was changed." msgid "Your password was changed."
msgstr "Votre mot de passe a bien été changé." msgstr "Votre mot de passe a bien été changé."

View File

@ -1,23 +1,27 @@
upstream note { # This is an example NGINX site configuration for note_kfet in Docker
server 127.0.0.1:8000; # Only HTTP, please use a reverse proxy to secure it!
}
server { server {
listen 80; # Serve this site by default on HTTP
server_name note; listen 80 default_server;
listen [::]:80 default_server;
# Max upload size
client_max_body_size 75M;
# Django statics and media
location /static {
alias /code/static;
}
location /media {
alias /code/media;
}
# Send all non-media requests to the Django server.
location / { location / {
proxy_pass http://note; proxy_pass http://127.0.0.1:8000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_redirect off; proxy_redirect off;
} }
location /static {
alias /code/static/;
}
location /media {
alias /code/media/;
}
} }

Some files were not shown because too many files have changed in this diff Show More