mirror of https://gitlab.federez.net/re2o/re2o
163 changed files with 4372 additions and 3296 deletions
File diff suppressed because it is too large
@ -0,0 +1,79 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.11.23 on 2019-11-20 00:59 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('cotisations', '0041_auto_20191103_2131'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterModelOptions( |
|||
name='chequepayment', |
|||
options={'verbose_name': 'cheque'}, |
|||
), |
|||
migrations.AlterField( |
|||
model_name='balancepayment', |
|||
name='credit_balance_allowed', |
|||
field=models.BooleanField(default=False, verbose_name='allow user to credit their balance'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='balancepayment', |
|||
name='maximum_balance', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=50, help_text='The maximal amount of money allowed for the balance.', max_digits=5, null=True, verbose_name='maximum balance'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='balancepayment', |
|||
name='minimum_balance', |
|||
field=models.DecimalField(decimal_places=2, default=0, help_text='The minimal amount of money allowed for the balance at the end of a payment. You can specify a negative amount.', max_digits=5, verbose_name='minimum balance'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='baseinvoice', |
|||
name='date', |
|||
field=models.DateTimeField(auto_now_add=True, verbose_name='date'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='comnpaypayment', |
|||
name='minimum_payment', |
|||
field=models.DecimalField(decimal_places=2, default=1, help_text='The minimal amount of money you have to use when paying with ComNpay.', max_digits=5, verbose_name='minimum payment'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='comnpaypayment', |
|||
name='production', |
|||
field=models.BooleanField(default=True, verbose_name='production mode enabled (production URL, instead of homologation)'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='costestimate', |
|||
name='validity', |
|||
field=models.DurationField(help_text='DD HH:MM:SS', verbose_name='period of validity'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='custominvoice', |
|||
name='address', |
|||
field=models.CharField(max_length=255, verbose_name='address'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='custominvoice', |
|||
name='paid', |
|||
field=models.BooleanField(default=False, verbose_name='paid'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='custominvoice', |
|||
name='payment', |
|||
field=models.CharField(max_length=255, verbose_name='payment type'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='custominvoice', |
|||
name='recipient', |
|||
field=models.CharField(max_length=255, verbose_name='recipient'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='custominvoice', |
|||
name='remark', |
|||
field=models.TextField(blank=True, null=True, verbose_name='remark'), |
|||
), |
|||
] |
|||
File diff suppressed because it is too large
@ -0,0 +1,136 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.11.23 on 2019-11-20 00:59 |
|||
from __future__ import unicode_literals |
|||
|
|||
import django.core.validators |
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('machines', '0105_dname_ttl'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterModelOptions( |
|||
name='domain', |
|||
options={'permissions': (('view_domain', 'Can view a domain object'), ('change_ttl', 'Can change the TTL of a domain object')), 'verbose_name': 'domain', 'verbose_name_plural': 'domains'}, |
|||
), |
|||
migrations.AlterField( |
|||
model_name='extension', |
|||
name='dnssec', |
|||
field=models.BooleanField(default=False, help_text='Should the zone be signed with DNSSEC.'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='extension', |
|||
name='name', |
|||
field=models.CharField(help_text='Zone name, must begin with a dot (.example.org).', max_length=255, unique=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='extension', |
|||
name='origin', |
|||
field=models.ForeignKey(blank=True, help_text='A record associated with the zone.', null=True, on_delete=django.db.models.deletion.PROTECT, to='machines.IpList'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='extension', |
|||
name='origin_v6', |
|||
field=models.GenericIPAddressField(blank=True, help_text='AAAA record associated with the zone.', null=True, protocol='IPv6'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='iptype', |
|||
name='domaine_ip_netmask', |
|||
field=models.IntegerField(default=24, help_text="Netmask for the domain's IPv4 range.", validators=[django.core.validators.MaxValueValidator(31), django.core.validators.MinValueValidator(8)]), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='iptype', |
|||
name='domaine_ip_network', |
|||
field=models.GenericIPAddressField(blank=True, help_text="Network containing the domain's IPv4 range (optional).", null=True, protocol='IPv4'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='iptype', |
|||
name='reverse_v4', |
|||
field=models.BooleanField(default=False, help_text='Enable reverse DNS for IPv4.'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='iptype', |
|||
name='reverse_v6', |
|||
field=models.BooleanField(default=False, help_text='Enable reverse DNS for IPv6.'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='machine', |
|||
name='name', |
|||
field=models.CharField(blank=True, help_text='Optional.', max_length=255, null=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='soa', |
|||
name='expire', |
|||
field=models.PositiveIntegerField(default=3600000, help_text='Seconds before the secondary DNS stop answering requests in case of primary DNS timeout.'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='soa', |
|||
name='mail', |
|||
field=models.EmailField(help_text='Contact email address for the zone.', max_length=254), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='soa', |
|||
name='refresh', |
|||
field=models.PositiveIntegerField(default=86400, help_text='Seconds before the secondary DNS have to ask the primary DNS serial to detect a modification.'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='soa', |
|||
name='retry', |
|||
field=models.PositiveIntegerField(default=7200, help_text='Seconds before the secondary DNS ask the serial again in case of a primary DNS timeout.'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='soa', |
|||
name='ttl', |
|||
field=models.PositiveIntegerField(default=172800, help_text='Time To Live.'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='srv', |
|||
name='port', |
|||
field=models.PositiveIntegerField(help_text='TCP/UDP port.', validators=[django.core.validators.MaxValueValidator(65535)]), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='srv', |
|||
name='priority', |
|||
field=models.PositiveIntegerField(default=0, help_text='Priority of the target server (positive integer value, the lower it is, the more the server will be used if available).', validators=[django.core.validators.MaxValueValidator(65535)]), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='srv', |
|||
name='target', |
|||
field=models.ForeignKey(help_text='Target server.', on_delete=django.db.models.deletion.PROTECT, to='machines.Domain'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='srv', |
|||
name='ttl', |
|||
field=models.PositiveIntegerField(default=172800, help_text='Time To Live.'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='srv', |
|||
name='weight', |
|||
field=models.PositiveIntegerField(default=0, help_text='Relative weight for records with the same priority (integer value between 0 and 65535).', validators=[django.core.validators.MaxValueValidator(65535)]), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='sshfp', |
|||
name='comment', |
|||
field=models.CharField(blank=True, help_text='Comment.', max_length=255, null=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='sshfp', |
|||
name='pub_key_entry', |
|||
field=models.TextField(help_text='SSH public key.', max_length=2048), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='vlan', |
|||
name='igmp', |
|||
field=models.BooleanField(default=False, help_text='v4 multicast management.'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='vlan', |
|||
name='mld', |
|||
field=models.BooleanField(default=False, help_text='v6 multicast management.'), |
|||
), |
|||
] |
|||
@ -0,0 +1,128 @@ |
|||
# Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
|||
# se veut agnostique au réseau considéré, de manière à être installable en |
|||
# quelques clics. |
|||
# |
|||
# Copyright © 2018 Maël Kervella |
|||
# |
|||
# This program is free software; you can redistribute it and/or modify |
|||
# it under the terms of the GNU General Public License as published by |
|||
# the Free Software Foundation; either version 2 of the License, or |
|||
# (at your option) any later version. |
|||
# |
|||
# This program is distributed in the hope that it will be useful, |
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# GNU General Public License for more details. |
|||
# |
|||
# 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. |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: 2.5\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2019-11-20 01:24+0100\n" |
|||
"PO-Revision-Date: 2019-11-16 00:22+0100\n" |
|||
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n" |
|||
"Language-Team: \n" |
|||
"Language: fr_FR\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: 8bit\n" |
|||
|
|||
#: multi_op/forms.py:43 |
|||
msgid "Dormitory" |
|||
msgstr "Résidence" |
|||
|
|||
#: multi_op/preferences/models.py:37 |
|||
msgid "enabled dorm" |
|||
msgstr "résidence activée" |
|||
|
|||
#: multi_op/preferences/models.py:41 |
|||
msgid "dormitories preferences" |
|||
msgstr "préférences de résidences" |
|||
|
|||
#: multi_op/templates/multi_op/aff_room_state.html:36 |
|||
msgid "Room" |
|||
msgstr "Chambre" |
|||
|
|||
#: multi_op/templates/multi_op/aff_room_state.html:37 |
|||
msgid "Building" |
|||
msgstr "Bâtiment" |
|||
|
|||
#: multi_op/templates/multi_op/aff_room_state.html:40 |
|||
msgid "Connnected to" |
|||
msgstr "Connectée à" |
|||
|
|||
#: multi_op/templates/multi_op/aff_room_state.html:41 |
|||
msgid "User" |
|||
msgstr "Utilisateur" |
|||
|
|||
#: multi_op/templates/multi_op/aff_room_state.html:42 |
|||
msgid "Details" |
|||
msgstr "Détails" |
|||
|
|||
#: multi_op/templates/multi_op/aff_room_state.html:43 |
|||
msgid "End of subscription on" |
|||
msgstr "Fin de cotisation le" |
|||
|
|||
#: multi_op/templates/multi_op/aff_room_state.html:44 |
|||
msgid "Internet access" |
|||
msgstr "Accès Internet" |
|||
|
|||
#: multi_op/templates/multi_op/aff_room_state.html:45 |
|||
msgid "Action" |
|||
msgstr "Action" |
|||
|
|||
#: multi_op/templates/multi_op/aff_room_state.html:52 |
|||
msgid "Other operator" |
|||
msgstr "Autre opérateur" |
|||
|
|||
#: multi_op/templates/multi_op/aff_room_state.html:53 |
|||
msgid "None" |
|||
msgstr "Aucun" |
|||
|
|||
#: multi_op/templates/multi_op/aff_room_state.html:55 |
|||
msgid "Non member" |
|||
msgstr "Non adhérent" |
|||
|
|||
#: multi_op/templates/multi_op/aff_room_state.html:58 |
|||
msgid "Active" |
|||
msgstr "Actif" |
|||
|
|||
#: multi_op/templates/multi_op/aff_room_state.html:60 |
|||
msgid "Disabled" |
|||
msgstr "Désactivé" |
|||
|
|||
#: multi_op/templates/multi_op/index_room_state.html:30 |
|||
msgid "Multiple operators" |
|||
msgstr "Opérateurs multiples" |
|||
|
|||
#: multi_op/templates/multi_op/index_room_state.html:38 |
|||
msgid "Room connections" |
|||
msgstr "Connexions de chambre" |
|||
|
|||
#: multi_op/templates/multi_op/index_room_state.html:44 |
|||
msgid "Select dormitory" |
|||
msgstr "Sélectionnez la résidence" |
|||
|
|||
#: multi_op/templates/multi_op/navbar.html:2 |
|||
msgid "Manage the operators" |
|||
msgstr "Gérer les opérateurs" |
|||
|
|||
#: multi_op/templates/multi_op/sidebar.html:31 |
|||
msgid "Room connections state" |
|||
msgstr "État des connexions de chambre" |
|||
|
|||
#: multi_op/templates/multi_op/sidebar.html:35 |
|||
msgid "Sockets to connect" |
|||
msgstr "Prises à connecter" |
|||
|
|||
#: multi_op/templates/multi_op/sidebar.html:39 |
|||
msgid "Sockets to disconnect" |
|||
msgstr "Prises à déconnecter" |
|||
|
|||
#: multi_op/views.py:169 |
|||
#, python-format |
|||
msgid "The room %s was disconnected." |
|||
msgstr "La chambre %s a été déconnectée." |
|||
@ -1,48 +0,0 @@ |
|||
{% extends 'machines/sidebar.html' %} |
|||
{% comment %} |
|||
Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
|||
se veut agnostique au réseau considéré, de manière à être installable en |
|||
quelques clics. |
|||
|
|||
Copyright © 2017 Gabriel Détraz |
|||
Copyright © 2017 Goulven Kermarec |
|||
Copyright © 2017 Augustin Lemesle |
|||
Copyright © 2017 Maël Kervella |
|||
|
|||
This program is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation; either version 2 of the License, or |
|||
(at your option) any later version. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
|
|||
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 bootstrap3 %} |
|||
{% load i18n %} |
|||
|
|||
{% block title %}{% trans "Ticket" %}{% endblock %} |
|||
|
|||
{% block content %} |
|||
<h2> {% trans "Tickets settings modification" %}</h2> |
|||
|
|||
{% for message in messages %} |
|||
<div class="{{ message| bootstrap_message_classes }} alert-dismissable"> |
|||
<button type="button" class="close" data_dismiss="alert" aria-hidden="true">}</button> |
|||
{{ message | safe }} |
|||
</div> |
|||
{% endfor %} |
|||
|
|||
<form class="form" method="post"> |
|||
{% csrf_token %} |
|||
{% bootstrap_field preferencesform.publish_address %} |
|||
{% bootstrap_field preferencesform.mail_language %} |
|||
{% bootstrap_button "Editer" button_type="submit" icon='ok' button_class='btn-success' %} |
|||
</form> |
|||
{% endblock %} |
|||
@ -1,58 +0,0 @@ |
|||
{% extends 'machines/sidebar.html' %} |
|||
{% comment %} |
|||
Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
|||
se veut agnostique au réseau considéré, de manière à être installable en |
|||
quelques clics. |
|||
|
|||
Copyright © 2017 Gabriel Détraz |
|||
Copyright © 2017 Goulven Kermarec |
|||
Copyright © 2017 Augustin Lemesle |
|||
Copyright © 2017 Maël Kervella |
|||
|
|||
This program is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation; either version 2 of the License, or |
|||
(at your option) any later version. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
|
|||
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 bootstrap3 %} |
|||
{% load massive_bootstrap_form %} |
|||
{% load i18n %} |
|||
|
|||
{% block title %}{% trans "Ticket" %}{% endblock %} |
|||
|
|||
{% block content %} |
|||
<h2> Ouverture d'un Ticket </h2> |
|||
|
|||
<form class="form" method="post"> |
|||
{% csrf_token %} |
|||
{% if not user.is_authenticated %} |
|||
<p>{% trans "Vous n'êtes pas authentifié. Veuillez fournir une adresse mail afin que nous puissions vous recontacter." %}</p> |
|||
{% bootstrap_field ticketform.email %} |
|||
{% endif %} |
|||
{% bootstrap_field ticketform.title %} |
|||
<br> |
|||
<p>{% trans "Description de votre problème. Veuillez fournir le plus d'informations possible afin de faciliter la recherche de solution. Voici quelques informations dont nous pourions avoir besoin:" %}</p> |
|||
<ul class="list"> |
|||
<li> |
|||
<p> {% trans "Le type de votre problème (adhesion, connexion, paiement ou autre)." %}</p> |
|||
</li> |
|||
<li> |
|||
<p> {% trans "Les conditions dans lesquelles vous rencontrez le problème (Wifi/filaire, sur tout les apareils ou sur un seul. Est-ce une nouvelle machine ?" %}</p> |
|||
</li> |
|||
<li> |
|||
<p> {% trans "Les endroits dans lequels le problème survient (chez vous, dans une partie commune, dans un batiment en particulier)." %}</p> |
|||
</ul> |
|||
{% bootstrap_field ticketform.description %} |
|||
{% bootstrap_button "Ouvrir le Ticket" button_type="submit" icon='ok' button_class='btn-success' %} |
|||
</form> |
|||
{% endblock %} |
|||
@ -1,34 +0,0 @@ |
|||
{% extends 'users/sidebar.html' %} |
|||
{% comment %} |
|||
Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
|||
se veut agnostique au réseau considéré, de manière à être installable en |
|||
quelques clics. |
|||
|
|||
Copyright © 2017 Gabriel Détraz |
|||
Copyright © 2017 Goulven Kermarec |
|||
Copyright © 2017 Augustin Lemesle |
|||
|
|||
This program is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation; either version 2 of the License, or |
|||
(at your option) any later version. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
|
|||
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 bootstrap3 %} |
|||
{% load i18n %} |
|||
|
|||
{% block title%}{% trans "Tickets" %}{% endblock %} |
|||
|
|||
{% block content %} |
|||
<h2>{% trans "Tickets" %}</h2> |
|||
{% include 'tickets/aff_tickets.html' with tickets_list=tickets_list %} |
|||
{% endblock %} |
|||
@ -1,2 +1,2 @@ |
|||
{% load i18n %} |
|||
<li><a href="{% url 'multi_op:aff-state-global' %}"><i class="fa fa-random"></i> {% trans "Multi Operators" %}</a></li> |
|||
<li><a href="{% url 'multi_op:aff-state-global' %}"><i class="fa fa-random"></i> {% trans "Manage the operators" %}</a></li> |
|||
|
|||
@ -1,6 +0,0 @@ |
|||
{% load i18n %} |
|||
<li> |
|||
<a href="{% url 'tickets:new-ticket' %}"> |
|||
<i class="fa fa-ticket"></i> {% trans "Ouvrir un ticket" %} |
|||
</a> |
|||
</li> |
|||
@ -1,36 +0,0 @@ |
|||
{% load i18n %} |
|||
|
|||
<div class="panel panel-default" id="tickets"> |
|||
<div class="panel-heading" data-toggle="collapse" href="#collapse_tickets"> |
|||
<h4 class="panel-title"> |
|||
<a><i class="fa fa-ticket"></i> {% trans "Tickets" %}</a> |
|||
</h4> |
|||
</div> |
|||
|
|||
<div id="collapse_tickets" class="panel-collapse panel-body collapse"> |
|||
|
|||
<a class="btn btn-primary btn-sm" role="button" href="{% url 'tickets:edit-preferences-tickets' %}"> |
|||
<i class="fa fa-edit"></i> |
|||
{% trans "Edit" %} |
|||
</a> |
|||
<p></p> |
|||
|
|||
<div class="table-responsive"> |
|||
<table class="table"> |
|||
<tr> |
|||
<th><p>{% trans "Publication email address"%}</p></th> |
|||
{% if preferences.publish_address %} |
|||
<td><p>{{ preferences.publish_address }}</p></td> |
|||
{% else %} |
|||
<td><p>{% trans "Pas d'adresse, les tickets ne sont pas annoncés" %}</p></td> |
|||
{% endif %} |
|||
</tr> |
|||
<tr> |
|||
<th><p>{% trans "Email language" %}</p></th> |
|||
<td><p>{{ language }}</p></th> |
|||
</tr> |
|||
<table class="table"> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
File diff suppressed because it is too large
@ -0,0 +1,289 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.11.23 on 2019-11-20 00:59 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.conf import settings |
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
import preferences.models |
|||
import re2o.aes_field |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('preferences', '0066_optionalmachine_default_dns_ttl'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterModelOptions( |
|||
name='assooption', |
|||
options={'permissions': (('view_assooption', 'Can view the organisation preferences'),), 'verbose_name': 'organisation preferences'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='cotisationsoption', |
|||
options={'verbose_name': 'subscription preferences'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='generaloption', |
|||
options={'permissions': (('view_generaloption', 'Can view the general preferences'),), 'verbose_name': 'general preferences'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='homeoption', |
|||
options={'permissions': (('view_homeoption', 'Can view the homepage preferences'),), 'verbose_name': 'homepage preferences'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='mailmessageoption', |
|||
options={'permissions': (('view_mailmessageoption', 'Can view the email message preferences'),), 'verbose_name': 'email message preferences'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='mandate', |
|||
options={'permissions': (('view_mandate', 'Can view a mandate object'),), 'verbose_name': 'mandate', 'verbose_name_plural': 'mandates'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='optionalmachine', |
|||
options={'permissions': (('view_optionalmachine', 'Can view the machine preferences'),), 'verbose_name': 'machine preferences'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='optionaltopologie', |
|||
options={'permissions': (('view_optionaltopologie', 'Can view the topology preferences'),), 'verbose_name': 'topology preferences'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='optionaluser', |
|||
options={'permissions': (('view_optionaluser', 'Can view the user preferences'),), 'verbose_name': 'user preferences'}, |
|||
), |
|||
migrations.AlterModelOptions( |
|||
name='service', |
|||
options={'permissions': (('view_service', 'Can view the service preferences'),), 'verbose_name': 'service', 'verbose_name_plural': 'services'}, |
|||
), |
|||
migrations.AlterField( |
|||
model_name='cotisationsoption', |
|||
name='invoice_template', |
|||
field=models.OneToOneField(default=preferences.models.default_invoice, on_delete=django.db.models.deletion.PROTECT, related_name='invoice_template', to='preferences.DocumentTemplate', verbose_name='template for invoices'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='cotisationsoption', |
|||
name='send_voucher_mail', |
|||
field=models.BooleanField(default=False, help_text='Be careful, if no mandate is defined on the preferences page, errors will be triggered when generating vouchers.', verbose_name='send voucher by email when the invoice is controlled'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='cotisationsoption', |
|||
name='voucher_template', |
|||
field=models.OneToOneField(default=preferences.models.default_voucher, on_delete=django.db.models.deletion.PROTECT, related_name='voucher_template', to='preferences.DocumentTemplate', verbose_name='template for subscription vouchers'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='generaloption', |
|||
name='general_message_en', |
|||
field=models.TextField(blank=True, default='', help_text='General message displayed on the English version of the website (e.g. in case of maintenance).'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='generaloption', |
|||
name='general_message_fr', |
|||
field=models.TextField(blank=True, default='', help_text='General message displayed on the French version of the website (e.g. in case of maintenance).'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='mailcontact', |
|||
name='address', |
|||
field=models.EmailField(default='contact@example.org', help_text='Contact email address.', max_length=254), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='mailmessageoption', |
|||
name='welcome_mail_en', |
|||
field=models.TextField(blank=True, default='', help_text='Welcome email in English.'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='mailmessageoption', |
|||
name='welcome_mail_fr', |
|||
field=models.TextField(blank=True, default='', help_text='Welcome email in French.'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='mandate', |
|||
name='president', |
|||
field=models.ForeignKey(blank=True, help_text='Displayed on subscription vouchers.', null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='president of the association'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='optionalmachine', |
|||
name='default_dns_ttl', |
|||
field=models.PositiveIntegerField(default=172800, verbose_name='default Time To Live (TTL) for CNAME, A and AAAA records'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='optionalmachine', |
|||
name='ipv6_mode', |
|||
field=models.CharField(choices=[('SLAAC', 'Automatic configuration by RA'), ('DHCPV6', 'IP addresses assignment by DHCPv6'), ('DISABLED', 'Disabled')], default='DISABLED', max_length=32), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='optionaltopologie', |
|||
name='sftp_login', |
|||
field=models.CharField(blank=True, help_text='SFTP login for switches.', max_length=32, null=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='optionaltopologie', |
|||
name='sftp_pass', |
|||
field=re2o.aes_field.AESEncryptedField(blank=True, help_text='SFTP password.', max_length=63, null=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='optionaltopologie', |
|||
name='switchs_ip_type', |
|||
field=models.OneToOneField(blank=True, help_text='IP range for the management of switches.', null=True, on_delete=django.db.models.deletion.PROTECT, to='machines.IpType'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='optionaltopologie', |
|||
name='switchs_provision', |
|||
field=models.CharField(choices=[('sftp', 'SFTP'), ('tftp', 'TFTP')], default='tftp', help_text='Provision of configuration mode for switches.', max_length=32), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='optionaltopologie', |
|||
name='switchs_rest_management', |
|||
field=models.BooleanField(default=False, help_text='REST management, activated in case of automatic provision.'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='optionaltopologie', |
|||
name='switchs_web_management', |
|||
field=models.BooleanField(default=False, help_text='Web management, activated in case of automatic provision.'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='optionaltopologie', |
|||
name='switchs_web_management_ssl', |
|||
field=models.BooleanField(default=False, help_text='SSL web management, make sure that a certificate is installed on the switch.'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='optionaluser', |
|||
name='local_email_domain', |
|||
field=models.CharField(default='@example.org', help_text='Domain to use for local email accounts.', max_length=32), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusattribute', |
|||
name='attribute', |
|||
field=models.CharField(help_text='See https://freeradius.org/rfc/attributes.html.', max_length=255, verbose_name='attribute'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusattribute', |
|||
name='comment', |
|||
field=models.TextField(blank=True, default='', help_text='Use this field to document this attribute.', verbose_name='comment'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusattribute', |
|||
name='value', |
|||
field=models.CharField(max_length=255, verbose_name='value'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiuskey', |
|||
name='comment', |
|||
field=models.CharField(blank=True, help_text='Comment for this key.', max_length=255, null=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiuskey', |
|||
name='default_switch', |
|||
field=models.BooleanField(default=False, help_text='Default key for switches.'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiuskey', |
|||
name='radius_key', |
|||
field=re2o.aes_field.AESEncryptedField(help_text='RADIUS key.', max_length=255), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='banned', |
|||
field=models.CharField(choices=[('REJECT', 'Reject the machine'), ('SET_VLAN', 'Place the machine on the VLAN')], default='REJECT', max_length=32, verbose_name='policy for banned users'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='banned_attributes', |
|||
field=models.ManyToManyField(blank=True, help_text='Answer attributes for banned users.', related_name='banned_attribute', to='preferences.RadiusAttribute', verbose_name='banned users attributes'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='banned_vlan', |
|||
field=models.ForeignKey(blank=True, help_text='VLAN for banned users if not rejected.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='banned_vlan', to='machines.Vlan', verbose_name='banned users VLAN'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='non_member', |
|||
field=models.CharField(choices=[('REJECT', 'Reject the machine'), ('SET_VLAN', 'Place the machine on the VLAN')], default='REJECT', max_length=32, verbose_name='policy for non members'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='non_member_attributes', |
|||
field=models.ManyToManyField(blank=True, help_text='Answer attributes for non members.', related_name='non_member_attribute', to='preferences.RadiusAttribute', verbose_name='non members attributes'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='non_member_vlan', |
|||
field=models.ForeignKey(blank=True, help_text='VLAN for non members if not rejected.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='non_member_vlan', to='machines.Vlan', verbose_name='non members VLAN'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='ok_attributes', |
|||
field=models.ManyToManyField(blank=True, help_text='Answer attributes for accepted users.', related_name='ok_attribute', to='preferences.RadiusAttribute', verbose_name='accepted users attributes'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='radius_general_policy', |
|||
field=models.CharField(choices=[('MACHINE', "On the IP range's VLAN of the machine"), ('DEFINED', 'Preset in "VLAN for machines accepted by RADIUS"')], default='DEFINED', max_length=32), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='unknown_machine', |
|||
field=models.CharField(choices=[('REJECT', 'Reject the machine'), ('SET_VLAN', 'Place the machine on the VLAN')], default='REJECT', max_length=32, verbose_name='policy for unknown machines'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='unknown_machine_attributes', |
|||
field=models.ManyToManyField(blank=True, help_text='Answer attributes for unknown machines.', related_name='unknown_machine_attribute', to='preferences.RadiusAttribute', verbose_name='unknown machines attributes'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='unknown_machine_vlan', |
|||
field=models.ForeignKey(blank=True, help_text='VLAN for unknown machines if not rejected.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='unknown_machine_vlan', to='machines.Vlan', verbose_name='unknown machines VLAN'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='unknown_port', |
|||
field=models.CharField(choices=[('REJECT', 'Reject the machine'), ('SET_VLAN', 'Place the machine on the VLAN')], default='REJECT', max_length=32, verbose_name='policy for unknown ports'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='unknown_port_attributes', |
|||
field=models.ManyToManyField(blank=True, help_text='Answer attributes for unknown ports.', related_name='unknown_port_attribute', to='preferences.RadiusAttribute', verbose_name='unknown ports attributes'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='unknown_port_vlan', |
|||
field=models.ForeignKey(blank=True, help_text='VLAN for unknown ports if not rejected.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='unknown_port_vlan', to='machines.Vlan', verbose_name='unknown ports VLAN'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='unknown_room_attributes', |
|||
field=models.ManyToManyField(blank=True, help_text='Answer attributes for unknown rooms.', related_name='unknown_room_attribute', to='preferences.RadiusAttribute', verbose_name='unknown rooms attributes'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='radiusoption', |
|||
name='unknown_room_vlan', |
|||
field=models.ForeignKey(blank=True, help_text='VLAN for unknown rooms if not rejected.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='unknown_room_vlan', to='machines.Vlan', verbose_name='unknown rooms VLAN'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='reminder', |
|||
name='days', |
|||
field=models.IntegerField(default=7, help_text="Delay between the email and the membership's end.", unique=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='reminder', |
|||
name='message', |
|||
field=models.TextField(blank=True, default='', help_text='Message displayed specifically for this reminder.', null=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='switchmanagementcred', |
|||
name='default_switch', |
|||
field=models.BooleanField(default=True, help_text='Default credentials for switches.', unique=True), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='switchmanagementcred', |
|||
name='management_id', |
|||
field=models.CharField(help_text='Switch login.', max_length=63), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='switchmanagementcred', |
|||
name='management_pass', |
|||
field=re2o.aes_field.AESEncryptedField(help_text='Password.', max_length=63), |
|||
), |
|||
] |
|||
@ -0,0 +1,300 @@ |
|||
# Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
|||
# se veut agnostique au réseau considéré, de manière à être installable en |
|||
# quelques clics. |
|||
# |
|||
# Copyright © 2018 Maël Kervella |
|||
# |
|||
# This program is free software; you can redistribute it and/or modify |
|||
# it under the terms of the GNU General Public License as published by |
|||
# the Free Software Foundation; either version 2 of the License, or |
|||
# (at your option) any later version. |
|||
# |
|||
# This program is distributed in the hope that it will be useful, |
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# GNU General Public License for more details. |
|||
# |
|||
# 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. |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: 2.5\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2019-11-20 01:24+0100\n" |
|||
"PO-Revision-Date: 2019-11-16 00:35+0100\n" |
|||
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n" |
|||
"Language-Team: \n" |
|||
"Language: fr_FR\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: 8bit\n" |
|||
|
|||
#: tickets/models.py:28 |
|||
msgid "Title of the ticket." |
|||
msgstr "Titre du ticket." |
|||
|
|||
#: tickets/models.py:32 |
|||
msgid "Description of the ticket." |
|||
msgstr "Description du ticket." |
|||
|
|||
#: tickets/models.py:38 |
|||
msgid "An email address to get back to you." |
|||
msgstr "Une adresse mail pour vous recontacter." |
|||
|
|||
#: tickets/models.py:43 |
|||
msgid "Can view a ticket object" |
|||
msgstr "Peut voir un objet ticket" |
|||
|
|||
#: tickets/models.py:44 |
|||
msgid "ticket" |
|||
msgstr "ticket" |
|||
|
|||
#: tickets/models.py:45 |
|||
msgid "tickets" |
|||
msgstr "tickets" |
|||
|
|||
#: tickets/models.py:49 |
|||
#, python-format |
|||
msgid "Ticket from %(name)s. Date: %(date)s." |
|||
msgstr "Ticket de %(name)s. Date : %(date)s." |
|||
|
|||
#: tickets/models.py:51 |
|||
#, python-format |
|||
msgid "Anonymous ticket. Date: %s." |
|||
msgstr "Ticket anonyme. Date : %s." |
|||
|
|||
#: tickets/models.py:82 |
|||
msgid "You don't have the right to view other tickets than yours." |
|||
msgstr "Vous n'avez pas le droit de voir d'autres tickets que les vôtres." |
|||
|
|||
#: tickets/models.py:94 |
|||
msgid "You don't have the right to view the list of tickets." |
|||
msgstr "Vous n'avez pas le droit de voir la liste des tickets." |
|||
|
|||
#: tickets/preferences/models.py:10 |
|||
msgid "" |
|||
"Email address to publish the new tickets (leave empty for no publication)." |
|||
msgstr "" |
|||
"Adresse mail où publier les nouveaux tickets (laissez vide pour ne pas " |
|||
"publier)." |
|||
|
|||
#: tickets/preferences/models.py:17 |
|||
msgid "French" |
|||
msgstr "Français" |
|||
|
|||
#: tickets/preferences/models.py:17 |
|||
msgid "English" |
|||
msgstr "Anglais" |
|||
|
|||
#: tickets/preferences/models.py:21 |
|||
msgid "tickets preferences" |
|||
msgstr "préférences de tickets" |
|||
|
|||
#: tickets/templates/tickets/aff_ticket.html:30 |
|||
#: tickets/templates/tickets/contact.html:4 |
|||
#: tickets/templates/tickets/index.html:29 |
|||
#: tickets/templates/tickets/preferences.html:6 |
|||
#: tickets/templates/tickets/profil.html:6 |
|||
msgid "Tickets" |
|||
msgstr "Tickets" |
|||
|
|||
#: tickets/templates/tickets/aff_ticket.html:34 |
|||
#, python-format |
|||
msgid "Ticket #%(id)s" |
|||
msgstr "Ticket #%(id)s" |
|||
|
|||
#: tickets/templates/tickets/aff_ticket.html:36 |
|||
#: tickets/templates/tickets/aff_tickets.html:58 |
|||
msgid "Solved" |
|||
msgstr "Résolu" |
|||
|
|||
#: tickets/templates/tickets/aff_ticket.html:38 |
|||
msgid "Not solved" |
|||
msgstr "Non résolu" |
|||
|
|||
#: tickets/templates/tickets/aff_ticket.html:44 |
|||
msgid "Opened by" |
|||
msgstr "Ouvert par" |
|||
|
|||
#: tickets/templates/tickets/aff_ticket.html:50 |
|||
msgid "Anonymous user" |
|||
msgstr "Utilisateur anonyme" |
|||
|
|||
#: tickets/templates/tickets/aff_ticket.html:54 |
|||
msgid "Response address: " |
|||
msgstr "Adresse de réponse : " |
|||
|
|||
#: tickets/templates/tickets/aff_ticket.html:54 |
|||
msgid "Response to your ticket" |
|||
msgstr "Réponse à votre ticket" |
|||
|
|||
#: tickets/templates/tickets/aff_ticket.html:59 |
|||
msgid "Title:" |
|||
msgstr "Titre :" |
|||
|
|||
#: tickets/templates/tickets/aff_ticket.html:60 |
|||
msgid "Description:" |
|||
msgstr "Description :" |
|||
|
|||
#: tickets/templates/tickets/aff_ticket.html:68 |
|||
msgid "Mark as solved" |
|||
msgstr "Marquer comme résolu" |
|||
|
|||
#: tickets/templates/tickets/aff_ticket.html:71 |
|||
msgid "Mark as not solved" |
|||
msgstr "Marquer comme non résolu" |
|||
|
|||
#: tickets/templates/tickets/aff_ticket.html:81 |
|||
msgid "All tickets" |
|||
msgstr "Tous les tickets" |
|||
|
|||
#: tickets/templates/tickets/aff_tickets.html:35 |
|||
#: tickets/templates/tickets/form_preferences.html:30 |
|||
#: tickets/templates/tickets/form_ticket.html:31 |
|||
msgid "Ticket" |
|||
msgid_plural "Tickets" |
|||
msgstr[0] "Ticket" |
|||
msgstr[1] "Tickets" |
|||
|
|||
#: tickets/templates/tickets/aff_tickets.html:38 |
|||
msgid "Ticket not solved" |
|||
msgid_plural "Tickets not solved" |
|||
msgstr[0] "Ticket non résolu" |
|||
msgstr[1] "Tickets non résolus" |
|||
|
|||
#: tickets/templates/tickets/aff_tickets.html:41 |
|||
msgid "Last ticket:" |
|||
msgstr "Dernier ticket :" |
|||
|
|||
#: tickets/templates/tickets/aff_tickets.html:55 |
|||
msgid "User" |
|||
msgstr "Utilisateur" |
|||
|
|||
#: tickets/templates/tickets/aff_tickets.html:56 |
|||
msgid "Title" |
|||
msgstr "Titre" |
|||
|
|||
#: tickets/templates/tickets/aff_tickets.html:57 |
|||
msgid "Date" |
|||
msgstr "Date" |
|||
|
|||
#: tickets/templates/tickets/aff_tickets.html:70 |
|||
msgid "Anonymous" |
|||
msgstr "Anonyme" |
|||
|
|||
#: tickets/templates/tickets/contact.html:8 |
|||
#, python-format |
|||
msgid "" |
|||
"If you are experiencing issues with the services offered by %(asso_name)s, " |
|||
"you can open a ticket that will be taken care of. If you want to contact us " |
|||
"on any other topic, please choose one address below." |
|||
msgstr "" |
|||
"Si vous rencontrez des problèmes avec les services proposés par " |
|||
"%(asso_name)s, vous pouvez ouvrir un ticket qui sera pris en compte. Si vous " |
|||
"voulez nous contacter pour n'importe quel autre sujet, veuillez choisir une " |
|||
"adresse ci-dessous." |
|||
|
|||
#: tickets/templates/tickets/contact.html:10 |
|||
#: tickets/templates/tickets/navbar_logout.html:4 |
|||
#: tickets/templates/tickets/profil.html:12 |
|||
msgid "Open a ticket" |
|||
msgstr "Ouvrir un ticket" |
|||
|
|||
#: tickets/templates/tickets/form_preferences.html:33 |
|||
msgid "Editing of tickets preferences" |
|||
msgstr "Modification des préférences de tickets" |
|||
|
|||
#: tickets/templates/tickets/form_preferences.html:46 |
|||
#: tickets/templates/tickets/preferences.html:14 |
|||
msgid "Edit" |
|||
msgstr "Modifier" |
|||
|
|||
#: tickets/templates/tickets/form_ticket.html:34 |
|||
msgid "Ticket opening" |
|||
msgstr "Ouverture de ticket" |
|||
|
|||
#: tickets/templates/tickets/form_ticket.html:39 tickets/views.py:88 |
|||
msgid "" |
|||
"You are not authenticated. Please log in or provide an email address so we " |
|||
"can get back to you." |
|||
msgstr "" |
|||
"Vous n'êtes pas authentifié. Veuillez vous connecter ou fournir une adresse " |
|||
"mail pour que nous puissions vous recontacter." |
|||
|
|||
#: tickets/templates/tickets/form_ticket.html:44 |
|||
msgid "" |
|||
"Description of your problem. Please give as much information as possible to " |
|||
"help us searching for a solution. Here is some information we might need:" |
|||
msgstr "" |
|||
"Description de votre problème. Veuillez donner le plus d'informations " |
|||
"possible pour nous aider à chercher une solution. Voici quelques " |
|||
"informations dont nous pourrions avoir besoin :" |
|||
|
|||
#: tickets/templates/tickets/form_ticket.html:47 |
|||
msgid "The type of your problem (membership, connection, payment etc.)." |
|||
msgstr "Le type de votre problème (adhésion, connexion, paiement etc.)." |
|||
|
|||
#: tickets/templates/tickets/form_ticket.html:50 |
|||
msgid "" |
|||
"The conditions in which you encounter the problem (Wi-Fi/wired connection, " |
|||
"on every machines or only one, on a new machine etc.)." |
|||
msgstr "" |
|||
"Les conditions dans lesquelles vous rencontrez le problème (connexion Wi-Fi/" |
|||
"filaire, sur toutes les machines ou une seule, sur une nouvelle machine " |
|||
"etc.)." |
|||
|
|||
#: tickets/templates/tickets/form_ticket.html:53 |
|||
msgid "" |
|||
"The locations where you encounter the problem (in your room, in a common " |
|||
"space, in a specific building etc.)." |
|||
msgstr "" |
|||
"Les lieux où vous rencontrez le problème (dans votre chambre, dans un espace " |
|||
"commun, dans un bâtiment en particulier etc.)." |
|||
|
|||
#: tickets/templates/tickets/form_ticket.html:56 |
|||
msgid "Open the ticket" |
|||
msgstr "Ouvrir le ticket" |
|||
|
|||
#: tickets/templates/tickets/index.html:32 |
|||
msgid "List of tickets" |
|||
msgstr "Liste des tickets" |
|||
|
|||
#: tickets/templates/tickets/navbar.html:2 |
|||
msgid "Manage the tickets" |
|||
msgstr "Gérer les tickets" |
|||
|
|||
#: tickets/templates/tickets/preferences.html:21 |
|||
msgid "Publication email address" |
|||
msgstr "Adresse mail de publication" |
|||
|
|||
#: tickets/templates/tickets/preferences.html:25 |
|||
msgid "No email address, the tickets will not be published." |
|||
msgstr "Pas d'adresse mail, les tickets ne seront pas publiés." |
|||
|
|||
#: tickets/templates/tickets/preferences.html:29 |
|||
msgid "Email language" |
|||
msgstr "Langue du mail" |
|||
|
|||
#: tickets/templates/tickets/profil.html:19 |
|||
msgid "No tickets" |
|||
msgstr "Pas de tickets" |
|||
|
|||
#: tickets/views.py:69 tickets/views.py:80 |
|||
msgid "" |
|||
"Your ticket has been succesfully opened. We will take care of it as soon as " |
|||
"possible." |
|||
msgstr "" |
|||
"Votre ticket a bien été ouvert. Nous nous en occuperons dès que possible." |
|||
|
|||
#: tickets/views.py:125 tickets/views.py:175 |
|||
msgid "Never" |
|||
msgstr "Jamais" |
|||
|
|||
#: tickets/views.py:152 |
|||
msgid "The tickets preferences were edited." |
|||
msgstr "Les préférences de tickets ont été modifiées." |
|||
|
|||
#: tickets/views.py:155 |
|||
msgid "Invalid form." |
|||
msgstr "Formulaire invalide." |
|||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue