8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-08-20 06:03:40 +00:00

Traduction + utilisation du mixin de revision

This commit is contained in:
Hugo LEVY-FALK 2018-07-26 21:53:32 +02:00 committed by Gabriel Detraz
parent 2599a503ac
commit 0cc15d63c8
9 changed files with 108 additions and 39 deletions

View file

@ -67,7 +67,7 @@ class ServiceAdmin(VersionAdmin):
class MailContactAdmin(VersionAdmin):
"""Class admin gestion des adresses mail de contact"""
"""Admin class for contact email adresses"""
pass

View file

@ -27,6 +27,8 @@ from __future__ import unicode_literals
from django.forms import ModelForm, Form
from django import forms
from re2o.mixins import FormRevMixin
from .models import (
OptionalUser,
OptionalMachine,
@ -229,8 +231,8 @@ class DelServiceForm(Form):
else:
self.fields['services'].queryset = Service.objects.all()
class MailContactForm(ModelForm):
"""Edition, ajout d'adresse de contact"""
class MailContactForm(FormRevMixin, ModelForm):
"""Edit and add contact email adress"""
class Meta:
model = MailContact
fields = '__all__'
@ -241,7 +243,7 @@ class MailContactForm(ModelForm):
class DelMailContactForm(Form):
"""Suppression d'adresse de contact"""
"""Delete contact email adress"""
mailcontacts = forms.ModelMultipleChoiceField(
queryset=MailContact.objects.none(),
label="Enregistrements adresses actuels",

Binary file not shown.

View file

@ -0,0 +1,70 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-07-26 21:49+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: models.py:256
msgid "Contact email adress"
msgstr "Adresse email de contact"
#: models.py:263
msgid "Description of the associated email adress."
msgstr "Description de l'adresse mail associée."
#: models.py:273
msgid "Can see contact email"
msgstr "Peut voir un mail de contact"
#: templates/preferences/aff_mailcontact.html:30
msgid "Adress"
msgstr "Adresse"
#: templates/preferences/aff_mailcontact.html:31
msgid "Remark"
msgstr "Commentaire"
#: templates/preferences/display_preferences.html:205
msgid "Contact email adresses list"
msgstr "Liste des adresses email de contact"
#: templates/preferences/display_preferences.html:207
msgid "Add an adress"
msgstr "Ajouter une adresse"
#: templates/preferences/display_preferences.html:209
msgid "Delete one or multiple adresses"
msgstr "Supprimer une ou plusieurs adresses"
#: views.py:210
msgid "The adress was created."
msgstr "L'adresse a été créée."
#: views.py:230
msgid "Email adress updated."
msgstr "L'adresse email a été mise à jour."
#: views.py:233
msgid "Edit"
msgstr "Éditer"
#: views.py:251
msgid "The email adress was deleted."
msgstr "L'adresse email a été supprimée."
#: views.py:254
msgid "Delete"
msgstr "Supprimer"

View file

@ -17,11 +17,11 @@ class Migration(migrations.Migration):
name='MailContact',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('address', models.EmailField(default='contact@example.org', help_text='Adresse mail de contact', max_length=254)),
('commentary', models.CharField(blank=True, help_text="Description de l'utilisation de l'adresse mail associée", max_length=256, null=True)),
('address', models.EmailField(default='contact@example.org', help_text="Contact email adress", max_length=254)),
('commentary', models.CharField(blank=True, help_text="Description of the associated email adress.", max_length=256, null=True)),
],
options={
'permissions': (('view_mailcontact', 'Peut voir les mails de contact'),),
'permissions': (('view_mailcontact', "Can see contact email"),),
},
bases=(re2o.mixins.AclMixin, models.Model),
),

View file

@ -31,6 +31,7 @@ from django.db.models.signals import post_save
from django.dispatch import receiver
from django.core.cache import cache
from django.forms import ValidationError
from django.utils.translation import ugettext_lazy as _
import machines.models
from re2o.mixins import AclMixin
@ -268,17 +269,18 @@ class Service(AclMixin, models.Model):
return str(self.name)
class MailContact(AclMixin, models.Model):
"""Addresse mail de contact associée à un commentaire descriptif"""
"""Contact email adress with a commentary."""
address = models.EmailField(
default = "contact@example.org",
help_text = "Adresse mail de contact"
help_text = _("Contact email adress")
)
commentary = models.CharField(
blank = True,
null = True,
help_text = "Description de l'utilisation de l'adresse mail associée",
help_text = _(
"Description of the associated email adress."),
max_length = 256
)
@ -288,7 +290,7 @@ class MailContact(AclMixin, models.Model):
class Meta:
permissions = (
("view_mailcontact", "Peut voir les mails de contact"),
("view_mailcontact", _("Can see contact email")),
)
def __str__(self):

View file

