mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-12-27 09:23:47 +00:00
Merge branch 'add-thumbnail-to-user-model' into 'dev'
Add thumbnail to user model See merge request re2o/re2o!533
This commit is contained in:
commit
abc2748c56
23 changed files with 725 additions and 632 deletions
|
@ -21,7 +21,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 2.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-04-24 18:45+0200\n"
|
||||
"POT-Creation-Date: 2020-05-17 12:49+0200\n"
|
||||
"PO-Revision-Date: 2019-01-07 01:37+0100\n"
|
||||
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n"
|
||||
"Language-Team: \n"
|
||||
|
|
|
@ -21,7 +21,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 2.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-04-24 18:45+0200\n"
|
||||
"POT-Creation-Date: 2020-05-17 12:49+0200\n"
|
||||
"PO-Revision-Date: 2018-03-31 16:09+0002\n"
|
||||
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n"
|
||||
"Language: fr_FR\n"
|
||||
|
|
|
@ -21,7 +21,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 2.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-04-24 18:45+0200\n"
|
||||
"POT-Creation-Date: 2020-05-17 12:49+0200\n"
|
||||
"PO-Revision-Date: 2018-06-23 16:01+0200\n"
|
||||
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n"
|
||||
"Language-Team: \n"
|
||||
|
@ -54,7 +54,7 @@ msgstr "Accès gracieux"
|
|||
msgid "Bans"
|
||||
msgstr "Bannissements"
|
||||
|
||||
#: logs/forms.py:45 logs/views.py:424
|
||||
#: logs/forms.py:45 logs/views.py:430
|
||||
msgid "Topology"
|
||||
msgstr "Topologie"
|
||||
|
||||
|
@ -70,7 +70,7 @@ msgstr "IPv4"
|
|||
msgid "MAC address"
|
||||
msgstr "Adresse MAC"
|
||||
|
||||
#: logs/forms.py:101 logs/templates/logs/detailed_history.html:38
|
||||
#: logs/forms.py:101
|
||||
msgid "Performed by"
|
||||
msgstr "Effectué(e) par"
|
||||
|
||||
|
@ -89,7 +89,7 @@ msgid "End date"
|
|||
msgstr "Date de fin"
|
||||
|
||||
#: logs/forms.py:128 logs/templates/logs/search_machine_history.html:38
|
||||
#: logs/templates/logs/search_stats_logs.html:38
|
||||
#: logs/templates/logs/search_stats_logs.html:36
|
||||
msgid "Search"
|
||||
msgstr "Rechercher"
|
||||
|
||||
|
@ -97,24 +97,22 @@ msgstr "Rechercher"
|
|||
msgid "Search type"
|
||||
msgstr "Type de recherche"
|
||||
|
||||
#: logs/models.py:314 logs/models.py:498 logs/models.py:531 logs/models.py:614
|
||||
#: logs/models.py:706 logs/models.py:744
|
||||
#: logs/models.py:310 logs/models.py:552 logs/models.py:585 logs/models.py:798
|
||||
msgid "None"
|
||||
msgstr "Aucun(e)"
|
||||
|
||||
#: logs/models.py:508 logs/models.py:527 logs/models.py:541 logs/models.py:686
|
||||
#: logs/models.py:731 logs/models.py:736 logs/models.py:741 logs/models.py:751
|
||||
#: logs/views.py:604
|
||||
#: logs/models.py:562 logs/models.py:581 logs/models.py:595 logs/models.py:749
|
||||
#: logs/models.py:785 logs/models.py:790 logs/models.py:795 logs/models.py:805
|
||||
#: logs/views.py:605
|
||||
msgid "Deleted"
|
||||
msgstr "Supprimé(e)"
|
||||
|
||||
#: logs/models.py:515 logs/models.py:520
|
||||
#: logs/templates/logs/detailed_history.html:52
|
||||
#: logs/models.py:569 logs/models.py:574
|
||||
#: logs/templates/logs/machine_history.html:55
|
||||
msgid "Unknown"
|
||||
msgstr "Inconnu(e)"
|
||||
|
||||
#: logs/models.py:739
|
||||
#: logs/models.py:793
|
||||
msgid "No name"
|
||||
msgstr "Sans nom"
|
||||
|
||||
|
@ -131,19 +129,15 @@ msgid "Date of editing"
|
|||
msgstr "Date de modification"
|
||||
|
||||
#: logs/templates/logs/aff_stats_logs.html:41
|
||||
#: logs/templates/logs/detailed_history.html:39
|
||||
msgid "Edited"
|
||||
msgstr "Modifié"
|
||||
|
||||
#: logs/templates/logs/aff_stats_logs.html:42
|
||||
#: logs/templates/logs/detailed_history.html:40
|
||||
#: logs/templates/logs/machine_history.html:39
|
||||
msgid "Comment"
|
||||
msgstr "Commentaire"
|
||||
|
||||
#: logs/templates/logs/aff_stats_logs.html:51
|
||||
#: logs/templates/logs/detailed_history.html:28
|
||||
#: logs/templates/logs/detailed_history.html:85
|
||||
msgid "History"
|
||||
msgstr "Historique"
|
||||
|
||||
|
@ -184,7 +178,6 @@ msgid "Rank"
|
|||
msgstr "Rang"
|
||||
|
||||
#: logs/templates/logs/aff_summary.html:37
|
||||
#: logs/templates/logs/detailed_history.html:37
|
||||
msgid "Date"
|
||||
msgstr "Date"
|
||||
|
||||
|
@ -248,19 +241,6 @@ msgstr ""
|
|||
msgid "Confirm"
|
||||
msgstr "Confirmer"
|
||||
|
||||
#: logs/templates/logs/detailed_history.html:31
|
||||
#, python-format
|
||||
msgid "History of %(title)s"
|
||||
msgstr "Historique de %(title)s"
|
||||
|
||||
#: logs/templates/logs/detailed_history.html:75
|
||||
msgid "No event"
|
||||
msgstr "Aucun évènement"
|
||||
|
||||
#: logs/templates/logs/detailed_history.html:80
|
||||
msgid "Related elements"
|
||||
msgstr "Élements liés"
|
||||
|
||||
#: logs/templates/logs/index.html:29 logs/templates/logs/stats_general.html:29
|
||||
#: logs/templates/logs/stats_logs.html:29
|
||||
#: logs/templates/logs/stats_models.html:29
|
||||
|
@ -269,7 +249,7 @@ msgid "Statistics"
|
|||
msgstr "Statistiques"
|
||||
|
||||
#: logs/templates/logs/index.html:32 logs/templates/logs/stats_logs.html:32
|
||||
#: logs/views.py:439
|
||||
#: logs/views.py:445
|
||||
msgid "Actions performed"
|
||||
msgstr "Actions effectuées"
|
||||
|
||||
|
@ -294,8 +274,8 @@ msgstr "Aucun résultat"
|
|||
msgid "Search machine history"
|
||||
msgstr "Rechercher l'historique des machines"
|
||||
|
||||
#: logs/templates/logs/search_stats_logs.html:27
|
||||
#: logs/templates/logs/search_stats_logs.html:32
|
||||
#: logs/templates/logs/search_stats_logs.html:28
|
||||
#: logs/templates/logs/search_stats_logs.html:33
|
||||
msgid "Search events"
|
||||
msgstr "Recherche les évènements"
|
||||
|
||||
|
@ -335,134 +315,143 @@ msgstr "Statistiques sur la base de données"
|
|||
msgid "Statistics about users"
|
||||
msgstr "Statistiques sur les utilisateurs"
|
||||
|
||||
#: logs/views.py:196
|
||||
#: logs/views.py:192
|
||||
msgid "Nonexistent revision."
|
||||
msgstr "Révision inexistante."
|
||||
|
||||
#: logs/views.py:199
|
||||
#: logs/views.py:195
|
||||
msgid "The action was deleted."
|
||||
msgstr "L'action a été supprimée."
|
||||
|
||||
#: logs/views.py:240
|
||||
#: logs/views.py:236
|
||||
msgid "Category"
|
||||
msgstr "Catégorie"
|
||||
|
||||
#: logs/views.py:241
|
||||
#: logs/views.py:237
|
||||
msgid "Number of users (members and clubs)"
|
||||
msgstr "Nombre d'utilisateurs (adhérents et clubs)"
|
||||
|
||||
#: logs/views.py:242
|
||||
#: logs/views.py:238
|
||||
msgid "Number of members"
|
||||
msgstr "Nombre d'adhérents"
|
||||
|
||||
#: logs/views.py:243
|
||||
#: logs/views.py:239
|
||||
msgid "Number of clubs"
|
||||
msgstr "Nombre de clubs"
|
||||
|
||||
#: logs/views.py:247
|
||||
#: logs/views.py:243
|
||||
msgid "Activated users"
|
||||
msgstr "Utilisateurs activés"
|
||||
|
||||
#: logs/views.py:253
|
||||
#: logs/views.py:249
|
||||
msgid "Disabled users"
|
||||
msgstr "Utilisateurs désactivés"
|
||||
|
||||
#: logs/views.py:259
|
||||
#: logs/views.py:255
|
||||
msgid "Archived users"
|
||||
msgstr "Utilisateurs archivés"
|
||||
|
||||
#: logs/views.py:265
|
||||
#: logs/views.py:261
|
||||
msgid "Fully archived users"
|
||||
msgstr "Utilisateurs complètement archivés"
|
||||
|
||||
#: logs/views.py:275
|
||||
#: logs/views.py:271
|
||||
msgid "Not yet active users"
|
||||
msgstr "Utilisateurs pas encore actifs"
|
||||
|
||||
#: logs/views.py:285
|
||||
#: logs/views.py:281
|
||||
msgid "Contributing members"
|
||||
msgstr "Adhérents cotisants"
|
||||
|
||||
#: logs/views.py:291
|
||||
#: logs/views.py:287
|
||||
msgid "Users benefiting from a connection"
|
||||
msgstr "Utilisateurs bénéficiant d'une connexion"
|
||||
|
||||
#: logs/views.py:297
|
||||
#: logs/views.py:293
|
||||
msgid "Banned users"
|
||||
msgstr "Utilisateurs bannis"
|
||||
|
||||
#: logs/views.py:303
|
||||
#: logs/views.py:299
|
||||
msgid "Users benefiting from a free connection"
|
||||
msgstr "Utilisateurs bénéficiant d'une connexion gratuite"
|
||||
|
||||
#: logs/views.py:309
|
||||
#: logs/views.py:305
|
||||
msgid "Users with a confirmed email"
|
||||
msgstr "Utilisateurs ayant un mail confirmé"
|
||||
|
||||
#: logs/views.py:315
|
||||
#: logs/views.py:313
|
||||
msgid "Users with an unconfirmed email"
|
||||
msgstr "Utilisateurs ayant un mail non confirmé"
|
||||
|
||||
#: logs/views.py:321
|
||||
#: logs/views.py:325
|
||||
msgid "Users pending email confirmation"
|
||||
msgstr "Utilisateurs en attente de confirmation du mail"
|
||||
|
||||
#: logs/views.py:327
|
||||
#: logs/views.py:333
|
||||
msgid "Active interfaces (with access to the network)"
|
||||
msgstr "Interfaces actives (ayant accès au réseau)"
|
||||
|
||||
#: logs/views.py:341
|
||||
#: logs/views.py:347
|
||||
msgid "Active interfaces assigned IPv4"
|
||||
msgstr "Interfaces actives assignées IPv4"
|
||||
|
||||
#: logs/views.py:358
|
||||
#: logs/views.py:364
|
||||
msgid "IP range"
|
||||
msgstr "Plage d'IP"
|
||||
|
||||
#: logs/views.py:359
|
||||
#: logs/views.py:365
|
||||
msgid "VLAN"
|
||||
msgstr "VLAN"
|
||||
|
||||
#: logs/views.py:360
|
||||
#: logs/views.py:366
|
||||
msgid "Total number of IP addresses"
|
||||
msgstr "Nombre total d'adresses IP"
|
||||
|
||||
#: logs/views.py:361
|
||||
#: logs/views.py:367
|
||||
msgid "Number of assigned IP addresses"
|
||||
msgstr "Nombre d'adresses IP assignées"
|
||||
|
||||
#: logs/views.py:362
|
||||
#: logs/views.py:368
|
||||
msgid "Number of IP address assigned to an activated machine"
|
||||
msgstr "Nombre d'adresses IP assignées à une machine activée"
|
||||
|
||||
#: logs/views.py:363
|
||||
#: logs/views.py:369
|
||||
msgid "Number of unassigned IP addresses"
|
||||
msgstr "Nombre d'adresses IP non assignées"
|
||||
|
||||
#: logs/views.py:378
|
||||
#: logs/views.py:384
|
||||
msgid "Users (members and clubs)"
|
||||
msgstr "Utilisateurs (adhérents et clubs)"
|
||||
|
||||
#: logs/views.py:440
|
||||
#: logs/views.py:446
|
||||
msgid "Number of actions"
|
||||
msgstr "Nombre d'actions"
|
||||
|
||||
#: logs/views.py:465
|
||||
#: logs/views.py:473
|
||||
msgid "rights"
|
||||
msgstr "droits"
|
||||
|
||||
#: logs/views.py:494
|
||||
#: logs/views.py:504
|
||||
msgid "actions"
|
||||
msgstr "actions"
|
||||
|
||||
#: logs/views.py:544 logs/views.py:595
|
||||
msgid "Nonexistent entry."
|
||||
msgstr "Entrée inexistante."
|
||||
|
||||
#: logs/views.py:557
|
||||
#: logs/views.py:549
|
||||
msgid "You don't have the right to access this menu."
|
||||
msgstr "Vous n'avez pas le droit d'accéder à ce menu."
|
||||
|
||||
#: logs/views.py:582 logs/views.py:638
|
||||
#: logs/views.py:584
|
||||
msgid "No model found."
|
||||
msgstr "Aucun modèle trouvé."
|
||||
|
||||
#: logs/views.py:595
|
||||
msgid "Nonexistent entry."
|
||||
msgstr "Entrée inexistante."
|
||||
|
||||
#~ msgid "History of %(title)s"
|
||||
#~ msgstr "Historique de %(title)s"
|
||||
|
||||
#~ msgid "No event"
|
||||
#~ msgstr "Aucun évènement"
|
||||
|
||||
#~ msgid "Related elements"
|
||||
#~ msgstr "Élements liés"
|
||||
|
|
|
@ -21,7 +21,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 2.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-04-30 22:19+0200\n"
|
||||
"POT-Creation-Date: 2020-05-17 12:49+0200\n"
|
||||
"PO-Revision-Date: 2018-06-23 16:35+0200\n"
|
||||
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n"
|
||||
"Language-Team: \n"
|
||||
|
@ -163,27 +163,27 @@ msgstr "machine"
|
|||
msgid "machines"
|
||||
msgstr "machines"
|
||||
|
||||
#: machines/models.py:114
|
||||
#: machines/models.py:106
|
||||
msgid "You don't have the right to change the machine's user."
|
||||
msgstr "Vous n'avez pas le droit de changer l'utilisateur de la machine."
|
||||
|
||||
#: machines/models.py:129
|
||||
#: machines/models.py:121
|
||||
msgid "You don't have the right to view all the machines."
|
||||
msgstr "Vous n'avez pas le droit de voir toutes les machines."
|
||||
|
||||
#: machines/models.py:144
|
||||
#: machines/models.py:136
|
||||
msgid "Nonexistent user."
|
||||
msgstr "Utilisateur inexistant."
|
||||
|
||||
#: machines/models.py:154 machines/models.py:1305
|
||||
#: machines/models.py:146 machines/models.py:1295
|
||||
msgid "You don't have the right to add a machine."
|
||||
msgstr "Vous n'avez pas le droit d'ajouter une machine."
|
||||
|
||||
#: machines/models.py:160
|
||||
#: machines/models.py:152
|
||||
msgid "You don't have the right to add a machine to another user."
|
||||
msgstr "Vous n'avez pas le droit d'ajouter une machine à un autre utilisateur."
|
||||
|
||||
#: machines/models.py:168 machines/models.py:1322
|
||||
#: machines/models.py:159 machines/models.py:1314
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You reached the maximum number of interfaces that you are allowed to create "
|
||||
|
@ -192,78 +192,78 @@ msgstr ""
|
|||
"Vous avez atteint le nombre maximal d'interfaces que vous pouvez créer vous-"
|
||||
"même (%s)."
|
||||
|
||||
#: machines/models.py:189
|
||||
#: machines/models.py:180 machines/models.py:1346
|
||||
msgid "You don't have the right to edit a machine of another user."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit de modifier une machine d'un autre utilisateur."
|
||||
|
||||
#: machines/models.py:209
|
||||
#: machines/models.py:199
|
||||
msgid "You don't have the right to delete a machine of another user."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit de supprimer une machine d'une autre utilisateur."
|
||||
|
||||
#: machines/models.py:228 machines/models.py:1764
|
||||
#: machines/models.py:218 machines/models.py:1763
|
||||
msgid "You don't have the right to view other machines than yours."
|
||||
msgstr "Vous n'avez pas le droit de voir d'autres machines que les vôtres."
|
||||
|
||||
#: machines/models.py:242 machines/templates/machines/aff_machines.html:53
|
||||
#: machines/models.py:231 machines/templates/machines/aff_machines.html:53
|
||||
msgid "No name"
|
||||
msgstr "Sans nom"
|
||||
|
||||
#: machines/models.py:319
|
||||
#: machines/models.py:308
|
||||
msgid "Can view a machine type object"
|
||||
msgstr "Peut voir un objet type de machine"
|
||||
|
||||
#: machines/models.py:320
|
||||
#: machines/models.py:309
|
||||
msgid "Can use all machine types"
|
||||
msgstr "Peut utiliser tous les types de machine"
|
||||
|
||||
#: machines/models.py:322
|
||||
#: machines/models.py:311
|
||||
msgid "machine type"
|
||||
msgstr "type de machine"
|
||||
|
||||
#: machines/models.py:323
|
||||
#: machines/models.py:312
|
||||
msgid "machine types"
|
||||
msgstr "types de machine"
|
||||
|
||||
#: machines/models.py:343
|
||||
#: machines/models.py:332
|
||||
msgid "You don't have the right to use all machine types."
|
||||
msgstr "Vous n'avez pas le droit d'utiliser tous les types de machine."
|
||||
|
||||
#: machines/models.py:364
|
||||
#: machines/models.py:353
|
||||
msgid "Network containing the domain's IPv4 range (optional)."
|
||||
msgstr "Réseau contenant la plage IPv4 du domaine (optionnel)."
|
||||
|
||||
#: machines/models.py:369
|
||||
#: machines/models.py:358
|
||||
msgid "Netmask for the domain's IPv4 range."
|
||||
msgstr "Masque de sous-réseau pour la plage IPv4 du domaine."
|
||||
|
||||
#: machines/models.py:372
|
||||
#: machines/models.py:361
|
||||
msgid "Enable reverse DNS for IPv4."
|
||||
msgstr "Activer DNS inverse pour IPv4."
|
||||
|
||||
#: machines/models.py:379
|
||||
#: machines/models.py:368
|
||||
msgid "Enable reverse DNS for IPv6."
|
||||
msgstr "Activer DNS inverse pour IPv6."
|
||||
|
||||
#: machines/models.py:386
|
||||
#: machines/models.py:375
|
||||
msgid "Can view an IP type object"
|
||||
msgstr "Peut voir un objet type d'IP"
|
||||
|
||||
#: machines/models.py:387
|
||||
#: machines/models.py:376
|
||||
msgid "Can use all IP types"
|
||||
msgstr "Peut utiliser tous les types d'IP"
|
||||
|
||||
#: machines/models.py:389 machines/templates/machines/aff_iptype.html:35
|
||||
#: machines/models.py:378 machines/templates/machines/aff_iptype.html:35
|
||||
#: machines/templates/machines/machine.html:108
|
||||
msgid "IP type"
|
||||
msgstr "type d'IP"
|
||||
|
||||
#: machines/models.py:390
|
||||
#: machines/models.py:379
|
||||
msgid "IP types"
|
||||
msgstr "types d'IP"
|
||||
|
||||
#: machines/models.py:499
|
||||
#: machines/models.py:488
|
||||
msgid ""
|
||||
"One or several IP addresses from the range are affected, impossible to "
|
||||
"delete the range."
|
||||
|
@ -271,25 +271,25 @@ msgstr ""
|
|||
"Une ou plusieurs adresses IP de la plage sont affectées, impossible de "
|
||||
"supprimer la plage."
|
||||
|
||||
#: machines/models.py:546
|
||||
#: machines/models.py:535
|
||||
msgid "Domaine IPv4 start and stop must be valid"
|
||||
msgstr "Les valeurs IPv4 Domaine ip start et stop doivent être valides"
|
||||
|
||||
#: machines/models.py:548
|
||||
#: machines/models.py:537
|
||||
msgid "Range end must be after range start..."
|
||||
msgstr "La fin de la plage doit être après le début..."
|
||||
|
||||
#: machines/models.py:553
|
||||
#: machines/models.py:542
|
||||
msgid "The range is too large, you can't create a larger one than a /16."
|
||||
msgstr ""
|
||||
"La plage est trop grande, vous ne pouvez pas en créer une plus grande "
|
||||
"qu'un /16."
|
||||
|
||||
#: machines/models.py:561
|
||||
#: machines/models.py:550
|
||||
msgid "The specified range is not disjoint from existing ranges."
|
||||
msgstr "La plage renseignée n'est pas disjointe des plages existantes."
|
||||
|
||||
#: machines/models.py:575
|
||||
#: machines/models.py:563
|
||||
msgid ""
|
||||
"If you specify a domain network or netmask, it must contain the domain's IP "
|
||||
"range."
|
||||
|
@ -297,47 +297,47 @@ msgstr ""
|
|||
"Si vous renseignez un réseau ou masque de sous-réseau, il doit contenir la "
|
||||
"plage IP du domaine."
|
||||
|
||||
#: machines/models.py:613
|
||||
#: machines/models.py:601
|
||||
msgid "v4 multicast management."
|
||||
msgstr "gestion de multidiffusion v4."
|
||||
|
||||
#: machines/models.py:614
|
||||
#: machines/models.py:602
|
||||
msgid "v6 multicast management."
|
||||
msgstr "gestion de multidiffusion v6."
|
||||
|
||||
#: machines/models.py:617
|
||||
#: machines/models.py:605
|
||||
msgid "Can view a VLAN object"
|
||||
msgstr "Peut voir un objet VLAN"
|
||||
|
||||
#: machines/models.py:618 machines/templates/machines/machine.html:160
|
||||
#: machines/models.py:606 machines/templates/machines/machine.html:160
|
||||
msgid "VLAN"
|
||||
msgstr "VLAN"
|
||||
|
||||
#: machines/models.py:619 machines/templates/machines/sidebar.html:57
|
||||
#: machines/models.py:607 machines/templates/machines/sidebar.html:57
|
||||
msgid "VLANs"
|
||||
msgstr "VLANs"
|
||||
|
||||
#: machines/models.py:631
|
||||
#: machines/models.py:619
|
||||
msgid "MAC-address"
|
||||
msgstr "MAC-address"
|
||||
|
||||
#: machines/models.py:646
|
||||
#: machines/models.py:634
|
||||
msgid "Can view a NAS device object"
|
||||
msgstr "Peut voir un objet dispositif NAS"
|
||||
|
||||
#: machines/models.py:647 machines/templates/machines/machine.html:164
|
||||
#: machines/models.py:635 machines/templates/machines/machine.html:164
|
||||
msgid "NAS device"
|
||||
msgstr "dispositif NAS"
|
||||
|
||||
#: machines/models.py:648 machines/templates/machines/sidebar.html:63
|
||||
#: machines/models.py:636 machines/templates/machines/sidebar.html:63
|
||||
msgid "NAS devices"
|
||||
msgstr "dispositifs NAS"
|
||||
|
||||
#: machines/models.py:662
|
||||
#: machines/models.py:650
|
||||
msgid "Contact email address for the zone."
|
||||
msgstr "Adresse mail de contact pour la zone."
|
||||
|
||||
#: machines/models.py:666
|
||||
#: machines/models.py:654
|
||||
msgid ""
|
||||
"Seconds before the secondary DNS have to ask the primary DNS serial to "
|
||||
"detect a modification."
|
||||
|
@ -345,7 +345,7 @@ msgstr ""
|
|||
"Secondes avant que le DNS secondaire demande au DNS primaire le serial pour "
|
||||
"détecter une modification."
|
||||
|
||||
#: machines/models.py:673
|
||||
#: machines/models.py:661
|
||||
msgid ""
|
||||
"Seconds before the secondary DNS ask the serial again in case of a primary "
|
||||
"DNS timeout."
|
||||
|
@ -353,7 +353,7 @@ msgstr ""
|
|||
"Secondes avant que le DNS secondaire demande le serial de nouveau dans le "
|
||||
"cas d'un délai d'attente du DNS primaire."
|
||||
|
||||
#: machines/models.py:680
|
||||
#: machines/models.py:668
|
||||
msgid ""
|
||||
"Seconds before the secondary DNS stop answering requests in case of primary "
|
||||
"DNS timeout."
|
||||
|
@ -361,121 +361,121 @@ msgstr ""
|
|||
"Secondes avant que le DNS secondaire arrête de répondre aux requêtes dans le "
|
||||
"cas d'un délai d'attente du DNS primaire."
|
||||
|
||||
#: machines/models.py:685 machines/models.py:952
|
||||
#: machines/models.py:673 machines/models.py:940
|
||||
msgid "Time To Live."
|
||||
msgstr "Temps de vie"
|
||||
|
||||
#: machines/models.py:689
|
||||
#: machines/models.py:677
|
||||
msgid "Can view an SOA record object"
|
||||
msgstr "Peut voir un objet enregistrement SOA"
|
||||
|
||||
#: machines/models.py:690 machines/templates/machines/aff_extension.html:36
|
||||
#: machines/models.py:678 machines/templates/machines/aff_extension.html:36
|
||||
#: machines/templates/machines/machine.html:120
|
||||
msgid "SOA record"
|
||||
msgstr "enregistrement SOA"
|
||||
|
||||
#: machines/models.py:691
|
||||
#: machines/models.py:679
|
||||
msgid "SOA records"
|
||||
msgstr "enregistrements SOA"
|
||||
|
||||
#: machines/models.py:730
|
||||
#: machines/models.py:718
|
||||
msgid "SOA to edit"
|
||||
msgstr "SOA à modifier"
|
||||
|
||||
#: machines/models.py:741
|
||||
#: machines/models.py:729
|
||||
msgid "Zone name, must begin with a dot (.example.org)."
|
||||
msgstr "Nom de zone, doit commencer par un point (.example.org)."
|
||||
|
||||
#: machines/models.py:749
|
||||
#: machines/models.py:737
|
||||
msgid "A record associated with the zone."
|
||||
msgstr "Enregistrement A associé à la zone."
|
||||
|
||||
#: machines/models.py:755
|
||||
#: machines/models.py:743
|
||||
msgid "AAAA record associated with the zone."
|
||||
msgstr "Enregristrement AAAA associé avec la zone."
|
||||
|
||||
#: machines/models.py:759
|
||||
#: machines/models.py:747
|
||||
msgid "Should the zone be signed with DNSSEC."
|
||||
msgstr "La zone doit-elle être signée avec DNSSEC."
|
||||
|
||||
#: machines/models.py:764
|
||||
#: machines/models.py:752
|
||||
msgid "Can view an extension object"
|
||||
msgstr "Peut voir un objet extension"
|
||||
|
||||
#: machines/models.py:765
|
||||
#: machines/models.py:753
|
||||
msgid "Can use all extensions"
|
||||
msgstr "Peut utiliser toutes les extensions"
|
||||
|
||||
#: machines/models.py:767
|
||||
#: machines/models.py:755
|
||||
msgid "DNS extension"
|
||||
msgstr "extension DNS"
|
||||
|
||||
#: machines/models.py:768
|
||||
#: machines/models.py:756
|
||||
msgid "DNS extensions"
|
||||
msgstr "extensions DNS"
|
||||
|
||||
#: machines/models.py:828
|
||||
#: machines/models.py:816
|
||||
msgid "You don't have the right to use all extensions."
|
||||
msgstr "Vous n'avez pas le droit d'utiliser toutes les extensions."
|
||||
|
||||
#: machines/models.py:837
|
||||
#: machines/models.py:825
|
||||
msgid "An extension must begin with a dot."
|
||||
msgstr "Une extension doit commencer par un point."
|
||||
|
||||
#: machines/models.py:850 machines/models.py:876 machines/models.py:900
|
||||
#: machines/models.py:923 machines/models.py:1589
|
||||
#: machines/models.py:838 machines/models.py:864 machines/models.py:888
|
||||
#: machines/models.py:911 machines/models.py:1588
|
||||
msgid "Time To Live (TTL)"
|
||||
msgstr "Temps de vie (TTL)"
|
||||
|
||||
#: machines/models.py:854
|
||||
#: machines/models.py:842
|
||||
msgid "Can view an MX record object"
|
||||
msgstr "Peut voir un objet enregistrement MX"
|
||||
|
||||
#: machines/models.py:855 machines/templates/machines/machine.html:124
|
||||
#: machines/models.py:843 machines/templates/machines/machine.html:124
|
||||
msgid "MX record"
|
||||
msgstr "enregistrement MX"
|
||||
|
||||
#: machines/models.py:856
|
||||
#: machines/models.py:844
|
||||
msgid "MX records"
|
||||
msgstr "enregistrements MX"
|
||||
|
||||
#: machines/models.py:880
|
||||
#: machines/models.py:868
|
||||
msgid "Can view an NS record object"
|
||||
msgstr "Peut voir un objet enregistrement NS"
|
||||
|
||||
#: machines/models.py:881 machines/templates/machines/machine.html:128
|
||||
#: machines/models.py:869 machines/templates/machines/machine.html:128
|
||||
msgid "NS record"
|
||||
msgstr "enregistrement NS"
|
||||
|
||||
#: machines/models.py:882
|
||||
#: machines/models.py:870
|
||||
msgid "NS records"
|
||||
msgstr "enregistrements NS"
|
||||
|
||||
#: machines/models.py:904
|
||||
#: machines/models.py:892
|
||||
msgid "Can view a TXT record object"
|
||||
msgstr "Peut voir un objet enregistrement TXT"
|
||||
|
||||
#: machines/models.py:905 machines/templates/machines/machine.html:132
|
||||
#: machines/models.py:893 machines/templates/machines/machine.html:132
|
||||
msgid "TXT record"
|
||||
msgstr "enregistrement TXT"
|
||||
|
||||
#: machines/models.py:906
|
||||
#: machines/models.py:894
|
||||
msgid "TXT records"
|
||||
msgstr "enregistrements TXT"
|
||||
|
||||
#: machines/models.py:927
|
||||
#: machines/models.py:915
|
||||
msgid "Can view a DNAME record object"
|
||||
msgstr "Peut voir un objet enregistrement DNAME"
|
||||
|
||||
#: machines/models.py:928 machines/templates/machines/machine.html:136
|
||||
#: machines/models.py:916 machines/templates/machines/machine.html:136
|
||||
msgid "DNAME record"
|
||||
msgstr "enregistrement DNAME"
|
||||
|
||||
#: machines/models.py:929
|
||||
#: machines/models.py:917
|
||||
msgid "DNAME records"
|
||||
msgstr "enregistrements DNAME"
|
||||
|
||||
#: machines/models.py:958
|
||||
#: machines/models.py:946
|
||||
msgid ""
|
||||
"Priority of the target server (positive integer value, the lower it is, the "
|
||||
"more the server will be used if available)."
|
||||
|
@ -483,7 +483,7 @@ msgstr ""
|
|||
"Priorité du serveur cible (entier positif, plus il est bas, plus le serveur "
|
||||
"sera utilisé si disponible)."
|
||||
|
||||
#: machines/models.py:967
|
||||
#: machines/models.py:955
|
||||
msgid ""
|
||||
"Relative weight for records with the same priority (integer value between 0 "
|
||||
"and 65535)."
|
||||
|
@ -491,165 +491,164 @@ msgstr ""
|
|||
"Poids relatif des enregistrements avec la même priorité (entier entre 0 et "
|
||||
"65535)."
|
||||
|
||||
#: machines/models.py:972
|
||||
#: machines/models.py:960
|
||||
msgid "TCP/UDP port."
|
||||
msgstr "Port TCP/UDP."
|
||||
|
||||
#: machines/models.py:975
|
||||
#: machines/models.py:963
|
||||
msgid "Target server."
|
||||
msgstr "Serveur cible."
|
||||
|
||||
#: machines/models.py:979
|
||||
#: machines/models.py:967
|
||||
msgid "Can view an SRV record object"
|
||||
msgstr "Peut voir un objet enregistrement SRV"
|
||||
|
||||
#: machines/models.py:980 machines/templates/machines/machine.html:140
|
||||
#: machines/models.py:968 machines/templates/machines/machine.html:140
|
||||
msgid "SRV record"
|
||||
msgstr "enregistrement SRV"
|
||||
|
||||
#: machines/models.py:981
|
||||
#: machines/models.py:969
|
||||
msgid "SRV records"
|
||||
msgstr "enregistrements SRV"
|
||||
|
||||
#: machines/models.py:1032
|
||||
#: machines/models.py:1020
|
||||
msgid "SSH public key."
|
||||
msgstr "Clé publique SSH."
|
||||
|
||||
#: machines/models.py:1035
|
||||
#: machines/models.py:1023
|
||||
msgid "Comment."
|
||||
msgstr "Commentaire."
|
||||
|
||||
#: machines/models.py:1058
|
||||
#: machines/models.py:1046
|
||||
msgid "Can view an SSHFP record object"
|
||||
msgstr "Peut voir un objet enregistrement SSHFP"
|
||||
|
||||
#: machines/models.py:1059 machines/templates/machines/machine.html:144
|
||||
#: machines/models.py:1047 machines/templates/machines/machine.html:144
|
||||
#: machines/views.py:474
|
||||
msgid "SSHFP record"
|
||||
msgstr "enregistrement SSHFP"
|
||||
|
||||
#: machines/models.py:1060
|
||||
#: machines/models.py:1048
|
||||
msgid "SSHFP records"
|
||||
msgstr "enregistrements SSHFP"
|
||||
|
||||
#: machines/models.py:1095
|
||||
#: machines/models.py:1083
|
||||
msgid "Can view an interface object"
|
||||
msgstr "Peut voir un objet interface"
|
||||
|
||||
#: machines/models.py:1096
|
||||
#: machines/models.py:1084
|
||||
msgid "Can change the owner of an interface"
|
||||
msgstr "Peut changer l'utilisateur d'une interface"
|
||||
|
||||
#: machines/models.py:1098 machines/views.py:358
|
||||
#: machines/models.py:1086 machines/views.py:358
|
||||
msgid "interface"
|
||||
msgstr "interface"
|
||||
|
||||
#: machines/models.py:1099
|
||||
#: machines/models.py:1087
|
||||
msgid "interfaces"
|
||||
msgstr "interfaces"
|
||||
|
||||
#: machines/models.py:1137
|
||||
#: machines/models.py:1125
|
||||
msgid "Unknown vendor."
|
||||
msgstr "Constructeur inconnu."
|
||||
|
||||
#: machines/models.py:1201
|
||||
#: machines/models.py:1189
|
||||
msgid "The given MAC address is invalid."
|
||||
msgstr "L'adresse MAC indiquée est invalide."
|
||||
|
||||
#: machines/models.py:1210
|
||||
#: machines/models.py:1198
|
||||
msgid "There are no IP addresses available in the slash."
|
||||
msgstr "Il n'y a pas d'adresses IP disponibles dans le slash."
|
||||
|
||||
#: machines/models.py:1262
|
||||
#: machines/models.py:1250
|
||||
msgid "The selected IP type is invalid."
|
||||
msgstr "Le type d'IP sélectionné est invalide."
|
||||
|
||||
#: machines/models.py:1276
|
||||
#: machines/models.py:1264
|
||||
msgid "MAC address already registered in this machine type/subnet."
|
||||
msgstr "Adresse MAC déjà enregistrée dans ce type de machine/sous-réseau."
|
||||
|
||||
#: machines/models.py:1285
|
||||
#: machines/models.py:1273
|
||||
msgid "The IPv4 address and the machine type don't match."
|
||||
msgstr "L'adresse IPv4 et le type de machine ne correspondent pas."
|
||||
|
||||
#: machines/models.py:1300
|
||||
#: machines/models.py:1288
|
||||
msgid "Nonexistent machine."
|
||||
msgstr "Machine inexistante."
|
||||
|
||||
#: machines/models.py:1313
|
||||
#: machines/models.py:1305
|
||||
msgid ""
|
||||
"You don't have the right to add an interface to a machine of another user."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit d'ajouter une interface à une machine d'un autre "
|
||||
"utilisateur."
|
||||
|
||||
#: machines/models.py:1337
|
||||
#: machines/models.py:1329
|
||||
msgid "You don't have the right to edit the machine."
|
||||
msgstr "Vous n'avez pas le droit d'éditer une machine."
|
||||
|
||||
#: machines/models.py:1354
|
||||
msgid "You don't have the right to edit interfaces of another user."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit de modifier une interface d'un autre utilisateur."
|
||||
|
||||
#: machines/models.py:1373
|
||||
#: machines/models.py:1365
|
||||
msgid "You don't have the right to delete interfaces of another user."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit de supprimer une interface d'une autre utilisateur."
|
||||
|
||||
#: machines/models.py:1391
|
||||
#: machines/models.py:1384
|
||||
msgid "You don't have the right to view interfaces other than yours."
|
||||
msgstr "Vous n'avez pas le droit de voir d'autres interfaces que les vôtres."
|
||||
|
||||
#: machines/models.py:1419
|
||||
#: machines/models.py:1412
|
||||
msgid "Can view an IPv6 addresses list object"
|
||||
msgstr "Peut voir un objet list d'adresses IPv6"
|
||||
|
||||
#: machines/models.py:1422
|
||||
#: machines/models.py:1415
|
||||
msgid "Can change the SLAAC value of an IPv6 addresses list"
|
||||
msgstr "Peut modifier la valeur SLAAC d'une liste d'adresses IPv6"
|
||||
|
||||
#: machines/models.py:1425 machines/views.py:418
|
||||
#: machines/models.py:1418 machines/views.py:418
|
||||
msgid "IPv6 addresses list"
|
||||
msgstr "Liste d'adresses IPv6"
|
||||
|
||||
#: machines/models.py:1426
|
||||
#: machines/models.py:1419
|
||||
msgid "IPv6 addresses lists"
|
||||
msgstr "Listes d'adresses IPv6"
|
||||
|
||||
#: machines/models.py:1438 machines/models.py:1679
|
||||
#: machines/models.py:1431 machines/models.py:1678
|
||||
msgid "Nonexistent interface."
|
||||
msgstr "Interface inexistante."
|
||||
|
||||
#: machines/models.py:1444
|
||||
#: machines/models.py:1437
|
||||
msgid "You don't have the right to add ipv6 to a machine of another user."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit d'ajouter des ipv6 à une machine d'un autre utilisateur."
|
||||
"Vous n'avez pas le droit d'ajouter des ipv6 à une machine d'un autre "
|
||||
"utilisateur."
|
||||
|
||||
#: machines/models.py:1457
|
||||
#: machines/models.py:1450
|
||||
msgid "You don't have the right to change the SLAAC value of an IPv6 address."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit de changer la valeur SLAAC d'une adresse IPv6."
|
||||
|
||||
#: machines/models.py:1476
|
||||
#: machines/models.py:1470
|
||||
msgid "You don't have the right to edit ipv6 of a machine of another user."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit de modifier les ipv6 d'une machine d'un autre utilisateur."
|
||||
"Vous n'avez pas le droit de modifier les ipv6 d'une machine d'un autre "
|
||||
"utilisateur."
|
||||
|
||||
#: machines/models.py:1494
|
||||
#: machines/models.py:1490
|
||||
msgid "You don't have the right to delete ipv6 of a machine of another user."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit de supprimer les ipv6 d'une machine d'une autre utilisateur."
|
||||
"Vous n'avez pas le droit de supprimer les ipv6 d'une machine d'une autre "
|
||||
"utilisateur."
|
||||
|
||||
#: machines/models.py:1511
|
||||
#: machines/models.py:1509
|
||||
msgid "You don't have the right to view ipv6 of machines other than yours."
|
||||
msgstr "Vous n'avez pas le droit de voir les ipv6 d'autres machines que les vôtres."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit de voir les ipv6 d'autres machines que les vôtres."
|
||||
|
||||
#: machines/models.py:1543
|
||||
#: machines/models.py:1542
|
||||
msgid "A SLAAC IP address is already registered."
|
||||
msgstr "Une adresse IP SLAAC est déjà enregistrée."
|
||||
|
||||
#: machines/models.py:1557
|
||||
#: machines/models.py:1556
|
||||
msgid ""
|
||||
"The v6 prefix is incorrect and doesn't match the type associated with the "
|
||||
"machine."
|
||||
|
@ -657,55 +656,55 @@ msgstr ""
|
|||
"Le préfixe v6 est incorrect et ne correspond pas au type associé à la "
|
||||
"machine."
|
||||
|
||||
#: machines/models.py:1582
|
||||
#: machines/models.py:1581
|
||||
msgid "Mandatory and unique, must not contain dots."
|
||||
msgstr "Obligatoire et unique, ne doit pas contenir de points."
|
||||
|
||||
#: machines/models.py:1597
|
||||
#: machines/models.py:1596
|
||||
msgid "Can view a domain object"
|
||||
msgstr "Peut voir un objet domaine"
|
||||
|
||||
#: machines/models.py:1598
|
||||
#: machines/models.py:1597
|
||||
msgid "Can change the TTL of a domain object"
|
||||
msgstr "Peut changer le TTL d'un objet domaine"
|
||||
|
||||
#: machines/models.py:1600
|
||||
#: machines/models.py:1599
|
||||
msgid "domain"
|
||||
msgstr "domaine"
|
||||
|
||||
#: machines/models.py:1601
|
||||
#: machines/models.py:1600
|
||||
msgid "domains"
|
||||
msgstr "domaines"
|
||||
|
||||
#: machines/models.py:1623
|
||||
#: machines/models.py:1622
|
||||
msgid "You can't create a both A and CNAME record."
|
||||
msgstr "Vous ne pouvez pas créer un enregistrement à la fois A et CNAME."
|
||||
|
||||
#: machines/models.py:1626
|
||||
#: machines/models.py:1625
|
||||
msgid "You can't create a CNAME record pointing to itself."
|
||||
msgstr "Vous ne pouvez pas créer un enregistrement CNAME vers lui-même."
|
||||
|
||||
#: machines/models.py:1632
|
||||
#: machines/models.py:1631
|
||||
#, python-format
|
||||
msgid "The domain name %s is too long (over 63 characters)."
|
||||
msgstr "Le nom de domaine %s est trop long (plus de 63 caractères)."
|
||||
|
||||
#: machines/models.py:1636
|
||||
#: machines/models.py:1635
|
||||
#, python-format
|
||||
msgid "The domain name %s contains forbidden characters."
|
||||
msgstr "Le nom de domaine %s contient des caractères interdits."
|
||||
|
||||
#: machines/models.py:1653
|
||||
#: machines/models.py:1652
|
||||
msgid "Invalid extension."
|
||||
msgstr "Extension invalide."
|
||||
|
||||
#: machines/models.py:1688
|
||||
#: machines/models.py:1687
|
||||
msgid "You don't have the right to add an alias to a machine of another user."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit d'ajouter un alias à une machine d'un autre "
|
||||
"utilisateur."
|
||||
|
||||
#: machines/models.py:1704
|
||||
#: machines/models.py:1703
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You reached the maximum number of alias that you are allowed to create "
|
||||
|
@ -714,164 +713,164 @@ msgstr ""
|
|||
"Vous avez atteint le nombre maximal d'alias que vous pouvez créer vous-même "
|
||||
"(%s)."
|
||||
|
||||
#: machines/models.py:1725
|
||||
#: machines/models.py:1724
|
||||
msgid "You don't have the right to edit an alias of a machine of another user."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit de modifier un alias d'une machine d'un autre "
|
||||
"utilisateur."
|
||||
|
||||
#: machines/models.py:1745
|
||||
#: machines/models.py:1744
|
||||
msgid ""
|
||||
"You don't have the right to delete an alias of a machine of another user."
|
||||
msgstr ""
|
||||
"Vous n'avez pas le droit de supprimer un alias d'une machine d'un autre "
|
||||
"utilisateur."
|
||||
|
||||
#: machines/models.py:1775
|
||||
#: machines/models.py:1773
|
||||
msgid "You don't have the right to change the domain's TTL."
|
||||
msgstr "Vous n'avez pas le droit de changer le TTL du domaine."
|
||||
|
||||
#: machines/models.py:1792
|
||||
#: machines/models.py:1790
|
||||
msgid "Can view an IPv4 addresses list object"
|
||||
msgstr "Peut voir un object liste d'adresses IPv4"
|
||||
|
||||
#: machines/models.py:1793
|
||||
#: machines/models.py:1791
|
||||
msgid "IPv4 addresses list"
|
||||
msgstr "Liste d'adresses IPv4"
|
||||
|
||||
#: machines/models.py:1794
|
||||
#: machines/models.py:1792
|
||||
msgid "IPv4 addresses lists"
|
||||
msgstr "Listes d'adresses IPv4"
|
||||
|
||||
#: machines/models.py:1806
|
||||
#: machines/models.py:1804
|
||||
msgid "The IPv4 address and the range of the IP type don't match."
|
||||
msgstr "L'adresse IPv4 et la plage du type d'IP ne correspondent pas."
|
||||
|
||||
#: machines/models.py:1824
|
||||
#: machines/models.py:1822
|
||||
msgid "DHCP server"
|
||||
msgstr "Serveur DHCP"
|
||||
|
||||
#: machines/models.py:1825
|
||||
#: machines/models.py:1823
|
||||
msgid "Switches configuration server"
|
||||
msgstr "Serveur de configuration des commutateurs réseau"
|
||||
|
||||
#: machines/models.py:1826
|
||||
#: machines/models.py:1824
|
||||
msgid "Recursive DNS server"
|
||||
msgstr "Serveur DNS récursif"
|
||||
|
||||
#: machines/models.py:1827
|
||||
#: machines/models.py:1825
|
||||
msgid "NTP server"
|
||||
msgstr "Serveur NTP"
|
||||
|
||||
#: machines/models.py:1828
|
||||
#: machines/models.py:1826
|
||||
msgid "RADIUS server"
|
||||
msgstr "Serveur RADIUS"
|
||||
|
||||
#: machines/models.py:1829
|
||||
#: machines/models.py:1827
|
||||
msgid "Log server"
|
||||
msgstr "Serveur log"
|
||||
|
||||
#: machines/models.py:1830
|
||||
#: machines/models.py:1828
|
||||
msgid "LDAP master server"
|
||||
msgstr "Serveur LDAP maître"
|
||||
|
||||
#: machines/models.py:1831
|
||||
#: machines/models.py:1829
|
||||
msgid "LDAP backup server"
|
||||
msgstr "Serveur LDAP de secours"
|
||||
|
||||
#: machines/models.py:1832
|
||||
#: machines/models.py:1830
|
||||
msgid "SMTP server"
|
||||
msgstr "Serveur SMTP"
|
||||
|
||||
#: machines/models.py:1833
|
||||
#: machines/models.py:1831
|
||||
msgid "postgreSQL server"
|
||||
msgstr "Serveur postgreSQL"
|
||||
|
||||
#: machines/models.py:1834
|
||||
#: machines/models.py:1832
|
||||
msgid "mySQL server"
|
||||
msgstr "Serveur mySQL"
|
||||
|
||||
#: machines/models.py:1835
|
||||
#: machines/models.py:1833
|
||||
msgid "SQL client"
|
||||
msgstr "Client SQL"
|
||||
|
||||
#: machines/models.py:1836
|
||||
#: machines/models.py:1834
|
||||
msgid "Gateway"
|
||||
msgstr "Passerelle"
|
||||
|
||||
#: machines/models.py:1844
|
||||
#: machines/models.py:1842
|
||||
msgid "Can view a role object"
|
||||
msgstr "Peut voir un objet rôle"
|
||||
|
||||
#: machines/models.py:1845
|
||||
#: machines/models.py:1843
|
||||
msgid "server role"
|
||||
msgstr "rôle de serveur"
|
||||
|
||||
#: machines/models.py:1846
|
||||
#: machines/models.py:1844
|
||||
msgid "server roles"
|
||||
msgstr "rôles de serveur"
|
||||
|
||||
#: machines/models.py:1878
|
||||
#: machines/models.py:1876
|
||||
msgid "Minimal time before regeneration of the service."
|
||||
msgstr "Temps minimal avant régénération du service."
|
||||
|
||||
#: machines/models.py:1882
|
||||
#: machines/models.py:1880
|
||||
msgid "Maximal time before regeneration of the service."
|
||||
msgstr "Temps maximal avant régénération du service."
|
||||
|
||||
#: machines/models.py:1887
|
||||
#: machines/models.py:1885
|
||||
msgid "Can view a service object"
|
||||
msgstr "Peut voir un objet service"
|
||||
|
||||
#: machines/models.py:1888
|
||||
#: machines/models.py:1886
|
||||
msgid "service to generate (DHCP, DNS, ...)"
|
||||
msgstr "service à générer (DHCP, DNS, ...)"
|
||||
|
||||
#: machines/models.py:1889
|
||||
#: machines/models.py:1887
|
||||
msgid "services to generate (DHCP, DNS, ...)"
|
||||
msgstr "services à générer (DHCP, DNS, ...)"
|
||||
|
||||
#: machines/models.py:1933
|
||||
#: machines/models.py:1931
|
||||
msgid "Can view a service server link object"
|
||||
msgstr "Peut voir un objet lien service serveur"
|
||||
|
||||
#: machines/models.py:1935
|
||||
#: machines/models.py:1933
|
||||
msgid "link between service and server"
|
||||
msgstr "lien entre service et serveur"
|
||||
|
||||
#: machines/models.py:1936
|
||||
#: machines/models.py:1934
|
||||
msgid "links between service and server"
|
||||
msgstr "liens entre service et serveur"
|
||||
|
||||
#: machines/models.py:1977
|
||||
#: machines/models.py:1975
|
||||
msgid "Name of the ports configuration"
|
||||
msgstr "Nom de la configuration de ports"
|
||||
|
||||
#: machines/models.py:1982
|
||||
#: machines/models.py:1980
|
||||
msgid "Can view a ports opening list object"
|
||||
msgstr "Peut voir un objet liste d'ouverture de ports"
|
||||
|
||||
#: machines/models.py:1985
|
||||
#: machines/models.py:1982
|
||||
msgid "ports opening list"
|
||||
msgstr "liste d'ouverture de ports"
|
||||
|
||||
#: machines/models.py:1986
|
||||
#: machines/models.py:1983
|
||||
msgid "ports opening lists"
|
||||
msgstr "listes d'ouverture de ports"
|
||||
|
||||
#: machines/models.py:1997
|
||||
#: machines/models.py:1994
|
||||
msgid "You don't have the right to delete a ports opening list."
|
||||
msgstr "Vous n'avez pas le droit de supprimer une liste d'ouverture de ports."
|
||||
|
||||
#: machines/models.py:2001
|
||||
#: machines/models.py:1998
|
||||
msgid "This ports opening list is used."
|
||||
msgstr "Cette liste d'ouverture de ports est utilisée."
|
||||
|
||||
#: machines/models.py:2055
|
||||
#: machines/models.py:2052
|
||||
msgid "ports opening"
|
||||
msgstr "ouverture de ports"
|
||||
|
||||
#: machines/models.py:2056
|
||||
#: machines/models.py:2053
|
||||
msgid "ports openings"
|
||||
msgstr "ouvertures de ports"
|
||||
|
||||
|
@ -1801,3 +1800,7 @@ msgstr ""
|
|||
#: machines/views.py:1561
|
||||
msgid "The ports configuration was edited."
|
||||
msgstr "La configuration de ports a été modifiée."
|
||||
|
||||
#~ msgid "You don't have the right to edit interfaces of another user."
|
||||
#~ msgstr ""
|
||||
#~ "Vous n'avez pas le droit de modifier une interface d'un autre utilisateur."
|
||||
|
|
|
@ -21,7 +21,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 2.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-04-24 18:45+0200\n"
|
||||
"POT-Creation-Date: 2020-05-17 12:49+0200\n"
|
||||
"PO-Revision-Date: 2019-11-16 00:22+0100\n"
|
||||
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n"
|
||||
"Language-Team: \n"
|
||||
|
|
|
@ -150,6 +150,7 @@ class AssoOptionSerializer(NamespacedHMSerializer):
|
|||
"adresse2",
|
||||
"contact",
|
||||
"telephone",
|
||||
"profile_image",
|
||||
"pseudo",
|
||||
"utilisateur_asso",
|
||||
"description",
|
||||
|
|
|
@ -180,6 +180,7 @@ class EditAssoOptionForm(ModelForm):
|
|||
self.fields["adresse2"].label = _("Address (line 2)")
|
||||
self.fields["contact"].label = _("Contact email address")
|
||||
self.fields["telephone"].label = _("Telephone number")
|
||||
self.fields["profile_image"].label = _("Profile image")
|
||||
self.fields["pseudo"].label = _("Usual name")
|
||||
self.fields["utilisateur_asso"].label = _(
|
||||
"Account used for editing from /admin"
|
||||
|
|
|
@ -21,7 +21,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 2.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-04-24 18:45+0200\n"
|
||||
"POT-Creation-Date: 2020-05-17 12:49+0200\n"
|
||||
"PO-Revision-Date: 2018-06-24 15:54+0200\n"
|
||||
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n"
|
||||
"Language-Team: \n"
|
||||
|
@ -207,90 +207,94 @@ msgid "Telephone number"
|
|||
msgstr "Numéro de téléphone"
|
||||
|
||||
#: preferences/forms.py:183
|
||||
msgid "Profile image"
|
||||
msgstr "Photo de profil"
|
||||
|
||||
#: preferences/forms.py:184
|
||||
#: preferences/templates/preferences/display_preferences.html:343
|
||||
msgid "Usual name"
|
||||
msgstr "Nom d'usage"
|
||||
|
||||
#: preferences/forms.py:185
|
||||
#: preferences/forms.py:186
|
||||
msgid "Account used for editing from /admin"
|
||||
msgstr "Compte utilisé pour les modifications depuis /admin"
|
||||
|
||||
#: preferences/forms.py:187 preferences/forms.py:332
|
||||
#: preferences/forms.py:188 preferences/forms.py:333
|
||||
#: preferences/templates/preferences/aff_service.html:33
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
#: preferences/forms.py:201
|
||||
#: preferences/forms.py:202
|
||||
msgid "Message for the French welcome email"
|
||||
msgstr "Message pour le mail de bienvenue en français"
|
||||
|
||||
#: preferences/forms.py:204
|
||||
#: preferences/forms.py:205
|
||||
msgid "Message for the English welcome email"
|
||||
msgstr "Message pour le mail de bienvenue en anglais"
|
||||
|
||||
#: preferences/forms.py:218
|
||||
#: preferences/forms.py:219
|
||||
msgid "Facebook URL"
|
||||
msgstr "URL du compte Facebook"
|
||||
|
||||
#: preferences/forms.py:219
|
||||
#: preferences/forms.py:220
|
||||
msgid "Twitter URL"
|
||||
msgstr "URL du compte Twitter"
|
||||
|
||||
#: preferences/forms.py:220
|
||||
#: preferences/forms.py:221
|
||||
#: preferences/templates/preferences/display_preferences.html:504
|
||||
msgid "Twitter account name"
|
||||
msgstr "Nom du compte Twitter"
|
||||
|
||||
#: preferences/forms.py:238
|
||||
#: preferences/forms.py:239
|
||||
msgid "You chose to set vlan but did not set any VLAN."
|
||||
msgstr ""
|
||||
"Vous avez choisi de paramétrer vlan mais vous n'avez indiqué aucun VLAN."
|
||||
|
||||
#: preferences/forms.py:239
|
||||
#: preferences/forms.py:240
|
||||
msgid "Please, choose a VLAN."
|
||||
msgstr "Veuillez choisir un VLAN."
|
||||
|
||||
#: preferences/forms.py:270
|
||||
#: preferences/forms.py:271
|
||||
msgid "There is already a mandate taking place at the specified start date."
|
||||
msgstr "Il y a déjà un mandat ayant cours à la date de début renseignée."
|
||||
|
||||
#: preferences/forms.py:284
|
||||
#: preferences/forms.py:285
|
||||
msgid "There is already a mandate taking place at the specified end date."
|
||||
msgstr "Il y a déjà un madant ayant cours à la date de fin renseignée."
|
||||
|
||||
#: preferences/forms.py:298
|
||||
#: preferences/forms.py:299
|
||||
msgid "The specified dates overlap with an existing mandate."
|
||||
msgstr "Les dates renseignées se superposent avec un mandat existant."
|
||||
|
||||
#: preferences/forms.py:330
|
||||
#: preferences/forms.py:331
|
||||
#: preferences/templates/preferences/aff_service.html:31
|
||||
#: preferences/templates/preferences/display_preferences.html:327
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#: preferences/forms.py:331
|
||||
#: preferences/forms.py:332
|
||||
#: preferences/templates/preferences/aff_service.html:32
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#: preferences/forms.py:333
|
||||
#: preferences/forms.py:334
|
||||
#: preferences/templates/preferences/aff_service.html:34
|
||||
msgid "Image"
|
||||
msgstr "Image"
|
||||
|
||||
#: preferences/forms.py:341
|
||||
#: preferences/forms.py:342
|
||||
msgid "Current services"
|
||||
msgstr "Services actuels"
|
||||
|
||||
#: preferences/forms.py:430
|
||||
#: preferences/forms.py:431
|
||||
msgid "Current email addresses"
|
||||
msgstr "Adresses mail actuelles"
|
||||
|
||||
#: preferences/forms.py:465
|
||||
#: preferences/forms.py:466
|
||||
msgid "Current document templates"
|
||||
msgstr "Modèles de document actuels"
|
||||
|
||||
#: preferences/forms.py:495
|
||||
#: preferences/forms.py:496
|
||||
msgid "Current attributes"
|
||||
msgstr "Attributs actuels"
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 2.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-04-24 18:45+0200\n"
|
||||
"POT-Creation-Date: 2020-05-17 12:49+0200\n"
|
||||
"PO-Revision-Date: 2018-03-31 16:09+0002\n"
|
||||
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n"
|
||||
"Language-Team: \n"
|
||||
|
@ -34,25 +34,25 @@ msgstr ""
|
|||
msgid "You don't have the right to edit this option."
|
||||
msgstr "Vous n'avez pas le droit de modifier cette option."
|
||||
|
||||
#: re2o/acl.py:51
|
||||
#: re2o/acl.py:50
|
||||
#, python-format
|
||||
msgid "You need to be a member of one of these groups: %s."
|
||||
msgstr "Vous devez être membre de l'un de ces groupes : %s."
|
||||
|
||||
#: re2o/acl.py:54
|
||||
#: re2o/acl.py:53
|
||||
#, python-format
|
||||
msgid "No group has the %s permission(s)!"
|
||||
msgstr "Aucun groupe ne possède la ou les permissions %s !"
|
||||
|
||||
#: re2o/acl.py:167
|
||||
#: re2o/acl.py:166
|
||||
msgid "Nonexistent entry."
|
||||
msgstr "Entrée inexistante."
|
||||
|
||||
#: re2o/acl.py:193 re2o/acl.py:264
|
||||
#: re2o/acl.py:196 re2o/acl.py:267
|
||||
msgid "You don't have the right to access this menu."
|
||||
msgstr "Vous n'avez pas le droit d'accéder à ce menu."
|
||||
|
||||
#: re2o/acl.py:314
|
||||
#: re2o/acl.py:317
|
||||
msgid "You don't have the right to edit the history."
|
||||
msgstr "Vous n'avez pas le droit de modifier l'historique."
|
||||
|
||||
|
@ -79,27 +79,27 @@ msgstr "Format : {main}"
|
|||
msgid "Failed to send email: %(error)s."
|
||||
msgstr "Échec de l'envoi du mail : %(error)s."
|
||||
|
||||
#: re2o/mixins.py:113
|
||||
#: re2o/mixins.py:110
|
||||
#, python-format
|
||||
msgid "You don't have the right to create a %s object."
|
||||
msgstr "Vous n'avez pas le droit de créer un objet %s."
|
||||
|
||||
#: re2o/mixins.py:129
|
||||
#: re2o/mixins.py:126
|
||||
#, python-format
|
||||
msgid "You don't have the right to edit a %s object."
|
||||
msgstr "Vous n'avez pas le droit de modifier un objet %s."
|
||||
|
||||
#: re2o/mixins.py:145
|
||||
#: re2o/mixins.py:142
|
||||
#, python-format
|
||||
msgid "You don't have the right to delete a %s object."
|
||||
msgstr "Vous n'avez pas le droit de supprimer un objet %s."
|
||||
|
||||
#: re2o/mixins.py:161
|
||||
#: re2o/mixins.py:158
|
||||
#, python-format
|
||||
msgid "You don't have the right to view every %s object."
|
||||
msgstr "Vous n'avez pas le droit de voir tous les objets %s."
|
||||
|
||||
#: re2o/mixins.py:177
|
||||
#: re2o/mixins.py:174
|
||||
#, python-format
|
||||
msgid "You don't have the right to view a %s object."
|
||||
msgstr "Vous n'avez pas le droit de voir un objet %s."
|
||||
|
@ -207,26 +207,38 @@ msgstr "<b>Date du commit</b> : %(git_info_commit_date)s"
|
|||
msgid "Dependencies"
|
||||
msgstr "Dépendances"
|
||||
|
||||
#: re2o/templates/re2o/aff_history.html:30
|
||||
msgid "Next"
|
||||
msgstr "Suivant"
|
||||
|
||||
#: re2o/templates/re2o/aff_history.html:37
|
||||
msgid "Previous"
|
||||
msgstr "Précédent"
|
||||
|
||||
#: re2o/templates/re2o/aff_history.html:45
|
||||
#: re2o/templates/re2o/aff_history.html:33
|
||||
msgid "Date"
|
||||
msgstr "Date"
|
||||
|
||||
#: re2o/templates/re2o/aff_history.html:46
|
||||
#: re2o/templates/re2o/aff_history.html:34
|
||||
msgid "Performed by"
|
||||
msgstr "Effectuée par"
|
||||
|
||||
#: re2o/templates/re2o/aff_history.html:47
|
||||
#: re2o/templates/re2o/aff_history.html:35
|
||||
msgid "Edited"
|
||||
msgstr ""
|
||||
|
||||
#: re2o/templates/re2o/aff_history.html:36
|
||||
msgid "Comment"
|
||||
msgstr "Commentaire"
|
||||
|
||||
#: re2o/templates/re2o/aff_history.html:48
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: re2o/templates/re2o/aff_history.html:71
|
||||
msgid "No event"
|
||||
msgstr ""
|
||||
|
||||
#: re2o/templates/re2o/aff_history.html:76
|
||||
msgid "Related elements"
|
||||
msgstr ""
|
||||
|
||||
#: re2o/templates/re2o/aff_history.html:82 re2o/templates/re2o/history.html:30
|
||||
msgid "History"
|
||||
msgstr "Historique"
|
||||
|
||||
#: re2o/templates/re2o/contact.html:29
|
||||
msgid "Contact"
|
||||
msgstr "Contact"
|
||||
|
@ -236,13 +248,10 @@ msgstr "Contact"
|
|||
msgid "Contact the organisation %(asso_name)s"
|
||||
msgstr "Contacter l'association %(asso_name)s"
|
||||
|
||||
#: re2o/templates/re2o/history.html:29
|
||||
msgid "History"
|
||||
msgstr "Historique"
|
||||
|
||||
#: re2o/templates/re2o/history.html:32
|
||||
#, python-format
|
||||
msgid "History of %(object)s"
|
||||
#: re2o/templates/re2o/history.html:33
|
||||
#, fuzzy, python-format
|
||||
#| msgid "History of %(object)s"
|
||||
msgid "History of %(title)s"
|
||||
msgstr "Historique de %(object)s"
|
||||
|
||||
#: re2o/templates/re2o/index.html:30
|
||||
|
@ -327,3 +336,9 @@ msgstr "Page d'accueil"
|
|||
#: re2o/views.py:96
|
||||
msgid "Unable to get the information."
|
||||
msgstr "Impossible d'obtenir l'information."
|
||||
|
||||
#~ msgid "Next"
|
||||
#~ msgstr "Suivant"
|
||||
|
||||
#~ msgid "Previous"
|
||||
#~ msgstr "Précédent"
|
||||
|
|
|
@ -21,7 +21,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 2.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-04-24 18:45+0200\n"
|
||||
"POT-Creation-Date: 2020-05-17 12:49+0200\n"
|
||||
"PO-Revision-Date: 2018-06-24 20:10+0200\n"
|
||||
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n"
|
||||
"Language-Team: \n"
|
||||
|
|
|
@ -216,6 +216,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
{% if request_user.is_authenticated %}
|
||||
<div class="panel-heading">
|
||||
<h4>{{ request_user.name }} {{ request_user.surname }}</h4>
|
||||
{% if request_user.image_url %}
|
||||
<img src="{{ users.image_url }}" height="42" width="42" />
|
||||
{% endif %}
|
||||
</div>
|
||||
<table class="table">
|
||||
<tr>
|
||||
|
|
|
@ -21,7 +21,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 2.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-04-24 18:45+0200\n"
|
||||
"POT-Creation-Date: 2020-05-17 12:49+0200\n"
|
||||
"PO-Revision-Date: 2018-03-31 16:09+0002\n"
|
||||
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n"
|
||||
"Language-Team: \n"
|
||||
|
@ -30,11 +30,11 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: templates/admin/base_site.html:65 templates/base.html:290
|
||||
#: templates/admin/base_site.html:65 templates/base.html:293
|
||||
msgid "powered by"
|
||||
msgstr "propulsé par"
|
||||
|
||||
#: templates/admin/base_site.html:69 templates/base.html:298
|
||||
#: templates/admin/base_site.html:69 templates/base.html:301
|
||||
msgid ""
|
||||
"This software is under the terms of the <a href=\"http://www.gnu.org/"
|
||||
"licenses/gpl-2.0.txt\" target=\"_blank\" rel=\"nofollow\">GPLv2</a> License."
|
||||
|
@ -167,68 +167,68 @@ msgstr "Mon profil"
|
|||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: templates/base.html:223
|
||||
#: templates/base.html:226
|
||||
msgid "Username"
|
||||
msgstr "Pseudo"
|
||||
|
||||
#: templates/base.html:227
|
||||
#: templates/base.html:230
|
||||
msgid "Room"
|
||||
msgstr "Chambre"
|
||||
|
||||
#: templates/base.html:231
|
||||
#: templates/base.html:234
|
||||
msgid "Internet access"
|
||||
msgstr "Accès Internet"
|
||||
|
||||
#: templates/base.html:234
|
||||
#: templates/base.html:237
|
||||
#, python-format
|
||||
msgid "Until %(end_access_date)s"
|
||||
msgstr "Jusqu'au %(end_access_date)s"
|
||||
|
||||
#: templates/base.html:236
|
||||
#: templates/base.html:239
|
||||
msgid "Disabled"
|
||||
msgstr "Désactivé"
|
||||
|
||||
#: templates/base.html:241
|
||||
#: templates/base.html:244
|
||||
msgid "Membership"
|
||||
msgstr "Adhésion"
|
||||
|
||||
#: templates/base.html:244
|
||||
#: templates/base.html:247
|
||||
#, python-format
|
||||
msgid "Until %(end_adhesion_date)s"
|
||||
msgstr "Jusqu'au %(end_adhesion_date)s"
|
||||
|
||||
#: templates/base.html:246
|
||||
#: templates/base.html:249
|
||||
msgid "Non member"
|
||||
msgstr "Non adhérent"
|
||||
|
||||
#: templates/base.html:254
|
||||
#: templates/base.html:257
|
||||
msgid "View my profile"
|
||||
msgstr "Voir mon profil"
|
||||
|
||||
#: templates/base.html:259
|
||||
#: templates/base.html:262
|
||||
msgid "You are not logged in."
|
||||
msgstr "Vous n'êtes pas connecté."
|
||||
|
||||
#: templates/base.html:266
|
||||
#: templates/base.html:269
|
||||
#, python-format
|
||||
msgid "%(nb)s active machine"
|
||||
msgid_plural "%(nb)s active machines"
|
||||
msgstr[0] "%(nb)s machine active"
|
||||
msgstr[1] "%(nb)s machines actives"
|
||||
|
||||
#: templates/base.html:275
|
||||
#: templates/base.html:278
|
||||
msgid "View my machines"
|
||||
msgstr "Voir mes machines"
|
||||
|
||||
#: templates/base.html:288
|
||||
#: templates/base.html:291
|
||||
msgid "Back to top"
|
||||
msgstr "Retour en haut"
|
||||
|
||||
#: templates/base.html:292
|
||||
#: templates/base.html:295
|
||||
msgid "Brought to you with <i class=\"fa fa-heart text-danger\"></i>."
|
||||
msgstr "Codé avec <i class=\"fa fa-heart text-danger\"></i>."
|
||||
|
||||
#: templates/base.html:295
|
||||
#: templates/base.html:298
|
||||
msgid "About this website"
|
||||
msgstr "À propos de ce site"
|
||||
|
||||
|
@ -240,8 +240,7 @@ msgstr ""
|
|||
msgid "Edit"
|
||||
msgstr "Modifier"
|
||||
|
||||
#: templates/buttons/history.html:28 templates/buttons/history.html:29
|
||||
#: templates/buttons/history.html:32 templates/buttons/history.html:33
|
||||
#: templates/buttons/history.html:27 templates/buttons/history.html:28
|
||||
msgid "History"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 2.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-05-03 02:10+0200\n"
|
||||
"POT-Creation-Date: 2020-05-17 12:49+0200\n"
|
||||
"PO-Revision-Date: 2019-11-16 00:35+0100\n"
|
||||
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n"
|
||||
"Language-Team: \n"
|
||||
|
@ -34,60 +34,61 @@ msgstr ""
|
|||
msgid "comment"
|
||||
msgstr "commentaire"
|
||||
|
||||
#: tickets/models.py:58
|
||||
#: tickets/models.py:59
|
||||
msgid "Title of the ticket."
|
||||
msgstr "Titre du ticket."
|
||||
|
||||
#: tickets/models.py:67
|
||||
#: tickets/models.py:68
|
||||
msgid "An email address to get back to you."
|
||||
msgstr "Une adresse mail pour vous recontacter."
|
||||
|
||||
#: tickets/models.py:71
|
||||
#: tickets/models.py:72
|
||||
msgid "Language of the ticket."
|
||||
msgstr "Langue des tickets"
|
||||
|
||||
#: tickets/models.py:76 tickets/models.py:173
|
||||
#: tickets/models.py:77 tickets/models.py:174
|
||||
msgid "Can view a ticket object"
|
||||
msgstr "Peut voir un objet ticket"
|
||||
|
||||
#: tickets/models.py:77 tickets/models.py:174
|
||||
#: tickets/models.py:78 tickets/models.py:175
|
||||
msgid "ticket"
|
||||
msgstr "ticket"
|
||||
|
||||
#: tickets/models.py:78 tickets/models.py:175
|
||||
#: tickets/models.py:79 tickets/models.py:176
|
||||
msgid "tickets"
|
||||
msgstr "tickets"
|
||||
|
||||
#: tickets/models.py:82
|
||||
#: tickets/models.py:83
|
||||
#, python-brace-format
|
||||
msgid "Ticket from {name}. Date: {date}."
|
||||
msgstr "Ticket de {name}. Date : {date}."
|
||||
|
||||
#: tickets/models.py:84
|
||||
#: tickets/models.py:85
|
||||
#, python-format
|
||||
msgid "Anonymous ticket. Date: %s."
|
||||
msgstr "Ticket anonyme. Date : %s."
|
||||
|
||||
#: tickets/models.py:92 tickets/templates/tickets/aff_ticket.html:52
|
||||
#: tickets/models.py:93 tickets/templates/tickets/aff_ticket.html:52
|
||||
msgid "Anonymous user"
|
||||
msgstr "Utilisateur anonyme"
|
||||
|
||||
#: tickets/models.py:130
|
||||
#: tickets/models.py:131
|
||||
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:142 tickets/models.py:217
|
||||
#: tickets/models.py:143 tickets/models.py:218
|
||||
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/models.py:190
|
||||
#: tickets/models.py:191
|
||||
msgid "You don't have the right to view other tickets comments than yours."
|
||||
msgstr "Vous n'avez pas le droit de voir d'autres tickets que les vôtres."
|
||||
|
||||
#: tickets/models.py:205
|
||||
#: tickets/models.py:206
|
||||
msgid "You don't have the right to edit other tickets comments than yours."
|
||||
msgstr "Vous n'avez pas le droit d'éditer d'autres tickets que les vôtres."
|
||||
|
||||
#: tickets/models.py:236
|
||||
#: tickets/models.py:237
|
||||
msgid "Update of your ticket"
|
||||
msgstr "Mise à jour de votre ticket"
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 2.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-04-24 18:45+0200\n"
|
||||
"POT-Creation-Date: 2020-05-17 12:49+0200\n"
|
||||
"PO-Revision-Date: 2018-06-25 14:53+0200\n"
|
||||
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n"
|
||||
"Language-Team: \n"
|
||||
|
@ -74,224 +74,224 @@ msgstr "point d'accès sans fil"
|
|||
msgid "access points"
|
||||
msgstr "points d'accès sans fil"
|
||||
|
||||
#: topologie/models.py:190
|
||||
#: topologie/models.py:232
|
||||
msgid "Number of ports."
|
||||
msgstr "Nombre de ports."
|
||||
|
||||
#: topologie/models.py:200
|
||||
#: topologie/models.py:242
|
||||
msgid "Switch model."
|
||||
msgstr "Modèle de commutateur réseau."
|
||||
|
||||
#: topologie/models.py:210
|
||||
#: topologie/models.py:252
|
||||
msgid "RADIUS key of the switch."
|
||||
msgstr "Clé RADIUS du commutateur réseau."
|
||||
|
||||
#: topologie/models.py:217
|
||||
#: topologie/models.py:259
|
||||
msgid "Management credentials for the switch."
|
||||
msgstr "Identifiants de gestion du commutateur réseau."
|
||||
|
||||
#: topologie/models.py:220
|
||||
#: topologie/models.py:262
|
||||
msgid "Automatic provision for the switch."
|
||||
msgstr "Provision automatique pour le commutateur réseau."
|
||||
|
||||
#: topologie/models.py:225
|
||||
#: topologie/models.py:267
|
||||
msgid "Can view a switch object"
|
||||
msgstr "Peut voir un objet commutateur réseau"
|
||||
|
||||
#: topologie/models.py:226 topologie/views.py:542 topologie/views.py:615
|
||||
#: topologie/models.py:268 topologie/views.py:542 topologie/views.py:615
|
||||
msgid "switch"
|
||||
msgstr "commutateur réseau"
|
||||
|
||||
#: topologie/models.py:227
|
||||
#: topologie/models.py:269
|
||||
msgid "switches"
|
||||
msgstr "commutateurs réseau"
|
||||
|
||||
#: topologie/models.py:241
|
||||
#: topologie/models.py:283
|
||||
msgid "The switch ID exceeds the limits allowed by the stack."
|
||||
msgstr "L'ID du commutateur réseau dépasse les bornes autorisées par la pile."
|
||||
|
||||
#: topologie/models.py:248
|
||||
#: topologie/models.py:290
|
||||
msgid "The stack member ID can't be void."
|
||||
msgstr "L'ID de membre dans la pile ne peut-être vide."
|
||||
|
||||
#: topologie/models.py:255
|
||||
#: topologie/models.py:297
|
||||
msgid "The end port is less than the start port."
|
||||
msgstr "Le port de fin est inférieur au port de début."
|
||||
|
||||
#: topologie/models.py:263
|
||||
#: topologie/models.py:305
|
||||
msgid "This switch can't have that many ports."
|
||||
msgstr "Ce commutateur réseau ne peut pas avoir autant de ports."
|
||||
|
||||
#: topologie/models.py:471
|
||||
#: topologie/models.py:534
|
||||
msgid "The switch model is modular."
|
||||
msgstr "Le modèle de commutateur réseau est modulaire."
|
||||
|
||||
#: topologie/models.py:474
|
||||
#: topologie/models.py:537
|
||||
msgid "The switch is considered as a module."
|
||||
msgstr "Le commutateur réseau est considéré comme un module."
|
||||
|
||||
#: topologie/models.py:478
|
||||
#: topologie/models.py:541
|
||||
msgid "Can view a switch model object"
|
||||
msgstr "Peut voir un objet modèle de commutateur réseau"
|
||||
|
||||
#: topologie/models.py:479 topologie/views.py:832
|
||||
#: topologie/models.py:542 topologie/views.py:832
|
||||
msgid "switch model"
|
||||
msgstr "modèle de commutateur réseau"
|
||||
|
||||
#: topologie/models.py:480
|
||||
#: topologie/models.py:543
|
||||
msgid "switch models"
|
||||
msgstr "modèles de commutateur réseau"
|
||||
|
||||
#: topologie/models.py:494
|
||||
#: topologie/models.py:557
|
||||
msgid "Reference of a module."
|
||||
msgstr "Référence d'un module."
|
||||
|
||||
#: topologie/models.py:495
|
||||
#: topologie/models.py:558
|
||||
msgid "module reference"
|
||||
msgstr "référence de module"
|
||||
|
||||
#: topologie/models.py:501
|
||||
#: topologie/models.py:564
|
||||
msgid "Comment."
|
||||
msgstr "Commentaire."
|
||||
|
||||
#: topologie/models.py:502
|
||||
#: topologie/models.py:565
|
||||
msgid "comment"
|
||||
msgstr "commentaire"
|
||||
|
||||
#: topologie/models.py:506
|
||||
#: topologie/models.py:569
|
||||
msgid "Can view a switch module object"
|
||||
msgstr "Peut voir un objet module de commutateur réseau"
|
||||
|
||||
#: topologie/models.py:507
|
||||
#: topologie/models.py:570
|
||||
msgid "switch module"
|
||||
msgstr "module de commutateur réseau"
|
||||
|
||||
#: topologie/models.py:508
|
||||
#: topologie/models.py:571
|
||||
msgid "switch modules"
|
||||
msgstr "modules de commutateur réseau"
|
||||
|
||||
#: topologie/models.py:520
|
||||
#: topologie/models.py:583
|
||||
msgid "Slot on switch."
|
||||
msgstr "Emplacement sur le commutateur réseau."
|
||||
|
||||
#: topologie/models.py:520
|
||||
#: topologie/models.py:583
|
||||
msgid "slot"
|
||||
msgstr "emplacement "
|
||||
|
||||
#: topologie/models.py:527
|
||||
#: topologie/models.py:590
|
||||
msgid "Can view a link between switch and module object"
|
||||
msgstr "Peut voir un objet lien entre commutateur réseau et module"
|
||||
|
||||
#: topologie/models.py:530
|
||||
#: topologie/models.py:593
|
||||
msgid "link between switch and module"
|
||||
msgstr "lien entre commutateur réseau et module"
|
||||
|
||||
#: topologie/models.py:531
|
||||
#: topologie/models.py:594
|
||||
msgid "links between switch and module"
|
||||
msgstr "liens entre commutateur réseau et module"
|
||||
|
||||
#: topologie/models.py:535
|
||||
#: topologie/models.py:598
|
||||
#, python-format
|
||||
msgid "On slot %(slot)s of %(switch)s"
|
||||
msgstr "Sur l'emplacement %(slot)s de %(switch)s"
|
||||
|
||||
#: topologie/models.py:545
|
||||
#: topologie/models.py:610
|
||||
msgid "Can view a switch constructor object"
|
||||
msgstr "Peut voir un objet constructeur de commutateur réseau"
|
||||
|
||||
#: topologie/models.py:547 topologie/views.py:1079
|
||||
#: topologie/models.py:612 topologie/views.py:1079
|
||||
msgid "switch constructor"
|
||||
msgstr "constructeur de commutateur réseau"
|
||||
|
||||
#: topologie/models.py:548
|
||||
#: topologie/models.py:613
|
||||
msgid "switch constructors"
|
||||
msgstr "constructeurs de commutateur réseau"
|
||||
|
||||
#: topologie/models.py:562
|
||||
#: topologie/models.py:627
|
||||
msgid "Can view a switch bay object"
|
||||
msgstr "Peut voir un objet baie de brassage"
|
||||
|
||||
#: topologie/models.py:563 topologie/views.py:892
|
||||
#: topologie/models.py:628 topologie/views.py:892
|
||||
msgid "switch bay"
|
||||
msgstr "baie de brassage"
|
||||
|
||||
#: topologie/models.py:564
|
||||
#: topologie/models.py:629
|
||||
msgid "switch bays"
|
||||
msgstr "baies de brassage"
|
||||
|
||||
#: topologie/models.py:577
|
||||
#: topologie/models.py:642
|
||||
msgid "Can view a dormitory object"
|
||||
msgstr "Peut voir un objet résidence"
|
||||
|
||||
#: topologie/models.py:578 topologie/views.py:1016
|
||||
#: topologie/models.py:643 topologie/views.py:1016
|
||||
msgid "dormitory"
|
||||
msgstr "résidence"
|
||||
|
||||
#: topologie/models.py:579
|
||||
#: topologie/models.py:644
|
||||
msgid "dormitories"
|
||||
msgstr "résidences"
|
||||
|
||||
#: topologie/models.py:605
|
||||
#: topologie/models.py:670
|
||||
msgid "Can view a building object"
|
||||
msgstr "Peut voir un objet bâtiment"
|
||||
|
||||
#: topologie/models.py:606 topologie/views.py:953
|
||||
#: topologie/models.py:671 topologie/views.py:953
|
||||
msgid "building"
|
||||
msgstr "bâtiment"
|
||||
|
||||
#: topologie/models.py:607
|
||||
#: topologie/models.py:672
|
||||
msgid "buildings"
|
||||
msgstr "bâtiments"
|
||||
|
||||
#: topologie/models.py:658
|
||||
#: topologie/models.py:723
|
||||
msgid "Port state Active."
|
||||
msgstr "État du port Actif."
|
||||
|
||||
#: topologie/models.py:659
|
||||
#: topologie/models.py:724
|
||||
msgid "port state Active"
|
||||
msgstr "état du port Actif"
|
||||
|
||||
#: topologie/models.py:665
|
||||
#: topologie/models.py:730
|
||||
msgid "Can view a port object"
|
||||
msgstr "Peut voir un objet port"
|
||||
|
||||
#: topologie/models.py:666
|
||||
#: topologie/models.py:731
|
||||
msgid "port"
|
||||
msgstr "port"
|
||||
|
||||
#: topologie/models.py:667
|
||||
#: topologie/models.py:732
|
||||
msgid "ports"
|
||||
msgstr "ports"
|
||||
|
||||
#: topologie/models.py:673
|
||||
#: topologie/models.py:738
|
||||
msgid "Uplink: "
|
||||
msgstr "Liaison montante : "
|
||||
|
||||
#: topologie/models.py:675
|
||||
#: topologie/models.py:740
|
||||
msgid "Machine: "
|
||||
msgstr "Machine : "
|
||||
|
||||
#: topologie/models.py:677
|
||||
#: topologie/models.py:742
|
||||
msgid "Room: "
|
||||
msgstr "Chambre : "
|
||||
|
||||
#: topologie/models.py:679
|
||||
#: topologie/models.py:744
|
||||
msgid "Unknown"
|
||||
msgstr "Inconnu"
|
||||
|
||||
#: topologie/models.py:740
|
||||
#: topologie/models.py:805
|
||||
msgid "The port can't exist, its number is too great."
|
||||
msgstr "Le port ne peut pas exister, son numéro est trop grand."
|
||||
|
||||
#: topologie/models.py:751
|
||||
#: topologie/models.py:816
|
||||
msgid "Room, interface and related port are mutually exclusive."
|
||||
msgstr "Chambre, interface et port relié sont mutuellement exclusifs."
|
||||
|
||||
#: topologie/models.py:754
|
||||
#: topologie/models.py:819
|
||||
msgid "A port can't be related to itself."
|
||||
msgstr "Un port ne peut être relié à lui-même."
|
||||
|
||||
#: topologie/models.py:759
|
||||
#: topologie/models.py:824
|
||||
msgid ""
|
||||
"The related port is already used, please clear it before creating the "
|
||||
"relation."
|
||||
|
@ -299,152 +299,152 @@ msgstr ""
|
|||
"Le port relié est déjà utilisé, veuillez le modifier avant de créer la "
|
||||
"relation."
|
||||
|
||||
#: topologie/models.py:781
|
||||
#: topologie/models.py:846
|
||||
msgid "Can view a room object"
|
||||
msgstr "Peut voir un objet chambre"
|
||||
|
||||
#: topologie/models.py:782 topologie/views.py:773
|
||||
#: topologie/models.py:847 topologie/views.py:773
|
||||
msgid "room"
|
||||
msgstr "chambre"
|
||||
|
||||
#: topologie/models.py:783
|
||||
#: topologie/models.py:848
|
||||
msgid "rooms"
|
||||
msgstr "chambres"
|
||||
|
||||
#: topologie/models.py:793
|
||||
#: topologie/models.py:858
|
||||
msgid "MAC-RADIUS"
|
||||
msgstr "MAC-RADIUS"
|
||||
|
||||
#: topologie/models.py:806 topologie/templates/topologie/aff_chambres.html:36
|
||||
#: topologie/models.py:871 topologie/templates/topologie/aff_chambres.html:36
|
||||
#: topologie/templates/topologie/aff_port.html:38
|
||||
msgid "Room"
|
||||
msgstr "Chambre"
|
||||
|
||||
#: topologie/models.py:807 topologie/templates/topologie/aff_ap.html:36
|
||||
#: topologie/models.py:872 topologie/templates/topologie/aff_ap.html:36
|
||||
msgid "Access point"
|
||||
msgstr "Point d'accès sans fil"
|
||||
|
||||
#: topologie/models.py:808
|
||||
#: topologie/models.py:873
|
||||
msgid "Uplink"
|
||||
msgstr "Liaison montante"
|
||||
|
||||
#: topologie/models.py:809
|
||||
#: topologie/models.py:874
|
||||
msgid "Organisation machine"
|
||||
msgstr "Machine d'association"
|
||||
|
||||
#: topologie/models.py:810
|
||||
#: topologie/models.py:875
|
||||
msgid "Nothing"
|
||||
msgstr "Rien"
|
||||
|
||||
#: topologie/models.py:812
|
||||
#: topologie/models.py:877
|
||||
msgid "name"
|
||||
msgstr "nom"
|
||||
|
||||
#: topologie/models.py:818
|
||||
#: topologie/models.py:883
|
||||
msgid "default profile"
|
||||
msgstr "profil par défaut"
|
||||
|
||||
#: topologie/models.py:826
|
||||
#: topologie/models.py:891
|
||||
msgid "profile on dormitory"
|
||||
msgstr "profil sur la résidence"
|
||||
|
||||
#: topologie/models.py:834
|
||||
#: topologie/models.py:899
|
||||
msgid "VLAN untagged"
|
||||
msgstr "VLAN untagged"
|
||||
|
||||
#: topologie/models.py:840
|
||||
#: topologie/models.py:905
|
||||
msgid "VLAN(s) tagged"
|
||||
msgstr "VLAN(s) tagged"
|
||||
|
||||
#: topologie/models.py:846
|
||||
#: topologie/models.py:910
|
||||
msgid "Type of RADIUS authentication: inactive, MAC-address or 802.1X."
|
||||
msgstr "Type d'authentification RADIUS : inactive, MAC-address ou 802.1X."
|
||||
|
||||
#: topologie/models.py:848
|
||||
#: topologie/models.py:911
|
||||
msgid "RADIUS type"
|
||||
msgstr "Type de RADIUS"
|
||||
|
||||
#: topologie/models.py:855
|
||||
#: topologie/models.py:918
|
||||
msgid "In case of MAC-authentication: mode COMMON or STRICT on this port."
|
||||
msgstr ""
|
||||
"Dans le cas d'authentification par adresse MAC : mode COMMON ou STRICT sur "
|
||||
"ce port."
|
||||
|
||||
#: topologie/models.py:857
|
||||
#: topologie/models.py:920
|
||||
msgid "RADIUS mode"
|
||||
msgstr "Mode de RADIUS"
|
||||
|
||||
#: topologie/models.py:860
|
||||
#: topologie/models.py:923
|
||||
msgid "Port speed limit."
|
||||
msgstr "Limite de vitesse du port."
|
||||
|
||||
#: topologie/models.py:865
|
||||
#: topologie/models.py:928
|
||||
msgid "Limit of MAC-address on this port."
|
||||
msgstr "Limite de MAC-address sur ce port."
|
||||
|
||||
#: topologie/models.py:866
|
||||
#: topologie/models.py:929
|
||||
msgid "MAC limit"
|
||||
msgstr "Limite MAC"
|
||||
|
||||
#: topologie/models.py:868
|
||||
#: topologie/models.py:931
|
||||
msgid "Flow control."
|
||||
msgstr "Contrôle du flux."
|
||||
|
||||
#: topologie/models.py:871
|
||||
#: topologie/models.py:934
|
||||
msgid "Protect against rogue DHCP."
|
||||
msgstr "Protège contre les DHCP pirates."
|
||||
|
||||
#: topologie/models.py:872
|
||||
#: topologie/models.py:935
|
||||
#: topologie/templates/topologie/aff_vlanoptions.html:36
|
||||
msgid "DHCP snooping"
|
||||
msgstr "DHCP snooping"
|
||||
|
||||
#: topologie/models.py:876
|
||||
#: topologie/models.py:939
|
||||
msgid "Protect against rogue DHCPv6."
|
||||
msgstr "Protège contre les DHCPv6 pirates."
|
||||
|
||||
#: topologie/models.py:877
|
||||
#: topologie/models.py:940
|
||||
#: topologie/templates/topologie/aff_vlanoptions.html:37
|
||||
msgid "DHCPv6 snooping"
|
||||
msgstr "DHCPv6 snooping"
|
||||
|
||||
#: topologie/models.py:881
|
||||
#: topologie/models.py:944
|
||||
msgid "Check if IP address is DHCP assigned."
|
||||
msgstr "Vérifie si l'adresse IP est attribuée par DHCP."
|
||||
|
||||
#: topologie/models.py:882
|
||||
#: topologie/models.py:945
|
||||
msgid "ARP protection"
|
||||
msgstr "Protection ARP"
|
||||
|
||||
#: topologie/models.py:886
|
||||
#: topologie/models.py:949
|
||||
msgid "Protect against rogue RA."
|
||||
msgstr "Protège contre les RA pirates."
|
||||
|
||||
#: topologie/models.py:887
|
||||
#: topologie/models.py:950
|
||||
msgid "RA guard"
|
||||
msgstr "RA guard"
|
||||
|
||||
#: topologie/models.py:891
|
||||
#: topologie/models.py:954
|
||||
msgid "Protect against loop."
|
||||
msgstr "Protège contre une boucle."
|
||||
|
||||
#: topologie/models.py:892
|
||||
#: topologie/models.py:955
|
||||
msgid "loop protection"
|
||||
msgstr "protection contre une boucle"
|
||||
|
||||
#: topologie/models.py:896
|
||||
#: topologie/models.py:959
|
||||
msgid "Can view a port profile object"
|
||||
msgstr "Peut voir un objet profil de port"
|
||||
|
||||
#: topologie/models.py:897 topologie/views.py:1130
|
||||
#: topologie/models.py:960 topologie/views.py:1130
|
||||
msgid "port profile"
|
||||
msgstr "profil de port"
|
||||
|
||||
#: topologie/models.py:898
|
||||
#: topologie/models.py:961
|
||||
msgid "port profiles"
|
||||
msgstr "profils de port"
|
||||
|
||||
#: topologie/models.py:936
|
||||
#: topologie/models.py:999
|
||||
msgid "A default profile for all dormitories of that type already exists."
|
||||
msgstr ""
|
||||
"Un profil par défaut pour toutes les résidences de ce type existe déjà. "
|
||||
|
|
|
@ -157,7 +157,7 @@ class UserAdmin(VersionAdmin, BaseUserAdmin):
|
|||
(None, {"fields": ("pseudo", "password")}),
|
||||
(
|
||||
"Personal info",
|
||||
{"fields": ("surname", "email", "school", "shell", "uid_number")},
|
||||
{"fields": ("surname", "email", "school", "shell", "uid_number", "profile_image")},
|
||||
),
|
||||
("Permissions", {"fields": ("is_admin",)}),
|
||||
)
|
||||
|
@ -176,6 +176,7 @@ class UserAdmin(VersionAdmin, BaseUserAdmin):
|
|||
"is_admin",
|
||||
"password1",
|
||||
"password2",
|
||||
"profile_image",
|
||||
),
|
||||
},
|
||||
),
|
||||
|
|
|
@ -45,6 +45,7 @@ class UserSerializer(NamespacedHMSerializer):
|
|||
"state",
|
||||
"registered",
|
||||
"telephone",
|
||||
"profile_image",
|
||||
"solde",
|
||||
"access",
|
||||
"end_access",
|
||||
|
@ -77,6 +78,7 @@ class ClubSerializer(NamespacedHMSerializer):
|
|||
"state",
|
||||
"registered",
|
||||
"telephone",
|
||||
"profile_image",
|
||||
"solde",
|
||||
"room",
|
||||
"access",
|
||||
|
@ -112,6 +114,7 @@ class AdherentSerializer(NamespacedHMSerializer):
|
|||
"state",
|
||||
"registered",
|
||||
"telephone",
|
||||
"profile_image",
|
||||
"room",
|
||||
"solde",
|
||||
"access",
|
||||
|
|
|
@ -321,6 +321,7 @@ class AdherentForm(FormRevMixin, FieldPermissionFormMixin, ModelForm):
|
|||
self.fields["email"].label = _("Email address")
|
||||
self.fields["school"].label = _("School")
|
||||
self.fields["comment"].label = _("Comment")
|
||||
self.fields["profile_image"].label = _("Profile Image")
|
||||
if "room" in self.fields:
|
||||
self.fields["room"].label = _("Room")
|
||||
self.fields["room"].empty_label = _("No room")
|
||||
|
@ -336,6 +337,7 @@ class AdherentForm(FormRevMixin, FieldPermissionFormMixin, ModelForm):
|
|||
"school",
|
||||
"comment",
|
||||
"telephone",
|
||||
"profile_image",
|
||||
"room",
|
||||
]
|
||||
|
||||
|
@ -438,6 +440,7 @@ class AdherentCreationForm(AdherentForm):
|
|||
"school",
|
||||
"comment",
|
||||
"telephone",
|
||||
"profile_image",
|
||||
"room",
|
||||
"state",
|
||||
]
|
||||
|
@ -515,6 +518,7 @@ class AdherentEditForm(AdherentForm):
|
|||
"school",
|
||||
"comment",
|
||||
"telephone",
|
||||
"profile_image",
|
||||
"room",
|
||||
"shell",
|
||||
"gpg_fingerprint",
|
||||
|
@ -550,6 +554,7 @@ class ClubForm(FormRevMixin, FieldPermissionFormMixin, ModelForm):
|
|||
"room",
|
||||
"email",
|
||||
"telephone",
|
||||
"profile_image",
|
||||
"email",
|
||||
"shell",
|
||||
"mailing",
|
||||
|
|
File diff suppressed because it is too large
Load diff
20
users/migrations/0093_user_profile_image.py
Normal file
20
users/migrations/0093_user_profile_image.py
Normal file
|
@ -0,0 +1,20 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.28 on 2020-05-18 14:48
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0092_auto_20200502_0057'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='profile_image',
|
||||
field=models.ImageField(blank=True, upload_to='profile_image'),
|
||||
),
|
||||
]
|
|
@ -73,6 +73,7 @@ from django.contrib.auth.models import (
|
|||
from django.core.validators import RegexValidator
|
||||
import traceback
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.core.files.uploadedfile import InMemoryUploadedFile
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
|
@ -90,7 +91,9 @@ from machines.models import Domain, Interface, Machine, regen
|
|||
from preferences.models import GeneralOption, AssoOption, OptionalUser
|
||||
from preferences.models import OptionalMachine, MailMessageOption
|
||||
|
||||
|
||||
from PIL import Image
|
||||
from io import BytesIO
|
||||
import sys
|
||||
# Utilitaires généraux
|
||||
|
||||
|
||||
|
@ -257,7 +260,8 @@ class User(
|
|||
verbose_name=_("enable shortcuts on Re2o website"), default=True
|
||||
)
|
||||
email_change_date = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
profile_image = models.ImageField(upload_to='profile_image', blank=True)
|
||||
|
||||
USERNAME_FIELD = "pseudo"
|
||||
REQUIRED_FIELDS = ["surname", "email"]
|
||||
|
||||
|
@ -1395,6 +1399,23 @@ class User(
|
|||
self.clean_pseudo(*args, **kwargs)
|
||||
self.clean_email(*args, **kwargs)
|
||||
|
||||
@property
|
||||
def image_url(self):
|
||||
if self.profile_image and hasattr(self.profile_image, 'url'):
|
||||
return self.profile_image.url
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if self.profile_image:
|
||||
im = Image.open(self.profile_image)
|
||||
output = BytesIO()
|
||||
im = im.resize( (100,100) )
|
||||
if im.mode in ("RGBA", "P"):
|
||||
im = im.convert("RGB")
|
||||
im.save(output, format='JPEG', quality=100)
|
||||
output.seek(0)
|
||||
self.profile_image = InMemoryUploadedFile(output,'ImageField', "%s.jpg" %self.profile_image.name.split('.')[0], 'image/jpeg', sys.getsizeof(output), None)
|
||||
super(User,self).save(*args, **kwargs)
|
||||
|
||||
def __str__(self):
|
||||
return self.pseudo
|
||||
|
||||
|
|
|
@ -205,6 +205,13 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
<dd>{{ users.pseudo }}</dd>
|
||||
</div>
|
||||
|
||||
{% if users.image_url %}
|
||||
<div class="col-md-6">
|
||||
<dt>{% trans "Profile picture" %}</dt>
|
||||
<dd><img src="{{ users.image_url }}" height="42" width="42" /></dd>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="col-md-6">
|
||||
<dt>{% trans "Email address" %}</dt>
|
||||
<dd><a href="mailto:{{ users.email }}">{{ users.email }}</a>{% if users.email_state != users.EMAIL_STATE_VERIFIED %}<br/><i class="text-warning">{% trans "Pending confirmation..." %}</i>{% endif %}</dd>
|
||||
|
|
|
@ -32,7 +32,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
{% block content %}
|
||||
{% bootstrap_form_errors userform %}
|
||||
|
||||
<form class="form" method="post">
|
||||
<form class="form" method="post" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
{% massive_bootstrap_form userform 'room,school,administrators,members' %}
|
||||
{% bootstrap_button action_name button_type="submit" icon='ok' button_class='btn-success' %}
|
||||
|
|
|
@ -59,6 +59,7 @@ from machines.models import Machine
|
|||
|
||||
from preferences.models import OptionalUser, GeneralOption, AssoOption
|
||||
from importlib import import_module
|
||||
from django.conf import settings
|
||||
from re2o.settings_local import OPTIONNAL_APPS_RE2O
|
||||
from re2o.views import form
|
||||
from re2o.utils import all_has_access, permission_tree
|
||||
|
@ -112,12 +113,13 @@ from .forms import (
|
|||
InitialRegisterForm,
|
||||
)
|
||||
|
||||
import os
|
||||
|
||||
@can_create(Adherent)
|
||||
def new_user(request):
|
||||
""" Vue de création d'un nouvel utilisateur,
|
||||
envoie un mail pour le mot de passe"""
|
||||
user = AdherentCreationForm(request.POST or None, user=request.user)
|
||||
user = AdherentCreationForm(request.POST or None, request.FILES or None, user=request.user)
|
||||
user.request = request
|
||||
|
||||
GTU_sum_up = GeneralOption.get_cached_value("GTU_sum_up")
|
||||
|
@ -167,7 +169,7 @@ def new_user(request):
|
|||
def new_club(request):
|
||||
""" Vue de création d'un nouveau club,
|
||||
envoie un mail pour le mot de passe"""
|
||||
club = ClubForm(request.POST or None, user=request.user)
|
||||
club = ClubForm(request.POST or None, request.FILES or None, user=request.user)
|
||||
club.request = request
|
||||
|
||||
if club.is_valid():
|
||||
|
@ -192,7 +194,7 @@ def new_club(request):
|
|||
def edit_club_admin_members(request, club_instance, **_kwargs):
|
||||
"""Vue d'edition de la liste des users administrateurs et
|
||||
membres d'un club"""
|
||||
club = ClubAdminandMembersForm(request.POST or None, instance=club_instance)
|
||||
club = ClubAdminandMembersForm(request.POST or None, request.FILES or None, instance=club_instance)
|
||||
if club.is_valid():
|
||||
if club.changed_data:
|
||||
club.save()
|
||||
|
@ -215,14 +217,20 @@ def edit_info(request, user, userid):
|
|||
possession du droit cableur """
|
||||
if user.is_class_adherent:
|
||||
user_form = AdherentEditForm(
|
||||
request.POST or None, instance=user.adherent, user=request.user
|
||||
request.POST or None, request.FILES or None, instance=user.adherent, user=request.user
|
||||
)
|
||||
else:
|
||||
user_form = ClubForm(
|
||||
request.POST or None, instance=user.club, user=request.user
|
||||
request.POST or None, request.FILES or None,instance=user.club, user=request.user
|
||||
)
|
||||
if user_form.is_valid():
|
||||
if user_form.changed_data:
|
||||
user = user_form.save(commit=False)
|
||||
former_user = Adherent.objects.get(pseudo=user.pseudo)
|
||||
if former_user.profile_image:
|
||||
if (user.profile_image and user.profile_image.url != former_user.profile_image.url) or (not user.profile_image):
|
||||
former_image = settings.BASE_DIR+former_user.profile_image.url
|
||||
os.remove(former_image)
|
||||
user = user_form.save()
|
||||
messages.success(request, _("The user was edited."))
|
||||
|
||||
|
|
Loading…
Reference in a new issue