mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-12-23 23:43:47 +00:00
Traduction + utilisation du mixin de revision
This commit is contained in:
parent
2599a503ac
commit
0cc15d63c8
9 changed files with 108 additions and 39 deletions
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
BIN
preferences/locale/fr/LC_MESSAGES/django.mo
Normal file
BIN
preferences/locale/fr/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
70
preferences/locale/fr/LC_MESSAGES/django.po
Normal file
70
preferences/locale/fr/LC_MESSAGES/django.po
Normal 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"
|
|
@ -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),
|
||||
),
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue