mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 01:12:08 +01:00 
			
		
		
		
	Merge branch 'beta' into 'master'
Multiples fix, réparation des pots Closes #75 See merge request bde/nk20!186
This commit is contained in:
		@@ -1,6 +0,0 @@
 | 
			
		||||
---
 | 
			
		||||
note:
 | 
			
		||||
  server_name: note-beta.crans.org
 | 
			
		||||
  git_branch: beta
 | 
			
		||||
  cron_enabled: false
 | 
			
		||||
  email: notekfet2020@lists.crans.org
 | 
			
		||||
@@ -2,5 +2,6 @@
 | 
			
		||||
note:
 | 
			
		||||
  server_name: note-dev.crans.org
 | 
			
		||||
  git_branch: beta
 | 
			
		||||
  serve_static: false
 | 
			
		||||
  cron_enabled: false
 | 
			
		||||
  email: notekfet2020@lists.crans.org
 | 
			
		||||
 
 | 
			
		||||
@@ -2,5 +2,6 @@
 | 
			
		||||
note:
 | 
			
		||||
  server_name: note.crans.org
 | 
			
		||||
  git_branch: master
 | 
			
		||||
  serve_static: true
 | 
			
		||||
  cron_enabled: true
 | 
			
		||||
  email: notekfet2020@lists.crans.org
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,5 @@
 | 
			
		||||
[dev]
 | 
			
		||||
bde-note-dev.adh.crans.org
 | 
			
		||||
bde-nk20-beta.adh.crans.org
 | 
			
		||||
 | 
			
		||||
[prod]
 | 
			
		||||
bde-note.adh.crans.org
 | 
			
		||||
 
 | 
			
		||||