@ -21,12 +21,14 @@ You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
{% endcomment %}
{% load i18n %}
{% load acl %}
{% load logs_extra %}
<table class="table table-striped">
<thead>
<tr>
<th>Adresse</th>
<th>Commentaire</th>
<th>{% trans "Adress" %}</th>
<th>{% trans "Remark" %}</th>
<th></th>
</tr>
</thead>

View file

@ -26,6 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
{% load bootstrap3 %}
{% load acl %}
{% load design %}
{% load i18n %}
{% block title %}Création et modification des préférences{% endblock %}
@ -222,10 +223,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
</a>
<h4>Liste des adresses mail de contact</h4>
<h2>{% trans "Contact email adresses list" %}</h2>
{% can_create preferences.MailContact%}
<a class="btn btn-primary btn-sm" role="button" href="{% url 'preferences:add-mailcontact' %}"><i class="fa fa-plus"></i>Ajouter une adresse</a>
<a class="btn btn-primary btn-sm" role="button" href="{% url 'preferences:add-mailcontact' %}"><i class="fa fa-plus"></i>{% trans "Add an adress" %}</a>
{% acl_end %}
<a class="btn btn-danger btn-sm" role="button" href="{% url 'preferences:del-mailcontact' %}"><i class="fa fa-trash"></i>Supprimer une ou plusieurs adresses</a>
<a class="btn btn-danger btn-sm" role="button" href="{% url 'preferences:del-mailcontact' %}"><i class="fa fa-trash"></i>{% trans "Delete one or multiple adresses" %}</a>
{% include "preferences/aff_mailcontact.html" with mailcontact_list=mailcontact_list %}
<p>

View file

@ -36,13 +36,16 @@ from django.contrib import messages
from django.contrib.auth.decorators import login_required
from django.db.models import ProtectedError
from django.db import transaction
from django.utils.translation import ugettext as _
from reversion import revisions as reversion
from re2o.views import form
from re2o.acl import can_create, can_edit, can_delete_set, can_view_all
from .forms import ServiceForm, DelServiceForm, MailContactForm, DelMailContactForm
from .forms import (
ServiceForm, DelServiceForm, MailContactForm, DelMailContactForm
)
from .models import (
Service,
MailContact,
@ -197,17 +200,14 @@ def del_service(request, instances):
@login_required
@can_create(MailContact)
def add_mailcontact(request):
"""Ajout d'une adresse de contact"""
"""Add a contact email adress."""
mailcontact = MailContactForm(
request.POST or None,
request.FILES or None
)
if mailcontact.is_valid():
with transaction.atomic(), reversion.create_revision():
mailcontact.save()
reversion.set_user(request.user)
reversion.set_comment("Création")
messages.success(request, "Cette adresse a été ajoutée")
mailcontact.save()
messages.success(request, _("The adress was created."))
return redirect(reverse('preferences:display-options'))
return form(
{'preferenceform': mailcontact, 'action_name': 'Ajouter'},
@ -219,21 +219,18 @@ def add_mailcontact(request):
@login_required
@can_edit(MailContact)
def edit_mailcontact(request, mailcontact_instance, **_kwargs):
"""Edition des adresses de contacte affichées"""
"""Edit contact email adress."""
mailcontact = MailContactForm(
request.POST or None,
request.FILES or None,
instance=mailcontact_instance
)
if mailcontact.is_valid():
with transaction.atomic(), reversion.create_revision():
mailcontact.save()
reversion.set_user(request.user)
reversion.set_comment("Modification")
messages.success(request, "Adresse modifiée")
mailcontact.save()
messages.success(request, _("Email adress updated."))
return redirect(reverse('preferences:display-options'))
return form(
{'preferenceform': mailcontact, 'action_name': 'Editer'},
{'preferenceform': mailcontact, 'action_name': _('Edit')},
'preferences/preferences.html',
request
)
@ -242,7 +239,7 @@ def edit_mailcontact(request, mailcontact_instance, **_kwargs):
@login_required
@can_delete_set(MailContact)
def del_mailcontact(request, instances):
"""Suppression d'une adresse de contact"""
"""Delete an email adress"""
mailcontacts = DelMailContactForm(
request.POST or None,
instances=instances
@ -250,17 +247,11 @@ def del_mailcontact(request, instances):
if mailcontacts.is_valid():
mailcontacts_dels = mailcontacts.cleaned_data['mailcontacts']
for mailcontacts_del in mailcontacts_dels:
try:
with transaction.atomic(), reversion.create_revision():
mailcontacts_del.delete()
reversion.set_user(request.user)
messages.success(request, "L'adresse a été supprimée")
except ProtectedError:
messages.error(request, "Erreur le service\
suivant %s ne peut être supprimé" % mailcontacts_del)
mailcontacts_del.delete()
messages.success(request, _("The email adress was deleted."))
return redirect(reverse('preferences:display-options'))
return form(
{'preferenceform': mailcontacts, 'action_name': 'Supprimer'},
{'preferenceform': mailcontacts, 'action_name': _('Delete')},
'preferences/preferences.html',
request
)