diff --git a/apps/member/static/member/js/trust.js b/apps/member/static/member/js/trust.js index a16bed08..15b5359f 100644 --- a/apps/member/static/member/js/trust.js +++ b/apps/member/static/member/js/trust.js @@ -1,7 +1,7 @@ /** * On form submit, create a new friendship */ -function create_trust (e) { +function form_create_trust (e) { // Do not submit HTML form e.preventDefault() @@ -14,25 +14,35 @@ function create_trust (e) { addMsg(gettext("You can't add yourself as a friend"), "danger") return } - $.post('/api/note/trust/', { - csrfmiddlewaretoken: formData.get('csrfmiddlewaretoken'), - trusting: formData.get('trusting'), - trusted: trusted_alias.note - }).done(function () { - // Reload table - $('#trust_table').load(location.pathname + ' #trust_table') - addMsg(gettext('Friendship successfully added'), 'success') - }).fail(function (xhr, _textStatus, _error) { - errMsg(xhr.responseJSON) - }) + create_trust(formData.get('trusting'), trusted_alias.note) }).fail(function (xhr, _textStatus, _error) { errMsg(xhr.responseJSON) }) } /** - * On click of "delete", delete the alias - * @param button_id:Integer Alias id to remove + * Create a trust between users + * @param trusting:Integer trusting note id + * @param trusted:Integer trusted note id + */ +function create_trust(trusting, trusted) { + $.post('/api/note/trust/', { + trusting: trusting, + trusted: trusted, + csrfmiddlewaretoken: CSRF_TOKEN + }).done(function () { + // Reload tables + $('#trust_table').load(location.pathname + ' #trust_table') + $('#trusted_table').load(location.pathname + ' #trusted_table') + addMsg(gettext('Friendship successfully added'), 'success') + }).fail(function (xhr, _textStatus, _error) { + errMsg(xhr.responseJSON) + }) +} + +/** + * On click of "delete", delete the trust + * @param button_id:Integer Trust id to remove */ function delete_button (button_id) { $.ajax({ @@ -42,6 +52,7 @@ function delete_button (button_id) { }).done(function () { addMsg(gettext('Friendship successfully deleted'), 'success') $('#trust_table').load(location.pathname + ' #trust_table') + $('#trusted_table').load(location.pathname + ' #trusted_table') }).fail(function (xhr, _textStatus, _error) { errMsg(xhr.responseJSON) }) @@ -49,5 +60,5 @@ function delete_button (button_id) { $(document).ready(function () { // Attach event - document.getElementById('form_trust').addEventListener('submit', create_trust) + document.getElementById('form_trust').addEventListener('submit', form_create_trust) }) diff --git a/apps/member/templates/member/profile_trust.html b/apps/member/templates/member/profile_trust.html index bd8d6b50..b89f05f6 100644 --- a/apps/member/templates/member/profile_trust.html +++ b/apps/member/templates/member/profile_trust.html @@ -7,7 +7,7 @@ SPDX-License-Identifier: GPL-3.0-or-later {% block profile_content %}

- {% trans "Note friendships" %} + {% trans "Add friends" %}

{% if can_create %} @@ -24,7 +24,7 @@ SPDX-License-Identifier: GPL-3.0-or-later {% render_table trusting %}
-
+
{% blocktrans trimmed %} Adding someone as a friend enables them to initiate transactions coming from your account (while keeping your balance positive). This is @@ -33,6 +33,13 @@ SPDX-License-Identifier: GPL-3.0-or-later friends without needing additional rights among them. {% endblocktrans %}
+ +
+

+ {% trans "People having you as a friend" %} +

+ {% render_table trusted_by %} +
{% endblock %} {% block extrajavascript %} diff --git a/apps/member/views.py b/apps/member/views.py index 63307383..066a7ef3 100644 --- a/apps/member/views.py +++ b/apps/member/views.py @@ -8,7 +8,6 @@ from django.contrib.auth import logout from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.models import User from django.contrib.auth.views import LoginView -from django.contrib.contenttypes.models import ContentType from django.db import transaction from django.db.models import Q, F from django.shortcuts import redirect @@ -21,7 +20,7 @@ from django_tables2.views import SingleTableView from rest_framework.authtoken.models import Token from note.models import Alias, NoteClub, NoteUser, Trust from note.models.transactions import Transaction, SpecialTransaction -from note.tables import HistoryTable, AliasTable, TrustTable +from note.tables import HistoryTable, AliasTable, TrustTable, TrustedTable from note_kfet.middlewares import _set_current_request from permission.backends import PermissionBackend from permission.models import Role @@ -258,17 +257,18 @@ class ProfileTrustView(ProtectQuerysetMixin, LoginRequiredMixin, DetailView): note = context['object'].note context["trusting"] = TrustTable( note.trusting.filter(PermissionBackend.filter_queryset(self.request, Trust, "view")).distinct().all()) + context["trusted_by"] = TrustedTable( + note.trusted.filter(PermissionBackend.filter_queryset(self.request, Trust, "view")).distinct().all()) context["can_create"] = PermissionBackend.check_perm(self.request, "note.add_trust", Trust( trusting=context["object"].note, trusted=context["object"].note )) context["widget"] = { "name": "trusted", + "resetable": True, "attrs": { - "model_pk": ContentType.objects.get_for_model(Alias).pk, "class": "autocomplete form-control", "id": "trusted", - "resetable": True, "api_url": "/api/note/alias/?note__polymorphic_ctype__model=noteuser", "name_field": "name", "placeholder": "" diff --git a/apps/note/admin.py b/apps/note/admin.py index eb0f0f3c..8d081d90 100644 --- a/apps/note/admin.py +++ b/apps/note/admin.py @@ -7,7 +7,7 @@ from polymorphic.admin import PolymorphicChildModelAdmin, \ PolymorphicChildModelFilter, PolymorphicParentModelAdmin from note_kfet.admin import admin_site -from .models.notes import Alias, Note, NoteClub, NoteSpecial, NoteUser +from .models.notes import Alias, Note, NoteClub, NoteSpecial, NoteUser, Trust from .models.transactions import Transaction, TemplateCategory, TransactionTemplate, \ RecurrentTransaction, MembershipTransaction, SpecialTransaction from .templatetags.pretty_money import pretty_money @@ -21,6 +21,16 @@ class AliasInlines(admin.TabularInline): model = Alias +class TrustInlines(admin.TabularInline): + """ + Define trusts when editing the trusting note + """ + model = Trust + fk_name = "trusting" + extra = 0 + readonly_fields = ("trusted",) + + @admin.register(Note, site=admin_site) class NoteAdmin(PolymorphicParentModelAdmin): """ @@ -92,7 +102,7 @@ class NoteUserAdmin(PolymorphicChildModelAdmin): """ Child for an user note, see NoteAdmin """ - inlines = (AliasInlines,) + inlines = (AliasInlines, TrustInlines) # We can't change user after creation or the balance readonly_fields = ('user', 'balance') diff --git a/apps/note/api/serializers.py b/apps/note/api/serializers.py index 33bf75ba..a374fc33 100644 --- a/apps/note/api/serializers.py +++ b/apps/note/api/serializers.py @@ -11,6 +11,7 @@ from member.models import Membership from note_kfet.middlewares import get_current_request from permission.backends import PermissionBackend from rest_framework.utils import model_meta +from rest_framework.validators import UniqueTogetherValidator from ..models.notes import Note, NoteClub, NoteSpecial, NoteUser, Alias, Trust from ..models.transactions import TransactionTemplate, Transaction, MembershipTransaction, TemplateCategory, \ @@ -86,11 +87,9 @@ class TrustSerializer(serializers.ModelSerializer): class Meta: model = Trust fields = '__all__' - - def validate(self, attrs): - instance = Trust(**attrs) - instance.clean() - return attrs + validators = [UniqueTogetherValidator( + queryset=Trust.objects.all(), fields=('trusting', 'trusted'), + message=_("This friendship already exists"))] class AliasSerializer(serializers.ModelSerializer): diff --git a/apps/note/tables.py b/apps/note/tables.py index 1e94a39f..243a8da6 100644 --- a/apps/note/tables.py +++ b/apps/note/tables.py @@ -159,11 +159,11 @@ class TrustTable(tables.Table): template_name = 'django_tables2/bootstrap4.html' show_header = False - trusted = tables.Column(attrs={'td': {'class': 'text_center'}}) + trusted = tables.Column(attrs={'td': {'class': 'text-center'}}) delete_col = tables.TemplateColumn( template_code=DELETE_TEMPLATE, - extra_context={"delete_trans": _('delete')}, + extra_context={"delete_trans": _('Delete')}, attrs={ 'td': { 'class': lambda record: 'col-sm-1' @@ -173,6 +173,46 @@ class TrustTable(tables.Table): verbose_name=_("Delete"),) +class TrustedTable(tables.Table): + class Meta: + attrs = { + 'class': 'table table condensed table-striped', + 'id': 'trusted_table' + } + Model = Trust + fields = ("trusting",) + template_name = "django_tables2/bootstrap4.html" + + show_header = False + trusting = tables.Column(attrs={ + 'td': {'class': 'text-center', 'width': '100%'}}) + + trust_back = tables.Column( + verbose_name=_("Trust back"), + accessor="pk", + attrs={ + 'td': { + 'class': '', + 'id': lambda record: "trust_back_" + str(record.pk), + } + }, + ) + + def render_trust_back(self, record): + user_note = record.trusted + trusting_note = record.trusting + if Trust.objects.filter(trusted=trusting_note, trusting=user_note): + return "" + val = '' + return mark_safe(val) + + class AliasTable(tables.Table): class Meta: attrs = { diff --git a/apps/permission/fixtures/initial.json b/apps/permission/fixtures/initial.json index 5776abab..0553f39f 100644 --- a/apps/permission/fixtures/initial.json +++ b/apps/permission/fixtures/initial.json @@ -3093,6 +3093,22 @@ "field": "", "permanent": false, "description": "Créer un crédit quelconque" + } + }, + { + "model": "permission.permission", + "pk": 198, + "fields": { + "model": [ + "note", + "trust" + ], + "query": "{\"trusted__noteuser__user\": [\"user\"]}", + "type": "view", + "mask": 1, + "field": "", + "permanent": true, + "description": "Voir ceux nous ayant pour ami, pour toujours" } }, { @@ -3132,10 +3148,11 @@ 187, 188, 189, - 190, - 191, - 195, - 196 + 190, + 191, + 195, + 196, + 198 ] } }, diff --git a/apps/treasury/models.py b/apps/treasury/models.py index fc20da3b..e788e479 100644 --- a/apps/treasury/models.py +++ b/apps/treasury/models.py @@ -338,11 +338,11 @@ class SogeCredit(models.Model): # if m.transaction not in self.transactions.all(): # self.transactions.add(m.transaction) # -# if kfet_qs.exists(): -# m = kfet_qs.get() -# if MembershipTransaction.objects.filter(membership=m).exists(): # non-free membership -# if m.transaction not in self.transactions.all(): -# self.transactions.add(m.transaction) +# if kfet_qs.exists(): +# m = kfet_qs.get() +# if MembershipTransaction.objects.filter(membership=m).exists(): # non-free membership +# if m.transaction not in self.transactions.all(): +# self.transactions.add(m.transaction) if 'wei' in settings.INSTALLED_APPS: from wei.models import WEIClub diff --git a/apps/wei/tests/test_wei_algorithm_2023.py b/apps/wei/tests/test_wei_algorithm_2023.py index 714024e2..ae982d3c 100644 --- a/apps/wei/tests/test_wei_algorithm_2023.py +++ b/apps/wei/tests/test_wei_algorithm_2023.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: GPL-3.0-or-later import random -from datetime import date +from datetime import date, timedelta from django.contrib.auth.models import User from django.test import TestCase @@ -40,10 +40,10 @@ class TestWEIAlgorithm(TestCase): parent_club_id=2, membership_fee_paid=12500, membership_fee_unpaid=5500, - membership_start='2023-08-26', - membership_end='2023-09-15', - date_start='2023-09-16', - date_end='2023-09-18', + membership_start='2023-01-01', + membership_end='2023-12-31', + date_start=date.today() + timedelta(days=2), + date_end='2023-12-31', year=2023, ) diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index c9e084a5..7316395a 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-31 13:25+0200\n" +"POT-Creation-Date: 2023-09-18 17:27+0200\n" "PO-Revision-Date: 2020-11-16 20:02+0000\n" "Last-Translator: bleizi \n" "Language-Team: German \n" @@ -263,14 +263,14 @@ msgid "Type" msgstr "Type" #: apps/activity/tables.py:84 apps/member/forms.py:193 -#: apps/registration/forms.py:93 apps/treasury/forms.py:131 +#: apps/registration/forms.py:92 apps/treasury/forms.py:131 #: apps/wei/forms/registration.py:104 msgid "Last name" msgstr "Nachname" #: apps/activity/tables.py:86 apps/member/forms.py:198 #: apps/note/templates/note/transaction_form.html:138 -#: apps/registration/forms.py:98 apps/treasury/forms.py:133 +#: apps/registration/forms.py:97 apps/treasury/forms.py:133 #: apps/wei/forms/registration.py:109 msgid "First name" msgstr "Vorname" @@ -391,7 +391,7 @@ msgid "validate" msgstr "" #: apps/activity/templates/activity/includes/activity_info.html:71 -#: apps/logs/models.py:64 apps/note/tables.py:220 +#: apps/logs/models.py:64 apps/note/tables.py:260 msgid "edit" msgstr "bearbeiten" @@ -467,9 +467,9 @@ msgstr "neue Daten" msgid "create" msgstr "schaffen" -#: apps/logs/models.py:65 apps/note/tables.py:166 apps/note/tables.py:190 -#: apps/note/tables.py:237 apps/permission/models.py:127 -#: apps/treasury/tables.py:38 apps/wei/tables.py:74 +#: apps/logs/models.py:65 apps/note/tables.py:230 apps/note/tables.py:277 +#: apps/permission/models.py:127 apps/treasury/tables.py:38 +#: apps/wei/tables.py:74 msgid "delete" msgstr "entfernen" @@ -536,7 +536,8 @@ msgstr "Letzen Bericht Datum" msgid "" "Anti-VSS (Violences Sexistes et Sexuelles) charter read and approved" msgstr "" -"Anti-VSS (Violences Sexistes et Sexuelles) Charta gelesen und angenommen" +"Anti-VSS (Violences Sexistes et Sexuelles) Charta gelesen und " +"angenommen" #: apps/member/forms.py:53 msgid "" @@ -544,9 +545,9 @@ msgid "" "href=https://perso.crans.org/club-bde/Charte-anti-VSS.pdf target=_blank> " "available here in pdf" msgstr "" -"Kreuzen Sie an, nachdem Sie die Anti-VSS-Charta gelesen und akzeptiert haben, " -"die hier als pdf-Datei verfügbar ist" +"Kreuzen Sie an, nachdem Sie die Anti-VSS-Charta gelesen und akzeptiert " +"haben, die hier als pdf-Datei verfügbar ist" #: apps/member/forms.py:60 msgid "You can't register to the note if you come from the future." @@ -564,8 +565,8 @@ msgstr "Maximal Größe: 2MB" msgid "This image cannot be loaded." msgstr "Dieses Bild kann nicht geladen werden." -#: apps/member/forms.py:148 apps/member/views.py:103 -#: apps/registration/forms.py:35 apps/registration/views.py:266 +#: apps/member/forms.py:148 apps/member/views.py:102 +#: apps/registration/forms.py:34 apps/registration/views.py:266 msgid "An alias with a similar name already exists." msgstr "Ein ähnliches Alias ist schon benutzt." @@ -577,12 +578,12 @@ msgstr "Mitgliedschaft von der Société Générale bezahlt" msgid "Check this case if the Société Générale paid the inscription." msgstr "Die Société Générale die Mitgliedschaft bezahlt." -#: apps/member/forms.py:179 apps/registration/forms.py:80 +#: apps/member/forms.py:179 apps/registration/forms.py:79 #: apps/wei/forms/registration.py:91 msgid "Credit type" msgstr "Kredittype" -#: apps/member/forms.py:180 apps/registration/forms.py:81 +#: apps/member/forms.py:180 apps/registration/forms.py:80 #: apps/wei/forms/registration.py:92 msgid "No credit" msgstr "Kein Kredit" @@ -591,13 +592,13 @@ msgstr "Kein Kredit" msgid "You can credit the note of the user." msgstr "Sie dûrfen diese Note kreditieren." -#: apps/member/forms.py:186 apps/registration/forms.py:86 +#: apps/member/forms.py:186 apps/registration/forms.py:85 #: apps/wei/forms/registration.py:97 msgid "Credit amount" msgstr "Kreditanzahl" #: apps/member/forms.py:203 apps/note/templates/note/transaction_form.html:144 -#: apps/registration/forms.py:103 apps/treasury/forms.py:135 +#: apps/registration/forms.py:102 apps/treasury/forms.py:135 #: apps/wei/forms/registration.py:114 msgid "Bank" msgstr "Bank" @@ -950,7 +951,7 @@ msgid "Account #" msgstr "Konto #" #: apps/member/templates/member/base.html:48 -#: apps/member/templates/member/base.html:62 apps/member/views.py:60 +#: apps/member/templates/member/base.html:62 apps/member/views.py:59 #: apps/registration/templates/registration/future_profile_detail.html:48 #: apps/wei/templates/wei/weimembership_form.html:117 msgid "Update Profile" @@ -1192,8 +1193,8 @@ msgstr "Click hier um eine Bestätigunglinke zu schicken." msgid "View my memberships" msgstr "Meine Mitgliedschaften schauen" -#: apps/member/templates/member/profile_trust.html:10 apps/member/views.py:254 -msgid "Note friendships" +#: apps/member/templates/member/profile_trust.html:10 +msgid "Add friends" msgstr "" #: apps/member/templates/member/profile_trust.html:28 @@ -1205,6 +1206,10 @@ msgid "" "without needing additional rights among them." msgstr "" +#: apps/member/templates/member/profile_trust.html:39 +msgid "People having you as a friend" +msgstr "" + #: apps/member/templates/member/profile_update.html:18 msgid "Save Changes" msgstr "Speichern" @@ -1213,18 +1218,22 @@ msgstr "Speichern" msgid "Registrations" msgstr "Anmeldung" -#: apps/member/views.py:73 apps/registration/forms.py:24 +#: apps/member/views.py:72 apps/registration/forms.py:24 msgid "This address must be valid." msgstr "Diese Adresse muss gültig sein." -#: apps/member/views.py:140 +#: apps/member/views.py:139 msgid "Profile detail" msgstr "Profile detail" -#: apps/member/views.py:206 +#: apps/member/views.py:205 msgid "Search user" msgstr "User finden" +#: apps/member/views.py:253 +msgid "Note friendships" +msgstr "" + #: apps/member/views.py:308 msgid "Update note picture" msgstr "Notebild ändern" @@ -1291,7 +1300,13 @@ msgstr "Empfänger" msgid "amount" msgstr "Anzahl" -#: apps/note/api/serializers.py:199 apps/note/api/serializers.py:205 +#: apps/note/api/serializers.py:92 +#, fuzzy +#| msgid "This credit is already validated." +msgid "This friendship already exists" +msgstr "Dieser Kredit ist bereits validiert." + +#: apps/note/api/serializers.py:198 apps/note/api/serializers.py:204 #: apps/note/models/transactions.py:228 msgid "" "The transaction can't be saved since the source note or the destination note " @@ -1606,8 +1621,8 @@ msgstr "Klicken Sie zum gültigmachen" msgid "No reason specified" msgstr "Kein Grund gegeben" -#: apps/note/tables.py:173 apps/note/tables.py:194 apps/note/tables.py:239 -#: apps/treasury/tables.py:39 +#: apps/note/tables.py:166 apps/note/tables.py:173 apps/note/tables.py:234 +#: apps/note/tables.py:279 apps/treasury/tables.py:39 #: apps/treasury/templates/treasury/invoice_confirm_delete.html:30 #: apps/treasury/templates/treasury/sogecredit_detail.html:65 #: apps/wei/tables.py:75 apps/wei/tables.py:118 @@ -1618,7 +1633,17 @@ msgstr "Kein Grund gegeben" msgid "Delete" msgstr "Löschen" -#: apps/note/tables.py:222 apps/note/templates/note/conso_form.html:132 +#: apps/note/tables.py:191 +msgid "Trust back" +msgstr "" + +#: apps/note/tables.py:211 +#, fuzzy +#| msgid "Add bus" +msgid "Add back" +msgstr "Neue Bus" + +#: apps/note/tables.py:262 apps/note/templates/note/conso_form.html:132 #: apps/wei/tables.py:49 apps/wei/tables.py:50 #: apps/wei/templates/wei/base.html:89 #: apps/wei/templates/wei/bus_detail.html:20 @@ -1628,7 +1653,7 @@ msgstr "Löschen" msgid "Edit" msgstr "Bearbeiten" -#: apps/note/tables.py:226 apps/note/tables.py:253 +#: apps/note/tables.py:266 apps/note/tables.py:293 msgid "Hide/Show" msgstr "" @@ -2002,15 +2027,15 @@ msgstr "Alle Rechten" msgid "registration" msgstr "Anmeldung" -#: apps/registration/forms.py:41 +#: apps/registration/forms.py:40 msgid "This email address is already used." msgstr "Diese email adresse ist schon benutzt." -#: apps/registration/forms.py:61 +#: apps/registration/forms.py:60 msgid "Register to the WEI" msgstr "Zu WEI anmelden" -#: apps/registration/forms.py:63 +#: apps/registration/forms.py:62 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." @@ -2019,15 +2044,15 @@ msgstr "" "falls Zweifel, können Sie sich später nach Bestätigung Ihres Kontos im Kfet " "registrieren." -#: apps/registration/forms.py:108 +#: apps/registration/forms.py:107 msgid "Join BDE Club" msgstr "BDE Mitglieder werden" -#: apps/registration/forms.py:115 +#: apps/registration/forms.py:114 msgid "Join Kfet Club" msgstr "Kfet Mitglieder werden" -#: apps/registration/forms.py:124 +#: apps/registration/forms.py:123 msgid "Join BDA Club" msgstr "BDA Mitglieder werden" @@ -2651,7 +2676,6 @@ msgid "This team doesn't belong to the given bus." msgstr "Dieses Team gehört nicht zum angegebenen Bus." #: apps/wei/forms/surveys/wei2021.py:35 apps/wei/forms/surveys/wei2022.py:38 -#: apps/wei/forms/surveys/wei2023.py:38 msgid "Choose a word:" msgstr "Wählen Sie ein Wort:" @@ -2952,7 +2976,7 @@ msgstr "Als PDF schauen" #: apps/wei/templates/wei/survey.html:11 #: apps/wei/templates/wei/survey_closed.html:11 #: apps/wei/templates/wei/survey_end.html:11 apps/wei/views.py:1028 -#: apps/wei/views.py:1083 apps/wei/views.py:1093 +#: apps/wei/views.py:1083 apps/wei/views.py:1130 msgid "Survey WEI" msgstr "WEI Umfrage" @@ -3230,11 +3254,11 @@ msgstr "Sie haben nicht das Recht, diese WEI-Registrierung zu löschen." msgid "Validate WEI registration" msgstr "Überprüfen Sie die WEI-Registrierung" -#: apps/wei/views.py:1186 +#: apps/wei/views.py:1223 msgid "Attribute buses to first year members" msgstr "" -#: apps/wei/views.py:1211 +#: apps/wei/views.py:1248 msgid "Attribute bus" msgstr "" diff --git a/locale/de/LC_MESSAGES/djangojs.po b/locale/de/LC_MESSAGES/djangojs.po index f4f51515..35648a6e 100644 --- a/locale/de/LC_MESSAGES/djangojs.po +++ b/locale/de/LC_MESSAGES/djangojs.po @@ -7,11 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-11-15 23:21+0100\n" +"POT-Creation-Date: 2022-10-07 09:07+0200\n" "PO-Revision-Date: 2020-11-16 20:21+0000\n" "Last-Translator: Yohann D'ANELLO \n" -"Language-Team: German " -"\n" +"Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,6 +27,22 @@ msgstr "Alias erfolgreich hinzugefügt" msgid "Alias successfully deleted" msgstr "Alias erfolgreich gelöscht" +#: apps/member/static/member/js/trust.js:14 +msgid "You can't add yourself as a friend" +msgstr "" + +#: apps/member/static/member/js/trust.js:37 +#, fuzzy +#| msgid "Alias successfully added" +msgid "Friendship successfully added" +msgstr "Alias erfolgreich hinzugefügt" + +#: apps/member/static/member/js/trust.js:53 +#, fuzzy +#| msgid "Alias successfully deleted" +msgid "Friendship successfully deleted" +msgstr "Alias erfolgreich gelöscht" + #: apps/note/static/note/js/consos.js:225 #, javascript-format msgid "" @@ -46,32 +62,32 @@ msgstr "" "ist negativ." #: apps/note/static/note/js/consos.js:232 -#: apps/note/static/note/js/transfer.js:298 -#: apps/note/static/note/js/transfer.js:401 +#: apps/note/static/note/js/transfer.js:309 +#: apps/note/static/note/js/transfer.js:412 #, javascript-format msgid "Warning, the emitter note %s is no more a BDE member." msgstr "Warnung, der Emittent Hinweis %s ist kein BDE-Mitglied mehr." -#: apps/note/static/note/js/consos.js:253 +#: apps/note/static/note/js/consos.js:254 msgid "The transaction couldn't be validated because of insufficient balance." msgstr "" "Die Transaktion konnte aufgrund eines unzureichenden Saldos nicht validiert " "werden." -#: apps/note/static/note/js/transfer.js:238 +#: apps/note/static/note/js/transfer.js:249 msgid "This field is required and must contain a decimal positive number." msgstr "" "Dieses Feld ist erforderlich und muss eine positive Dezimalzahl enthalten." -#: apps/note/static/note/js/transfer.js:245 +#: apps/note/static/note/js/transfer.js:256 msgid "The amount must stay under 21,474,836.47 €." msgstr "Der Betrag muss unter 21.474.836,47 € bleiben." -#: apps/note/static/note/js/transfer.js:251 +#: apps/note/static/note/js/transfer.js:262 msgid "This field is required." msgstr "Dies ist ein Pflichtfeld." -#: apps/note/static/note/js/transfer.js:277 +#: apps/note/static/note/js/transfer.js:288 #, javascript-format msgid "" "Warning: the transaction of %s from %s to %s was not made because it is the " @@ -80,12 +96,12 @@ msgstr "" "Warnung: Die Transaktion von %s von %s nach %s wurde nicht durchgeführt, da " "es sich um die gleiche Quell- und Zielnotiz handelt." -#: apps/note/static/note/js/transfer.js:301 +#: apps/note/static/note/js/transfer.js:312 #, javascript-format msgid "Warning, the destination note %s is no more a BDE member." msgstr "Warnung, der Bestimmungsvermerk %s ist kein BDE-Mitglied mehr." -#: apps/note/static/note/js/transfer.js:307 +#: apps/note/static/note/js/transfer.js:318 #, javascript-format msgid "" "Warning, the transaction of %s from the note %s to the note %s succeed, but " @@ -94,7 +110,7 @@ msgstr "" "Warnung, die Transaktion von %s von der Note %s zur Note %s gelingt, aber " "die Emitternote %s ist sehr negativ." -#: apps/note/static/note/js/transfer.js:312 +#: apps/note/static/note/js/transfer.js:323 #, javascript-format msgid "" "Warning, the transaction of %s from the note %s to the note %s succeed, but " @@ -103,31 +119,32 @@ msgstr "" "Warnung, die Transaktion von %s von der Note %s zur Note %s gelingt, aber " "die Emitternote %s ist negativ." -#: apps/note/static/note/js/transfer.js:318 +#: apps/note/static/note/js/transfer.js:329 #, javascript-format msgid "Transfer of %s from %s to %s succeed!" msgstr "Übertragung von %s von %s auf %s gelingt!" -#: apps/note/static/note/js/transfer.js:325 -#: apps/note/static/note/js/transfer.js:346 -#: apps/note/static/note/js/transfer.js:353 +#: apps/note/static/note/js/transfer.js:336 +#: apps/note/static/note/js/transfer.js:357 +#: apps/note/static/note/js/transfer.js:364 #, javascript-format msgid "Transfer of %s from %s to %s failed: %s" msgstr "Übertragung von %s von %s auf %s fehlgeschlagen: %s" -#: apps/note/static/note/js/transfer.js:347 +#: apps/note/static/note/js/transfer.js:358 msgid "insufficient funds" msgstr "unzureichende Geldmittel" -#: apps/note/static/note/js/transfer.js:400 +#: apps/note/static/note/js/transfer.js:411 msgid "Credit/debit succeed!" msgstr "Kredit/Debit erfolgreich!" -#: apps/note/static/note/js/transfer.js:407 +#: apps/note/static/note/js/transfer.js:418 #, javascript-format msgid "Credit/debit failed: %s" msgstr "Kredit/Debit fehlgeschlagen: %s" -#: note_kfet/static/js/base.js:366 +#: note_kfet/static/js/base.js:370 msgid "An error occured while (in)validating this transaction:" -msgstr "Bei der (Un-)Validierung dieser Transaktion ist ein Fehler aufgetreten:" +msgstr "" +"Bei der (Un-)Validierung dieser Transaktion ist ein Fehler aufgetreten:" diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index 5d2aaa9e..f702922b 100644 --- a/locale/es/LC_MESSAGES/django.po +++ b/locale/es/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-31 13:25+0200\n" +"POT-Creation-Date: 2023-09-18 17:27+0200\n" "PO-Revision-Date: 2022-04-11 23:12+0200\n" "Last-Translator: bleizi \n" "Language-Team: \n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.0\n" +"X-Generator: Poedit 3.0.1\n" #: apps/activity/apps.py:10 apps/activity/models.py:151 #: apps/activity/models.py:167 @@ -262,14 +262,14 @@ msgid "Type" msgstr "Tipo" #: apps/activity/tables.py:84 apps/member/forms.py:193 -#: apps/registration/forms.py:93 apps/treasury/forms.py:131 +#: apps/registration/forms.py:92 apps/treasury/forms.py:131 #: apps/wei/forms/registration.py:104 msgid "Last name" msgstr "Apellido" #: apps/activity/tables.py:86 apps/member/forms.py:198 #: apps/note/templates/note/transaction_form.html:138 -#: apps/registration/forms.py:98 apps/treasury/forms.py:133 +#: apps/registration/forms.py:97 apps/treasury/forms.py:133 #: apps/wei/forms/registration.py:109 msgid "First name" msgstr "Nombre" @@ -386,7 +386,7 @@ msgid "validate" msgstr "validar" #: apps/activity/templates/activity/includes/activity_info.html:71 -#: apps/logs/models.py:64 apps/note/tables.py:220 +#: apps/logs/models.py:64 apps/note/tables.py:260 msgid "edit" msgstr "modificar" @@ -464,9 +464,9 @@ msgstr "nuevos datos" msgid "create" msgstr "crear" -#: apps/logs/models.py:65 apps/note/tables.py:166 apps/note/tables.py:190 -#: apps/note/tables.py:237 apps/permission/models.py:127 -#: apps/treasury/tables.py:38 apps/wei/tables.py:74 +#: apps/logs/models.py:65 apps/note/tables.py:230 apps/note/tables.py:277 +#: apps/permission/models.py:127 apps/treasury/tables.py:38 +#: apps/wei/tables.py:74 msgid "delete" msgstr "suprimir" @@ -541,9 +541,9 @@ msgid "" "href=https://perso.crans.org/club-bde/Charte-anti-VSS.pdf target=_blank> " "available here in pdf" msgstr "" -"Marque después de leer y aceptar la carta anti-VVS " -"disponible en pdf aquí" +"Marque después de leer y aceptar la carta anti-VVS disponible en " +"pdf aquí" #: apps/member/forms.py:60 msgid "You can't register to the note if you come from the future." @@ -561,8 +561,8 @@ msgstr "Tamaño máximo : 2Mo" msgid "This image cannot be loaded." msgstr "Esta imagen no puede ser cargada." -#: apps/member/forms.py:148 apps/member/views.py:103 -#: apps/registration/forms.py:35 apps/registration/views.py:266 +#: apps/member/forms.py:148 apps/member/views.py:102 +#: apps/registration/forms.py:34 apps/registration/views.py:266 msgid "An alias with a similar name already exists." msgstr "Un alias similar ya existe." @@ -574,12 +574,12 @@ msgstr "Registración pagadas por Société Générale" msgid "Check this case if the Société Générale paid the inscription." msgstr "Marcar esta casilla si Société Générale pagó la registración." -#: apps/member/forms.py:179 apps/registration/forms.py:80 +#: apps/member/forms.py:179 apps/registration/forms.py:79 #: apps/wei/forms/registration.py:91 msgid "Credit type" msgstr "Tipo de crédito" -#: apps/member/forms.py:180 apps/registration/forms.py:81 +#: apps/member/forms.py:180 apps/registration/forms.py:80 #: apps/wei/forms/registration.py:92 msgid "No credit" msgstr "No crédito" @@ -588,13 +588,13 @@ msgstr "No crédito" msgid "You can credit the note of the user." msgstr "Usted puede acreditar la note del usuario." -#: apps/member/forms.py:186 apps/registration/forms.py:86 +#: apps/member/forms.py:186 apps/registration/forms.py:85 #: apps/wei/forms/registration.py:97 msgid "Credit amount" msgstr "Valor del crédito" #: apps/member/forms.py:203 apps/note/templates/note/transaction_form.html:144 -#: apps/registration/forms.py:103 apps/treasury/forms.py:135 +#: apps/registration/forms.py:102 apps/treasury/forms.py:135 #: apps/wei/forms/registration.py:114 msgid "Bank" msgstr "Banco" @@ -941,7 +941,7 @@ msgid "Account #" msgstr "Cuenta n°" #: apps/member/templates/member/base.html:48 -#: apps/member/templates/member/base.html:62 apps/member/views.py:60 +#: apps/member/templates/member/base.html:62 apps/member/views.py:59 #: apps/registration/templates/registration/future_profile_detail.html:48 #: apps/wei/templates/wei/weimembership_form.html:117 msgid "Update Profile" @@ -1175,9 +1175,9 @@ msgstr "Hacer clic aquí para reenviar un enlace de validación." msgid "View my memberships" msgstr "Ver mis afiliaciones" -#: apps/member/templates/member/profile_trust.html:10 apps/member/views.py:254 -msgid "Note friendships" -msgstr "Amistades de note" +#: apps/member/templates/member/profile_trust.html:10 +msgid "Add friends" +msgstr "Añadir amig@s" #: apps/member/templates/member/profile_trust.html:28 msgid "" @@ -1192,6 +1192,10 @@ msgstr "" "simplificar el reembolso entre amig@s por Note Kfet. Pues una persona puede " "crear todas la transacciones sin tener derechos particulares." +#: apps/member/templates/member/profile_trust.html:39 +msgid "People having you as a friend" +msgstr "Personas que tienen usted como amig@" + #: apps/member/templates/member/profile_update.html:18 msgid "Save Changes" msgstr "Guardar cambios" @@ -1200,18 +1204,22 @@ msgstr "Guardar cambios" msgid "Registrations" msgstr "Registraciones" -#: apps/member/views.py:73 apps/registration/forms.py:24 +#: apps/member/views.py:72 apps/registration/forms.py:24 msgid "This address must be valid." msgstr "Este correo tiene que ser valido." -#: apps/member/views.py:140 +#: apps/member/views.py:139 msgid "Profile detail" msgstr "Detalles del usuario" -#: apps/member/views.py:206 +#: apps/member/views.py:205 msgid "Search user" msgstr "Buscar un usuario" +#: apps/member/views.py:253 +msgid "Note friendships" +msgstr "Amistades de note" + #: apps/member/views.py:308 msgid "Update note picture" msgstr "Modificar la imagen de la note" @@ -1278,7 +1286,13 @@ msgstr "destino" msgid "amount" msgstr "monto" -#: apps/note/api/serializers.py:199 apps/note/api/serializers.py:205 +#: apps/note/api/serializers.py:92 +#, fuzzy +#| msgid "This credit is already validated." +msgid "This friendship already exists" +msgstr "Este crédito ya fue validado." + +#: apps/note/api/serializers.py:198 apps/note/api/serializers.py:204 #: apps/note/models/transactions.py:228 msgid "" "The transaction can't be saved since the source note or the destination note " @@ -1593,8 +1607,8 @@ msgstr "Hacer clic para validar" msgid "No reason specified" msgstr "Ningún motivo dado" -#: apps/note/tables.py:173 apps/note/tables.py:194 apps/note/tables.py:239 -#: apps/treasury/tables.py:39 +#: apps/note/tables.py:166 apps/note/tables.py:173 apps/note/tables.py:234 +#: apps/note/tables.py:279 apps/treasury/tables.py:39 #: apps/treasury/templates/treasury/invoice_confirm_delete.html:30 #: apps/treasury/templates/treasury/sogecredit_detail.html:65 #: apps/wei/tables.py:75 apps/wei/tables.py:118 @@ -1605,7 +1619,15 @@ msgstr "Ningún motivo dado" msgid "Delete" msgstr "Suprimir" -#: apps/note/tables.py:222 apps/note/templates/note/conso_form.html:132 +#: apps/note/tables.py:191 +msgid "Trust back" +msgstr "Añadir como amig@" + +#: apps/note/tables.py:211 +msgid "Add back" +msgstr "Añadir en retorno" + +#: apps/note/tables.py:262 apps/note/templates/note/conso_form.html:132 #: apps/wei/tables.py:49 apps/wei/tables.py:50 #: apps/wei/templates/wei/base.html:89 #: apps/wei/templates/wei/bus_detail.html:20 @@ -1615,7 +1637,7 @@ msgstr "Suprimir" msgid "Edit" msgstr "Editar" -#: apps/note/tables.py:226 apps/note/tables.py:253 +#: apps/note/tables.py:266 apps/note/tables.py:293 msgid "Hide/Show" msgstr "Ocultar/Mostrar" @@ -1983,15 +2005,15 @@ msgstr "Todos los permisos" msgid "registration" msgstr "afiliación" -#: apps/registration/forms.py:41 +#: apps/registration/forms.py:40 msgid "This email address is already used." msgstr "Este correo electrónico ya esta utilizado." -#: apps/registration/forms.py:61 +#: apps/registration/forms.py:60 msgid "Register to the WEI" msgstr "Registrarse en el WEI" -#: apps/registration/forms.py:63 +#: apps/registration/forms.py:62 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." @@ -1999,15 +2021,15 @@ msgstr "" "Marcar esta casilla si usted quiere registrarse en el WEI. Si duda, podrá " "registrarse más tarde, después de validar su cuenta Note Kfet." -#: apps/registration/forms.py:108 +#: apps/registration/forms.py:107 msgid "Join BDE Club" msgstr "Afiliarse al club BDE" -#: apps/registration/forms.py:115 +#: apps/registration/forms.py:114 msgid "Join Kfet Club" msgstr "Afiliarse al club Kfet" -#: apps/registration/forms.py:124 +#: apps/registration/forms.py:123 msgid "Join BDA Club" msgstr "Afiliarse al club BDA" @@ -2621,7 +2643,6 @@ msgid "This team doesn't belong to the given bus." msgstr "Este equipo no pertenece al bus dado." #: apps/wei/forms/surveys/wei2021.py:35 apps/wei/forms/surveys/wei2022.py:38 -#: apps/wei/forms/surveys/wei2023.py:38 msgid "Choose a word:" msgstr "Elegir una palabra :" @@ -2908,7 +2929,7 @@ msgstr "Descargar un PDF" #: apps/wei/templates/wei/survey.html:11 #: apps/wei/templates/wei/survey_closed.html:11 #: apps/wei/templates/wei/survey_end.html:11 apps/wei/views.py:1028 -#: apps/wei/views.py:1083 apps/wei/views.py:1093 +#: apps/wei/views.py:1083 apps/wei/views.py:1130 msgid "Survey WEI" msgstr "Cuestionario WEI" @@ -3179,11 +3200,11 @@ msgstr "Usted no tiene derecho a suprimir esta inscripción WEI." msgid "Validate WEI registration" msgstr "Validar la inscripción WEI" -#: apps/wei/views.py:1186 +#: apps/wei/views.py:1223 msgid "Attribute buses to first year members" msgstr "Repartir los primer años en los buses" -#: apps/wei/views.py:1211 +#: apps/wei/views.py:1248 msgid "Attribute bus" msgstr "Repartir en un bus" @@ -3558,6 +3579,11 @@ msgstr "" "pagar su afiliación. Tambien tiene que validar su correo electronico con el " "enlace que recibió." +#, fuzzy +#~| msgid "People having you as a friend" +#~ msgid "You already have that person as a friend" +#~ msgstr "Personas que tienen usted como amig@" + #~ 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." diff --git a/locale/es/LC_MESSAGES/djangojs.po b/locale/es/LC_MESSAGES/djangojs.po index 50782bb8..e4ebb3e3 100644 --- a/locale/es/LC_MESSAGES/djangojs.po +++ b/locale/es/LC_MESSAGES/djangojs.po @@ -7,16 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-11-15 23:21+0100\n" -"PO-Revision-Date: 2020-11-21 12:23+0100\n" +"POT-Creation-Date: 2022-10-07 09:07+0200\n" +"PO-Revision-Date: 2022-10-07 13:20+0200\n" +"Last-Translator: elkmaennchen \n" +"Language-Team: \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: elkmaennchen \n" -"Language-Team: \n" -"X-Generator: Poedit 2.3\n" +"X-Generator: Poedit 3.0.1\n" #: apps/member/static/member/js/alias.js:17 msgid "Alias successfully added" @@ -26,6 +26,18 @@ msgstr "Alias añadido con éxito" msgid "Alias successfully deleted" msgstr "Alias suprimido con éxito" +#: apps/member/static/member/js/trust.js:14 +msgid "You can't add yourself as a friend" +msgstr "No puede añadir asimismo como amig@" + +#: apps/member/static/member/js/trust.js:37 +msgid "Friendship successfully added" +msgstr "Amig@ añadido con éxito" + +#: apps/member/static/member/js/trust.js:53 +msgid "Friendship successfully deleted" +msgstr "Amig@ suprimido con éxito" + #: apps/note/static/note/js/consos.js:225 #, javascript-format msgid "" @@ -44,30 +56,29 @@ msgstr "" "Cuidado, la transacción de %s fue un éxito, pero la note %s está negativa." #: apps/note/static/note/js/consos.js:232 -#: apps/note/static/note/js/transfer.js:298 -#: apps/note/static/note/js/transfer.js:401 +#: apps/note/static/note/js/transfer.js:309 +#: apps/note/static/note/js/transfer.js:412 #, javascript-format msgid "Warning, the emitter note %s is no more a BDE member." msgstr "Cuidado, la note remitente %s no está más miembro del BDE." -#: apps/note/static/note/js/consos.js:253 +#: apps/note/static/note/js/consos.js:254 msgid "The transaction couldn't be validated because of insufficient balance." -msgstr "" -"La transacción no pudo ser validada por culpa de saldo demasiado bajo." +msgstr "La transacción no pudo ser validada por culpa de saldo demasiado bajo." -#: apps/note/static/note/js/transfer.js:238 +#: apps/note/static/note/js/transfer.js:249 msgid "This field is required and must contain a decimal positive number." msgstr "Este campo obligatorio requiere un número decimal positivo." -#: apps/note/static/note/js/transfer.js:245 +#: apps/note/static/note/js/transfer.js:256 msgid "The amount must stay under 21,474,836.47 €." msgstr "El monto no puede superar los 21 474 836,47 €." -#: apps/note/static/note/js/transfer.js:251 +#: apps/note/static/note/js/transfer.js:262 msgid "This field is required." msgstr "Este campo es obligatorio." -#: apps/note/static/note/js/transfer.js:277 +#: apps/note/static/note/js/transfer.js:288 #, javascript-format msgid "" "Warning: the transaction of %s from %s to %s was not made because it is the " @@ -76,12 +87,12 @@ msgstr "" "Cuidado : la transacción de %s de %s a %s no fue echa porque la fuente y el " "destino son iguales." -#: apps/note/static/note/js/transfer.js:301 +#: apps/note/static/note/js/transfer.js:312 #, javascript-format msgid "Warning, the destination note %s is no more a BDE member." msgstr "Cuidado, la note destino %s no está más miembro del BDE." -#: apps/note/static/note/js/transfer.js:307 +#: apps/note/static/note/js/transfer.js:318 #, javascript-format msgid "" "Warning, the transaction of %s from the note %s to the note %s succeed, but " @@ -90,7 +101,7 @@ msgstr "" "Cuidado, la transacción de %s de la note %s a la note %s fue un éxito, pero " "la note fuente %s está muy negativa." -#: apps/note/static/note/js/transfer.js:312 +#: apps/note/static/note/js/transfer.js:323 #, javascript-format msgid "" "Warning, the transaction of %s from the note %s to the note %s succeed, but " @@ -99,31 +110,31 @@ msgstr "" "Cuidado, la transacción de %s de la note %s a la note %s fue un éxito, pero " "la note fuente %s está negativa." -#: apps/note/static/note/js/transfer.js:318 +#: apps/note/static/note/js/transfer.js:329 #, javascript-format msgid "Transfer of %s from %s to %s succeed!" msgstr "¡ La transacción de %s de %s a %s fue un éxito !" -#: apps/note/static/note/js/transfer.js:325 -#: apps/note/static/note/js/transfer.js:346 -#: apps/note/static/note/js/transfer.js:353 +#: apps/note/static/note/js/transfer.js:336 +#: apps/note/static/note/js/transfer.js:357 +#: apps/note/static/note/js/transfer.js:364 #, javascript-format msgid "Transfer of %s from %s to %s failed: %s" msgstr "La transacción de %s de %s a %s fue un fracaso : %s" -#: apps/note/static/note/js/transfer.js:347 +#: apps/note/static/note/js/transfer.js:358 msgid "insufficient funds" msgstr "fundos insuficientes" -#: apps/note/static/note/js/transfer.js:400 +#: apps/note/static/note/js/transfer.js:411 msgid "Credit/debit succeed!" msgstr "¡ Crédito/débito tubo éxito !" -#: apps/note/static/note/js/transfer.js:407 +#: apps/note/static/note/js/transfer.js:418 #, javascript-format msgid "Credit/debit failed: %s" msgstr "Crédito/débito falló : %s" -#: note_kfet/static/js/base.js:366 +#: note_kfet/static/js/base.js:370 msgid "An error occured while (in)validating this transaction:" msgstr "Un error ocurrió durante la (in)validación de esta transacción :" diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 0f26bca0..d1912275 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-31 13:25+0200\n" +"POT-Creation-Date: 2023-09-18 17:27+0200\n" "PO-Revision-Date: 2022-04-11 22:05+0200\n" "Last-Translator: bleizi \n" "Language-Team: French \n" @@ -263,14 +263,14 @@ msgid "Type" msgstr "Type" #: apps/activity/tables.py:84 apps/member/forms.py:193 -#: apps/registration/forms.py:93 apps/treasury/forms.py:131 +#: apps/registration/forms.py:92 apps/treasury/forms.py:131 #: apps/wei/forms/registration.py:104 msgid "Last name" msgstr "Nom de famille" #: apps/activity/tables.py:86 apps/member/forms.py:198 #: apps/note/templates/note/transaction_form.html:138 -#: apps/registration/forms.py:98 apps/treasury/forms.py:133 +#: apps/registration/forms.py:97 apps/treasury/forms.py:133 #: apps/wei/forms/registration.py:109 msgid "First name" msgstr "Prénom" @@ -388,7 +388,7 @@ msgid "validate" msgstr "valider" #: apps/activity/templates/activity/includes/activity_info.html:71 -#: apps/logs/models.py:64 apps/note/tables.py:220 +#: apps/logs/models.py:64 apps/note/tables.py:260 msgid "edit" msgstr "modifier" @@ -466,9 +466,9 @@ msgstr "nouvelles données" msgid "create" msgstr "créer" -#: apps/logs/models.py:65 apps/note/tables.py:166 apps/note/tables.py:190 -#: apps/note/tables.py:237 apps/permission/models.py:127 -#: apps/treasury/tables.py:38 apps/wei/tables.py:74 +#: apps/logs/models.py:65 apps/note/tables.py:230 apps/note/tables.py:277 +#: apps/permission/models.py:127 apps/treasury/tables.py:38 +#: apps/wei/tables.py:74 msgid "delete" msgstr "supprimer" @@ -534,8 +534,7 @@ msgstr "Date de dernier rapport" #: apps/member/forms.py:52 msgid "" "Anti-VSS (Violences Sexistes et Sexuelles) charter read and approved" -msgstr "" -"Charte Anti-VSS (Violences Sexistes et Sexuelles) lue et approuvée" +msgstr "Charte Anti-VSS (Violences Sexistes et Sexuelles) lue et approuvée" #: apps/member/forms.py:53 msgid "" @@ -543,9 +542,9 @@ msgid "" "href=https://perso.crans.org/club-bde/Charte-anti-VSS.pdf target=_blank> " "available here in pdf" msgstr "" -"Cochez après avoir lu la chartre anti-VSS " -"disponible en pdf ici" +"Cochez après avoir lu la chartre anti-VSS disponible en pdf ici" #: apps/member/forms.py:60 msgid "You can't register to the note if you come from the future." @@ -563,8 +562,8 @@ msgstr "Taille maximale : 2 Mo" msgid "This image cannot be loaded." msgstr "Cette image ne peut pas être chargée." -#: apps/member/forms.py:148 apps/member/views.py:103 -#: apps/registration/forms.py:35 apps/registration/views.py:266 +#: apps/member/forms.py:148 apps/member/views.py:102 +#: apps/registration/forms.py:34 apps/registration/views.py:266 msgid "An alias with a similar name already exists." msgstr "Un alias avec un nom similaire existe déjà." @@ -576,12 +575,12 @@ msgstr "Inscription payée par la Société générale" 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:179 apps/registration/forms.py:80 +#: apps/member/forms.py:179 apps/registration/forms.py:79 #: apps/wei/forms/registration.py:91 msgid "Credit type" msgstr "Type de rechargement" -#: apps/member/forms.py:180 apps/registration/forms.py:81 +#: apps/member/forms.py:180 apps/registration/forms.py:80 #: apps/wei/forms/registration.py:92 msgid "No credit" msgstr "Pas de rechargement" @@ -590,13 +589,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:186 apps/registration/forms.py:86 +#: apps/member/forms.py:186 apps/registration/forms.py:85 #: apps/wei/forms/registration.py:97 msgid "Credit amount" msgstr "Montant à créditer" #: apps/member/forms.py:203 apps/note/templates/note/transaction_form.html:144 -#: apps/registration/forms.py:103 apps/treasury/forms.py:135 +#: apps/registration/forms.py:102 apps/treasury/forms.py:135 #: apps/wei/forms/registration.py:114 msgid "Bank" msgstr "Banque" @@ -944,7 +943,7 @@ msgid "Account #" msgstr "Compte n°" #: apps/member/templates/member/base.html:48 -#: apps/member/templates/member/base.html:62 apps/member/views.py:60 +#: apps/member/templates/member/base.html:62 apps/member/views.py:59 #: apps/registration/templates/registration/future_profile_detail.html:48 #: apps/wei/templates/wei/weimembership_form.html:117 msgid "Update Profile" @@ -1178,9 +1177,9 @@ msgstr "Cliquez ici pour renvoyer un lien de validation." msgid "View my memberships" msgstr "Voir mes adhésions" -#: apps/member/templates/member/profile_trust.html:10 apps/member/views.py:254 -msgid "Note friendships" -msgstr "Amitiés note" +#: apps/member/templates/member/profile_trust.html:10 +msgid "Add friends" +msgstr "Ajouter des amis" #: apps/member/templates/member/profile_trust.html:28 msgid "" @@ -1195,6 +1194,10 @@ msgstr "" "ami⋅es via note. En effet, une personne peut effectuer tous les transferts " "sans posséder de droits supplémentaires." +#: apps/member/templates/member/profile_trust.html:39 +msgid "People having you as a friend" +msgstr "Personnes vous ayant ajouté" + #: apps/member/templates/member/profile_update.html:18 msgid "Save Changes" msgstr "Sauvegarder les changements" @@ -1203,18 +1206,22 @@ msgstr "Sauvegarder les changements" msgid "Registrations" msgstr "Inscriptions" -#: apps/member/views.py:73 apps/registration/forms.py:24 +#: apps/member/views.py:72 apps/registration/forms.py:24 msgid "This address must be valid." msgstr "Cette adresse doit être valide." -#: apps/member/views.py:140 +#: apps/member/views.py:139 msgid "Profile detail" msgstr "Détails de l'utilisateur" -#: apps/member/views.py:206 +#: apps/member/views.py:205 msgid "Search user" msgstr "Chercher un utilisateur" +#: apps/member/views.py:253 +msgid "Note friendships" +msgstr "Amitiés note" + #: apps/member/views.py:308 msgid "Update note picture" msgstr "Modifier la photo de la note" @@ -1281,7 +1288,11 @@ msgstr "destination" msgid "amount" msgstr "montant" -#: apps/note/api/serializers.py:199 apps/note/api/serializers.py:205 +#: apps/note/api/serializers.py:92 +msgid "This friendship already exists" +msgstr "Cette amitié existe déjà" + +#: apps/note/api/serializers.py:198 apps/note/api/serializers.py:204 #: apps/note/models/transactions.py:228 msgid "" "The transaction can't be saved since the source note or the destination note " @@ -1599,8 +1610,8 @@ msgstr "Cliquez pour valider" msgid "No reason specified" msgstr "Pas de motif spécifié" -#: apps/note/tables.py:173 apps/note/tables.py:194 apps/note/tables.py:239 -#: apps/treasury/tables.py:39 +#: apps/note/tables.py:166 apps/note/tables.py:173 apps/note/tables.py:234 +#: apps/note/tables.py:279 apps/treasury/tables.py:39 #: apps/treasury/templates/treasury/invoice_confirm_delete.html:30 #: apps/treasury/templates/treasury/sogecredit_detail.html:65 #: apps/wei/tables.py:75 apps/wei/tables.py:118 @@ -1611,7 +1622,15 @@ msgstr "Pas de motif spécifié" msgid "Delete" msgstr "Supprimer" -#: apps/note/tables.py:222 apps/note/templates/note/conso_form.html:132 +#: apps/note/tables.py:191 +msgid "Trust back" +msgstr "Ajouter en ami" + +#: apps/note/tables.py:211 +msgid "Add back" +msgstr "Ajouter" + +#: apps/note/tables.py:262 apps/note/templates/note/conso_form.html:132 #: apps/wei/tables.py:49 apps/wei/tables.py:50 #: apps/wei/templates/wei/base.html:89 #: apps/wei/templates/wei/bus_detail.html:20 @@ -1621,7 +1640,7 @@ msgstr "Supprimer" msgid "Edit" msgstr "Éditer" -#: apps/note/tables.py:226 apps/note/tables.py:253 +#: apps/note/tables.py:266 apps/note/tables.py:293 msgid "Hide/Show" msgstr "Afficher/Masquer" @@ -1992,15 +2011,15 @@ msgstr "Tous les droits" msgid "registration" msgstr "inscription" -#: apps/registration/forms.py:41 +#: apps/registration/forms.py:40 msgid "This email address is already used." msgstr "Cet email est déjà pris." -#: apps/registration/forms.py:61 +#: apps/registration/forms.py:60 msgid "Register to the WEI" msgstr "S'inscrire au WEI" -#: apps/registration/forms.py:63 +#: apps/registration/forms.py:62 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." @@ -2009,15 +2028,15 @@ msgstr "" "pourrez toujours vous inscrire plus tard, après avoir validé votre compte à " "la Kfet." -#: apps/registration/forms.py:108 +#: apps/registration/forms.py:107 msgid "Join BDE Club" msgstr "Adhérer au club BDE" -#: apps/registration/forms.py:115 +#: apps/registration/forms.py:114 msgid "Join Kfet Club" msgstr "Adhérer au club Kfet" -#: apps/registration/forms.py:124 +#: apps/registration/forms.py:123 msgid "Join BDA Club" msgstr "Adhérer au club BDA" @@ -2633,7 +2652,6 @@ msgid "This team doesn't belong to the given bus." msgstr "Cette équipe n'appartient pas à ce bus." #: apps/wei/forms/surveys/wei2021.py:35 apps/wei/forms/surveys/wei2022.py:38 -#: apps/wei/forms/surveys/wei2023.py:38 msgid "Choose a word:" msgstr "Choisissez un mot :" @@ -2922,7 +2940,7 @@ 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:1028 -#: apps/wei/views.py:1083 apps/wei/views.py:1093 +#: apps/wei/views.py:1083 apps/wei/views.py:1130 msgid "Survey WEI" msgstr "Questionnaire WEI" @@ -3196,11 +3214,11 @@ msgstr "Vous n'avez pas la permission de supprimer cette inscription au WEI." msgid "Validate WEI registration" msgstr "Valider l'inscription WEI" -#: apps/wei/views.py:1186 +#: apps/wei/views.py:1223 msgid "Attribute buses to first year members" msgstr "Répartir les 1A dans les bus" -#: apps/wei/views.py:1211 +#: apps/wei/views.py:1248 msgid "Attribute bus" msgstr "Attribuer un bus" @@ -3586,6 +3604,11 @@ msgstr "" "d'adhésion. Vous devez également valider votre adresse email en suivant le " "lien que vous avez reçu." +#, fuzzy +#~| msgid "People having you as a friend" +#~ msgid "You already have that person as a friend" +#~ msgstr "Personnes vous ayant ajouté" + #~ 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." diff --git a/locale/fr/LC_MESSAGES/djangojs.po b/locale/fr/LC_MESSAGES/djangojs.po index 7d5fd8ce..93be9947 100644 --- a/locale/fr/LC_MESSAGES/djangojs.po +++ b/locale/fr/LC_MESSAGES/djangojs.po @@ -3,12 +3,11 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-11-15 23:21+0100\n" +"POT-Creation-Date: 2022-10-07 09:07+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -26,6 +25,18 @@ msgstr "Alias ajouté avec succès" msgid "Alias successfully deleted" msgstr "Alias supprimé avec succès" +#: apps/member/static/member/js/trust.js:14 +msgid "You can't add yourself as a friend" +msgstr "Vous ne pouvez pas vous ajouter vous-même en ami" + +#: apps/member/static/member/js/trust.js:37 +msgid "Friendship successfully added" +msgstr "Amitié ajoutée avec succès" + +#: apps/member/static/member/js/trust.js:53 +msgid "Friendship successfully deleted" +msgstr "Amitié supprimée avec succès" + #: apps/note/static/note/js/consos.js:225 #, javascript-format msgid "" @@ -45,31 +56,31 @@ msgstr "" "la note émettrice %s est en négatif." #: apps/note/static/note/js/consos.js:232 -#: apps/note/static/note/js/transfer.js:298 -#: apps/note/static/note/js/transfer.js:401 +#: apps/note/static/note/js/transfer.js:309 +#: apps/note/static/note/js/transfer.js:412 #, javascript-format msgid "Warning, the emitter note %s is no more a BDE member." msgstr "Attention, la note émettrice %s n'est plus adhérente." -#: apps/note/static/note/js/consos.js:253 +#: apps/note/static/note/js/consos.js:254 msgid "The transaction couldn't be validated because of insufficient balance." msgstr "" "La transaction n'a pas pu être validée pour cause de solde insuffisant." -#: apps/note/static/note/js/transfer.js:238 +#: apps/note/static/note/js/transfer.js:249 msgid "This field is required and must contain a decimal positive number." msgstr "" "Ce champ est requis et doit comporter un nombre décimal strictement positif." -#: apps/note/static/note/js/transfer.js:245 +#: apps/note/static/note/js/transfer.js:256 msgid "The amount must stay under 21,474,836.47 €." msgstr "Le montant ne doit pas excéder 21 474 836.47 €." -#: apps/note/static/note/js/transfer.js:251 +#: apps/note/static/note/js/transfer.js:262 msgid "This field is required." msgstr "Ce champ est requis." -#: apps/note/static/note/js/transfer.js:277 +#: apps/note/static/note/js/transfer.js:288 #, javascript-format msgid "" "Warning: the transaction of %s from %s to %s was not made because it is the " @@ -78,12 +89,12 @@ msgstr "" "Attention : la transaction de %s de la note %s vers la note %s n'a pas été " "faite car il s'agit de la même note au départ et à l'arrivée." -#: apps/note/static/note/js/transfer.js:301 +#: apps/note/static/note/js/transfer.js:312 #, javascript-format msgid "Warning, the destination note %s is no more a BDE member." msgstr "Attention, la note de destination %s n'est plus adhérente." -#: apps/note/static/note/js/transfer.js:307 +#: apps/note/static/note/js/transfer.js:318 #, javascript-format msgid "" "Warning, the transaction of %s from the note %s to the note %s succeed, but " @@ -92,7 +103,7 @@ msgstr "" "Attention, La transaction de %s depuis la note %s vers la note %s a été " "réalisée avec succès, mais la note émettrice %s est en négatif sévère." -#: apps/note/static/note/js/transfer.js:312 +#: apps/note/static/note/js/transfer.js:323 #, javascript-format msgid "" "Warning, the transaction of %s from the note %s to the note %s succeed, but " @@ -101,33 +112,33 @@ msgstr "" "Attention, La transaction de %s depuis la note %s vers la note %s a été " "réalisée avec succès, mais la note émettrice %s est en négatif." -#: apps/note/static/note/js/transfer.js:318 +#: apps/note/static/note/js/transfer.js:329 #, javascript-format msgid "Transfer of %s from %s to %s succeed!" msgstr "" "Le transfert de %s de la note %s vers la note %s a été fait avec succès !" -#: apps/note/static/note/js/transfer.js:325 -#: apps/note/static/note/js/transfer.js:346 -#: apps/note/static/note/js/transfer.js:353 +#: apps/note/static/note/js/transfer.js:336 +#: apps/note/static/note/js/transfer.js:357 +#: apps/note/static/note/js/transfer.js:364 #, javascript-format msgid "Transfer of %s from %s to %s failed: %s" msgstr "Le transfert de %s de la note %s vers la note %s a échoué : %s" -#: apps/note/static/note/js/transfer.js:347 +#: apps/note/static/note/js/transfer.js:358 msgid "insufficient funds" msgstr "solde insuffisant" -#: apps/note/static/note/js/transfer.js:400 +#: apps/note/static/note/js/transfer.js:411 msgid "Credit/debit succeed!" msgstr "Le crédit/retrait a bien été effectué !" -#: apps/note/static/note/js/transfer.js:407 +#: apps/note/static/note/js/transfer.js:418 #, javascript-format msgid "Credit/debit failed: %s" msgstr "Le crédit/retrait a échoué : %s" -#: note_kfet/static/js/base.js:366 +#: note_kfet/static/js/base.js:370 msgid "An error occured while (in)validating this transaction:" msgstr "" "Une erreur est survenue lors de la validation/dévalidation de cette " diff --git a/note_kfet/static/js/autocomplete_model.js b/note_kfet/static/js/autocomplete_model.js index 2a2677d4..a8b2461c 100644 --- a/note_kfet/static/js/autocomplete_model.js +++ b/note_kfet/static/js/autocomplete_model.js @@ -1,3 +1,5 @@ +const keycodes = [32, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 106, 107, 109, 110, 111, 186, 187, 188, 189, 190, 191, 219, 220, 221, 222] + $(document).ready(function () { $('.autocomplete').keyup(function (e) { const target = $('#' + e.target.id) @@ -10,7 +12,6 @@ $(document).ready(function () { const input = target.val() target.addClass('is-invalid') target.removeClass('is-valid') - $('#' + prefix + '_reset').removeClass('d-none') $.getJSON(api_url + (api_url.includes('?') ? '&' : '?') + 'format=json&search=^' + input + api_url_suffix, function (objects) { let html = '