@@ -41,6 +41,7 @@ server {
 | 
			
		||||
    # max upload size
 | 
			
		||||
    client_max_body_size 75M;   # adjust to taste
 | 
			
		||||
 | 
			
		||||
{% if note.serve_static %}
 | 
			
		||||
    # Django media
 | 
			
		||||
    location /media  {
 | 
			
		||||
        alias /var/www/note_kfet/media;  # your Django project's media files - amend as required
 | 
			
		||||
@@ -50,6 +51,7 @@ server {
 | 
			
		||||
        alias /var/www/note_kfet/static; # your Django project's static files - amend as required
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
{% endif %}
 | 
			
		||||
    location /doc {
 | 
			
		||||
        alias /var/www/documentation;    # The documentation of the project
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -28,6 +28,12 @@ class ActivityForm(forms.ModelForm):
 | 
			
		||||
        shuffle(clubs)
 | 
			
		||||
        self.fields["organizer"].widget.attrs["placeholder"] = ", ".join(club.name for club in clubs[:4]) + ", ..."
 | 
			
		||||
 | 
			
		||||
    def clean_organizer(self):
 | 
			
		||||
        organizer = self.cleaned_data['organizer']
 | 
			
		||||
        if not organizer.note.is_active:
 | 
			
		||||
            self.add_error('organiser', _('The note of this club is inactive.'))
 | 
			
		||||
        return organizer
 | 
			
		||||
 | 
			
		||||
    def clean_date_end(self):
 | 
			
		||||
        date_end = self.cleaned_data["date_end"]
 | 
			
		||||
        date_start = self.cleaned_data["date_start"]
 | 
			
		||||
 
 | 
			
		||||
@@ -63,7 +63,12 @@ SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
        refreshBalance();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    alias_obj.keyup(reloadTable);
 | 
			
		||||
    alias_obj.keyup(function(event) {
 | 
			
		||||
        let code = event.originalEvent.keyCode
 | 
			
		||||
        if (65 <= code <= 122 || code === 13) {
 | 
			
		||||
            debounce(reloadTable)()
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    $(document).ready(init);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -66,8 +66,8 @@ class ActivityListView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTableView
 | 
			
		||||
    ordering = ('-date_start',)
 | 
			
		||||
    extra_context = {"title": _("Activities")}
 | 
			
		||||
 | 
			
		||||
    def get_queryset(self):
 | 
			
		||||
        return super().get_queryset().distinct()
 | 
			
		||||
    def get_queryset(self, **kwargs):
 | 
			
		||||
        return super().get_queryset(**kwargs).distinct()
 | 
			
		||||
 | 
			
		||||
    def get_context_data(self, **kwargs):
 | 
			
		||||
        context = super().get_context_data(**kwargs)
 | 
			
		||||
@@ -78,9 +78,7 @@ class ActivityListView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTableView
 | 
			
		||||
            prefix='upcoming-',
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        started_activities = Activity.objects\
 | 
			
		||||
            .filter(PermissionBackend.filter_queryset(self.request, Activity, "view"))\
 | 
			
		||||
            .filter(open=True, valid=True).all()
 | 
			
		||||
        started_activities = self.get_queryset().filter(open=True, valid=True).distinct().all()
 | 
			
		||||
        context["started_activities"] = started_activities
 | 
			
		||||
 | 
			
		||||
        return context
 | 
			
		||||
@@ -145,7 +143,7 @@ class ActivityInviteView(ProtectQuerysetMixin, ProtectedCreateView):
 | 
			
		||||
    def get_form(self, form_class=None):
 | 
			
		||||
        form = super().get_form(form_class)
 | 
			
		||||
        form.activity = Activity.objects.filter(PermissionBackend.filter_queryset(self.request, Activity, "view"))\
 | 
			
		||||
            .get(pk=self.kwargs["pk"])
 | 
			
		||||
            .filter(pk=self.kwargs["pk"]).first()
 | 
			
		||||
        form.fields["inviter"].initial = self.request.user.note
 | 
			
		||||
        return form
 | 
			
		||||
 | 
			
		||||
@@ -192,7 +190,7 @@ class ActivityEntryView(LoginRequiredMixin, TemplateView):
 | 
			
		||||
            .annotate(balance=F("inviter__balance"), note_name=F("inviter__user__username"))\
 | 
			
		||||
            .filter(activity=activity)\
 | 
			
		||||
            .filter(PermissionBackend.filter_queryset(self.request, Guest, "view"))\
 | 
			
		||||
            .order_by('last_name', 'first_name').distinct()
 | 
			
		||||
            .order_by('last_name', 'first_name')
 | 
			
		||||
 | 
			
		||||
        if "search" in self.request.GET and self.request.GET["search"]:
 | 
			
		||||
            pattern = self.request.GET["search"]
 | 
			
		||||
@@ -206,7 +204,7 @@ class ActivityEntryView(LoginRequiredMixin, TemplateView):
 | 
			
		||||
            )
 | 
			
		||||
        else:
 | 
			
		||||
            guest_qs = guest_qs.none()
 | 
			
		||||
        return guest_qs
 | 
			
		||||
        return guest_qs.distinct()
 | 
			
		||||
 | 
			
		||||
    def get_invited_note(self, activity):
 | 
			
		||||
        """
 | 
			
		||||
 
 | 
			
		||||
@@ -19,8 +19,8 @@ def create_bde_and_kfet(apps, schema_editor):
 | 
			
		||||
        membership_fee_paid=500,
 | 
			
		||||
        membership_fee_unpaid=500,
 | 
			
		||||
        membership_duration=396,
 | 
			
		||||
        membership_start="2020-08-01",
 | 
			
		||||
        membership_end="2021-09-30",
 | 
			
		||||
        membership_start="2021-08-01",
 | 
			
		||||
        membership_end="2022-09-30",
 | 
			
		||||
    )
 | 
			
		||||
    Club.objects.get_or_create(
 | 
			
		||||
        id=2,
 | 
			
		||||
@@ -31,8 +31,8 @@ def create_bde_and_kfet(apps, schema_editor):
 | 
			
		||||
        membership_fee_paid=3500,
 | 
			
		||||
        membership_fee_unpaid=3500,
 | 
			
		||||
        membership_duration=396,
 | 
			
		||||
        membership_start="2020-08-01",
 | 
			
		||||
        membership_end="2021-09-30",
 | 
			
		||||
        membership_start="2021-08-01",
 | 
			
		||||
        membership_end="2022-09-30",
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    NoteClub.objects.get_or_create(
 | 
			
		||||
 
 | 
			
		||||
@@ -413,6 +413,12 @@ class Membership(models.Model):
 | 
			
		||||
        """
 | 
			
		||||
        Calculate fee and end date before saving the membership and creating the transaction if needed.
 | 
			
		||||
        """
 | 
			
		||||
        # Ensure that club membership dates are valid
 | 
			
		||||
        old_membership_start = self.club.membership_start
 | 
			
		||||
        self.club.update_membership_dates()
 | 
			
		||||
        if self.club.membership_start != old_membership_start:
 | 
			
		||||
            self.club.save()
 | 
			
		||||
 | 
			
		||||
        created = not self.pk
 | 
			
		||||
        if not created:
 | 
			
		||||
            for role in self.roles.all():
 | 
			
		||||
 
 | 
			
		||||
@@ -31,7 +31,8 @@ class ClubTable(tables.Table):
 | 
			
		||||
        row_attrs = {
 | 
			
		||||
            'class': 'table-row',
 | 
			
		||||
            'id': lambda record: "row-" + str(record.pk),
 | 
			
		||||
            'data-href': lambda record: record.pk
 | 
			
		||||
            'data-href': lambda record: record.pk,
 | 
			
		||||
            'style': 'cursor:pointer',
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -74,7 +75,8 @@ class UserTable(tables.Table):
 | 
			
		||||
        model = User
 | 
			
		||||
        row_attrs = {
 | 
			
		||||
            'class': 'table-row',
 | 
			
		||||
            'data-href': lambda record: record.pk
 | 
			
		||||
            'data-href': lambda record: record.pk,
 | 
			
		||||
            'style': 'cursor:pointer',
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -222,6 +222,13 @@ $(document).ready(function () {
 | 
			
		||||
  })
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
// Make transfer when pressing Enter on the amount section
 | 
			
		||||
$('#amount, #reason, #last_name, #first_name, #bank').keypress((event) => {
 | 
			
		||||
  if (event.originalEvent.charCode === 13) {
 | 
			
		||||
    $('#btn_transfer').click()
 | 
			
		||||
  }
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
$('#btn_transfer').click(function () {
 | 
			
		||||
  if (LOCK) { return }
 | 
			
		||||
 | 
			
		||||
@@ -348,14 +355,14 @@ $('#btn_transfer').click(function () {
 | 
			
		||||
              destination_alias: dest.name
 | 
			
		||||
            }).done(function () {
 | 
			
		||||
            addMsg(interpolate(gettext('Transfer of %s from %s to %s failed: %s'),
 | 
			
		||||
                [pretty_money(source.quantity * dest.quantity * amount), source.name, + dest.name, gettext('insufficient funds')]), 'danger', 10000)
 | 
			
		||||
                [pretty_money(source.quantity * dest.quantity * amount), source.name, dest.name, gettext('insufficient funds')]), 'danger', 10000)
 | 
			
		||||
            reset()
 | 
			
		||||
          }).fail(function (err) {
 | 
			
		||||
            const errObj = JSON.parse(err.responseText)
 | 
			
		||||
            let error = errObj.detail ? errObj.detail : errObj.non_field_errors
 | 
			
		||||
            if (!error) { error = err.responseText }
 | 
			
		||||
            addMsg(interpolate(gettext('Transfer of %s from %s to %s failed: %s'),
 | 
			
		||||
                [pretty_money(source.quantity * dest.quantity * amount), source.name, + dest.name, error]), 'danger')
 | 
			
		||||
                [pretty_money(source.quantity * dest.quantity * amount), source.name, dest.name, error]), 'danger')
 | 
			
		||||
            LOCK = false
 | 
			
		||||
          })
 | 
			
		||||
        })
 | 
			
		||||
 
 | 
			
		||||
@@ -111,12 +111,12 @@
 | 
			
		||||
				"note",
 | 
			
		||||
				"alias"
 | 
			
		||||
			],
 | 
			
		||||
			"query": "[\"AND\", [\"OR\", {\"note__noteuser__user__memberships__club__name\": \"Kfet\", \"note__noteuser__user__memberships__date_start__lte\": [\"today\"], \"note__noteuser__user__memberships__date_end__gte\": [\"today\"]}, {\"note__noteclub__isnull\": false}], {\"note__is_active\": true}]",
 | 
			
		||||
			"query": "[\"AND\", [\"OR\", {\"note__noteuser__user__memberships__club__name\": \"BDE\", \"note__noteuser__user__memberships__date_start__lte\": [\"today\"], \"note__noteuser__user__memberships__date_end__gte\": [\"today\"]}, {\"note__noteclub__isnull\": false}], {\"note__is_active\": true}]",
 | 
			
		||||
			"type": "view",
 | 
			
		||||
			"mask": 1,
 | 
			
		||||
			"field": "",
 | 
			
		||||
			"permanent": false,
 | 
			
		||||
			"description": "Voir les aliases des notes des clubs et des adhérents du club Kfet"
 | 
			
		||||
			"description": "Voir les aliases des notes des clubs et des adhérents du club BDE"
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
@@ -3048,6 +3048,7 @@
 | 
			
		||||
				31,
 | 
			
		||||
				32,
 | 
			
		||||
				33,
 | 
			
		||||
				43,
 | 
			
		||||
				51,
 | 
			
		||||
				53,
 | 
			
		||||
				54,
 | 
			
		||||
 
 | 
			
		||||
@@ -46,8 +46,8 @@ class SignUpForm(UserCreationForm):
 | 
			
		||||
 | 
			
		||||
class DeclareSogeAccountOpenedForm(forms.Form):
 | 
			
		||||
    soge_account = forms.BooleanField(
 | 
			
		||||
        label=_("I declare that I opened or I will open soon a bank account in the Société générale with the BDE \
 | 
			
		||||
         partnership."),
 | 
			
		||||
        label=_("I declare that I opened or I will open soon a bank account in the Société générale with the BDE "
 | 
			
		||||
                "partnership."),
 | 
			
		||||
        help_text=_("Warning: this engages you to open your bank account. If you finally decides to don't open your "
 | 
			
		||||
                    "account, you will have to pay the BDE membership."),
 | 
			
		||||
        required=False,
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: \n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2021-09-13 23:26+0200\n"
 | 
			
		||||
"POT-Creation-Date: 2021-09-28 17:02+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2020-11-16 20:02+0000\n"
 | 
			
		||||
"Last-Translator: Yohann D'ANELLO <ynerant@crans.org>\n"
 | 
			
		||||
"Language-Team: French <http://translate.ynerant.fr/projects/nk20/nk20/fr/>\n"
 | 
			
		||||
@@ -23,28 +23,32 @@ msgstr ""
 | 
			
		||||
msgid "activity"
 | 
			
		||||
msgstr "activité"
 | 
			
		||||
 | 
			
		||||
#: apps/activity/forms.py:35 apps/activity/models.py:132
 | 
			
		||||
#: apps/activity/forms.py:34
 | 
			
		||||
msgid "The note of this club is inactive."
 | 
			
		||||
msgstr "La note du club est inactive."
 | 
			
		||||
 | 
			
		||||
#: apps/activity/forms.py:41 apps/activity/models.py:132
 | 
			
		||||
msgid "The end date must be after the start date."
 | 
			
		||||
msgstr "La date de fin doit être après celle de début."
 | 
			
		||||
 | 
			
		||||
#: apps/activity/forms.py:76 apps/activity/models.py:270
 | 
			
		||||
#: apps/activity/forms.py:82 apps/activity/models.py:270
 | 
			
		||||
msgid "You can't invite someone once the activity is started."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Vous ne pouvez pas inviter quelqu'un une fois que l'activité a démarré."
 | 
			
		||||
 | 
			
		||||
#: apps/activity/forms.py:79 apps/activity/models.py:273
 | 
			
		||||
#: apps/activity/forms.py:85 apps/activity/models.py:273
 | 
			
		||||
msgid "This activity is not validated yet."
 | 
			
		||||
msgstr "Cette activité n'est pas encore validée."
 | 
			
		||||
 | 
			
		||||
#: apps/activity/forms.py:89 apps/activity/models.py:281
 | 
			
		||||
#: apps/activity/forms.py:95 apps/activity/models.py:281
 | 
			
		||||
msgid "This person has been already invited 5 times this year."
 | 
			
		||||
msgstr "Cette personne a déjà été invitée 5 fois cette année."
 | 
			
		||||
 | 
			
		||||
#: apps/activity/forms.py:93 apps/activity/models.py:285
 | 
			
		||||
#: apps/activity/forms.py:99 apps/activity/models.py:285
 | 
			
		||||
msgid "This person is already invited."
 | 
			
		||||
msgstr "Cette personne est déjà invitée."
 | 
			
		||||
 | 
			
		||||
#: apps/activity/forms.py:97 apps/activity/models.py:289
 | 
			
		||||
#: apps/activity/forms.py:103 apps/activity/models.py:289
 | 
			
		||||
msgid "You can't invite more than 3 people to this activity."
 | 
			
		||||
msgstr "Vous ne pouvez pas inviter plus de 3 personnes à cette activité."
 | 
			
		||||
 | 
			
		||||
@@ -195,7 +199,7 @@ msgstr "Entrée de la note {note} pour l'activité « {activity} »"
 | 
			
		||||
msgid "Already entered on "
 | 
			
		||||
msgstr "Déjà rentré le "
 | 
			
		||||
 | 
			
		||||
#: apps/activity/models.py:202 apps/activity/tables.py:54
 | 
			
		||||
#: apps/activity/models.py:202 apps/activity/tables.py:56
 | 
			
		||||
msgid "{:%Y-%m-%d %H:%M:%S}"
 | 
			
		||||
msgstr "{:%d/%m/%Y %H:%M:%S}"
 | 
			
		||||
 | 
			
		||||
@@ -234,48 +238,48 @@ msgstr "invités"
 | 
			
		||||
msgid "Invitation"
 | 
			
		||||
msgstr "Invitation"
 | 
			
		||||
 | 
			
		||||
#: apps/activity/tables.py:25
 | 
			
		||||
#: apps/activity/tables.py:27
 | 
			
		||||
msgid "The activity is currently open."
 | 
			
		||||
msgstr "Cette activité est actuellement ouverte."
 | 
			
		||||
 | 
			
		||||
#: apps/activity/tables.py:26
 | 
			
		||||
#: apps/activity/tables.py:28
 | 
			
		||||
msgid "The validation of the activity is pending."
 | 
			
		||||
msgstr "La validation de cette activité est en attente."
 | 
			
		||||
 | 
			
		||||
#: apps/activity/tables.py:41 apps/treasury/tables.py:107
 | 
			
		||||
#: apps/activity/tables.py:43 apps/treasury/tables.py:107
 | 
			
		||||
msgid "Remove"
 | 
			
		||||
msgstr "Supprimer"
 | 
			
		||||
 | 
			
		||||
#: apps/activity/tables.py:54
 | 
			
		||||
#: apps/activity/tables.py:56
 | 
			
		||||
msgid "Entered on "
 | 
			
		||||
msgstr "Entré le "
 | 
			
		||||
 | 
			
		||||
#: apps/activity/tables.py:56
 | 
			
		||||
#: apps/activity/tables.py:58
 | 
			
		||||
msgid "remove"
 | 
			
		||||
msgstr "supprimer"
 | 
			
		||||
 | 
			
		||||
#: apps/activity/tables.py:80 apps/note/forms.py:68 apps/treasury/models.py:199
 | 
			
		||||
#: apps/activity/tables.py:82 apps/note/forms.py:68 apps/treasury/models.py:199
 | 
			
		||||
msgid "Type"
 | 
			
		||||
msgstr "Type"
 | 
			
		||||
 | 
			
		||||
#: apps/activity/tables.py:82 apps/member/forms.py:186
 | 
			
		||||
#: apps/registration/forms.py:90 apps/treasury/forms.py:131
 | 
			
		||||
#: apps/activity/tables.py:84 apps/member/forms.py:186
 | 
			
		||||
#: apps/registration/forms.py:91 apps/treasury/forms.py:131
 | 
			
		||||
#: apps/wei/forms/registration.py:104
 | 
			
		||||
msgid "Last name"
 | 
			
		||||
msgstr "Nom de famille"
 | 
			
		||||
 | 
			
		||||
#: apps/activity/tables.py:84 apps/member/forms.py:191
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:134
 | 
			
		||||
#: apps/registration/forms.py:95 apps/treasury/forms.py:133
 | 
			
		||||
#: apps/activity/tables.py:86 apps/member/forms.py:191
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:138
 | 
			
		||||
#: apps/registration/forms.py:96 apps/treasury/forms.py:133
 | 
			
		||||
#: apps/wei/forms/registration.py:109
 | 
			
		||||
msgid "First name"
 | 
			
		||||
msgstr "Prénom"
 | 
			
		||||
 | 
			
		||||
#: apps/activity/tables.py:86 apps/note/models/notes.py:86
 | 
			
		||||
#: apps/activity/tables.py:88 apps/note/models/notes.py:86
 | 
			
		||||
msgid "Note"
 | 
			
		||||
msgstr "Note"
 | 
			
		||||
 | 
			
		||||
#: apps/activity/tables.py:88 apps/member/tables.py:49
 | 
			
		||||
#: apps/activity/tables.py:90 apps/member/tables.py:49
 | 
			
		||||
msgid "Balance"
 | 
			
		||||
msgstr "Solde du compte"
 | 
			
		||||
 | 
			
		||||
@@ -289,26 +293,26 @@ msgstr "Invité supprimé"
 | 
			
		||||
 | 
			
		||||
#: apps/activity/templates/activity/activity_entry.html:14
 | 
			
		||||
#: apps/note/models/transactions.py:257
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:16
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:148
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:17
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:152
 | 
			
		||||
#: note_kfet/templates/base.html:73
 | 
			
		||||
msgid "Transfer"
 | 
			
		||||
msgstr "Virement"
 | 
			
		||||
 | 
			
		||||
#: apps/activity/templates/activity/activity_entry.html:18
 | 
			
		||||
#: apps/note/models/transactions.py:317
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:21
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:22
 | 
			
		||||
msgid "Credit"
 | 
			
		||||
msgstr "Crédit"
 | 
			
		||||
 | 
			
		||||
#: apps/activity/templates/activity/activity_entry.html:21
 | 
			
		||||
#: apps/note/models/transactions.py:317
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:25
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:26
 | 
			
		||||
msgid "Debit"
 | 
			
		||||
msgstr "Débit"
 | 
			
		||||
 | 
			
		||||
#: apps/activity/templates/activity/activity_entry.html:27
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:30
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:34
 | 
			
		||||
msgid "Entries"
 | 
			
		||||
msgstr "Entrées"
 | 
			
		||||
 | 
			
		||||
@@ -548,20 +552,20 @@ msgstr "Cette image ne peut pas être chargée."
 | 
			
		||||
msgid "An alias with a similar name already exists."
 | 
			
		||||
msgstr "Un alias avec un nom similaire existe déjà."
 | 
			
		||||
 | 
			
		||||
#: apps/member/forms.py:165 apps/registration/forms.py:70
 | 
			
		||||
#: apps/member/forms.py:165 apps/registration/forms.py:71
 | 
			
		||||
msgid "Inscription paid by Société Générale"
 | 
			
		||||
msgstr "Inscription payée par la Société générale"
 | 
			
		||||
 | 
			
		||||
#: apps/member/forms.py:167 apps/registration/forms.py:72
 | 
			
		||||
#: apps/member/forms.py:167 apps/registration/forms.py:73
 | 
			
		||||
msgid "Check this case if the Société Générale paid the inscription."
 | 
			
		||||
msgstr "Cochez cette case si la Société Générale a payé l'inscription."
 | 
			
		||||
 | 
			
		||||
#: apps/member/forms.py:172 apps/registration/forms.py:77
 | 
			
		||||
#: apps/member/forms.py:172 apps/registration/forms.py:78
 | 
			
		||||
#: apps/wei/forms/registration.py:91
 | 
			
		||||
msgid "Credit type"
 | 
			
		||||
msgstr "Type de rechargement"
 | 
			
		||||
 | 
			
		||||
#: apps/member/forms.py:173 apps/registration/forms.py:78
 | 
			
		||||
#: apps/member/forms.py:173 apps/registration/forms.py:79
 | 
			
		||||
#: apps/wei/forms/registration.py:92
 | 
			
		||||
msgid "No credit"
 | 
			
		||||
msgstr "Pas de rechargement"
 | 
			
		||||
@@ -570,13 +574,13 @@ msgstr "Pas de rechargement"
 | 
			
		||||
msgid "You can credit the note of the user."
 | 
			
		||||
msgstr "Vous pouvez créditer la note de l'utilisateur avant l'adhésion."
 | 
			
		||||
 | 
			
		||||
#: apps/member/forms.py:179 apps/registration/forms.py:83
 | 
			
		||||
#: apps/member/forms.py:179 apps/registration/forms.py:84
 | 
			
		||||
#: apps/wei/forms/registration.py:97
 | 
			
		||||
msgid "Credit amount"
 | 
			
		||||
msgstr "Montant à créditer"
 | 
			
		||||
 | 
			
		||||
#: apps/member/forms.py:196 apps/note/templates/note/transaction_form.html:140
 | 
			
		||||
#: apps/registration/forms.py:100 apps/treasury/forms.py:135
 | 
			
		||||
#: apps/member/forms.py:196 apps/note/templates/note/transaction_form.html:144
 | 
			
		||||
#: apps/registration/forms.py:101 apps/treasury/forms.py:135
 | 
			
		||||
#: apps/wei/forms/registration.py:114
 | 
			
		||||
msgid "Bank"
 | 
			
		||||
msgstr "Banque"
 | 
			
		||||
@@ -1192,7 +1196,7 @@ msgstr "Modifier le club"
 | 
			
		||||
msgid "Add new member to the club"
 | 
			
		||||
msgstr "Ajouter un nouveau membre au club"
 | 
			
		||||
 | 
			
		||||
#: apps/member/views.py:642 apps/wei/views.py:956
 | 
			
		||||
#: apps/member/views.py:642 apps/wei/views.py:973
 | 
			
		||||
msgid ""
 | 
			
		||||
"This user don't have enough money to join this club, and can't have a "
 | 
			
		||||
"negative balance."
 | 
			
		||||
@@ -1247,7 +1251,7 @@ msgstr "Source"
 | 
			
		||||
msgid "Destination"
 | 
			
		||||
msgstr "Destination"
 | 
			
		||||
 | 
			
		||||
#: apps/note/forms.py:74 apps/note/templates/note/transaction_form.html:119
 | 
			
		||||
#: apps/note/forms.py:74 apps/note/templates/note/transaction_form.html:123
 | 
			
		||||
msgid "Reason"
 | 
			
		||||
msgstr "Raison"
 | 
			
		||||
 | 
			
		||||
@@ -1498,8 +1502,8 @@ msgstr ""
 | 
			
		||||
"mode de paiement et un utilisateur ou un club"
 | 
			
		||||
 | 
			
		||||
#: apps/note/models/transactions.py:355 apps/note/models/transactions.py:358
 | 
			
		||||
#: apps/note/models/transactions.py:361 apps/wei/views.py:961
 | 
			
		||||
#: apps/wei/views.py:965
 | 
			
		||||
#: apps/note/models/transactions.py:361 apps/wei/views.py:978
 | 
			
		||||
#: apps/wei/views.py:982
 | 
			
		||||
msgid "This field is required."
 | 
			
		||||
msgstr "Ce champ est requis."
 | 
			
		||||
 | 
			
		||||
@@ -1553,7 +1557,7 @@ msgid "Edit"
 | 
			
		||||
msgstr "Éditer"
 | 
			
		||||
 | 
			
		||||
#: apps/note/templates/note/conso_form.html:22
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:44
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:48
 | 
			
		||||
msgid "Please select a note"
 | 
			
		||||
msgstr "Sélectionnez une note"
 | 
			
		||||
 | 
			
		||||
@@ -1562,8 +1566,8 @@ msgid "Consum"
 | 
			
		||||
msgstr "Consommer"
 | 
			
		||||
 | 
			
		||||
#: apps/note/templates/note/conso_form.html:43
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:65
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:92
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:69
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:96
 | 
			
		||||
msgid "Name or alias..."
 | 
			
		||||
msgstr "Pseudo ou alias ..."
 | 
			
		||||
 | 
			
		||||
@@ -1588,7 +1592,7 @@ msgid "Double consumptions"
 | 
			
		||||
msgstr "Consommations doubles"
 | 
			
		||||
 | 
			
		||||
#: apps/note/templates/note/conso_form.html:154
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:159
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:163
 | 
			
		||||
msgid "Recent transactions history"
 | 
			
		||||
msgstr "Historique des transactions récentes"
 | 
			
		||||
 | 
			
		||||
@@ -1603,45 +1607,45 @@ msgstr "Historique des transactions récentes"
 | 
			
		||||
msgid "Mail generated by the Note Kfet on the"
 | 
			
		||||
msgstr "Mail généré par la Note Kfet le"
 | 
			
		||||
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:54
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:174
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:58
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:178
 | 
			
		||||
msgid "Select emitters"
 | 
			
		||||
msgstr "Sélection des émetteurs"
 | 
			
		||||
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:69
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:73
 | 
			
		||||
msgid "I am the emitter"
 | 
			
		||||
msgstr "Je suis l'émetteur"
 | 
			
		||||
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:81
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:176
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:85
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:180
 | 
			
		||||
msgid "Select receivers"
 | 
			
		||||
msgstr "Sélection des destinataires"
 | 
			
		||||
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:104
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:108
 | 
			
		||||
msgid "Action"
 | 
			
		||||
msgstr "Action"
 | 
			
		||||
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:112
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:116
 | 
			
		||||
#: apps/treasury/forms.py:137 apps/treasury/tables.py:67
 | 
			
		||||
#: apps/treasury/tables.py:132
 | 
			
		||||
#: apps/treasury/templates/treasury/remittance_form.html:23
 | 
			
		||||
msgid "Amount"
 | 
			
		||||
msgstr "Montant"
 | 
			
		||||
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:128
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:132
 | 
			
		||||
#: apps/treasury/models.py:54
 | 
			
		||||
msgid "Name"
 | 
			
		||||
msgstr "Nom"
 | 
			
		||||
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:173
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:177
 | 
			
		||||
msgid "Select emitter"
 | 
			
		||||
msgstr "Sélection de l'émetteur"
 | 
			
		||||
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:175
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:179
 | 
			
		||||
msgid "Select receiver"
 | 
			
		||||
msgstr "Sélection du destinataire"
 | 
			
		||||
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:177
 | 
			
		||||
#: apps/note/templates/note/transaction_form.html:181
 | 
			
		||||
msgid "Transfer type"
 | 
			
		||||
msgstr "Type de transfert"
 | 
			
		||||
 | 
			
		||||
@@ -1913,13 +1917,13 @@ msgstr "Cet email est déjà pris."
 | 
			
		||||
 | 
			
		||||
#: apps/registration/forms.py:49
 | 
			
		||||
msgid ""
 | 
			
		||||
"I declare that I opened or I will open soon a bank account in the Société générale with the BDE "
 | 
			
		||||
"partnership."
 | 
			
		||||
"I declare that I opened or I will open soon a bank account in the Société "
 | 
			
		||||
"générale with the BDE partnership."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Je déclare avoir ouvert ou ouvrir prochainement un compte à la société générale avec le partenariat "
 | 
			
		||||
"du BDE."
 | 
			
		||||
"Je déclare avoir ouvert ou ouvrir prochainement un compte à la société "
 | 
			
		||||
"générale avec le partenariat du BDE."
 | 
			
		||||
 | 
			
		||||
#: apps/registration/forms.py:50
 | 
			
		||||
#: apps/registration/forms.py:51
 | 
			
		||||
msgid ""
 | 
			
		||||
"Warning: this engages you to open your bank account. If you finally decides "
 | 
			
		||||
"to don't open your account, you will have to pay the BDE membership."
 | 
			
		||||
@@ -1927,11 +1931,11 @@ msgstr ""
 | 
			
		||||
"Attention : cocher cette case vous engage à ouvrir votre compte. Si vous "
 | 
			
		||||
"décidez de ne pas le faire, vous devrez payer l'adhésion au BDE."
 | 
			
		||||
 | 
			
		||||
#: apps/registration/forms.py:58
 | 
			
		||||
#: apps/registration/forms.py:59
 | 
			
		||||
msgid "Register to the WEI"
 | 
			
		||||
msgstr "S'inscrire au WEI"
 | 
			
		||||
 | 
			
		||||
#: apps/registration/forms.py:60
 | 
			
		||||
#: apps/registration/forms.py:61
 | 
			
		||||
msgid ""
 | 
			
		||||
"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."
 | 
			
		||||
@@ -1940,11 +1944,11 @@ msgstr ""
 | 
			
		||||
"pourrez toujours vous inscrire plus tard, après avoir validé votre compte à "
 | 
			
		||||
"la Kfet."
 | 
			
		||||
 | 
			
		||||
#: apps/registration/forms.py:105
 | 
			
		||||
#: apps/registration/forms.py:106
 | 
			
		||||
msgid "Join BDE Club"
 | 
			
		||||
msgstr "Adhérer au club BDE"
 | 
			
		||||
 | 
			
		||||
#: apps/registration/forms.py:112
 | 
			
		||||
#: apps/registration/forms.py:113
 | 
			
		||||
msgid "Join Kfet Club"
 | 
			
		||||
msgstr "Adhérer au club Kfet"
 | 
			
		||||
 | 
			
		||||
@@ -2244,7 +2248,7 @@ msgstr "proxys de transactions spéciales"
 | 
			
		||||
msgid "credit transaction"
 | 
			
		||||
msgstr "transaction de crédit"
 | 
			
		||||
 | 
			
		||||
#: apps/treasury/models.py:419
 | 
			
		||||
#: apps/treasury/models.py:430
 | 
			
		||||
msgid ""
 | 
			
		||||
"This user doesn't have enough money to pay the memberships with its note. "
 | 
			
		||||
"Please ask her/him to credit the note before invalidating this credit."
 | 
			
		||||
@@ -2252,16 +2256,16 @@ msgstr ""
 | 
			
		||||
"Cet utilisateur n'a pas assez d'argent pour payer les adhésions avec sa "
 | 
			
		||||
"note. Merci de lui demander de recharger sa note avant d'invalider ce crédit."
 | 
			
		||||
 | 
			
		||||
#: apps/treasury/models.py:439
 | 
			
		||||
#: apps/treasury/models.py:451
 | 
			
		||||
#: apps/treasury/templates/treasury/sogecredit_detail.html:10
 | 
			
		||||
msgid "Credit from the Société générale"
 | 
			
		||||
msgstr "Crédit de la Société générale"
 | 
			
		||||
 | 
			
		||||
#: apps/treasury/models.py:440
 | 
			
		||||
#: apps/treasury/models.py:452
 | 
			
		||||
msgid "Credits from the Société générale"
 | 
			
		||||
msgstr "Crédits de la Société générale"
 | 
			
		||||
 | 
			
		||||
#: apps/treasury/models.py:443
 | 
			
		||||
#: apps/treasury/models.py:455
 | 
			
		||||
#, python-brace-format
 | 
			
		||||
msgid "Soge credit for {user}"
 | 
			
		||||
msgstr "Crédit de la société générale pour l'utilisateur {user}"
 | 
			
		||||
@@ -2559,7 +2563,7 @@ msgstr "Sélectionnez les rôles qui vous intéressent."
 | 
			
		||||
msgid "This team doesn't belong to the given bus."
 | 
			
		||||
msgstr "Cette équipe n'appartient pas à ce bus."
 | 
			
		||||
 | 
			
		||||
#: apps/wei/forms/surveys/wei2021.py:31
 | 
			
		||||
#: apps/wei/forms/surveys/wei2021.py:35
 | 
			
		||||
msgid "Choose a word:"
 | 
			
		||||
msgstr "Choisissez un mot :"
 | 
			
		||||
 | 
			
		||||
@@ -2804,11 +2808,11 @@ msgstr "Prix du WEI (étudiants)"
 | 
			
		||||
msgid "WEI list"
 | 
			
		||||
msgstr "Liste des WEI"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/templates/wei/base.html:81 apps/wei/views.py:523
 | 
			
		||||
#: apps/wei/templates/wei/base.html:81 apps/wei/views.py:528
 | 
			
		||||
msgid "Register 1A"
 | 
			
		||||
msgstr "Inscrire un 1A"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/templates/wei/base.html:85 apps/wei/views.py:603
 | 
			
		||||
#: apps/wei/templates/wei/base.html:85 apps/wei/views.py:614
 | 
			
		||||
msgid "Register 2A+"
 | 
			
		||||
msgstr "Inscrire un 2A+"
 | 
			
		||||
 | 
			
		||||
@@ -2837,8 +2841,8 @@ msgstr "Télécharger au format PDF"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/templates/wei/survey.html:11
 | 
			
		||||
#: apps/wei/templates/wei/survey_closed.html:11
 | 
			
		||||
#: apps/wei/templates/wei/survey_end.html:11 apps/wei/views.py:1011
 | 
			
		||||
#: apps/wei/views.py:1066 apps/wei/views.py:1076
 | 
			
		||||
#: apps/wei/templates/wei/survey_end.html:11 apps/wei/views.py:1028
 | 
			
		||||
#: apps/wei/views.py:1083 apps/wei/views.py:1093
 | 
			
		||||
msgid "Survey WEI"
 | 
			
		||||
msgstr "Questionnaire WEI"
 | 
			
		||||
 | 
			
		||||
@@ -2883,7 +2887,7 @@ msgstr "Inscriptions non validées"
 | 
			
		||||
msgid "Attribute buses"
 | 
			
		||||
msgstr "Répartition dans les bus"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/templates/wei/weiclub_list.html:14 apps/wei/views.py:78
 | 
			
		||||
#: apps/wei/templates/wei/weiclub_list.html:14 apps/wei/views.py:79
 | 
			
		||||
msgid "Create WEI"
 | 
			
		||||
msgstr "Créer un WEI"
 | 
			
		||||
 | 
			
		||||
@@ -3020,67 +3024,67 @@ msgstr "Il n'y a pas de pré-inscription en attente avec cette entrée."
 | 
			
		||||
msgid "View validated memberships..."
 | 
			
		||||
msgstr "Voir les adhésions validées ..."
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:57
 | 
			
		||||
#: apps/wei/views.py:58
 | 
			
		||||
msgid "Search WEI"
 | 
			
		||||
msgstr "Chercher un WEI"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:108
 | 
			
		||||
#: apps/wei/views.py:109
 | 
			
		||||
msgid "WEI Detail"
 | 
			
		||||
msgstr "Détails du WEI"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:203
 | 
			
		||||
#: apps/wei/views.py:208
 | 
			
		||||
msgid "View members of the WEI"
 | 
			
		||||
msgstr "Voir les membres du WEI"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:231
 | 
			
		||||
#: apps/wei/views.py:236
 | 
			
		||||
msgid "Find WEI Membership"
 | 
			
		||||
msgstr "Trouver une adhésion au WEI"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:241
 | 
			
		||||
#: apps/wei/views.py:246
 | 
			
		||||
msgid "View registrations to the WEI"
 | 
			
		||||
msgstr "Voir les inscriptions au WEI"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:265
 | 
			
		||||
#: apps/wei/views.py:270
 | 
			
		||||
msgid "Find WEI Registration"
 | 
			
		||||
msgstr "Trouver une inscription au WEI"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:276
 | 
			
		||||
#: apps/wei/views.py:281
 | 
			
		||||
msgid "Update the WEI"
 | 
			
		||||
msgstr "Modifier le WEI"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:297
 | 
			
		||||
#: apps/wei/views.py:302
 | 
			
		||||
msgid "Create new bus"
 | 
			
		||||
msgstr "Ajouter un nouveau bus"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:335
 | 
			
		||||
#: apps/wei/views.py:340
 | 
			
		||||
msgid "Update bus"
 | 
			
		||||
msgstr "Modifier le bus"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:367
 | 
			
		||||
#: apps/wei/views.py:372
 | 
			
		||||
msgid "Manage bus"
 | 
			
		||||
msgstr "Gérer le bus"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:394
 | 
			
		||||
#: apps/wei/views.py:399
 | 
			
		||||
msgid "Create new team"
 | 
			
		||||
msgstr "Créer une nouvelle équipe"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:434
 | 
			
		||||
#: apps/wei/views.py:439
 | 
			
		||||
msgid "Update team"
 | 
			
		||||
msgstr "Modifier l'équipe"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:465
 | 
			
		||||
#: apps/wei/views.py:470
 | 
			
		||||
msgid "Manage WEI team"
 | 
			
		||||
msgstr "Gérer l'équipe WEI"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:487
 | 
			
		||||
#: apps/wei/views.py:492
 | 
			
		||||
msgid "Register first year student to the WEI"
 | 
			
		||||
msgstr "Inscrire un 1A au WEI"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:545 apps/wei/views.py:638
 | 
			
		||||
#: apps/wei/views.py:550 apps/wei/views.py:649
 | 
			
		||||
msgid "This user is already registered to this WEI."
 | 
			
		||||
msgstr "Cette personne est déjà inscrite au WEI."
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:550
 | 
			
		||||
#: apps/wei/views.py:555
 | 
			
		||||
msgid ""
 | 
			
		||||
"This user can't be in her/his first year since he/she has already "
 | 
			
		||||
"participated to a WEI."
 | 
			
		||||
@@ -3088,35 +3092,35 @@ msgstr ""
 | 
			
		||||
"Cet utilisateur ne peut pas être en première année puisqu'il a déjà "
 | 
			
		||||
"participé à un WEI."
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:567
 | 
			
		||||
#: apps/wei/views.py:578
 | 
			
		||||
msgid "Register old student to the WEI"
 | 
			
		||||
msgstr "Inscrire un 2A+ au WEI"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:622 apps/wei/views.py:704
 | 
			
		||||
#: apps/wei/views.py:633 apps/wei/views.py:721
 | 
			
		||||
msgid "You already opened an account in the Société générale."
 | 
			
		||||
msgstr "Vous avez déjà ouvert un compte auprès de la société générale."
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:668
 | 
			
		||||
#: apps/wei/views.py:685
 | 
			
		||||
msgid "Update WEI Registration"
 | 
			
		||||
msgstr "Modifier l'inscription WEI"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:778
 | 
			
		||||
#: apps/wei/views.py:795
 | 
			
		||||
msgid "Delete WEI registration"
 | 
			
		||||
msgstr "Supprimer l'inscription WEI"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:789
 | 
			
		||||
#: apps/wei/views.py:806
 | 
			
		||||
msgid "You don't have the right to delete this WEI registration."
 | 
			
		||||
msgstr "Vous n'avez pas la permission de supprimer cette inscription au WEI."
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:807
 | 
			
		||||
#: apps/wei/views.py:824
 | 
			
		||||
msgid "Validate WEI registration"
 | 
			
		||||
msgstr "Valider l'inscription WEI"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:1169
 | 
			
		||||
#: apps/wei/views.py:1186
 | 
			
		||||
msgid "Attribute buses to first year members"
 | 
			
		||||
msgstr "Répartir les 1A dans les bus"
 | 
			
		||||
 | 
			
		||||
#: apps/wei/views.py:1191
 | 
			
		||||
#: apps/wei/views.py:1211
 | 
			
		||||
msgid "Attribute bus"
 | 
			
		||||
msgstr "Attribuer un bus"
 | 
			
		||||
 | 
			
		||||
@@ -3266,6 +3270,10 @@ msgstr ""
 | 
			
		||||
msgid "Contact us"
 | 
			
		||||
msgstr "Nous contacter"
 | 
			
		||||
 | 
			
		||||
#: note_kfet/templates/base.html:197
 | 
			
		||||
msgid "Technical Support"
 | 
			
		||||
msgstr "Support technique"
 | 
			
		||||
 | 
			
		||||
#: note_kfet/templates/base_search.html:15
 | 
			
		||||
msgid "Search by attribute such as name…"
 | 
			
		||||
msgstr "Chercher par un attribut tel que le nom …"
 | 
			
		||||
 
 | 
			
		||||
@@ -7,8 +7,8 @@
 | 
			
		||||
 * @returns {string}
 | 
			
		||||
 */
 | 
			
		||||
function pretty_money (value) {
 | 
			
		||||
  if (value % 100 === 0) { return (value < 0 ? '- ' : '') + Math.round(Math.abs(value) / 100) + ' €' } else {
 | 
			
		||||
    return (value < 0 ? '- ' : '') + Math.round(Math.abs(value) / 100) + '.' +
 | 
			
		||||
  if (value % 100 === 0) { return (value < 0 ? '- ' : '') + Math.floor(Math.abs(value) / 100) + ' €' } else {
 | 
			
		||||
    return (value < 0 ? '- ' : '') + Math.floor(Math.abs(value) / 100) + '.' +
 | 
			
		||||
            (Math.abs(value) % 100 < 10 ? '0' : '') + (Math.abs(value) % 100) + ' €'
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -381,11 +381,11 @@ function de_validate (id, validated, resourcetype) {
 | 
			
		||||
 * @param callback Function to call
 | 
			
		||||
 * @param wait Debounced milliseconds
 | 
			
		||||
 */
 | 
			
		||||
function debounce (callback, wait) {
 | 
			
		||||
  let timeout
 | 
			
		||||
let debounce_timeout
 | 
			
		||||
function debounce (callback, wait=500) {
 | 
			
		||||
  return (...args) => {
 | 
			
		||||
    const context = this
 | 
			
		||||
    clearTimeout(timeout)
 | 
			
		||||
    timeout = setTimeout(() => callback.apply(context, args), wait)
 | 
			
		||||
    clearTimeout(debounce_timeout)
 | 
			
		||||
    debounce_timeout = setTimeout(() => callback.apply(context, args), wait)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -35,8 +35,9 @@ urlpatterns = [
 | 
			
		||||
    path('coffee/', include('django_htcpcp_tea.urls')),
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
# During development, serve media files
 | 
			
		||||
# During development, serve static and media files
 | 
			
		||||
if settings.DEBUG:
 | 
			
		||||
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
 | 
			
		||||
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
 | 
			
		||||
 | 
			
		||||
if "oauth2_provider" in settings.INSTALLED_APPS:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user