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

@ -148,7 +148,7 @@ class Profile(models.Model):
return str(self.user) return str(self.user)
def send_email_validation_link(self): def send_email_validation_link(self):
subject = "[Note Kfet]" + str(_("Activate your Note Kfet account")) subject = "[Note Kfet] " + str(_("Activate your Note Kfet account"))
message = loader.render_to_string('registration/mails/email_validation_email.txt', message = loader.render_to_string('registration/mails/email_validation_email.txt',
{ {
'user': self.user, 'user': self.user,

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(
args=[A('pk')], 'note:template_update',
attrs={'td': {'class': 'col-sm-1'}, args=[A('pk')],
'a': {'class': 'btn btn-sm btn-primary'}}, attrs={
text=_('edit'), 'td': {'class': 'col-sm-1'},
accessor='pk', 'a': {
verbose_name=_("Edit"),) 'class': 'btn btn-sm btn-primary',
'data-turbolinks': 'false',
}
},
text=_('edit'),
accessor='pk',
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

@ -39,8 +39,8 @@ class WEIRegistrationForm(forms.ModelForm):
'placeholder': 'Nom ...', 'placeholder': 'Nom ...',
}, },
), ),
"birth_date": DatePickerInput(options={'defaultDate':'2000-01-01', "birth_date": DatePickerInput(options={'defaultDate': '2000-01-01',
'minDate':'1900-01-01', 'minDate': '1900-01-01',
'maxDate': '2100-01-01'}), 'maxDate': '2100-01-01'}),
} }

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 ""

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