Translate app to french (no i18n)
This commit is contained in:
parent
9718496a31
commit
da56f1641f
13 changed files with 51 additions and 49 deletions
|
@ -9,7 +9,7 @@ urlpatterns = [
|
||||||
{
|
{
|
||||||
'template_name': 'authentication/auth_form.html',
|
'template_name': 'authentication/auth_form.html',
|
||||||
'extra_context': {
|
'extra_context': {
|
||||||
'title': 'Login',
|
'title': 'Connexion',
|
||||||
'action': 'Login'
|
'action': 'Login'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -27,7 +27,7 @@ urlpatterns = [
|
||||||
{
|
{
|
||||||
'template_name': 'authentication/auth_form.html',
|
'template_name': 'authentication/auth_form.html',
|
||||||
'extra_context': {
|
'extra_context': {
|
||||||
'title': 'Change password',
|
'title': 'Modifier le mot de passe',
|
||||||
'action': 'Change password'
|
'action': 'Change password'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -3,5 +3,5 @@ from django.contrib import messages
|
||||||
|
|
||||||
|
|
||||||
def password_change_done(request):
|
def password_change_done(request):
|
||||||
messages.success(request, "Password changed successfully")
|
messages.success(request, "Mot de passe modifié avec succès")
|
||||||
return render(request, 'refunds/home.html')
|
return render(request, 'refunds/home.html')
|
||||||
|
|
|
@ -9,7 +9,7 @@ class RefundForm(forms.ModelForm):
|
||||||
model = Refund
|
model = Refund
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
payments = forms.ModelMultipleChoiceField(queryset=Payment.objects.none())
|
payments = forms.ModelMultipleChoiceField(queryset=Payment.objects.none(), label='Paiements')
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(RefundForm, self).__init__(*args, **kwargs)
|
super(RefundForm, self).__init__(*args, **kwargs)
|
||||||
|
|
|
@ -9,14 +9,19 @@ AUTH_USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User')
|
||||||
|
|
||||||
|
|
||||||
class Refund(models.Model):
|
class Refund(models.Model):
|
||||||
title = models.CharField(max_length=100)
|
class Meta:
|
||||||
|
verbose_name = 'remboursement'
|
||||||
|
verbose_name_plural = 'remboursements'
|
||||||
|
|
||||||
|
title = models.CharField(max_length=100, verbose_name='titre')
|
||||||
date = models.DateField()
|
date = models.DateField()
|
||||||
created_at = models.DateTimeField(auto_now_add=True)
|
created_at = models.DateTimeField(auto_now_add=True)
|
||||||
updated_at = models.DateTimeField(auto_now=True)
|
updated_at = models.DateTimeField(auto_now=True)
|
||||||
user = models.ForeignKey(
|
user = models.ForeignKey(
|
||||||
AUTH_USER_MODEL,
|
AUTH_USER_MODEL,
|
||||||
on_delete=models.PROTECT,
|
on_delete=models.PROTECT,
|
||||||
null=True
|
null=True,
|
||||||
|
verbose_name='utilisateur'
|
||||||
)
|
)
|
||||||
|
|
||||||
def eur_value(self) -> float:
|
def eur_value(self) -> float:
|
||||||
|
@ -27,28 +32,34 @@ class Refund(models.Model):
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
return "{0} on {1} for {2:.2f}".format(self.title, self.date, self.eur_value())
|
return "{0} le {1} pour {2:.2f}".format(self.title, self.date, self.eur_value())
|
||||||
|
|
||||||
|
|
||||||
class Payment(models.Model):
|
class Payment(models.Model):
|
||||||
title = models.CharField(max_length=100)
|
class Meta:
|
||||||
|
verbose_name = 'paiement'
|
||||||
|
verbose_name_plural = 'paiements'
|
||||||
|
|
||||||
|
title = models.CharField(max_length=100, verbose_name='titre')
|
||||||
date = models.DateField()
|
date = models.DateField()
|
||||||
value = models.IntegerField()
|
value = models.IntegerField(verbose_name='valeur')
|
||||||
created_at = models.DateTimeField(auto_now_add=True)
|
created_at = models.DateTimeField(auto_now_add=True)
|
||||||
updated_at = models.DateTimeField(auto_now=True)
|
updated_at = models.DateTimeField(auto_now=True)
|
||||||
user = models.ForeignKey(
|
user = models.ForeignKey(
|
||||||
AUTH_USER_MODEL,
|
AUTH_USER_MODEL,
|
||||||
on_delete=models.PROTECT
|
on_delete=models.PROTECT,
|
||||||
|
verbose_name='utilisateur'
|
||||||
)
|
)
|
||||||
refund = models.ForeignKey(
|
refund = models.ForeignKey(
|
||||||
Refund,
|
Refund,
|
||||||
on_delete=models.SET_NULL,
|
on_delete=models.SET_NULL,
|
||||||
null=True,
|
null=True,
|
||||||
blank=True
|
blank=True,
|
||||||
|
verbose_name='remboursement'
|
||||||
)
|
)
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
s = '{0} on {1} for {2:.2f}'.format(self.title, self.date, self.value / 100)
|
s = '{0} le {1} pour {2:.2f}'.format(self.title, self.date, self.value / 100)
|
||||||
logger.error(s)
|
logger.error(s)
|
||||||
return s
|
return s
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,6 @@
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<p>
|
<p>
|
||||||
{% firstof default_nothing "Nothing here..." %}
|
{% firstof default_nothing "Il n'y a rien ici..." %}
|
||||||
</p>
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>
|
<h1>
|
||||||
{% block title %}Payments to refund{% endblock %}
|
{% block title %}Paiements à rembourser{% endblock %}
|
||||||
{% if user.is_authenticated and perms.refunding.add_payment %}
|
{% if user.is_authenticated and perms.refunding.add_payment %}
|
||||||
<div class="btn-group pull-right">
|
<div class="btn-group pull-right">
|
||||||
<a class="btn btn-success" href="{% url 'new_payment' %}">
|
<a class="btn btn-success" href="{% url 'new_payment' %}">
|
||||||
|
@ -13,5 +13,5 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</h1>
|
</h1>
|
||||||
{% include 'refunding/elements_list.html' with elements=payments %}
|
{% include 'refunding/elements_list.html' with elements=payments %}
|
||||||
<a href="{% url 'already_refunded_payments' %}">Only refunded payments</a>
|
<a href="{% url 'already_refunded_payments' %}">Afficher uniquement les paiements déjà remboursés</a>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -3,8 +3,8 @@
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>
|
<h1>
|
||||||
{% block title %}Refunded payments{% endblock %}
|
{% block title %}Paiements remboursés{% endblock %}
|
||||||
</h1>
|
</h1>
|
||||||
{% include 'refunding/elements_list.html' with elements=refunded %}
|
{% include 'refunding/elements_list.html' with elements=refunded %}
|
||||||
<a href="{% url 'not_refunded_payments' %}">Only not refunded payments</a>
|
<a href="{% url 'not_refunded_payments' %}">Afficher uniquement les paiements non remboursés</a>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>
|
<h1>
|
||||||
{% block title %}Latest refunds{% endblock %}
|
{% block title %}Derniers remboursements{% endblock %}
|
||||||
{% if user.is_authenticated and perms.refunding.add_refund %}
|
{% if user.is_authenticated and perms.refunding.add_refund %}
|
||||||
<div class="btn-group pull-right">
|
<div class="btn-group pull-right">
|
||||||
<a class="btn btn-success" href="{% url 'new_refund' %}">
|
<a class="btn btn-success" href="{% url 'new_refund' %}">
|
||||||
|
|
|
@ -16,7 +16,7 @@ def latest_refunds(request):
|
||||||
refunds = Refund.objects.all().order_by('-date', '-id')[:20]
|
refunds = Refund.objects.all().order_by('-date', '-id')[:20]
|
||||||
context = {
|
context = {
|
||||||
'refunds': refunds,
|
'refunds': refunds,
|
||||||
'default_nothing': 'No refund to show.'
|
'default_nothing': 'Aucun remboursement à afficher.'
|
||||||
}
|
}
|
||||||
return render(request, "refunding/refunds.html", context)
|
return render(request, "refunding/refunds.html", context)
|
||||||
|
|
||||||
|
@ -31,14 +31,14 @@ def new_refund(request):
|
||||||
refund.user = request.user
|
refund.user = request.user
|
||||||
refund.save()
|
refund.save()
|
||||||
|
|
||||||
messages.success(request, 'Refund created successfully')
|
messages.success(request, 'Remboursement créé avec succès')
|
||||||
return redirect('latest_refunds')
|
return redirect('latest_refunds')
|
||||||
else:
|
else:
|
||||||
form = RefundFormPublic()
|
form = RefundFormPublic()
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
'form': form,
|
'form': form,
|
||||||
'title': 'New refund'
|
'title': 'Nouveau remboursement'
|
||||||
}
|
}
|
||||||
|
|
||||||
return render(request, "refunding/refund_payment_detail.html", context)
|
return render(request, "refunding/refund_payment_detail.html", context)
|
||||||
|
@ -56,14 +56,14 @@ def refund_edit(request, pk):
|
||||||
refund.user = request.user
|
refund.user = request.user
|
||||||
refund.save()
|
refund.save()
|
||||||
|
|
||||||
messages.success(request, 'Refund edited successfully')
|
messages.success(request, 'Remboursement modifié avec succès')
|
||||||
return redirect('latest_refunds')
|
return redirect('latest_refunds')
|
||||||
else:
|
else:
|
||||||
form = RefundFormPublic(instance=refund)
|
form = RefundFormPublic(instance=refund)
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
'form': form,
|
'form': form,
|
||||||
'title': 'Edit refund',
|
'title': 'Modifier un remboursement',
|
||||||
'refund': refund
|
'refund': refund
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ def refund_delete(request, pk):
|
||||||
|
|
||||||
refund.delete()
|
refund.delete()
|
||||||
|
|
||||||
messages.success(request, "Refund deleted successfully")
|
messages.success(request, "Remboursement supprimé avec succès")
|
||||||
|
|
||||||
return latest_refunds(request)
|
return latest_refunds(request)
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ def not_refunded_payments(request):
|
||||||
context = {
|
context = {
|
||||||
'payments': payments,
|
'payments': payments,
|
||||||
'sum': value_sum,
|
'sum': value_sum,
|
||||||
'default_nothing': 'Nothing to refund :)'
|
'default_nothing': 'Rien à rembourser :)'
|
||||||
}
|
}
|
||||||
return render(request, "refunding/payments.html", context)
|
return render(request, "refunding/payments.html", context)
|
||||||
|
|
||||||
|
@ -114,14 +114,14 @@ def new_payment(request):
|
||||||
payment.user = request.user
|
payment.user = request.user
|
||||||
payment.save()
|
payment.save()
|
||||||
|
|
||||||
messages.success(request, 'Payment created successfully')
|
messages.success(request, 'Paiement créé avec succès')
|
||||||
return redirect('not_refunded_payments')
|
return redirect('not_refunded_payments')
|
||||||
else:
|
else:
|
||||||
form = PaymentForm()
|
form = PaymentForm()
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
'form': form,
|
'form': form,
|
||||||
'title': 'New payment'
|
'title': 'Nouveau paiement'
|
||||||
}
|
}
|
||||||
|
|
||||||
return render(request, "refunding/refund_payment_detail.html", context)
|
return render(request, "refunding/refund_payment_detail.html", context)
|
||||||
|
@ -139,14 +139,14 @@ def payment_edit(request, pk):
|
||||||
payment.user = request.user
|
payment.user = request.user
|
||||||
payment.save()
|
payment.save()
|
||||||
|
|
||||||
messages.success(request, 'Payment edited successfully')
|
messages.success(request, 'Paiement modifié avec succès')
|
||||||
return redirect('not_refunded_payments')
|
return redirect('not_refunded_payments')
|
||||||
else:
|
else:
|
||||||
form = PaymentForm(instance=payment)
|
form = PaymentForm(instance=payment)
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
'form': form,
|
'form': form,
|
||||||
'title': 'Edit payment',
|
'title': 'Modifier un paiement',
|
||||||
'payment': payment
|
'payment': payment
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -160,7 +160,7 @@ def payment_delete(request, pk):
|
||||||
|
|
||||||
payment.delete()
|
payment.delete()
|
||||||
|
|
||||||
messages.success(request, "Payment deleted successfully")
|
messages.success(request, "Paiement supprimé avec succès")
|
||||||
|
|
||||||
return not_refunded_payments(request)
|
return not_refunded_payments(request)
|
||||||
|
|
||||||
|
@ -177,6 +177,6 @@ def already_refunded_payments(request):
|
||||||
context = {
|
context = {
|
||||||
'refunded': refunded,
|
'refunded': refunded,
|
||||||
'sum': value_sum,
|
'sum': value_sum,
|
||||||
'default_nothing': 'No refunded payment :)'
|
'default_nothing': 'Aucun paiement remboursé :)'
|
||||||
}
|
}
|
||||||
return render(request, "refunding/refunded_payments.html", context)
|
return render(request, "refunding/refunded_payments.html", context)
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
{% extends 'base.html' %}
|
|
||||||
|
|
||||||
{% block title %}About{% endblock %}
|
|
||||||
{% block content %}
|
|
||||||
<h1>About</h1>
|
|
||||||
<p>This page is under construct and will be updated as soon as possible.</p>
|
|
||||||
{% endblock %}
|
|
|
@ -3,11 +3,11 @@
|
||||||
{% block title %}Home{% endblock %}
|
{% block title %}Home{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>Refunds</h1>
|
<h1>Refunds</h1>
|
||||||
<p class="lead">Welcome to my refund app!</p>
|
<p class="lead">Bienvenue sur mon application de remboursements !</p>
|
||||||
{% if not user.is_authenticated %}
|
{% if not user.is_authenticated %}
|
||||||
<p>You may want to start by <a href="{% url 'auth_login' %}">logging in</a>.</p>
|
<p>Vous voudrez peut-être commencer par <a href="{% url 'auth_login' %}">vous connecter</a>.</p>
|
||||||
{% else %}
|
{% else %}
|
||||||
<p>Start by adding a <a href="{% url 'new_payment' %}">new payment</a> or <a href="{% url 'new_refund' %}">refunding</a>
|
<p>Commencez par ajouter un <a href="{% url 'new_payment' %}">nouveau paiement</a> ou par <a href="{% url 'new_refund' %}">rembourser</a>
|
||||||
some existing payments!</p>
|
des paiements existants</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -21,6 +21,5 @@ urlpatterns = [
|
||||||
url(r'^admin/', admin.site.urls),
|
url(r'^admin/', admin.site.urls),
|
||||||
url(r'^auth/', include('authentication.urls')),
|
url(r'^auth/', include('authentication.urls')),
|
||||||
url(r'^$', home, name='home'),
|
url(r'^$', home, name='home'),
|
||||||
url(r'^about/$', about, name='about'),
|
|
||||||
url(r'^', include('refunding.urls'))
|
url(r'^', include('refunding.urls'))
|
||||||
]
|
]
|
||||||
|
|
|
@ -15,15 +15,14 @@
|
||||||
<!-- Collect the nav links, forms, and other content for toggling -->
|
<!-- Collect the nav links, forms, and other content for toggling -->
|
||||||
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
||||||
<ul class="nav navbar-nav">
|
<ul class="nav navbar-nav">
|
||||||
<li><a href="{% url 'about' %}">About</a></li>
|
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
<li><a href="{% url 'not_refunded_payments' %}">Payments</a></li>
|
<li><a href="{% url 'not_refunded_payments' %}">Paiements</a></li>
|
||||||
<li><a href="{% url 'latest_refunds' %}">Refunds</a></li>
|
<li><a href="{% url 'latest_refunds' %}">Remboursements</a></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="nav navbar-nav navbar-right">
|
<ul class="nav navbar-nav navbar-right">
|
||||||
{% if not user.is_authenticated %}
|
{% if not user.is_authenticated %}
|
||||||
<li><a href="{% url 'auth_login' %}?next={{ request.path }}">Login</a></li>
|
<li><a href="{% url 'auth_login' %}?next={{ request.path }}">Connexion</a></li>
|
||||||
{% else %}
|
{% else %}
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
|
||||||
|
@ -34,9 +33,9 @@
|
||||||
{% if user.is_staff %}
|
{% if user.is_staff %}
|
||||||
<li><a href="{% url 'admin:index' %}">Admin</a></li>
|
<li><a href="{% url 'admin:index' %}">Admin</a></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li><a href="{% url 'password_change' %}">Change password</a></li>
|
<li><a href="{% url 'password_change' %}">Modifier le mot de passe</a></li>
|
||||||
<li role="separator" class="divider"></li>
|
<li role="separator" class="divider"></li>
|
||||||
<li><a href="{% url 'auth_logout' %}?next={{ request.path }}">Logout</a></li>
|
<li><a href="{% url 'auth_logout' %}?next={{ request.path }}">Déconnexion</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
Loading…
Reference in a new issue