1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2025-06-29 20:51:11 +02:00

Compare commits

..

21 Commits

Author SHA1 Message Date
81c12436a8 Revert "missing comma"
This reverts commit 1ca4246cbd.
2023-03-31 16:51:48 +02:00
8eee14075c test6 2023-03-31 16:37:22 +02:00
ab9ba62af1 test5 2023-03-31 16:31:53 +02:00
8ca0648e75 test4 2023-03-31 16:23:41 +02:00
77ecfd6ed5 test3 2023-03-31 16:14:29 +02:00
0ab1367e55 test2 2023-03-31 15:56:34 +02:00
524f0e098a test 2023-03-31 15:48:45 +02:00
1ca4246cbd missing comma 2023-03-31 14:58:46 +02:00
6a9021ec14 Merge branch 'couleur_totalist_spies' into 'main'
Couleur totalist spies

See merge request bde/nk20!208
2023-03-31 12:37:24 +02:00
cb74311e7b Commit migration, j'étais triggered 2023-03-30 19:14:52 +02:00
9d7dd566c9 Ignore /tmp/ 2023-03-30 17:26:06 +02:00
9944ebcaad changement des couleurs de la note vers les couleurs totalist spies 2023-03-25 02:13:16 +01:00
8537f043f7 changement des couleurs de la note vers les couleurs totalist spies 2023-03-25 00:57:19 +01:00
c89a95f8d2 Merge branch 'invoice-logo-totalist' into 'main'
changement du fond des factures

See merge request bde/nk20!207
2023-01-30 13:06:39 +01:00
73640b1dfa changement du fond des factures 2023-01-30 00:06:45 +01:00
84b16ab603 Merge branch 'SogeCreditDate' into 'main'
link SogeCredit to WEI by creation date instead of civil year

See merge request bde/nk20!206
2023-01-17 15:58:52 +01:00
6a1b51dbbf Merge branch 'api_pagination' into 'main'
Add custom pagination size as an API parameter

See merge request bde/nk20!205
2023-01-11 22:46:13 +01:00
c441a43a8b link SogeCredit to WEI by creation date instead of civil year 2023-01-10 21:40:03 +01:00
87f3b51b04 Add custom pagination size as an API parameter 2022-12-14 18:37:13 +01:00
0a853fd3e6 Merge branch 'permission_trez' into 'main'
fix trez perm

See merge request bde/nk20!204
2022-12-10 14:41:57 +01:00
c429734810 fix bug 2022-11-12 14:51:22 +01:00
27 changed files with 325 additions and 381 deletions

1
.gitignore vendored
View File

@ -42,6 +42,7 @@ map.json
backups/ backups/
/static/ /static/
/media/ /media/
/tmp/
# Virtualenv # Virtualenv
env/ env/

5
apps/api/pagination.py Normal file
View File

@ -0,0 +1,5 @@
from rest_framework.pagination import PageNumberPagination
class CustomPagination(PageNumberPagination):
page_size_query_param = 'page_size'

View File

@ -0,0 +1,18 @@
# Generated by Django 2.2.26 on 2022-09-04 21:25
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('member', '0008_auto_20211005_1544'),
]
operations = [
migrations.AlterField(
model_name='profile',
name='promotion',
field=models.PositiveSmallIntegerField(default=2022, help_text='Year of entry to the school (None if not ENS student)', null=True, verbose_name='promotion'),
),
]

View File

@ -1,7 +1,7 @@
/** /**
* On form submit, create a new friendship * On form submit, create a new friendship
*/ */
function form_create_trust (e) { function create_trust (e) {
// Do not submit HTML form // Do not submit HTML form
e.preventDefault() e.preventDefault()
@ -14,35 +14,25 @@ function form_create_trust (e) {
addMsg(gettext("You can't add yourself as a friend"), "danger") addMsg(gettext("You can't add yourself as a friend"), "danger")
return return
} }
create_trust(formData.get('trusting'), trusted_alias.note) $.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)
})
}).fail(function (xhr, _textStatus, _error) { }).fail(function (xhr, _textStatus, _error) {
errMsg(xhr.responseJSON) errMsg(xhr.responseJSON)
}) })
} }
/** /**
* Create a trust between users * On click of "delete", delete the alias
* @param trusting:Integer trusting note id * @param button_id:Integer Alias id to remove
* @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) { function delete_button (button_id) {
$.ajax({ $.ajax({
@ -52,7 +42,6 @@ function delete_button (button_id) {
}).done(function () { }).done(function () {
addMsg(gettext('Friendship successfully deleted'), 'success') addMsg(gettext('Friendship successfully deleted'), 'success')
$('#trust_table').load(location.pathname + ' #trust_table') $('#trust_table').load(location.pathname + ' #trust_table')
$('#trusted_table').load(location.pathname + ' #trusted_table')
}).fail(function (xhr, _textStatus, _error) { }).fail(function (xhr, _textStatus, _error) {
errMsg(xhr.responseJSON) errMsg(xhr.responseJSON)
}) })
@ -60,5 +49,5 @@ function delete_button (button_id) {
$(document).ready(function () { $(document).ready(function () {
// Attach event // Attach event
document.getElementById('form_trust').addEventListener('submit', form_create_trust) document.getElementById('form_trust').addEventListener('submit', create_trust)
}) })

View File

@ -7,7 +7,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
{% block profile_content %} {% block profile_content %}
<div class="card bg-light mb-3"> <div class="card bg-light mb-3">
<h3 class="card-header text-center"> <h3 class="card-header text-center">
{% trans "Add friends" %} {% trans "Note friendships" %}
</h3> </h3>
<div class="card-body"> <div class="card-body">
{% if can_create %} {% if can_create %}
@ -24,7 +24,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
{% render_table trusting %} {% render_table trusting %}
</div> </div>
<div class="alert alert-warning card mb-3"> <div class="alert alert-warning card">
{% blocktrans trimmed %} {% blocktrans trimmed %}
Adding someone as a friend enables them to initiate transactions coming Adding someone as a friend enables them to initiate transactions coming
from your account (while keeping your balance positive). This is from your account (while keeping your balance positive). This is
@ -33,13 +33,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
friends without needing additional rights among them. friends without needing additional rights among them.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
<div class="card bg-light mb-3">
<h3 class="card-header text-center">
{% trans "People having you as a friend" %}
</h3>
{% render_table trusted_by %}
</div>
{% endblock %} {% endblock %}
{% block extrajavascript %} {% block extrajavascript %}

View File

@ -8,6 +8,7 @@ from django.contrib.auth import logout
from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.contrib.auth.views import LoginView from django.contrib.auth.views import LoginView
from django.contrib.contenttypes.models import ContentType
from django.db import transaction from django.db import transaction
from django.db.models import Q, F from django.db.models import Q, F
from django.shortcuts import redirect from django.shortcuts import redirect
@ -20,7 +21,7 @@ from django_tables2.views import SingleTableView
from rest_framework.authtoken.models import Token from rest_framework.authtoken.models import Token
from note.models import Alias, NoteClub, NoteUser, Trust from note.models import Alias, NoteClub, NoteUser, Trust
from note.models.transactions import Transaction, SpecialTransaction from note.models.transactions import Transaction, SpecialTransaction
from note.tables import HistoryTable, AliasTable, TrustTable, TrustedTable from note.tables import HistoryTable, AliasTable, TrustTable
from note_kfet.middlewares import _set_current_request from note_kfet.middlewares import _set_current_request
from permission.backends import PermissionBackend from permission.backends import PermissionBackend
from permission.models import Role from permission.models import Role
@ -257,18 +258,17 @@ class ProfileTrustView(ProtectQuerysetMixin, LoginRequiredMixin, DetailView):
note = context['object'].note note = context['object'].note
context["trusting"] = TrustTable( context["trusting"] = TrustTable(
note.trusting.filter(PermissionBackend.filter_queryset(self.request, Trust, "view")).distinct().all()) 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( context["can_create"] = PermissionBackend.check_perm(self.request, "note.add_trust", Trust(
trusting=context["object"].note, trusting=context["object"].note,
trusted=context["object"].note trusted=context["object"].note
)) ))
context["widget"] = { context["widget"] = {
"name": "trusted", "name": "trusted",
"resetable": True,
"attrs": { "attrs": {
"model_pk": ContentType.objects.get_for_model(Alias).pk,
"class": "autocomplete form-control", "class": "autocomplete form-control",
"id": "trusted", "id": "trusted",
"resetable": True,
"api_url": "/api/note/alias/?note__polymorphic_ctype__model=noteuser", "api_url": "/api/note/alias/?note__polymorphic_ctype__model=noteuser",
"name_field": "name", "name_field": "name",
"placeholder": "" "placeholder": ""

View File

@ -325,8 +325,8 @@ class SpecialTransaction(Transaction):
def clean(self): def clean(self):
# SpecialTransaction are only possible with NoteSpecial object # SpecialTransaction are only possible with NoteSpecial object
if self.is_credit() == self.is_debit(): if self.is_credit() == self.is_debit():
raise (ValidationError(_("A special transaction is only possible between a" raise(ValidationError(_("A special transaction is only possible between a"
" Note associated to a payment method and a User or a Club"))) " Note associated to a payment method and a User or a Club")))
@transaction.atomic @transaction.atomic
def save(self, *args, **kwargs): def save(self, *args, **kwargs):

View File

@ -159,11 +159,11 @@ class TrustTable(tables.Table):
template_name = 'django_tables2/bootstrap4.html' template_name = 'django_tables2/bootstrap4.html'
show_header = False show_header = False
trusted = tables.Column(attrs={'td': {'class': 'text-center'}}) trusted = tables.Column(attrs={'td': {'class': 'text_center'}})
delete_col = tables.TemplateColumn( delete_col = tables.TemplateColumn(
template_code=DELETE_TEMPLATE, template_code=DELETE_TEMPLATE,
extra_context={"delete_trans": _('Delete')}, extra_context={"delete_trans": _('delete')},
attrs={ attrs={
'td': { 'td': {
'class': lambda record: 'col-sm-1' 'class': lambda record: 'col-sm-1'
@ -173,46 +173,6 @@ class TrustTable(tables.Table):
verbose_name=_("Delete"),) 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 = '<button id="'
val += str(record.pk)
val += '" class="btn btn-success btn-sm text-nowrap" \
onclick="create_trust(' + str(record.trusted.pk) + ',' + \
str(record.trusting.pk) + ')">'
val += str(_("Add back"))
val += '</button>'
return mark_safe(val)
class AliasTable(tables.Table): class AliasTable(tables.Table):
class Meta: class Meta:
attrs = { attrs = {

View File

@ -1967,7 +1967,7 @@
"note", "note",
"transaction" "transaction"
], ],
"query": "[\"AND\", [\"OR\", {\"source\": [\"club\", \"note\"]}, {\"destination\": [\"club\", \"note\"]}], [\"OR\", {\"source__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": true}, {\"destination__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": false}]]", "query": "[\"AND\", [\"OR\", {\"source\": [\"club\", \"note\"]}, {\"destination\": [\"club\", \"note\"]}], [\"OR\", {\"source__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": false}, {\"destination__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": true}]]",
"type": "change", "type": "change",
"mask": 2, "mask": 2,
"field": "valid", "field": "valid",
@ -2607,7 +2607,7 @@
"note", "note",
"transaction" "transaction"
], ],
"query": "[\"OR\", {\"source__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": true}, {\"destination__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": false}]", "query": "[\"OR\", {\"source__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": false}, {\"destination__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": true}]",
"type": "change", "type": "change",
"mask": 2, "mask": 2,
"field": "valid", "field": "valid",
@ -2623,7 +2623,7 @@
"note", "note",
"transaction" "transaction"
], ],
"query": "[\"OR\", {\"source__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": true}, {\"destination__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": false}]", "query": "[\"OR\", {\"source__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": false}, {\"destination__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": true}]",
"type": "change", "type": "change",
"mask": 2, "mask": 2,
"field": "invalidity_reason", "field": "invalidity_reason",
@ -3079,22 +3079,6 @@
"description": "Transférer de l'argent depuis une note amie en restant positif" "description": "Transférer de l'argent depuis une note amie en restant positif"
} }
}, },
{
"model": "permission.permission",
"pk": 197,
"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"
}
},
{ {
"model": "permission.role", "model": "permission.role",
"pk": 1, "pk": 1,
@ -3133,8 +3117,7 @@
190, 190,
191, 191,
195, 195,
196, 196
197
] ]
} }
}, },
@ -3531,8 +3514,7 @@
193, 193,
194, 194,
195, 195,
196, 196
197
] ]
} }
}, },

View File

@ -0,0 +1,18 @@
# Generated by Django 2.2.28 on 2023-01-29 22:48
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('treasury', '0004_auto_20211005_1544'),
]
operations = [
migrations.AlterField(
model_name='invoice',
name='bde',
field=models.CharField(choices=[('TotalistSpies', 'Tota[list]Spies'), ('Saperlistpopette', 'Saper[list]popette'), ('Finalist', 'Fina[list]'), ('Listorique', '[List]orique'), ('Satellist', 'Satel[list]'), ('Monopolist', 'Monopo[list]'), ('Kataclist', 'Katac[list]')], default='TotalistSpies', max_length=32, verbose_name='BDE'),
),
]

View File

@ -28,8 +28,9 @@ class Invoice(models.Model):
bde = models.CharField( bde = models.CharField(
max_length=32, max_length=32,
default='Saperlistpopette', default='TotalistSpies',
choices=( choices=(
('TotalistSpies', 'Tota[list]Spies'),
('Saperlistpopette', 'Saper[list]popette'), ('Saperlistpopette', 'Saper[list]popette'),
('Finalist', 'Fina[list]'), ('Finalist', 'Fina[list]'),
('Listorique', '[List]orique'), ('Listorique', '[List]orique'),
@ -95,7 +96,7 @@ class Invoice(models.Model):
products = self.products.all() products = self.products.all()
self.place = "Gif-sur-Yvette" self.place = "Gif-sur-Yvette"
self.my_name = "BDE ENS Cachan" self.my_name = "BDE ENS Paris Saclay"
self.my_address_street = "4 avenue des Sciences" self.my_address_street = "4 avenue des Sciences"
self.my_city = "91190 Gif-sur-Yvette" self.my_city = "91190 Gif-sur-Yvette"
self.bank_code = 30003 self.bank_code = 30003
@ -310,8 +311,8 @@ class SogeCredit(models.Model):
amount = sum(transaction.total for transaction in self.transactions.all()) amount = sum(transaction.total for transaction in self.transactions.all())
if 'wei' in settings.INSTALLED_APPS: if 'wei' in settings.INSTALLED_APPS:
from wei.models import WEIMembership from wei.models import WEIMembership
if not WEIMembership.objects.filter(club__weiclub__year=datetime.date.today().year, user=self.user)\ if not WEIMembership.objects\
.exists(): .filter(club__weiclub__year=self.credit_transaction.created_at.year, user=self.user).exists():
# 80 € for people that don't go to WEI # 80 € for people that don't go to WEI
amount += 8000 amount += 8000
return amount return amount
@ -324,23 +325,23 @@ class SogeCredit(models.Model):
if self.valid or not self.pk: if self.valid or not self.pk:
return return
# bde = Club.objects.get(name="BDE") bde = Club.objects.get(name="BDE")
# kfet = Club.objects.get(name="Kfet") kfet = Club.objects.get(name="Kfet")
# bde_qs = Membership.objects.filter(user=self.user, club=bde, date_start__gte=bde.membership_start) bde_qs = Membership.objects.filter(user=self.user, club=bde, date_start__gte=bde.membership_start)
# kfet_qs = Membership.objects.filter(user=self.user, club=kfet, date_start__gte=kfet.membership_start) kfet_qs = Membership.objects.filter(user=self.user, club=kfet, date_start__gte=kfet.membership_start)
# # Soge do not pay BDE and kfet memberships this year (2022-2023) ## Soge do not pay BDE and kfet memberships this year (2022-2023)
# if bde_qs.exists(): # if bde_qs.exists():
# m = bde_qs.get() # m = bde_qs.get()
# if MembershipTransaction.objects.filter(membership=m).exists(): # non-free membership # if MembershipTransaction.objects.filter(membership=m).exists(): # non-free membership
# if m.transaction not in self.transactions.all(): # if m.transaction not in self.transactions.all():
# self.transactions.add(m.transaction) # self.transactions.add(m.transaction)
# #
# if kfet_qs.exists(): # if kfet_qs.exists():
# m = kfet_qs.get() # m = kfet_qs.get()
# if MembershipTransaction.objects.filter(membership=m).exists(): # non-free membership # if MembershipTransaction.objects.filter(membership=m).exists(): # non-free membership
# if m.transaction not in self.transactions.all(): # if m.transaction not in self.transactions.all():
# self.transactions.add(m.transaction) # self.transactions.add(m.transaction)
if 'wei' in settings.INSTALLED_APPS: if 'wei' in settings.INSTALLED_APPS:
from wei.models import WEIClub from wei.models import WEIClub

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -0,0 +1,18 @@
# Generated by Django 2.2.26 on 2022-09-04 21:25
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('wei', '0003_bus_size'),
]
operations = [
migrations.AlterField(
model_name='weiclub',
name='year',
field=models.PositiveIntegerField(default=2022, unique=True, verbose_name='year'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 2.2.28 on 2023-01-28 17:50
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('wei', '0004_auto_20220904_2325'),
]
operations = [
migrations.AlterField(
model_name='weiclub',
name='year',
field=models.PositiveIntegerField(default=2023, unique=True, verbose_name='year'),
),
]

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-07 09:10+0200\n" "POT-Creation-Date: 2022-04-10 22:34+0200\n"
"PO-Revision-Date: 2020-11-16 20:02+0000\n" "PO-Revision-Date: 2020-11-16 20:02+0000\n"
"Last-Translator: Yohann D'ANELLO <ynerant@crans.org>\n" "Last-Translator: Yohann D'ANELLO <ynerant@crans.org>\n"
"Language-Team: German <http://translate.ynerant.fr/projects/nk20/nk20/de/>\n" "Language-Team: German <http://translate.ynerant.fr/projects/nk20/nk20/de/>\n"
@ -391,7 +391,7 @@ msgid "validate"
msgstr "" msgstr ""
#: apps/activity/templates/activity/includes/activity_info.html:71 #: apps/activity/templates/activity/includes/activity_info.html:71
#: apps/logs/models.py:64 apps/note/tables.py:260 #: apps/logs/models.py:64 apps/note/tables.py:220
msgid "edit" msgid "edit"
msgstr "bearbeiten" msgstr "bearbeiten"
@ -467,9 +467,9 @@ msgstr "neue Daten"
msgid "create" msgid "create"
msgstr "schaffen" msgstr "schaffen"
#: apps/logs/models.py:65 apps/note/tables.py:230 apps/note/tables.py:277 #: apps/logs/models.py:65 apps/note/tables.py:166 apps/note/tables.py:190
#: apps/permission/models.py:127 apps/treasury/tables.py:38 #: apps/note/tables.py:237 apps/permission/models.py:127
#: apps/wei/tables.py:74 #: apps/treasury/tables.py:38 apps/wei/tables.py:74
msgid "delete" msgid "delete"
msgstr "entfernen" msgstr "entfernen"
@ -548,7 +548,7 @@ msgstr "Maximal Größe: 2MB"
msgid "This image cannot be loaded." msgid "This image cannot be loaded."
msgstr "Dieses Bild kann nicht geladen werden." msgstr "Dieses Bild kann nicht geladen werden."
#: apps/member/forms.py:141 apps/member/views.py:102 #: apps/member/forms.py:141 apps/member/views.py:103
#: apps/registration/forms.py:33 apps/registration/views.py:262 #: apps/registration/forms.py:33 apps/registration/views.py:262
msgid "An alias with a similar name already exists." msgid "An alias with a similar name already exists."
msgstr "Ein ähnliches Alias ist schon benutzt." msgstr "Ein ähnliches Alias ist schon benutzt."
@ -930,7 +930,7 @@ msgid "Account #"
msgstr "Konto #" msgstr "Konto #"
#: apps/member/templates/member/base.html:48 #: apps/member/templates/member/base.html:48
#: apps/member/templates/member/base.html:62 apps/member/views.py:59 #: apps/member/templates/member/base.html:62 apps/member/views.py:60
#: apps/registration/templates/registration/future_profile_detail.html:48 #: apps/registration/templates/registration/future_profile_detail.html:48
#: apps/wei/templates/wei/weimembership_form.html:117 #: apps/wei/templates/wei/weimembership_form.html:117
msgid "Update Profile" msgid "Update Profile"
@ -1172,8 +1172,8 @@ msgstr "Click hier um eine Bestätigunglinke zu schicken."
msgid "View my memberships" msgid "View my memberships"
msgstr "Meine Mitgliedschaften schauen" msgstr "Meine Mitgliedschaften schauen"
#: apps/member/templates/member/profile_trust.html:10 #: apps/member/templates/member/profile_trust.html:10 apps/member/views.py:254
msgid "Add friends" msgid "Note friendships"
msgstr "" msgstr ""
#: apps/member/templates/member/profile_trust.html:28 #: apps/member/templates/member/profile_trust.html:28
@ -1185,10 +1185,6 @@ msgid ""
"without needing additional rights among them." "without needing additional rights among them."
msgstr "" 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 #: apps/member/templates/member/profile_update.html:18
msgid "Save Changes" msgid "Save Changes"
msgstr "Speichern" msgstr "Speichern"
@ -1197,22 +1193,18 @@ msgstr "Speichern"
msgid "Registrations" msgid "Registrations"
msgstr "Anmeldung" msgstr "Anmeldung"
#: apps/member/views.py:72 apps/registration/forms.py:23 #: apps/member/views.py:73 apps/registration/forms.py:23
msgid "This address must be valid." msgid "This address must be valid."
msgstr "Diese Adresse muss gültig sein." msgstr "Diese Adresse muss gültig sein."
#: apps/member/views.py:139 #: apps/member/views.py:140
msgid "Profile detail" msgid "Profile detail"
msgstr "Profile detail" msgstr "Profile detail"
#: apps/member/views.py:205 #: apps/member/views.py:206
msgid "Search user" msgid "Search user"
msgstr "User finden" msgstr "User finden"
#: apps/member/views.py:253
msgid "Note friendships"
msgstr ""
#: apps/member/views.py:308 #: apps/member/views.py:308
msgid "Update note picture" msgid "Update note picture"
msgstr "Notebild ändern" msgstr "Notebild ändern"
@ -1594,8 +1586,8 @@ msgstr "Klicken Sie zum gültigmachen"
msgid "No reason specified" msgid "No reason specified"
msgstr "Kein Grund gegeben" msgstr "Kein Grund gegeben"
#: apps/note/tables.py:166 apps/note/tables.py:173 apps/note/tables.py:234 #: apps/note/tables.py:173 apps/note/tables.py:194 apps/note/tables.py:239
#: apps/note/tables.py:279 apps/treasury/tables.py:39 #: apps/treasury/tables.py:39
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:30 #: apps/treasury/templates/treasury/invoice_confirm_delete.html:30
#: apps/treasury/templates/treasury/sogecredit_detail.html:65 #: apps/treasury/templates/treasury/sogecredit_detail.html:65
#: apps/wei/tables.py:75 apps/wei/tables.py:118 #: apps/wei/tables.py:75 apps/wei/tables.py:118
@ -1606,17 +1598,7 @@ msgstr "Kein Grund gegeben"
msgid "Delete" msgid "Delete"
msgstr "Löschen" msgstr "Löschen"
#: apps/note/tables.py:191 #: apps/note/tables.py:222 apps/note/templates/note/conso_form.html:132
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/tables.py:49 apps/wei/tables.py:50
#: apps/wei/templates/wei/base.html:89 #: apps/wei/templates/wei/base.html:89
#: apps/wei/templates/wei/bus_detail.html:20 #: apps/wei/templates/wei/bus_detail.html:20
@ -1626,7 +1608,7 @@ msgstr "Neue Bus"
msgid "Edit" msgid "Edit"
msgstr "Bearbeiten" msgstr "Bearbeiten"
#: apps/note/tables.py:266 apps/note/tables.py:293 #: apps/note/tables.py:226 apps/note/tables.py:253
msgid "Hide/Show" msgid "Hide/Show"
msgstr "" msgstr ""
@ -2339,7 +2321,7 @@ msgstr "spezielle Transaktion Proxies"
msgid "credit transaction" msgid "credit transaction"
msgstr "Kredit Transaktion" msgstr "Kredit Transaktion"
#: apps/treasury/models.py:431 #: apps/treasury/models.py:430
msgid "" msgid ""
"This user doesn't have enough money to pay the memberships with its note. " "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." "Please ask her/him to credit the note before invalidating this credit."
@ -2347,16 +2329,16 @@ msgstr ""
"Dieser Benutzer hat nicht genug Geld, um die Mitgliedschaften mit seiner " "Dieser Benutzer hat nicht genug Geld, um die Mitgliedschaften mit seiner "
"Note zu bezahlen." "Note zu bezahlen."
#: apps/treasury/models.py:452 #: apps/treasury/models.py:451
#: apps/treasury/templates/treasury/sogecredit_detail.html:10 #: apps/treasury/templates/treasury/sogecredit_detail.html:10
msgid "Credit from the Société générale" msgid "Credit from the Société générale"
msgstr "Kredit von der Société générale" msgstr "Kredit von der Société générale"
#: apps/treasury/models.py:453 #: apps/treasury/models.py:452
msgid "Credits from the Société générale" msgid "Credits from the Société générale"
msgstr "Krediten von der Société générale" msgstr "Krediten von der Société générale"
#: apps/treasury/models.py:456 #: apps/treasury/models.py:455
#, python-brace-format #, python-brace-format
msgid "Soge credit for {user}" msgid "Soge credit for {user}"
msgstr "Kredit von der Société générale für {user}" msgstr "Kredit von der Société générale für {user}"
@ -2658,7 +2640,7 @@ msgstr "Wählen Sie die Rollen aus, an denen Sie interessiert sind."
msgid "This team doesn't belong to the given bus." msgid "This team doesn't belong to the given bus."
msgstr "Dieses Team gehört nicht zum angegebenen 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/wei2021.py:35 apps/wei/forms/surveys/wei2022.py:35
msgid "Choose a word:" msgid "Choose a word:"
msgstr "Wählen Sie ein Wort:" msgstr "Wählen Sie ein Wort:"

View File

@ -7,11 +7,11 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-07 09:07+0200\n" "POT-Creation-Date: 2020-11-15 23:21+0100\n"
"PO-Revision-Date: 2020-11-16 20:21+0000\n" "PO-Revision-Date: 2020-11-16 20:21+0000\n"
"Last-Translator: Yohann D'ANELLO <ynerant@crans.org>\n" "Last-Translator: Yohann D'ANELLO <ynerant@crans.org>\n"
"Language-Team: German <http://translate.ynerant.fr/projects/nk20/nk20-js/de/" "Language-Team: German <http://translate.ynerant.fr/projects/nk20/nk20-js/de/>"
">\n" "\n"
"Language: de\n" "Language: de\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -27,22 +27,6 @@ msgstr "Alias erfolgreich hinzugefügt"
msgid "Alias successfully deleted" msgid "Alias successfully deleted"
msgstr "Alias erfolgreich gelöscht" 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 #: apps/note/static/note/js/consos.js:225
#, javascript-format #, javascript-format
msgid "" msgid ""
@ -62,32 +46,32 @@ msgstr ""
"ist negativ." "ist negativ."
#: apps/note/static/note/js/consos.js:232 #: apps/note/static/note/js/consos.js:232
#: apps/note/static/note/js/transfer.js:309 #: apps/note/static/note/js/transfer.js:298
#: apps/note/static/note/js/transfer.js:412 #: apps/note/static/note/js/transfer.js:401
#, javascript-format #, javascript-format
msgid "Warning, the emitter note %s is no more a BDE member." msgid "Warning, the emitter note %s is no more a BDE member."
msgstr "Warnung, der Emittent Hinweis %s ist kein BDE-Mitglied mehr." msgstr "Warnung, der Emittent Hinweis %s ist kein BDE-Mitglied mehr."
#: apps/note/static/note/js/consos.js:254 #: apps/note/static/note/js/consos.js:253
msgid "The transaction couldn't be validated because of insufficient balance." msgid "The transaction couldn't be validated because of insufficient balance."
msgstr "" msgstr ""
"Die Transaktion konnte aufgrund eines unzureichenden Saldos nicht validiert " "Die Transaktion konnte aufgrund eines unzureichenden Saldos nicht validiert "
"werden." "werden."
#: apps/note/static/note/js/transfer.js:249 #: apps/note/static/note/js/transfer.js:238
msgid "This field is required and must contain a decimal positive number." msgid "This field is required and must contain a decimal positive number."
msgstr "" msgstr ""
"Dieses Feld ist erforderlich und muss eine positive Dezimalzahl enthalten." "Dieses Feld ist erforderlich und muss eine positive Dezimalzahl enthalten."
#: apps/note/static/note/js/transfer.js:256 #: apps/note/static/note/js/transfer.js:245
msgid "The amount must stay under 21,474,836.47 €." msgid "The amount must stay under 21,474,836.47 €."
msgstr "Der Betrag muss unter 21.474.836,47 € bleiben." msgstr "Der Betrag muss unter 21.474.836,47 € bleiben."
#: apps/note/static/note/js/transfer.js:262 #: apps/note/static/note/js/transfer.js:251
msgid "This field is required." msgid "This field is required."
msgstr "Dies ist ein Pflichtfeld." msgstr "Dies ist ein Pflichtfeld."
#: apps/note/static/note/js/transfer.js:288 #: apps/note/static/note/js/transfer.js:277
#, javascript-format #, javascript-format
msgid "" msgid ""
"Warning: the transaction of %s from %s to %s was not made because it is the " "Warning: the transaction of %s from %s to %s was not made because it is the "
@ -96,12 +80,12 @@ msgstr ""
"Warnung: Die Transaktion von %s von %s nach %s wurde nicht durchgeführt, da " "Warnung: Die Transaktion von %s von %s nach %s wurde nicht durchgeführt, da "
"es sich um die gleiche Quell- und Zielnotiz handelt." "es sich um die gleiche Quell- und Zielnotiz handelt."
#: apps/note/static/note/js/transfer.js:312 #: apps/note/static/note/js/transfer.js:301
#, javascript-format #, javascript-format
msgid "Warning, the destination note %s is no more a BDE member." msgid "Warning, the destination note %s is no more a BDE member."
msgstr "Warnung, der Bestimmungsvermerk %s ist kein BDE-Mitglied mehr." msgstr "Warnung, der Bestimmungsvermerk %s ist kein BDE-Mitglied mehr."
#: apps/note/static/note/js/transfer.js:318 #: apps/note/static/note/js/transfer.js:307
#, javascript-format #, javascript-format
msgid "" msgid ""
"Warning, the transaction of %s from the note %s to the note %s succeed, but " "Warning, the transaction of %s from the note %s to the note %s succeed, but "
@ -110,7 +94,7 @@ msgstr ""
"Warnung, die Transaktion von %s von der Note %s zur Note %s gelingt, aber " "Warnung, die Transaktion von %s von der Note %s zur Note %s gelingt, aber "
"die Emitternote %s ist sehr negativ." "die Emitternote %s ist sehr negativ."
#: apps/note/static/note/js/transfer.js:323 #: apps/note/static/note/js/transfer.js:312
#, javascript-format #, javascript-format
msgid "" msgid ""
"Warning, the transaction of %s from the note %s to the note %s succeed, but " "Warning, the transaction of %s from the note %s to the note %s succeed, but "
@ -119,32 +103,31 @@ msgstr ""
"Warnung, die Transaktion von %s von der Note %s zur Note %s gelingt, aber " "Warnung, die Transaktion von %s von der Note %s zur Note %s gelingt, aber "
"die Emitternote %s ist negativ." "die Emitternote %s ist negativ."
#: apps/note/static/note/js/transfer.js:329 #: apps/note/static/note/js/transfer.js:318
#, javascript-format #, javascript-format
msgid "Transfer of %s from %s to %s succeed!" msgid "Transfer of %s from %s to %s succeed!"
msgstr "Übertragung von %s von %s auf %s gelingt!" msgstr "Übertragung von %s von %s auf %s gelingt!"
#: apps/note/static/note/js/transfer.js:336 #: apps/note/static/note/js/transfer.js:325
#: apps/note/static/note/js/transfer.js:357 #: apps/note/static/note/js/transfer.js:346
#: apps/note/static/note/js/transfer.js:364 #: apps/note/static/note/js/transfer.js:353
#, javascript-format #, javascript-format
msgid "Transfer of %s from %s to %s failed: %s" msgid "Transfer of %s from %s to %s failed: %s"
msgstr "Übertragung von %s von %s auf %s fehlgeschlagen: %s" msgstr "Übertragung von %s von %s auf %s fehlgeschlagen: %s"
#: apps/note/static/note/js/transfer.js:358 #: apps/note/static/note/js/transfer.js:347
msgid "insufficient funds" msgid "insufficient funds"
msgstr "unzureichende Geldmittel" msgstr "unzureichende Geldmittel"
#: apps/note/static/note/js/transfer.js:411 #: apps/note/static/note/js/transfer.js:400
msgid "Credit/debit succeed!" msgid "Credit/debit succeed!"
msgstr "Kredit/Debit erfolgreich!" msgstr "Kredit/Debit erfolgreich!"
#: apps/note/static/note/js/transfer.js:418 #: apps/note/static/note/js/transfer.js:407
#, javascript-format #, javascript-format
msgid "Credit/debit failed: %s" msgid "Credit/debit failed: %s"
msgstr "Kredit/Debit fehlgeschlagen: %s" msgstr "Kredit/Debit fehlgeschlagen: %s"
#: note_kfet/static/js/base.js:370 #: note_kfet/static/js/base.js:366
msgid "An error occured while (in)validating this transaction:" msgid "An error occured while (in)validating this transaction:"
msgstr "" msgstr "Bei der (Un-)Validierung dieser Transaktion ist ein Fehler aufgetreten:"
"Bei der (Un-)Validierung dieser Transaktion ist ein Fehler aufgetreten:"

View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-07 09:10+0200\n" "POT-Creation-Date: 2022-04-10 22:34+0200\n"
"PO-Revision-Date: 2022-10-07 13:24+0200\n" "PO-Revision-Date: 2022-04-11 23:12+0200\n"
"Last-Translator: elkmaennchen <elkmaennchen@crans.org>\n" "Last-Translator: elkmaennchen <elkmaennchen@crans.org>\n"
"Language-Team: \n" "Language-Team: \n"
"Language: es\n" "Language: es\n"
@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0.1\n" "X-Generator: Poedit 3.0\n"
#: apps/activity/apps.py:10 apps/activity/models.py:151 #: apps/activity/apps.py:10 apps/activity/models.py:151
#: apps/activity/models.py:167 #: apps/activity/models.py:167
@ -386,7 +386,7 @@ msgid "validate"
msgstr "validar" msgstr "validar"
#: apps/activity/templates/activity/includes/activity_info.html:71 #: apps/activity/templates/activity/includes/activity_info.html:71
#: apps/logs/models.py:64 apps/note/tables.py:260 #: apps/logs/models.py:64 apps/note/tables.py:220
msgid "edit" msgid "edit"
msgstr "modificar" msgstr "modificar"
@ -464,9 +464,9 @@ msgstr "nuevos datos"
msgid "create" msgid "create"
msgstr "crear" msgstr "crear"
#: apps/logs/models.py:65 apps/note/tables.py:230 apps/note/tables.py:277 #: apps/logs/models.py:65 apps/note/tables.py:166 apps/note/tables.py:190
#: apps/permission/models.py:127 apps/treasury/tables.py:38 #: apps/note/tables.py:237 apps/permission/models.py:127
#: apps/wei/tables.py:74 #: apps/treasury/tables.py:38 apps/wei/tables.py:74
msgid "delete" msgid "delete"
msgstr "suprimir" msgstr "suprimir"
@ -545,7 +545,7 @@ msgstr "Tamaño máximo : 2Mo"
msgid "This image cannot be loaded." msgid "This image cannot be loaded."
msgstr "Esta imagen no puede ser cargada." msgstr "Esta imagen no puede ser cargada."
#: apps/member/forms.py:141 apps/member/views.py:102 #: apps/member/forms.py:141 apps/member/views.py:103
#: apps/registration/forms.py:33 apps/registration/views.py:262 #: apps/registration/forms.py:33 apps/registration/views.py:262
msgid "An alias with a similar name already exists." msgid "An alias with a similar name already exists."
msgstr "Un alias similar ya existe." msgstr "Un alias similar ya existe."
@ -921,7 +921,7 @@ msgid "Account #"
msgstr "Cuenta n°" msgstr "Cuenta n°"
#: apps/member/templates/member/base.html:48 #: apps/member/templates/member/base.html:48
#: apps/member/templates/member/base.html:62 apps/member/views.py:59 #: apps/member/templates/member/base.html:62 apps/member/views.py:60
#: apps/registration/templates/registration/future_profile_detail.html:48 #: apps/registration/templates/registration/future_profile_detail.html:48
#: apps/wei/templates/wei/weimembership_form.html:117 #: apps/wei/templates/wei/weimembership_form.html:117
msgid "Update Profile" msgid "Update Profile"
@ -1155,9 +1155,9 @@ msgstr "Hacer clic aquí para reenviar un enlace de validación."
msgid "View my memberships" msgid "View my memberships"
msgstr "Ver mis afiliaciones" msgstr "Ver mis afiliaciones"
#: apps/member/templates/member/profile_trust.html:10 #: apps/member/templates/member/profile_trust.html:10 apps/member/views.py:254
msgid "Add friends" msgid "Note friendships"
msgstr "Añadir amig@s" msgstr "Amistades de note"
#: apps/member/templates/member/profile_trust.html:28 #: apps/member/templates/member/profile_trust.html:28
msgid "" msgid ""
@ -1172,10 +1172,6 @@ msgstr ""
"simplificar el reembolso entre amig@s por Note Kfet. Pues una persona puede " "simplificar el reembolso entre amig@s por Note Kfet. Pues una persona puede "
"crear todas la transacciones sin tener derechos particulares." "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 #: apps/member/templates/member/profile_update.html:18
msgid "Save Changes" msgid "Save Changes"
msgstr "Guardar cambios" msgstr "Guardar cambios"
@ -1184,22 +1180,18 @@ msgstr "Guardar cambios"
msgid "Registrations" msgid "Registrations"
msgstr "Registraciones" msgstr "Registraciones"
#: apps/member/views.py:72 apps/registration/forms.py:23 #: apps/member/views.py:73 apps/registration/forms.py:23
msgid "This address must be valid." msgid "This address must be valid."
msgstr "Este correo tiene que ser valido." msgstr "Este correo tiene que ser valido."
#: apps/member/views.py:139 #: apps/member/views.py:140
msgid "Profile detail" msgid "Profile detail"
msgstr "Detalles del usuario" msgstr "Detalles del usuario"
#: apps/member/views.py:205 #: apps/member/views.py:206
msgid "Search user" msgid "Search user"
msgstr "Buscar un usuario" msgstr "Buscar un usuario"
#: apps/member/views.py:253
msgid "Note friendships"
msgstr "Amistades de note"
#: apps/member/views.py:308 #: apps/member/views.py:308
msgid "Update note picture" msgid "Update note picture"
msgstr "Modificar la imagen de la note" msgstr "Modificar la imagen de la note"
@ -1581,8 +1573,8 @@ msgstr "Hacer clic para validar"
msgid "No reason specified" msgid "No reason specified"
msgstr "Ningún motivo dado" msgstr "Ningún motivo dado"
#: apps/note/tables.py:166 apps/note/tables.py:173 apps/note/tables.py:234 #: apps/note/tables.py:173 apps/note/tables.py:194 apps/note/tables.py:239
#: apps/note/tables.py:279 apps/treasury/tables.py:39 #: apps/treasury/tables.py:39
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:30 #: apps/treasury/templates/treasury/invoice_confirm_delete.html:30
#: apps/treasury/templates/treasury/sogecredit_detail.html:65 #: apps/treasury/templates/treasury/sogecredit_detail.html:65
#: apps/wei/tables.py:75 apps/wei/tables.py:118 #: apps/wei/tables.py:75 apps/wei/tables.py:118
@ -1593,15 +1585,7 @@ msgstr "Ningún motivo dado"
msgid "Delete" msgid "Delete"
msgstr "Suprimir" msgstr "Suprimir"
#: apps/note/tables.py:191 #: apps/note/tables.py:222 apps/note/templates/note/conso_form.html:132
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/tables.py:49 apps/wei/tables.py:50
#: apps/wei/templates/wei/base.html:89 #: apps/wei/templates/wei/base.html:89
#: apps/wei/templates/wei/bus_detail.html:20 #: apps/wei/templates/wei/bus_detail.html:20
@ -1611,7 +1595,7 @@ msgstr "Añadir en retorno"
msgid "Edit" msgid "Edit"
msgstr "Editar" msgstr "Editar"
#: apps/note/tables.py:266 apps/note/tables.py:293 #: apps/note/tables.py:226 apps/note/tables.py:253
msgid "Hide/Show" msgid "Hide/Show"
msgstr "Ocultar/Mostrar" msgstr "Ocultar/Mostrar"
@ -2317,7 +2301,7 @@ msgstr "proxys de transacciones especiales"
msgid "credit transaction" msgid "credit transaction"
msgstr "transacción de crédito" msgstr "transacción de crédito"
#: apps/treasury/models.py:431 #: apps/treasury/models.py:430
msgid "" msgid ""
"This user doesn't have enough money to pay the memberships with its note. " "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." "Please ask her/him to credit the note before invalidating this credit."
@ -2326,16 +2310,16 @@ msgstr ""
"afiliaciones. Por favor pídelo acreditar su note antes de invalidar este " "afiliaciones. Por favor pídelo acreditar su note antes de invalidar este "
"crédito." "crédito."
#: apps/treasury/models.py:452 #: apps/treasury/models.py:451
#: apps/treasury/templates/treasury/sogecredit_detail.html:10 #: apps/treasury/templates/treasury/sogecredit_detail.html:10
msgid "Credit from the Société générale" msgid "Credit from the Société générale"
msgstr "Crédito de la Société Générale" msgstr "Crédito de la Société Générale"
#: apps/treasury/models.py:453 #: apps/treasury/models.py:452
msgid "Credits from the Société générale" msgid "Credits from the Société générale"
msgstr "Créditos de la Société Générale" msgstr "Créditos de la Société Générale"
#: apps/treasury/models.py:456 #: apps/treasury/models.py:455
#, python-brace-format #, python-brace-format
msgid "Soge credit for {user}" msgid "Soge credit for {user}"
msgstr "Crédito de la Société Générale para {user}" msgstr "Crédito de la Société Générale para {user}"
@ -2628,7 +2612,7 @@ msgstr "Elegir los papeles que le interesa."
msgid "This team doesn't belong to the given bus." msgid "This team doesn't belong to the given bus."
msgstr "Este equipo no pertenece al bus dado." 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/wei2021.py:35 apps/wei/forms/surveys/wei2022.py:35
msgid "Choose a word:" msgid "Choose a word:"
msgstr "Elegir una palabra :" msgstr "Elegir una palabra :"

View File

@ -7,16 +7,16 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-07 09:07+0200\n" "POT-Creation-Date: 2020-11-15 23:21+0100\n"
"PO-Revision-Date: 2022-10-07 13:20+0200\n" "PO-Revision-Date: 2020-11-21 12:23+0100\n"
"Last-Translator: elkmaennchen <elkmaennchen@crans.org>\n"
"Language-Team: \n"
"Language: es\n" "Language: es\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0.1\n" "Last-Translator: elkmaennchen <elkmaennchen@crans.org>\n"
"Language-Team: \n"
"X-Generator: Poedit 2.3\n"
#: apps/member/static/member/js/alias.js:17 #: apps/member/static/member/js/alias.js:17
msgid "Alias successfully added" msgid "Alias successfully added"
@ -26,18 +26,6 @@ msgstr "Alias añadido con éxito"
msgid "Alias successfully deleted" msgid "Alias successfully deleted"
msgstr "Alias suprimido con éxito" 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 #: apps/note/static/note/js/consos.js:225
#, javascript-format #, javascript-format
msgid "" msgid ""
@ -56,29 +44,30 @@ msgstr ""
"Cuidado, la transacción de %s fue un éxito, pero la note %s está negativa." "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/consos.js:232
#: apps/note/static/note/js/transfer.js:309 #: apps/note/static/note/js/transfer.js:298
#: apps/note/static/note/js/transfer.js:412 #: apps/note/static/note/js/transfer.js:401
#, javascript-format #, javascript-format
msgid "Warning, the emitter note %s is no more a BDE member." 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." msgstr "Cuidado, la note remitente %s no está más miembro del BDE."
#: apps/note/static/note/js/consos.js:254 #: apps/note/static/note/js/consos.js:253
msgid "The transaction couldn't be validated because of insufficient balance." 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:249 #: apps/note/static/note/js/transfer.js:238
msgid "This field is required and must contain a decimal positive number." msgid "This field is required and must contain a decimal positive number."
msgstr "Este campo obligatorio requiere un número decimal positivo." msgstr "Este campo obligatorio requiere un número decimal positivo."
#: apps/note/static/note/js/transfer.js:256 #: apps/note/static/note/js/transfer.js:245
msgid "The amount must stay under 21,474,836.47 €." msgid "The amount must stay under 21,474,836.47 €."
msgstr "El monto no puede superar los 21 474 836,47 €." msgstr "El monto no puede superar los 21 474 836,47 €."
#: apps/note/static/note/js/transfer.js:262 #: apps/note/static/note/js/transfer.js:251
msgid "This field is required." msgid "This field is required."
msgstr "Este campo es obligatorio." msgstr "Este campo es obligatorio."
#: apps/note/static/note/js/transfer.js:288 #: apps/note/static/note/js/transfer.js:277
#, javascript-format #, javascript-format
msgid "" msgid ""
"Warning: the transaction of %s from %s to %s was not made because it is the " "Warning: the transaction of %s from %s to %s was not made because it is the "
@ -87,12 +76,12 @@ msgstr ""
"Cuidado : la transacción de %s de %s a %s no fue echa porque la fuente y el " "Cuidado : la transacción de %s de %s a %s no fue echa porque la fuente y el "
"destino son iguales." "destino son iguales."
#: apps/note/static/note/js/transfer.js:312 #: apps/note/static/note/js/transfer.js:301
#, javascript-format #, javascript-format
msgid "Warning, the destination note %s is no more a BDE member." 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." msgstr "Cuidado, la note destino %s no está más miembro del BDE."
#: apps/note/static/note/js/transfer.js:318 #: apps/note/static/note/js/transfer.js:307
#, javascript-format #, javascript-format
msgid "" msgid ""
"Warning, the transaction of %s from the note %s to the note %s succeed, but " "Warning, the transaction of %s from the note %s to the note %s succeed, but "
@ -101,7 +90,7 @@ msgstr ""
"Cuidado, la transacción de %s de la note %s a la note %s fue un éxito, pero " "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." "la note fuente %s está muy negativa."
#: apps/note/static/note/js/transfer.js:323 #: apps/note/static/note/js/transfer.js:312
#, javascript-format #, javascript-format
msgid "" msgid ""
"Warning, the transaction of %s from the note %s to the note %s succeed, but " "Warning, the transaction of %s from the note %s to the note %s succeed, but "
@ -110,31 +99,31 @@ msgstr ""
"Cuidado, la transacción de %s de la note %s a la note %s fue un éxito, pero " "Cuidado, la transacción de %s de la note %s a la note %s fue un éxito, pero "
"la note fuente %s está negativa." "la note fuente %s está negativa."
#: apps/note/static/note/js/transfer.js:329 #: apps/note/static/note/js/transfer.js:318
#, javascript-format #, javascript-format
msgid "Transfer of %s from %s to %s succeed!" msgid "Transfer of %s from %s to %s succeed!"
msgstr "¡ La transacción de %s de %s a %s fue un éxito !" msgstr "¡ La transacción de %s de %s a %s fue un éxito !"
#: apps/note/static/note/js/transfer.js:336 #: apps/note/static/note/js/transfer.js:325
#: apps/note/static/note/js/transfer.js:357 #: apps/note/static/note/js/transfer.js:346
#: apps/note/static/note/js/transfer.js:364 #: apps/note/static/note/js/transfer.js:353
#, javascript-format #, javascript-format
msgid "Transfer of %s from %s to %s failed: %s" msgid "Transfer of %s from %s to %s failed: %s"
msgstr "La transacción de %s de %s a %s fue un fracaso : %s" msgstr "La transacción de %s de %s a %s fue un fracaso : %s"
#: apps/note/static/note/js/transfer.js:358 #: apps/note/static/note/js/transfer.js:347
msgid "insufficient funds" msgid "insufficient funds"
msgstr "fundos insuficientes" msgstr "fundos insuficientes"
#: apps/note/static/note/js/transfer.js:411 #: apps/note/static/note/js/transfer.js:400
msgid "Credit/debit succeed!" msgid "Credit/debit succeed!"
msgstr "¡ Crédito/débito tubo éxito !" msgstr "¡ Crédito/débito tubo éxito !"
#: apps/note/static/note/js/transfer.js:418 #: apps/note/static/note/js/transfer.js:407
#, javascript-format #, javascript-format
msgid "Credit/debit failed: %s" msgid "Credit/debit failed: %s"
msgstr "Crédito/débito falló : %s" msgstr "Crédito/débito falló : %s"
#: note_kfet/static/js/base.js:370 #: note_kfet/static/js/base.js:366
msgid "An error occured while (in)validating this transaction:" msgid "An error occured while (in)validating this transaction:"
msgstr "Un error ocurrió durante la (in)validación de esta transacción :" msgstr "Un error ocurrió durante la (in)validación de esta transacción :"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-07 09:10+0200\n" "POT-Creation-Date: 2022-04-10 22:34+0200\n"
"PO-Revision-Date: 2022-04-11 22:05+0200\n" "PO-Revision-Date: 2022-04-11 22:05+0200\n"
"Last-Translator: elkmaennchen <elkmaennchen@crans.org>\n" "Last-Translator: elkmaennchen <elkmaennchen@crans.org>\n"
"Language-Team: French <http://translate.ynerant.fr/projects/nk20/nk20/fr/>\n" "Language-Team: French <http://translate.ynerant.fr/projects/nk20/nk20/fr/>\n"
@ -388,7 +388,7 @@ msgid "validate"
msgstr "valider" msgstr "valider"
#: apps/activity/templates/activity/includes/activity_info.html:71 #: apps/activity/templates/activity/includes/activity_info.html:71
#: apps/logs/models.py:64 apps/note/tables.py:260 #: apps/logs/models.py:64 apps/note/tables.py:220
msgid "edit" msgid "edit"
msgstr "modifier" msgstr "modifier"
@ -466,9 +466,9 @@ msgstr "nouvelles données"
msgid "create" msgid "create"
msgstr "créer" msgstr "créer"
#: apps/logs/models.py:65 apps/note/tables.py:230 apps/note/tables.py:277 #: apps/logs/models.py:65 apps/note/tables.py:166 apps/note/tables.py:190
#: apps/permission/models.py:127 apps/treasury/tables.py:38 #: apps/note/tables.py:237 apps/permission/models.py:127
#: apps/wei/tables.py:74 #: apps/treasury/tables.py:38 apps/wei/tables.py:74
msgid "delete" msgid "delete"
msgstr "supprimer" msgstr "supprimer"
@ -547,7 +547,7 @@ msgstr "Taille maximale : 2 Mo"
msgid "This image cannot be loaded." msgid "This image cannot be loaded."
msgstr "Cette image ne peut pas être chargée." msgstr "Cette image ne peut pas être chargée."
#: apps/member/forms.py:141 apps/member/views.py:102 #: apps/member/forms.py:141 apps/member/views.py:103
#: apps/registration/forms.py:33 apps/registration/views.py:262 #: apps/registration/forms.py:33 apps/registration/views.py:262
msgid "An alias with a similar name already exists." msgid "An alias with a similar name already exists."
msgstr "Un alias avec un nom similaire existe déjà." msgstr "Un alias avec un nom similaire existe déjà."
@ -924,7 +924,7 @@ msgid "Account #"
msgstr "Compte n°" msgstr "Compte n°"
#: apps/member/templates/member/base.html:48 #: apps/member/templates/member/base.html:48
#: apps/member/templates/member/base.html:62 apps/member/views.py:59 #: apps/member/templates/member/base.html:62 apps/member/views.py:60
#: apps/registration/templates/registration/future_profile_detail.html:48 #: apps/registration/templates/registration/future_profile_detail.html:48
#: apps/wei/templates/wei/weimembership_form.html:117 #: apps/wei/templates/wei/weimembership_form.html:117
msgid "Update Profile" msgid "Update Profile"
@ -1158,9 +1158,9 @@ msgstr "Cliquez ici pour renvoyer un lien de validation."
msgid "View my memberships" msgid "View my memberships"
msgstr "Voir mes adhésions" msgstr "Voir mes adhésions"
#: apps/member/templates/member/profile_trust.html:10 #: apps/member/templates/member/profile_trust.html:10 apps/member/views.py:254
msgid "Add friends" msgid "Note friendships"
msgstr "Ajouter des amis" msgstr "Amitiés note"
#: apps/member/templates/member/profile_trust.html:28 #: apps/member/templates/member/profile_trust.html:28
msgid "" msgid ""
@ -1175,10 +1175,6 @@ msgstr ""
"ami⋅es via note. En effet, une personne peut effectuer tous les transferts " "ami⋅es via note. En effet, une personne peut effectuer tous les transferts "
"sans posséder de droits supplémentaires." "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 #: apps/member/templates/member/profile_update.html:18
msgid "Save Changes" msgid "Save Changes"
msgstr "Sauvegarder les changements" msgstr "Sauvegarder les changements"
@ -1187,22 +1183,18 @@ msgstr "Sauvegarder les changements"
msgid "Registrations" msgid "Registrations"
msgstr "Inscriptions" msgstr "Inscriptions"
#: apps/member/views.py:72 apps/registration/forms.py:23 #: apps/member/views.py:73 apps/registration/forms.py:23
msgid "This address must be valid." msgid "This address must be valid."
msgstr "Cette adresse doit être valide." msgstr "Cette adresse doit être valide."
#: apps/member/views.py:139 #: apps/member/views.py:140
msgid "Profile detail" msgid "Profile detail"
msgstr "Détails de l'utilisateur" msgstr "Détails de l'utilisateur"
#: apps/member/views.py:205 #: apps/member/views.py:206
msgid "Search user" msgid "Search user"
msgstr "Chercher un utilisateur" msgstr "Chercher un utilisateur"
#: apps/member/views.py:253
msgid "Note friendships"
msgstr "Amitiés note"
#: apps/member/views.py:308 #: apps/member/views.py:308
msgid "Update note picture" msgid "Update note picture"
msgstr "Modifier la photo de la note" msgstr "Modifier la photo de la note"
@ -1587,8 +1579,8 @@ msgstr "Cliquez pour valider"
msgid "No reason specified" msgid "No reason specified"
msgstr "Pas de motif spécifié" msgstr "Pas de motif spécifié"
#: apps/note/tables.py:166 apps/note/tables.py:173 apps/note/tables.py:234 #: apps/note/tables.py:173 apps/note/tables.py:194 apps/note/tables.py:239
#: apps/note/tables.py:279 apps/treasury/tables.py:39 #: apps/treasury/tables.py:39
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:30 #: apps/treasury/templates/treasury/invoice_confirm_delete.html:30
#: apps/treasury/templates/treasury/sogecredit_detail.html:65 #: apps/treasury/templates/treasury/sogecredit_detail.html:65
#: apps/wei/tables.py:75 apps/wei/tables.py:118 #: apps/wei/tables.py:75 apps/wei/tables.py:118
@ -1599,15 +1591,7 @@ msgstr "Pas de motif spécifié"
msgid "Delete" msgid "Delete"
msgstr "Supprimer" msgstr "Supprimer"
#: apps/note/tables.py:191 #: apps/note/tables.py:222 apps/note/templates/note/conso_form.html:132
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/tables.py:49 apps/wei/tables.py:50
#: apps/wei/templates/wei/base.html:89 #: apps/wei/templates/wei/base.html:89
#: apps/wei/templates/wei/bus_detail.html:20 #: apps/wei/templates/wei/bus_detail.html:20
@ -1617,7 +1601,7 @@ msgstr "Ajouter"
msgid "Edit" msgid "Edit"
msgstr "Éditer" msgstr "Éditer"
#: apps/note/tables.py:266 apps/note/tables.py:293 #: apps/note/tables.py:226 apps/note/tables.py:253
msgid "Hide/Show" msgid "Hide/Show"
msgstr "Afficher/Masquer" msgstr "Afficher/Masquer"
@ -2325,7 +2309,7 @@ msgstr "proxys de transactions spéciales"
msgid "credit transaction" msgid "credit transaction"
msgstr "transaction de crédit" msgstr "transaction de crédit"
#: apps/treasury/models.py:431 #: apps/treasury/models.py:430
msgid "" msgid ""
"This user doesn't have enough money to pay the memberships with its note. " "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." "Please ask her/him to credit the note before invalidating this credit."
@ -2333,16 +2317,16 @@ msgstr ""
"Cet utilisateur n'a pas assez d'argent pour payer les adhésions avec sa " "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." "note. Merci de lui demander de recharger sa note avant d'invalider ce crédit."
#: apps/treasury/models.py:452 #: apps/treasury/models.py:451
#: apps/treasury/templates/treasury/sogecredit_detail.html:10 #: apps/treasury/templates/treasury/sogecredit_detail.html:10
msgid "Credit from the Société générale" msgid "Credit from the Société générale"
msgstr "Crédit de la Société générale" msgstr "Crédit de la Société générale"
#: apps/treasury/models.py:453 #: apps/treasury/models.py:452
msgid "Credits from the Société générale" msgid "Credits from the Société générale"
msgstr "Crédits de la Société générale" msgstr "Crédits de la Société générale"
#: apps/treasury/models.py:456 #: apps/treasury/models.py:455
#, python-brace-format #, python-brace-format
msgid "Soge credit for {user}" msgid "Soge credit for {user}"
msgstr "Crédit de la société générale pour l'utilisateur {user}" msgstr "Crédit de la société générale pour l'utilisateur {user}"
@ -2640,7 +2624,7 @@ msgstr "Sélectionnez les rôles qui vous intéressent."
msgid "This team doesn't belong to the given bus." msgid "This team doesn't belong to the given bus."
msgstr "Cette équipe n'appartient pas à ce bus." msgstr "Cette équipe n'appartient pas à ce bus."
#: apps/wei/forms/surveys/wei2021.py:35 apps/wei/forms/surveys/wei2022.py:38 #: apps/wei/forms/surveys/wei2021.py:35 apps/wei/forms/surveys/wei2022.py:35
msgid "Choose a word:" msgid "Choose a word:"
msgstr "Choisissez un mot :" msgstr "Choisissez un mot :"

View File

@ -3,11 +3,12 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-07 09:07+0200\n" "POT-Creation-Date: 2020-11-15 23:21+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -25,18 +26,6 @@ msgstr "Alias ajouté avec succès"
msgid "Alias successfully deleted" msgid "Alias successfully deleted"
msgstr "Alias supprimé avec succès" msgstr "Alias supprimé avec succès"
#: 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
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 #: apps/note/static/note/js/consos.js:225
#, javascript-format #, javascript-format
msgid "" msgid ""
@ -56,31 +45,31 @@ msgstr ""
"la note émettrice %s est en négatif." "la note émettrice %s est en négatif."
#: apps/note/static/note/js/consos.js:232 #: apps/note/static/note/js/consos.js:232
#: apps/note/static/note/js/transfer.js:309 #: apps/note/static/note/js/transfer.js:298
#: apps/note/static/note/js/transfer.js:412 #: apps/note/static/note/js/transfer.js:401
#, javascript-format #, javascript-format
msgid "Warning, the emitter note %s is no more a BDE member." msgid "Warning, the emitter note %s is no more a BDE member."
msgstr "Attention, la note émettrice %s n'est plus adhérente." msgstr "Attention, la note émettrice %s n'est plus adhérente."
#: apps/note/static/note/js/consos.js:254 #: apps/note/static/note/js/consos.js:253
msgid "The transaction couldn't be validated because of insufficient balance." msgid "The transaction couldn't be validated because of insufficient balance."
msgstr "" msgstr ""
"La transaction n'a pas pu être validée pour cause de solde insuffisant." "La transaction n'a pas pu être validée pour cause de solde insuffisant."
#: apps/note/static/note/js/transfer.js:249 #: apps/note/static/note/js/transfer.js:238
msgid "This field is required and must contain a decimal positive number." msgid "This field is required and must contain a decimal positive number."
msgstr "" msgstr ""
"Ce champ est requis et doit comporter un nombre décimal strictement positif." "Ce champ est requis et doit comporter un nombre décimal strictement positif."
#: apps/note/static/note/js/transfer.js:256 #: apps/note/static/note/js/transfer.js:245
msgid "The amount must stay under 21,474,836.47 €." msgid "The amount must stay under 21,474,836.47 €."
msgstr "Le montant ne doit pas excéder 21 474 836.47 €." msgstr "Le montant ne doit pas excéder 21 474 836.47 €."
#: apps/note/static/note/js/transfer.js:262 #: apps/note/static/note/js/transfer.js:251
msgid "This field is required." msgid "This field is required."
msgstr "Ce champ est requis." msgstr "Ce champ est requis."
#: apps/note/static/note/js/transfer.js:288 #: apps/note/static/note/js/transfer.js:277
#, javascript-format #, javascript-format
msgid "" msgid ""
"Warning: the transaction of %s from %s to %s was not made because it is the " "Warning: the transaction of %s from %s to %s was not made because it is the "
@ -89,12 +78,12 @@ msgstr ""
"Attention : la transaction de %s de la note %s vers la note %s n'a pas été " "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." "faite car il s'agit de la même note au départ et à l'arrivée."
#: apps/note/static/note/js/transfer.js:312 #: apps/note/static/note/js/transfer.js:301
#, javascript-format #, javascript-format
msgid "Warning, the destination note %s is no more a BDE member." msgid "Warning, the destination note %s is no more a BDE member."
msgstr "Attention, la note de destination %s n'est plus adhérente." msgstr "Attention, la note de destination %s n'est plus adhérente."
#: apps/note/static/note/js/transfer.js:318 #: apps/note/static/note/js/transfer.js:307
#, javascript-format #, javascript-format
msgid "" msgid ""
"Warning, the transaction of %s from the note %s to the note %s succeed, but " "Warning, the transaction of %s from the note %s to the note %s succeed, but "
@ -103,7 +92,7 @@ msgstr ""
"Attention, La transaction de %s depuis la note %s vers la note %s a été " "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." "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:323 #: apps/note/static/note/js/transfer.js:312
#, javascript-format #, javascript-format
msgid "" msgid ""
"Warning, the transaction of %s from the note %s to the note %s succeed, but " "Warning, the transaction of %s from the note %s to the note %s succeed, but "
@ -112,33 +101,33 @@ msgstr ""
"Attention, La transaction de %s depuis la note %s vers la note %s a été " "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." "réalisée avec succès, mais la note émettrice %s est en négatif."
#: apps/note/static/note/js/transfer.js:329 #: apps/note/static/note/js/transfer.js:318
#, javascript-format #, javascript-format
msgid "Transfer of %s from %s to %s succeed!" msgid "Transfer of %s from %s to %s succeed!"
msgstr "" msgstr ""
"Le transfert de %s de la note %s vers la note %s a été fait avec succès !" "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:336 #: apps/note/static/note/js/transfer.js:325
#: apps/note/static/note/js/transfer.js:357 #: apps/note/static/note/js/transfer.js:346
#: apps/note/static/note/js/transfer.js:364 #: apps/note/static/note/js/transfer.js:353
#, javascript-format #, javascript-format
msgid "Transfer of %s from %s to %s failed: %s" 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" msgstr "Le transfert de %s de la note %s vers la note %s a échoué : %s"
#: apps/note/static/note/js/transfer.js:358 #: apps/note/static/note/js/transfer.js:347
msgid "insufficient funds" msgid "insufficient funds"
msgstr "solde insuffisant" msgstr "solde insuffisant"
#: apps/note/static/note/js/transfer.js:411 #: apps/note/static/note/js/transfer.js:400
msgid "Credit/debit succeed!" msgid "Credit/debit succeed!"
msgstr "Le crédit/retrait a bien été effectué !" msgstr "Le crédit/retrait a bien été effectué !"
#: apps/note/static/note/js/transfer.js:418 #: apps/note/static/note/js/transfer.js:407
#, javascript-format #, javascript-format
msgid "Credit/debit failed: %s" msgid "Credit/debit failed: %s"
msgstr "Le crédit/retrait a échoué : %s" msgstr "Le crédit/retrait a échoué : %s"
#: note_kfet/static/js/base.js:370 #: note_kfet/static/js/base.js:366
msgid "An error occured while (in)validating this transaction:" msgid "An error occured while (in)validating this transaction:"
msgstr "" msgstr ""
"Une erreur est survenue lors de la validation/dévalidation de cette " "Une erreur est survenue lors de la validation/dévalidation de cette "

View File

@ -252,7 +252,7 @@ REST_FRAMEWORK = {
'rest_framework.authentication.TokenAuthentication', 'rest_framework.authentication.TokenAuthentication',
'oauth2_provider.contrib.rest_framework.OAuth2Authentication', 'oauth2_provider.contrib.rest_framework.OAuth2Authentication',
], ],
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'DEFAULT_PAGINATION_CLASS': 'apps.api.pagination.CustomPagination',
'PAGE_SIZE': 20, 'PAGE_SIZE': 20,
} }

72
note_kfet/static/css/custom.css Normal file → Executable file
View File

@ -65,7 +65,10 @@ mark {
/* Last BDE colors */ /* Last BDE colors */
.bg-primary { .bg-primary {
background-color: rgb(102, 83, 105) !important; /* background-color: rgb(18, 67, 4) !important; */
/* MODE VIEUXCON=ON */
/* background-color: rgb(166, 0, 2) !important; */
background-color: rgb(0, 0, 0) !important;
} }
html { html {
@ -80,15 +83,15 @@ body {
.btn-outline-primary:hover, .btn-outline-primary:hover,
.btn-outline-primary:not(:disabled):not(.disabled).active, .btn-outline-primary:not(:disabled):not(.disabled).active,
.btn-outline-primary:not(:disabled):not(.disabled):active { .btn-outline-primary:not(:disabled):not(.disabled):active {
color: #fff; color: rgb(241, 229, 52);
background-color: rgb(102, 83, 105); background-color: rgb(228, 35, 132);
border-color: rgb(102, 83, 105); border-color: rgb(228, 35, 132);
} }
.btn-outline-primary { .btn-outline-primary {
color: rgb(102, 83, 105); color: #fff;
background-color: rgba(248, 249, 250, 0.9); background-color: #000;
border-color: rgb(102, 83, 105); border-color: #464647;
} }
.turbolinks-progress-bar { .turbolinks-progress-bar {
@ -98,36 +101,63 @@ body {
.btn-primary:hover, .btn-primary:hover,
.btn-primary:not(:disabled):not(.disabled).active, .btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active { .btn-primary:not(:disabled):not(.disabled):active {
color: #fff; color: rgb(241, 229, 52);
background-color: rgb(102, 83, 105); background-color: rgb(228, 35, 132);
border-color: rgb(102, 83, 105); border-color: rgb(228, 35, 132);
} }
.btn-primary { .btn-primary {
color: rgba(248, 249, 250, 0.9); color: #fff;
background-color: rgb(102, 83, 105); background-color: #000;
border-color: rgb(102, 83, 105); border-color: #adb5bd;
} }
.border-primary { .border-primary {
border-color: rgb(115, 15, 115) !important; border-color: rgb(228, 35, 132) !important;
} }
.btn-secondary {
color: #fff;
background-color: #000;
border-color: #adb5bd;
}
.btn-secondary:hover,
.btn-secondary:not(:disabled):not(.disabled).active,
.btn-secondary:not(:disabled):not(.disabled):active {
color: rgb(241, 229, 52);
background-color: rgb(228, 35, 132);
border-color: rgb(228, 35, 132);
}
.btn-outline-dark {
color: #343a40;
border-color: #343a40;
}
.btn-outline-dark:hover,
.btn-outline-dark:not(:disabled):not(.disabled).active,
.btn-outline-dark:not(:disabled):not(.disabled):active {
color: rgb(241, 229, 52);
background-color: rgb(228, 35, 132);
border-color: rgb(228, 35, 132);
}
a { a {
color: rgb(102, 83, 105); color: rgb(228, 35, 132);
} }
a:hover { a:hover {
color: rgb(200, 30, 200); color: rgb(228, 35, 132);
} }
.form-control:focus { .form-control:focus {
box-shadow: 0 0 0 0.25rem rgba(200, 30, 200, 0.25); box-shadow: 0 0 0 0.25rem rgb(228 35 132 / 50%);
border-color: rgb(200, 30, 200); border-color: rgb(228, 35, 132);
} }
.btn-outline-primary.focus { .btn-outline-primary.focus {
box-shadow: 0 0 0 0.25rem rgba(200, 30, 200, 0.5); box-shadow: 0 0 0 0.25rem rgb(228 35 132 / 10%);
} }

View File

@ -1,5 +1,3 @@
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 () { $(document).ready(function () {
$('.autocomplete').keyup(function (e) { $('.autocomplete').keyup(function (e) {
const target = $('#' + e.target.id) const target = $('#' + e.target.id)
@ -12,6 +10,7 @@ $(document).ready(function () {
const input = target.val() const input = target.val()
target.addClass('is-invalid') target.addClass('is-invalid')
target.removeClass('is-valid') target.removeClass('is-valid')
$('#' + prefix + '_reset').removeClass('d-none')
$.getJSON(api_url + (api_url.includes('?') ? '&' : '?') + 'format=json&search=^' + input + api_url_suffix, function (objects) { $.getJSON(api_url + (api_url.includes('?') ? '&' : '?') + 'format=json&search=^' + input + api_url_suffix, function (objects) {
let html = '<ul class="list-group list-group-flush" id="' + prefix + '_list">' let html = '<ul class="list-group list-group-flush" id="' + prefix + '_list">'
@ -42,14 +41,11 @@ $(document).ready(function () {
if (typeof autocompleted !== 'undefined') { autocompleted(obj, prefix) } if (typeof autocompleted !== 'undefined') { autocompleted(obj, prefix) }
}) })
if (input === obj[name_field]) { $('#' + prefix + '_pk').val(obj.id) }
}) })
if (objects.results.length >= 2) { if (objects.results.length === 1 && e.originalEvent.keyCode >= 32) {
$('#' + prefix + '_pk').val(objects.results[0].id)
}
if (objects.results.length === 1 &&
(keycodes.includes(e.originalEvent.keyCode) ||
input === objects.results[0][name_field])) {
$('#' + prefix + '_' + objects.results[0].id).trigger('click') $('#' + prefix + '_' + objects.results[0].id).trigger('click')
} }
}) })
@ -59,6 +55,7 @@ $(document).ready(function () {
const name = $(this).attr('id').replace('_reset', '') const name = $(this).attr('id').replace('_reset', '')
$('#' + name + '_pk').val('') $('#' + name + '_pk').val('')
$('#' + name).val('') $('#' + name).val('')
$('#' + name).tooltip('hide') $('#' + name + '_list').html('')
$(this).addClass('d-none')
}) })
}) })

View File

@ -12,6 +12,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
{% endfor %} {% endfor %}
aria-describedby="{{widget.attrs.id}}_tooltip"> aria-describedby="{{widget.attrs.id}}_tooltip">
{% if widget.resetable %} {% if widget.resetable %}
<a id="{{ widget.attrs.id }}_reset" class="btn btn-light autocomplete-reset">{% trans "Reset" %}</a> <a id="{{ widget.attrs.id }}_reset" class="btn btn-light autocomplete-reset{% if not widget.value %} d-none{% endif %}">{% trans "Reset" %}</a>
{% endif %} {% endif %}

View File

@ -17,3 +17,6 @@ django-tables2~=2.3.1
python-memcached~=1.59 python-memcached~=1.59
phonenumbers~=8.9.10 phonenumbers~=8.9.10
Pillow>=5.4.1 Pillow>=5.4.1
oauthlib<3.2.1
lxml<4.9.2
zipp>=2.0.0,<2.0.1

View File

@ -16,7 +16,7 @@ skipsdist = True
sitepackages = True sitepackages = True
deps = deps =
-r{toxinidir}/requirements.txt -r{toxinidir}/requirements.txt
coverage coverage<6.5.0
commands = commands =
coverage run --omit='apps/scripts*,*_example.py,note_kfet/wsgi.py' --source=apps,note_kfet ./manage.py test apps/ coverage run --omit='apps/scripts*,*_example.py,note_kfet/wsgi.py' --source=apps,note_kfet ./manage.py test apps/
coverage report -m coverage report -m