mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-25 22:22:26 +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 MailContactAdmin(VersionAdmin):
|
||||||
"""Class admin gestion des adresses mail de contact"""
|
"""Admin class for contact email adresses"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,8 @@ from __future__ import unicode_literals
|
||||||
|
|
||||||
from django.forms import ModelForm, Form
|
from django.forms import ModelForm, Form
|
||||||
from django import forms
|
from django import forms
|
||||||
|
|
||||||
|
from re2o.mixins import FormRevMixin
|
||||||
from .models import (
|
from .models import (
|
||||||
OptionalUser,
|
OptionalUser,
|
||||||
OptionalMachine,
|
OptionalMachine,
|
||||||
|
@ -229,8 +231,8 @@ class DelServiceForm(Form):
|
||||||
else:
|
else:
|
||||||
self.fields['services'].queryset = Service.objects.all()
|
self.fields['services'].queryset = Service.objects.all()
|
||||||
|
|
||||||
class MailContactForm(ModelForm):
|
class MailContactForm(FormRevMixin, ModelForm):
|
||||||
"""Edition, ajout d'adresse de contact"""
|
"""Edit and add contact email adress"""
|
||||||
class Meta:
|
class Meta:
|
||||||
model = MailContact
|
model = MailContact
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
@ -241,7 +243,7 @@ class MailContactForm(ModelForm):
|
||||||
|
|
||||||
|
|
||||||
class DelMailContactForm(Form):
|
class DelMailContactForm(Form):
|
||||||
"""Suppression d'adresse de contact"""
|
"""Delete contact email adress"""
|
||||||
mailcontacts = forms.ModelMultipleChoiceField(
|
mailcontacts = forms.ModelMultipleChoiceField(
|
||||||
queryset=MailContact.objects.none(),
|
queryset=MailContact.objects.none(),
|
||||||
label="Enregistrements adresses actuels",
|
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',
|
name='MailContact',
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('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)),
|
('address', models.EmailField(default='contact@example.org', help_text="Contact email adress", 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)),
|
('commentary', models.CharField(blank=True, help_text="Description of the associated email adress.", max_length=256, null=True)),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'permissions': (('view_mailcontact', 'Peut voir les mails de contact'),),
|
'permissions': (('view_mailcontact', "Can see contact email"),),
|
||||||
},
|
},
|
||||||
bases=(re2o.mixins.AclMixin, models.Model),
|
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.dispatch import receiver
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
from django.forms import ValidationError
|
from django.forms import ValidationError
|
||||||
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
import machines.models
|
import machines.models
|
||||||
from re2o.mixins import AclMixin
|
from re2o.mixins import AclMixin
|
||||||
|
@ -268,17 +269,18 @@ class Service(AclMixin, models.Model):
|
||||||
return str(self.name)
|
return str(self.name)
|
||||||
|
|
||||||
class MailContact(AclMixin, models.Model):
|
class MailContact(AclMixin, models.Model):
|
||||||
"""Addresse mail de contact associée à un commentaire descriptif"""
|
"""Contact email adress with a commentary."""
|
||||||
|
|
||||||
address = models.EmailField(
|
address = models.EmailField(
|
||||||
default = "contact@example.org",
|
default = "contact@example.org",
|
||||||
help_text = "Adresse mail de contact"
|
help_text = _("Contact email adress")
|
||||||
)
|
)
|
||||||
|
|
||||||
commentary = models.CharField(
|
commentary = models.CharField(
|
||||||
blank = True,
|
blank = True,
|
||||||
null = 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
|
max_length = 256
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -288,7 +290,7 @@ class MailContact(AclMixin, models.Model):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
permissions = (
|
permissions = (
|
||||||
("view_mailcontact", "Peut voir les mails de contact"),
|
("view_mailcontact", _("Can see contact email")),
|
||||||
)
|
)
|
||||||
|
|
||||||
def __str__(self):
|
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.,
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
{% endcomment %}
|
{% endcomment %}
|
||||||
|
{% load i18n %}
|
||||||
{% load acl %}
|
{% load acl %}
|
||||||
|
{% load logs_extra %}
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Adresse</th>
|
<th>{% trans "Adress" %}</th>
|
||||||
<th>Commentaire</th>
|
<th>{% trans "Remark" %}</th>
|
||||||
<th></th>
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
|
@ -26,6 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
{% load bootstrap3 %}
|
{% load bootstrap3 %}
|
||||||
{% load acl %}
|
{% load acl %}
|
||||||
{% load design %}
|
{% load design %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
{% block title %}Création et modification des préférences{% endblock %}
|
{% 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>
|
</a>
|
||||||
|
|
||||||
<h4>Liste des adresses mail de contact</h4>
|
<h4>Liste des adresses mail de contact</h4>
|
||||||
|
<h2>{% trans "Contact email adresses list" %}</h2>
|
||||||
{% can_create preferences.MailContact%}
|
{% 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 %}
|
{% 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 %}
|
{% include "preferences/aff_mailcontact.html" with mailcontact_list=mailcontact_list %}
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
|
|
|
@ -36,13 +36,16 @@ from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
from django.db.models import ProtectedError
|
from django.db.models import ProtectedError
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
from reversion import revisions as reversion
|
from reversion import revisions as reversion
|
||||||
|
|
||||||
from re2o.views import form
|
from re2o.views import form
|
||||||
from re2o.acl import can_create, can_edit, can_delete_set, can_view_all
|
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 (
|
from .models import (
|
||||||
Service,
|
Service,
|
||||||
MailContact,
|
MailContact,
|
||||||
|
@ -197,17 +200,14 @@ def del_service(request, instances):
|
||||||
@login_required
|
@login_required
|
||||||
@can_create(MailContact)
|
@can_create(MailContact)
|
||||||
def add_mailcontact(request):
|
def add_mailcontact(request):
|
||||||
"""Ajout d'une adresse de contact"""
|
"""Add a contact email adress."""
|
||||||
mailcontact = MailContactForm(
|
mailcontact = MailContactForm(
|
||||||
request.POST or None,
|
request.POST or None,
|
||||||
request.FILES or None
|
request.FILES or None
|
||||||
)
|
)
|
||||||
if mailcontact.is_valid():
|
if mailcontact.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
mailcontact.save()
|
||||||
mailcontact.save()
|
messages.success(request, _("The adress was created."))
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Création")
|
|
||||||
messages.success(request, "Cette adresse a été ajoutée")
|
|
||||||
return redirect(reverse('preferences:display-options'))
|
return redirect(reverse('preferences:display-options'))
|
||||||
return form(
|
return form(
|
||||||
{'preferenceform': mailcontact, 'action_name': 'Ajouter'},
|
{'preferenceform': mailcontact, 'action_name': 'Ajouter'},
|
||||||
|
@ -219,21 +219,18 @@ def add_mailcontact(request):
|
||||||
@login_required
|
@login_required
|
||||||
@can_edit(MailContact)
|
@can_edit(MailContact)
|
||||||
def edit_mailcontact(request, mailcontact_instance, **_kwargs):
|
def edit_mailcontact(request, mailcontact_instance, **_kwargs):
|
||||||
"""Edition des adresses de contacte affichées"""
|
"""Edit contact email adress."""
|
||||||
mailcontact = MailContactForm(
|
mailcontact = MailContactForm(
|
||||||
request.POST or None,
|
request.POST or None,
|
||||||
request.FILES or None,
|
request.FILES or None,
|
||||||
instance=mailcontact_instance
|
instance=mailcontact_instance
|
||||||
)
|
)
|
||||||
if mailcontact.is_valid():
|
if mailcontact.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
mailcontact.save()
|
||||||
mailcontact.save()
|
messages.success(request, _("Email adress updated."))
|
||||||
reversion.set_user(request.user)
|
|
||||||
reversion.set_comment("Modification")
|
|
||||||
messages.success(request, "Adresse modifiée")
|
|
||||||
return redirect(reverse('preferences:display-options'))
|
return redirect(reverse('preferences:display-options'))
|
||||||
return form(
|
return form(
|
||||||
{'preferenceform': mailcontact, 'action_name': 'Editer'},
|
{'preferenceform': mailcontact, 'action_name': _('Edit')},
|
||||||
'preferences/preferences.html',
|
'preferences/preferences.html',
|
||||||
request
|
request
|
||||||
)
|
)
|
||||||
|
@ -242,7 +239,7 @@ def edit_mailcontact(request, mailcontact_instance, **_kwargs):
|
||||||
@login_required
|
@login_required
|
||||||
@can_delete_set(MailContact)
|
@can_delete_set(MailContact)
|
||||||
def del_mailcontact(request, instances):
|
def del_mailcontact(request, instances):
|
||||||
"""Suppression d'une adresse de contact"""
|
"""Delete an email adress"""
|
||||||
mailcontacts = DelMailContactForm(
|
mailcontacts = DelMailContactForm(
|
||||||
request.POST or None,
|
request.POST or None,
|
||||||
instances=instances
|
instances=instances
|
||||||
|
@ -250,17 +247,11 @@ def del_mailcontact(request, instances):
|
||||||
if mailcontacts.is_valid():
|
if mailcontacts.is_valid():
|
||||||
mailcontacts_dels = mailcontacts.cleaned_data['mailcontacts']
|
mailcontacts_dels = mailcontacts.cleaned_data['mailcontacts']
|
||||||
for mailcontacts_del in mailcontacts_dels:
|
for mailcontacts_del in mailcontacts_dels:
|
||||||
try:
|
mailcontacts_del.delete()
|
||||||
with transaction.atomic(), reversion.create_revision():
|
messages.success(request, _("The email adress was deleted."))
|
||||||
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)
|
|
||||||
return redirect(reverse('preferences:display-options'))
|
return redirect(reverse('preferences:display-options'))
|
||||||
return form(
|
return form(
|
||||||
{'preferenceform': mailcontacts, 'action_name': 'Supprimer'},
|
{'preferenceform': mailcontacts, 'action_name': _('Delete')},
|
||||||
'preferences/preferences.html',
|
'preferences/preferences.html',
|
||||||
request
|
request
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue