From 887893fb2df2c182cca5fbefa0d78104ac24446c Mon Sep 17 00:00:00 2001 From: guillaume-renaud Date: Wed, 9 Nov 2016 17:49:19 +0100 Subject: [PATCH] Creation of the Stock list, edit, create views and creation StockItem create view --- counter/templates/counter/counter_list.jinja | 12 +- counter/views.py | 5 + locale/fr/LC_MESSAGES/django.mo | Bin 37453 -> 37333 bytes locale/fr/LC_MESSAGES/django.po | 2862 ++++++++++++++++++ stock/models.py | 5 + stock/templates/stock/stock_list.jinja | 23 + stock/templates/stock/stock_main.jinja | 2 +- stock/urls.py | 2 + stock/views.py | 75 +- 9 files changed, 2972 insertions(+), 14 deletions(-) create mode 100644 locale/fr/LC_MESSAGES/django.po create mode 100644 stock/templates/stock/stock_list.jinja diff --git a/counter/templates/counter/counter_list.jinja b/counter/templates/counter/counter_list.jinja index 68c33cbf..0dc72d1f 100644 --- a/counter/templates/counter/counter_list.jinja +++ b/counter/templates/counter/counter_list.jinja @@ -31,14 +31,14 @@ {% if user.can_edit(c) %} {% trans %}Edit{% endtrans %} - {% trans %}Stats{% endtrans %} - + {%if c.stock %} + Stock - + {% else %} + {% trans %}Create new stock{% endtrans%} - + {% endif %} {% endif %} {% if user.is_owner(c) %} - {% trans %}Props{% endtrans %} - - {%if c.stock %} - {{c.stock}} - {% else %} - {% trans %}Create new stock{% endtrans%} - {% endif %} + {% trans %}Props{% endtrans %} {% endif %} {% endfor %} diff --git a/counter/views.py b/counter/views.py index de6b0da6..00edd36d 100644 --- a/counter/views.py +++ b/counter/views.py @@ -443,6 +443,11 @@ class CounterLogout(RedirectView): class CounterAdminTabsMixin(TabedViewMixin): tabs_title = _("Counter administration") list_of_tabs = [ + { + 'url': reverse_lazy('stock:list'), + 'slug': 'stocks', + 'name': _("Stocks"), + }, { 'url': reverse_lazy('counter:admin_list'), 'slug': 'counters', diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo index 896b8e1ebbb385c7c163b83f8bd0ff78c8593731..bf842ded9f53e6cbb8fd2ad6dc6ee0aec1eb11ea 100644 GIT binary patch delta 12763 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 F{};~MR1g3F delta 12960 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 BlA{0s diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po new file mode 100644 index 00000000..27709b3a --- /dev/null +++ b/locale/fr/LC_MESSAGES/django.po @@ -0,0 +1,2862 @@ +# Sith AE french translation file +# Copyright (C) 2016 +# This file is distributed under the same license as the Sith package. +# Skia , 2016 +# +msgid "" +msgstr "" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-09 17:43+0100\n" +"PO-Revision-Date: 2016-07-18\n" +"Last-Translator: Skia \n" +"Language-Team: AE info \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: accounting/models.py:36 accounting/models.py:55 accounting/models.py:82 +#: accounting/models.py:141 club/models.py:19 counter/models.py:62 +#: counter/models.py:87 counter/models.py:122 launderette/models.py:15 +#: launderette/models.py:60 launderette/models.py:85 stock/models.py:10 +#: stock/models.py:21 +msgid "name" +msgstr "nom" + +#: accounting/models.py:37 +msgid "street" +msgstr "rue" + +#: accounting/models.py:38 +msgid "city" +msgstr "ville" + +#: accounting/models.py:39 +msgid "postcode" +msgstr "code postal" + +#: accounting/models.py:40 +msgid "country" +msgstr "pays" + +#: accounting/models.py:41 core/models.py:166 +msgid "phone" +msgstr "téléphone" + +#: accounting/models.py:42 +msgid "email" +msgstr "email" + +#: accounting/models.py:43 +msgid "website" +msgstr "site internet" + +#: accounting/models.py:46 +msgid "company" +msgstr "entreprise" + +#: accounting/models.py:56 +msgid "iban" +msgstr "IBAN" + +#: accounting/models.py:57 +msgid "account number" +msgstr "numero de compte" + +#: accounting/models.py:58 accounting/models.py:83 club/models.py:145 +#: counter/models.py:96 counter/models.py:123 +msgid "club" +msgstr "club" + +#: accounting/models.py:61 +msgid "Bank account" +msgstr "Compte en banque" + +#: accounting/models.py:84 +msgid "bank account" +msgstr "compte en banque" + +#: accounting/models.py:87 +msgid "Club account" +msgstr "Compte club" + +#: accounting/models.py:132 +#, python-format +msgid "%(club_account)s on %(bank_account)s" +msgstr "%(club_account)s sur %(bank_account)s" + +#: accounting/models.py:139 club/models.py:146 counter/models.py:341 +#: launderette/models.py:122 +msgid "start date" +msgstr "date de début" + +#: accounting/models.py:140 club/models.py:147 counter/models.py:342 +msgid "end date" +msgstr "date de fin" + +#: accounting/models.py:142 +msgid "is closed" +msgstr "est fermé" + +#: accounting/models.py:143 accounting/models.py:346 +msgid "club account" +msgstr "compte club" + +#: accounting/models.py:144 accounting/models.py:190 counter/models.py:27 +#: counter/models.py:226 +msgid "amount" +msgstr "montant" + +#: accounting/models.py:145 +msgid "effective_amount" +msgstr "montant effectif" + +#: accounting/models.py:148 +msgid "General journal" +msgstr "Classeur" + +#: accounting/models.py:188 +msgid "number" +msgstr "numéro" + +#: accounting/models.py:189 +msgid "journal" +msgstr "classeur" + +#: accounting/models.py:191 core/models.py:479 core/models.py:757 +#: counter/models.py:229 counter/models.py:272 counter/models.py:358 +#: eboutic/models.py:15 eboutic/models.py:48 +msgid "date" +msgstr "date" + +#: accounting/models.py:192 counter/models.py:359 +msgid "comment" +msgstr "commentaire" + +#: accounting/models.py:193 counter/models.py:230 counter/models.py:273 +#: subscription/models.py:57 +msgid "payment method" +msgstr "méthode de paiement" + +#: accounting/models.py:194 +msgid "cheque number" +msgstr "numéro de chèque" + +#: accounting/models.py:195 eboutic/models.py:116 +msgid "invoice" +msgstr "facture" + +#: accounting/models.py:196 +msgid "is done" +msgstr "est fait" + +#: accounting/models.py:198 +msgid "simple type" +msgstr "type simplifié" + +#: accounting/models.py:200 accounting/models.py:301 +msgid "accounting type" +msgstr "type comptable" + +#: accounting/models.py:202 accounting/models.py:296 accounting/models.py:322 +#: accounting/models.py:345 counter/models.py:264 +msgid "label" +msgstr "intitulé" + +#: accounting/models.py:203 +msgid "target type" +msgstr "type de cible" + +#: accounting/models.py:204 club/templates/club/club_members.jinja:8 +#: club/templates/club/club_old_members.jinja:8 +#: core/templates/core/user_clubs.jinja:15 +#: core/templates/core/user_clubs.jinja:41 +#: counter/templates/counter/cash_summary_list.jinja:32 +#: counter/templates/counter/stats.jinja:15 +#: launderette/templates/launderette/launderette_admin.jinja:44 +msgid "User" +msgstr "Utilisateur" + +#: accounting/models.py:204 club/templates/club/club_detail.jinja:5 +#: counter/templates/counter/invoices_call.jinja:20 +msgid "Club" +msgstr "Club" + +#: accounting/models.py:204 core/views/user.py:174 +msgid "Account" +msgstr "Compte" + +#: accounting/models.py:204 +msgid "Company" +msgstr "Entreprise" + +#: accounting/models.py:204 sith/settings.py:280 +msgid "Other" +msgstr "Autre" + +#: accounting/models.py:205 +msgid "target id" +msgstr "id de la cible" + +#: accounting/models.py:206 +msgid "target label" +msgstr "nom de la cible" + +#: accounting/models.py:207 +msgid "linked operation" +msgstr "opération liée" + +#: accounting/models.py:223 +#, python-format +msgid "" +"The date can not be before the start date of the journal, which is\n" +"%(start_date)s." +msgstr "" +"La date ne peut pas être avant la date de début du journal, qui est\n" +"%(start_date)s." + +#: accounting/models.py:226 +msgid "Target does not exists" +msgstr "La cible n'existe pas." + +#: accounting/models.py:228 +msgid "Please add a target label if you set no existing target" +msgstr "" +"Merci d'ajouter un nom de cible si vous ne spécifiez pas de cible existante" + +#: accounting/models.py:230 +msgid "" +"You need to provide ether a simplified accounting type or a standard " +"accounting type" +msgstr "" +"Vous devez fournir soit un type comptable simplifié ou un type comptable " +"standard" + +#: accounting/models.py:291 counter/models.py:91 +msgid "code" +msgstr "code" + +#: accounting/models.py:293 +msgid "An accounting type code contains only numbers" +msgstr "Un code comptable ne contient que des numéros" + +#: accounting/models.py:297 +msgid "movement type" +msgstr "type de mouvement" + +#: accounting/models.py:297 +msgid "Credit" +msgstr "Crédit" + +#: accounting/models.py:297 +msgid "Debit" +msgstr "Débit" + +#: accounting/models.py:298 +msgid "Neutral" +msgstr "Neutre" + +#: accounting/models.py:324 +msgid "simplified accounting types" +msgstr "type simplifié" + +#: accounting/models.py:327 +msgid "simplified type" +msgstr "type simplifié" + +#: accounting/templates/accounting/accountingtype_list.jinja:4 +#: accounting/templates/accounting/accountingtype_list.jinja:15 +msgid "Accounting type list" +msgstr "Liste des types comptable" + +#: accounting/templates/accounting/accountingtype_list.jinja:9 +#: accounting/templates/accounting/bank_account_details.jinja:9 +#: accounting/templates/accounting/bank_account_list.jinja:9 +#: accounting/templates/accounting/club_account_details.jinja:9 +#: accounting/templates/accounting/journal_details.jinja:9 +#: accounting/templates/accounting/label_list.jinja:9 +#: accounting/templates/accounting/operation_edit.jinja:9 +#: accounting/templates/accounting/simplifiedaccountingtype_list.jinja:9 +#: core/templates/core/user_tools.jinja:42 +msgid "Accounting" +msgstr "Comptabilité" + +#: accounting/templates/accounting/accountingtype_list.jinja:10 +msgid "Accounting types" +msgstr "Type comptable" + +#: accounting/templates/accounting/accountingtype_list.jinja:13 +msgid "New accounting type" +msgstr "Nouveau type comptable" + +#: accounting/templates/accounting/accountingtype_list.jinja:22 +#: accounting/templates/accounting/simplifiedaccountingtype_list.jinja:22 +msgid "There is no types in this website." +msgstr "Il n'y a pas de types comptable dans ce site web." + +#: accounting/templates/accounting/bank_account_details.jinja:4 +#: accounting/templates/accounting/bank_account_details.jinja:13 +#: core/templates/core/user_tools.jinja:49 +msgid "Bank account: " +msgstr "Compte en banque : " + +#: accounting/templates/accounting/bank_account_details.jinja:15 +#: accounting/templates/accounting/club_account_details.jinja:16 +#: accounting/templates/accounting/label_list.jinja:21 +#: club/templates/club/club_sellings.jinja:48 +#: core/templates/core/file_detail.jinja:43 +#: core/templates/core/group_list.jinja:13 core/templates/core/macros.jinja:66 +#: core/templates/core/user_account_detail.jinja:67 +#: core/templates/core/user_edit.jinja:18 +#: counter/templates/counter/last_ops.jinja:29 +#: counter/templates/counter/last_ops.jinja:59 +#: launderette/templates/launderette/launderette_admin.jinja:16 +#: launderette/views.py:146 +msgid "Delete" +msgstr "Supprimer" + +#: accounting/templates/accounting/bank_account_details.jinja:17 +#: club/views.py:31 core/views/user.py:130 +msgid "Infos" +msgstr "Infos" + +#: accounting/templates/accounting/bank_account_details.jinja:19 +msgid "IBAN: " +msgstr "IBAN : " + +#: accounting/templates/accounting/bank_account_details.jinja:20 +msgid "Number: " +msgstr "Numéro : " + +#: accounting/templates/accounting/bank_account_details.jinja:22 +msgid "New club account" +msgstr "Nouveau compte club" + +#: accounting/templates/accounting/bank_account_details.jinja:26 +#: accounting/templates/accounting/bank_account_list.jinja:21 +#: accounting/templates/accounting/club_account_details.jinja:55 +#: accounting/templates/accounting/journal_details.jinja:70 club/views.py:53 +#: core/templates/core/file.jinja:38 core/templates/core/page.jinja:31 +#: core/templates/core/user_tools.jinja:35 core/views/user.py:147 +#: counter/templates/counter/cash_summary_list.jinja:53 +#: counter/templates/counter/counter_list.jinja:17 +#: counter/templates/counter/counter_list.jinja:32 +#: counter/templates/counter/counter_list.jinja:52 +#: launderette/templates/launderette/launderette_list.jinja:16 +msgid "Edit" +msgstr "Éditer" + +#: accounting/templates/accounting/bank_account_list.jinja:4 +#: accounting/templates/accounting/bank_account_list.jinja:17 +msgid "Bank account list" +msgstr "Liste des comptes en banque" + +#: accounting/templates/accounting/bank_account_list.jinja:12 +msgid "Manage simplified types" +msgstr "Gérer les types simplifiés" + +#: accounting/templates/accounting/bank_account_list.jinja:13 +msgid "Manage accounting types" +msgstr "Gérer les types comptable" + +#: accounting/templates/accounting/bank_account_list.jinja:14 +msgid "New bank account" +msgstr "Nouveau compte en banque" + +#: accounting/templates/accounting/bank_account_list.jinja:26 +msgid "There is no accounts in this website." +msgstr "Il n'y a pas de comptes dans ce site web." + +#: accounting/templates/accounting/club_account_details.jinja:4 +#: accounting/templates/accounting/club_account_details.jinja:14 +msgid "Club account:" +msgstr "Compte club : " + +#: accounting/templates/accounting/club_account_details.jinja:18 +#: accounting/templates/accounting/journal_details.jinja:16 +#: accounting/templates/accounting/label_list.jinja:15 +msgid "New label" +msgstr "Nouvelle étiquette" + +#: accounting/templates/accounting/club_account_details.jinja:19 +#: accounting/templates/accounting/journal_details.jinja:17 +#: accounting/templates/accounting/label_list.jinja:4 +#: accounting/templates/accounting/label_list.jinja:17 +msgid "Label list" +msgstr "Liste des étiquettes" + +#: accounting/templates/accounting/club_account_details.jinja:21 +msgid "New journal" +msgstr "Nouveau classeur" + +#: accounting/templates/accounting/club_account_details.jinja:23 +msgid "You can not create new journal while you still have one opened" +msgstr "Vous ne pouvez pas créer de journal tant qu'il y en a un d'ouvert" + +#: accounting/templates/accounting/club_account_details.jinja:28 +#: launderette/templates/launderette/launderette_admin.jinja:43 +msgid "Name" +msgstr "Nom" + +#: accounting/templates/accounting/club_account_details.jinja:29 +msgid "Start" +msgstr "Début" + +#: accounting/templates/accounting/club_account_details.jinja:30 +msgid "End" +msgstr "Fin" + +#: accounting/templates/accounting/club_account_details.jinja:31 +#: accounting/templates/accounting/journal_details.jinja:31 +#: core/templates/core/user_account_detail.jinja:20 +#: core/templates/core/user_account_detail.jinja:81 +#: counter/templates/counter/last_ops.jinja:17 +msgid "Amount" +msgstr "Montant" + +#: accounting/templates/accounting/club_account_details.jinja:32 +msgid "Effective amount" +msgstr "Montant effectif" + +#: accounting/templates/accounting/club_account_details.jinja:33 +msgid "Closed" +msgstr "Fermé" + +#: accounting/templates/accounting/club_account_details.jinja:34 +#: accounting/templates/accounting/journal_details.jinja:39 +msgid "Actions" +msgstr "Actions" + +#: accounting/templates/accounting/club_account_details.jinja:50 +#: accounting/templates/accounting/journal_details.jinja:58 +msgid "Yes" +msgstr "Oui" + +#: accounting/templates/accounting/club_account_details.jinja:52 +#: accounting/templates/accounting/journal_details.jinja:60 +msgid "No" +msgstr "Non" + +#: accounting/templates/accounting/club_account_details.jinja:54 +#: core/templates/core/file.jinja:36 core/templates/core/page.jinja:28 +msgid "View" +msgstr "Voir" + +#: accounting/templates/accounting/journal_details.jinja:4 +#: accounting/templates/accounting/journal_details.jinja:15 +msgid "General journal:" +msgstr "Classeur : " + +#: accounting/templates/accounting/journal_details.jinja:18 +#: core/templates/core/user_account.jinja:36 +#: core/templates/core/user_account_detail.jinja:10 +#: counter/templates/counter/counter_click.jinja:32 +msgid "Amount: " +msgstr "Montant: " + +#: accounting/templates/accounting/journal_details.jinja:19 +msgid "Effective amount: " +msgstr "Montant effectif: " + +#: accounting/templates/accounting/journal_details.jinja:21 +msgid "Journal is closed, you can not create operation" +msgstr "Le classeur est fermé, vous ne pouvez pas créer d'opération" + +#: accounting/templates/accounting/journal_details.jinja:23 +msgid "New operation" +msgstr "Nouvelle opération" + +#: accounting/templates/accounting/journal_details.jinja:28 +#: counter/templates/counter/stats.jinja:14 +msgid "Nb" +msgstr "No" + +#: accounting/templates/accounting/journal_details.jinja:29 +#: club/templates/club/club_sellings.jinja:18 +#: core/templates/core/user_account_detail.jinja:17 +#: core/templates/core/user_account_detail.jinja:46 +#: core/templates/core/user_account_detail.jinja:79 +#: counter/templates/counter/cash_summary_list.jinja:34 +#: counter/templates/counter/last_ops.jinja:14 +#: counter/templates/counter/last_ops.jinja:39 +msgid "Date" +msgstr "Date" + +#: accounting/templates/accounting/journal_details.jinja:30 +#: club/templates/club/club_sellings.jinja:22 +#: core/templates/core/user_account_detail.jinja:49 +#: counter/templates/counter/last_ops.jinja:42 +msgid "Label" +msgstr "Étiquette" + +#: accounting/templates/accounting/journal_details.jinja:32 +msgid "Payment mode" +msgstr "Méthode de paiement" + +#: accounting/templates/accounting/journal_details.jinja:33 +msgid "Target" +msgstr "Cible" + +#: accounting/templates/accounting/journal_details.jinja:34 +msgid "Code" +msgstr "Code" + +#: accounting/templates/accounting/journal_details.jinja:35 +msgid "Nature" +msgstr "Nature" + +#: accounting/templates/accounting/journal_details.jinja:36 +msgid "Done" +msgstr "Effectué" + +#: accounting/templates/accounting/journal_details.jinja:37 +#: counter/templates/counter/cash_summary_list.jinja:37 counter/views.py:707 +msgid "Comment" +msgstr "Commentaire" + +#: accounting/templates/accounting/journal_details.jinja:38 +msgid "File" +msgstr "Fichier" + +#: accounting/templates/accounting/label_list.jinja:14 +msgid "Back to club account" +msgstr "Retour au compte club" + +#: accounting/templates/accounting/label_list.jinja:26 +msgid "There is no label in this club account." +msgstr "Il n'y a pas d'étiquette dans ce compte club." + +#: accounting/templates/accounting/operation_edit.jinja:4 +#: accounting/templates/accounting/operation_edit.jinja:13 +#: accounting/templates/accounting/operation_edit.jinja:16 +msgid "Edit operation" +msgstr "Éditer l'opération" + +#: accounting/templates/accounting/operation_edit.jinja:40 +#: core/templates/core/create.jinja:12 core/templates/core/edit.jinja:12 +#: core/templates/core/file_edit.jinja:8 core/templates/core/page_prop.jinja:8 +#: core/templates/core/pagerev_edit.jinja:24 +#: core/templates/core/user_godfathers.jinja:35 +#: counter/templates/counter/cash_register_summary.jinja:22 +#: subscription/templates/subscription/subscription.jinja:23 +msgid "Save" +msgstr "Sauver" + +#: accounting/templates/accounting/simplifiedaccountingtype_list.jinja:4 +#: accounting/templates/accounting/simplifiedaccountingtype_list.jinja:15 +msgid "Simplified type list" +msgstr "Liste des types simplifiés" + +#: accounting/templates/accounting/simplifiedaccountingtype_list.jinja:10 +msgid "Simplified types" +msgstr "Types simplifiés" + +#: accounting/templates/accounting/simplifiedaccountingtype_list.jinja:13 +msgid "New simplified type" +msgstr "Nouveau type simplifié" + +#: club/models.py:21 +msgid "unix name" +msgstr "nom unix" + +#: club/models.py:25 +msgid "" +"Enter a valid unix name. This value may contain only letters, numbers ./-/_ " +"characters." +msgstr "" +"Entrez un nom UNIX valide. Cette valeur peut contenir uniquement des " +"lettres, des nombres, et les caractères ./-/_" + +#: club/models.py:30 +msgid "A club with that unix name already exists." +msgstr "Un club avec ce nom UNIX existe déjà." + +#: club/models.py:33 core/models.py:168 +msgid "address" +msgstr "Adresse" + +#: club/models.py:39 core/models.py:117 +msgid "home" +msgstr "home" + +#: club/models.py:47 +msgid "You can not make loops in clubs" +msgstr "Vous ne pouvez pas faire de boucles dans les clubs" + +#: club/models.py:61 +msgid "A club with that unix_name already exists" +msgstr "Un club avec ce nom UNIX existe déjà." + +#: club/models.py:144 counter/models.py:339 counter/models.py:356 +#: eboutic/models.py:14 eboutic/models.py:47 launderette/models.py:89 +#: launderette/models.py:126 +msgid "user" +msgstr "nom d'utilisateur" + +#: club/models.py:148 core/models.py:135 +msgid "role" +msgstr "rôle" + +#: club/models.py:150 core/models.py:32 counter/models.py:63 +#: counter/models.py:88 +msgid "description" +msgstr "description" + +#: club/models.py:155 +msgid "User must be subscriber to take part to a club" +msgstr "L'utilisateur doit être cotisant pour faire partie d'un club" + +#: club/models.py:157 +msgid "User is already member of that club" +msgstr "L'utilisateur est déjà membre de ce club" + +#: club/models.py:166 +msgid "past member" +msgstr "Anciens membres" + +#: club/templates/club/club_list.jinja:4 club/templates/club/club_list.jinja:24 +msgid "Club list" +msgstr "Liste des clubs" + +#: club/templates/club/club_list.jinja:21 +msgid "New club" +msgstr "Nouveau club" + +#: club/templates/club/club_list.jinja:31 +msgid "There is no club in this website." +msgstr "Il n'y a pas de club dans ce site web." + +#: club/templates/club/club_members.jinja:5 +msgid "Club members" +msgstr "Membres du club" + +#: club/templates/club/club_members.jinja:9 +#: club/templates/club/club_old_members.jinja:9 +#: core/templates/core/user_clubs.jinja:16 +#: core/templates/core/user_clubs.jinja:42 +msgid "Role" +msgstr "Rôle" + +#: club/templates/club/club_members.jinja:10 +#: club/templates/club/club_old_members.jinja:10 +#: core/templates/core/user_clubs.jinja:17 +#: core/templates/core/user_clubs.jinja:43 +msgid "Description" +msgstr "Description" + +#: club/templates/club/club_members.jinja:11 +#: core/templates/core/user_clubs.jinja:18 +#: launderette/templates/launderette/launderette_admin.jinja:45 +msgid "Since" +msgstr "Depuis" + +#: club/templates/club/club_members.jinja:21 +#: core/templates/core/user_clubs.jinja:29 +msgid "Mark as old" +msgstr "Marquer comme ancien" + +#: club/templates/club/club_members.jinja:30 +#: core/templates/core/file_detail.jinja:19 core/views/forms.py:203 +#: launderette/views.py:146 +msgid "Add" +msgstr "Ajouter" + +#: club/templates/club/club_old_members.jinja:5 +msgid "Club old members" +msgstr "Anciens membres du club" + +#: club/templates/club/club_old_members.jinja:11 +#: core/templates/core/user_clubs.jinja:44 +msgid "From" +msgstr "Du" + +#: club/templates/club/club_old_members.jinja:12 +#: core/templates/core/user_clubs.jinja:45 +msgid "To" +msgstr "Au" + +#: club/templates/club/club_sellings.jinja:5 club/views.py:58 +#: counter/templates/counter/counter_main.jinja:19 +#: counter/templates/counter/last_ops.jinja:35 +msgid "Sellings" +msgstr "Ventes" + +#: club/templates/club/club_sellings.jinja:9 +#: counter/templates/counter/cash_summary_list.jinja:15 +msgid "Show" +msgstr "Montrer" + +#: club/templates/club/club_sellings.jinja:12 +msgid "Quantity: " +msgstr "Quantité : " + +#: club/templates/club/club_sellings.jinja:12 +msgid "units" +msgstr "unités" + +#: club/templates/club/club_sellings.jinja:13 +#: counter/templates/counter/counter_click.jinja:70 +#: counter/templates/counter/counter_main.jinja:28 +#: eboutic/templates/eboutic/eboutic_main.jinja:34 +msgid "Total: " +msgstr "Total : " + +#: club/templates/club/club_sellings.jinja:19 club/views.py:165 +#: core/templates/core/user_account_detail.jinja:18 +#: core/templates/core/user_account_detail.jinja:47 +#: counter/templates/counter/cash_summary_list.jinja:33 counter/views.py:75 +msgid "Counter" +msgstr "Comptoir" + +#: club/templates/club/club_sellings.jinja:20 +#: core/templates/core/user_account_detail.jinja:19 +#: core/templates/core/user_account_detail.jinja:48 +#: counter/templates/counter/last_ops.jinja:15 +#: counter/templates/counter/last_ops.jinja:40 +msgid "Barman" +msgstr "Barman" + +#: club/templates/club/club_sellings.jinja:21 +#: counter/templates/counter/counter_click.jinja:29 +#: counter/templates/counter/last_ops.jinja:16 +#: counter/templates/counter/last_ops.jinja:41 +msgid "Customer" +msgstr "Client" + +#: club/templates/club/club_sellings.jinja:23 +#: core/templates/core/user_account_detail.jinja:50 +#: core/templates/core/user_stats.jinja:28 +#: counter/templates/counter/last_ops.jinja:43 +msgid "Quantity" +msgstr "Quantité" + +#: club/templates/club/club_sellings.jinja:24 +#: core/templates/core/user_account.jinja:9 +#: core/templates/core/user_account_detail.jinja:51 +#: counter/templates/counter/cash_summary_list.jinja:35 +#: counter/templates/counter/last_ops.jinja:44 +#: counter/templates/counter/stats.jinja:18 +msgid "Total" +msgstr "Total" + +#: club/templates/club/club_sellings.jinja:25 +#: core/templates/core/user_account_detail.jinja:21 +#: core/templates/core/user_account_detail.jinja:52 +#: counter/templates/counter/last_ops.jinja:18 +#: counter/templates/counter/last_ops.jinja:45 +msgid "Payment method" +msgstr "Méthode de paiement" + +#: club/templates/club/club_tools.jinja:4 +#: core/templates/core/user_tools.jinja:61 +msgid "Club tools" +msgstr "Outils club" + +#: club/templates/club/club_tools.jinja:6 +msgid "Counters:" +msgstr "Comptoirs : " + +#: club/templates/club/club_tools.jinja:22 +msgid "Accouting: " +msgstr "Comptabilité : " + +#: club/templates/club/club_tools.jinja:30 +msgid "Manage launderettes" +msgstr "Gestion des laveries" + +#: club/views.py:37 +msgid "Members" +msgstr "Membres" + +#: club/views.py:42 +msgid "Old members" +msgstr "Anciens membres" + +#: club/views.py:48 core/templates/core/base.jinja:40 core/views/user.py:141 +msgid "Tools" +msgstr "Outils" + +#: club/views.py:64 counter/templates/counter/counter_list.jinja:21 +#: counter/templates/counter/counter_list.jinja:41 +#: counter/templates/counter/counter_list.jinja:56 +msgid "Props" +msgstr "Propriétés" + +#: club/views.py:102 core/views/forms.py:204 counter/views.py:39 +msgid "Select user" +msgstr "Choisir un utilisateur" + +#: club/views.py:163 counter/views.py:905 +msgid "Begin date" +msgstr "Date de début" + +#: club/views.py:164 counter/views.py:906 +msgid "End date" +msgstr "Date de fin" + +#: club/views.py:178 core/templates/core/user_stats.jinja:27 +#: counter/views.py:986 +msgid "Product" +msgstr "Produit" + +#: core/models.py:28 +msgid "meta group status" +msgstr "status du meta-groupe" + +#: core/models.py:30 +msgid "Whether a group is a meta group or not" +msgstr "Si un groupe est un meta-groupe ou pas" + +#: core/models.py:58 +#, python-format +msgid "%(value)s is not a valid promo (between 0 and %(end)s)" +msgstr "%(value)s n'est pas une promo valide (doit être entre 0 et %(end)s)" + +#: core/models.py:74 +msgid "username" +msgstr "nom d'utilisateur" + +#: core/models.py:77 +msgid "Required. 254 characters or fewer. Letters, digits and ./+/-/_ only." +msgstr "" +"Requis. Pas plus de 254 caractères. Uniquement des lettres, numéros, et ./" +"+/-/_" + +#: core/models.py:81 +msgid "" +"Enter a valid username. This value may contain only letters, numbers and ./" +"+/-/_ characters." +msgstr "" +"Entrez un nom d'utilisateur correct. Uniquement des lettres, numéros, et ./" +"+/-/_" + +#: core/models.py:86 +msgid "A user with that username already exists." +msgstr "Un utilisateur de ce nom existe déjà" + +#: core/models.py:89 +msgid "first name" +msgstr "Prénom" + +#: core/models.py:90 +msgid "last name" +msgstr "Nom" + +#: core/models.py:91 +msgid "email address" +msgstr "adresse email" + +#: core/models.py:92 +msgid "date of birth" +msgstr "date de naissance" + +#: core/models.py:93 +msgid "nick name" +msgstr "surnom" + +#: core/models.py:95 +msgid "staff status" +msgstr "status \"staff\"" + +#: core/models.py:97 +msgid "Designates whether the user can log into this admin site." +msgstr "Est-ce que l'utilisateur peut se logger à la partie admin du site." + +#: core/models.py:100 +msgid "active" +msgstr "actif" + +#: core/models.py:103 +msgid "" +"Designates whether this user should be treated as active. Unselect this " +"instead of deleting accounts." +msgstr "" +"Est-ce que l'utilisateur doit être traité comme actif. Déselectionnez au " +"lieu de supprimer les comptes." + +#: core/models.py:107 +msgid "date joined" +msgstr "date d'inscription" + +#: core/models.py:108 +msgid "last update" +msgstr "dernière mise à jour" + +#: core/models.py:110 +msgid "superuser" +msgstr "super-utilisateur" + +#: core/models.py:113 +msgid "Designates whether this user is a superuser. " +msgstr "Est-ce que l'utilisateur est super-utilisateur." + +#: core/models.py:118 +msgid "profile" +msgstr "profil" + +#: core/models.py:120 +msgid "avatar" +msgstr "avatar" + +#: core/models.py:122 +msgid "scrub" +msgstr "blouse" + +#: core/models.py:124 +msgid "sex" +msgstr "sexe" + +#: core/models.py:124 +msgid "Man" +msgstr "Homme" + +#: core/models.py:124 +msgid "Woman" +msgstr "Femme" + +#: core/models.py:125 +msgid "tshirt size" +msgstr "taille de tshirt" + +#: core/models.py:126 +msgid "-" +msgstr "-" + +#: core/models.py:127 +msgid "XS" +msgstr "XS" + +#: core/models.py:128 +msgid "S" +msgstr "S" + +#: core/models.py:129 +msgid "M" +msgstr "M" + +#: core/models.py:130 +msgid "L" +msgstr "L" + +#: core/models.py:131 +msgid "XL" +msgstr "XL" + +#: core/models.py:132 +msgid "XXL" +msgstr "XXL" + +#: core/models.py:133 +msgid "XXXL" +msgstr "XXXL" + +#: core/models.py:136 +msgid "Student" +msgstr "Étudiant" + +#: core/models.py:137 +msgid "Administrative agent" +msgstr "Personnel administratif" + +#: core/models.py:138 +msgid "Teacher" +msgstr "Enseignant" + +#: core/models.py:139 +msgid "Agent" +msgstr "Personnel" + +#: core/models.py:140 +msgid "Doctor" +msgstr "Doctorant" + +#: core/models.py:141 +msgid "Former student" +msgstr "Ancien étudiant" + +#: core/models.py:142 +msgid "Service" +msgstr "Service" + +#: core/models.py:144 +msgid "department" +msgstr "département" + +#: core/models.py:145 +msgid "TC" +msgstr "TC" + +#: core/models.py:146 +msgid "IMSI" +msgstr "IMSI" + +#: core/models.py:147 +msgid "IMAP" +msgstr "IMAP" + +#: core/models.py:148 +msgid "INFO" +msgstr "INFO" + +#: core/models.py:149 +msgid "GI" +msgstr "GI" + +#: core/models.py:150 +msgid "E" +msgstr "E" + +#: core/models.py:151 +msgid "EE" +msgstr "EE" + +#: core/models.py:152 +msgid "GESC" +msgstr "GESC" + +#: core/models.py:153 +msgid "GMC" +msgstr "GMC" + +#: core/models.py:154 +msgid "MC" +msgstr "MC" + +#: core/models.py:155 +msgid "EDIM" +msgstr "EDIM" + +#: core/models.py:156 +msgid "Humanities" +msgstr "Humanités" + +#: core/models.py:157 +msgid "N/A" +msgstr "N/A" + +#: core/models.py:159 +msgid "dpt option" +msgstr "Filière" + +#: core/models.py:160 +msgid "semester" +msgstr "semestre" + +#: core/models.py:161 +msgid "quote" +msgstr "citation" + +#: core/models.py:162 +msgid "school" +msgstr "école" + +#: core/models.py:163 +msgid "promo" +msgstr "promo" + +#: core/models.py:164 +msgid "forum signature" +msgstr "signature du forum" + +#: core/models.py:165 +msgid "second email address" +msgstr "adresse email secondaire" + +#: core/models.py:167 +msgid "parent phone" +msgstr "téléphone des parents" + +#: core/models.py:169 +msgid "parent address" +msgstr "adresse des parents" + +#: core/models.py:170 +msgid "is subscriber viewable" +msgstr "profil visible par les cotisants" + +#: core/models.py:285 +msgid "A user with that username already exists" +msgstr "Un utilisateur de ce nom d'utilisateur existe déjà" + +#: core/models.py:406 core/templates/core/macros.jinja:17 +#: core/templates/core/user_detail.jinja:14 +#: core/templates/core/user_detail.jinja:16 +#: core/templates/core/user_edit.jinja:16 +msgid "Profile" +msgstr "Profil" + +#: core/models.py:456 +msgid "Visitor" +msgstr "Visiteur" + +#: core/models.py:461 +msgid "define if we show a users stats" +msgstr "Definit si l'on montre les statistiques de l'utilisateur" + +#: core/models.py:463 +msgid "Show your account statistics to others" +msgstr "Montrez vos statistiques de compte aux autres" + +#: core/models.py:470 +msgid "file name" +msgstr "nom du fichier" + +#: core/models.py:471 core/models.py:606 +msgid "parent" +msgstr "parent" + +#: core/models.py:472 core/models.py:482 +msgid "file" +msgstr "fichier" + +#: core/models.py:473 +msgid "owner" +msgstr "propriétaire" + +#: core/models.py:474 core/models.py:612 +msgid "edit group" +msgstr "groupe d'édition" + +#: core/models.py:475 core/models.py:613 +msgid "view group" +msgstr "groupe de vue" + +#: core/models.py:476 +msgid "is folder" +msgstr "est un dossier" + +#: core/models.py:477 +msgid "mime type" +msgstr "type mime" + +#: core/models.py:478 +msgid "size" +msgstr "taille" + +#: core/models.py:510 +msgid "Character '/' not authorized in name" +msgstr "Le caractère '/' n'est pas autorisé dans les noms de fichier" + +#: core/models.py:513 core/models.py:518 +msgid "Loop in folder tree" +msgstr "Boucle dans l'arborescence des dossiers" + +#: core/models.py:522 +msgid "You can not make a file be a children of a non folder file" +msgstr "" +"Vous ne pouvez pas mettre un fichier enfant de quelque chose qui n'est pas " +"un dossier" + +#: core/models.py:526 +msgid "Duplicate file" +msgstr "Un fichier de ce nom existe déjà" + +#: core/models.py:536 +msgid "You must provide a file" +msgstr "Vous devez fournir un fichier" + +#: core/models.py:561 +msgid "Folder: " +msgstr "Dossier : " + +#: core/models.py:563 +msgid "File: " +msgstr "Fichier : " + +#: core/models.py:605 core/models.py:609 +msgid "page name" +msgstr "nom de la page" + +#: core/models.py:610 +msgid "owner group" +msgstr "groupe propriétaire" + +#: core/models.py:641 +msgid "Duplicate page" +msgstr "Une page de ce nom existe déjà" + +#: core/models.py:647 +msgid "Loop in page tree" +msgstr "Boucle dans l'arborescence des pages" + +#: core/models.py:754 +msgid "revision" +msgstr "révision" + +#: core/models.py:755 +msgid "page title" +msgstr "titre de la page" + +#: core/models.py:756 +msgid "page content" +msgstr "contenu de la page" + +#: core/templates/core/403.jinja:5 +msgid "403, Forbidden" +msgstr "403. Non autorisé" + +#: core/templates/core/404.jinja:5 +msgid "404, Not Found" +msgstr "404. Non trouvé" + +#: core/templates/core/base.jinja:5 core/templates/core/index.jinja:4 +msgid "Welcome!" +msgstr "Bienvenue!" + +#: core/templates/core/base.jinja:19 +msgid "Logo" +msgstr "Logo" + +#: core/templates/core/base.jinja:22 core/templates/core/login.jinja:4 +#: core/templates/core/password_reset_complete.jinja:5 +msgid "Login" +msgstr "Connexion" + +#: core/templates/core/base.jinja:23 core/templates/core/register.jinja:18 +msgid "Register" +msgstr "S'enregister" + +#: core/templates/core/base.jinja:41 +msgid "Logout" +msgstr "Déconnexion" + +#: core/templates/core/base.jinja:43 core/templates/core/base.jinja.py:44 +msgid "Search" +msgstr "Recherche" + +#: core/templates/core/base.jinja:66 +msgid "Main" +msgstr "Accueil" + +#: core/templates/core/base.jinja:67 +msgid "Matmatronch" +msgstr "Matmatronch" + +#: core/templates/core/base.jinja:68 +msgid "Wiki" +msgstr "Wiki" + +#: core/templates/core/base.jinja:69 +msgid "SAS" +msgstr "SAS" + +#: core/templates/core/base.jinja:70 +msgid "Forum" +msgstr "Forum" + +#: core/templates/core/base.jinja:71 +msgid "Services" +msgstr "Services" + +#: core/templates/core/base.jinja:72 core/templates/core/file.jinja:20 +#: core/views/files.py:47 +msgid "Files" +msgstr "Fichiers" + +#: core/templates/core/base.jinja:73 +msgid "Sponsors" +msgstr "Partenaires" + +#: core/templates/core/base.jinja:74 +msgid "Help" +msgstr "Aide" + +#: core/templates/core/base.jinja:106 +msgid "Site made by good people" +msgstr "Site réalisé par des gens bons" + +#: core/templates/core/create.jinja:4 core/templates/core/create.jinja.py:8 +#, python-format +msgid "Create %(name)s" +msgstr "Créer %(name)s" + +#: core/templates/core/delete_confirm.jinja:4 +#: core/templates/core/delete_confirm.jinja:8 +#: core/templates/core/file_delete_confirm.jinja:4 +#: core/templates/core/file_delete_confirm.jinja:8 +msgid "Delete confirmation" +msgstr "Confirmation de suppression" + +#: core/templates/core/delete_confirm.jinja:10 +#: core/templates/core/file_delete_confirm.jinja:10 +#, python-format +msgid "Are you sure you want to delete \"%(obj)s\"?" +msgstr "Êtes-vous sûr de vouloir supprimer \"%(obj)s\" ?" + +#: core/templates/core/delete_confirm.jinja:11 +#: core/templates/core/file_delete_confirm.jinja:11 +msgid "Confirm" +msgstr "Confirmation" + +#: core/templates/core/delete_confirm.jinja:14 +#: core/templates/core/file_delete_confirm.jinja:14 +#: counter/templates/counter/counter_click.jinja:93 +msgid "Cancel" +msgstr "Annuler" + +#: core/templates/core/edit.jinja:4 core/templates/core/edit.jinja.py:8 +#: core/templates/core/file_edit.jinja:4 +#: counter/templates/counter/cash_register_summary.jinja:4 +#, python-format +msgid "Edit %(obj)s" +msgstr "Éditer %(obj)s" + +#: core/templates/core/file.jinja:7 core/templates/core/file_list.jinja:6 +msgid "File list" +msgstr "Liste des fichiers" + +#: core/templates/core/file.jinja:9 +msgid "New file" +msgstr "Nouveau fichier" + +#: core/templates/core/file.jinja:11 core/templates/core/page.jinja:11 +msgid "Not found" +msgstr "Non trouvé" + +#: core/templates/core/file.jinja:32 +msgid "My files" +msgstr "Mes fichiers" + +#: core/templates/core/file.jinja:41 core/templates/core/page.jinja:34 +msgid "Prop" +msgstr "Propriétés" + +#: core/templates/core/file_detail.jinja:13 +msgid "Owner: " +msgstr "Propriétaire : " + +#: core/templates/core/file_detail.jinja:34 +msgid "Real name: " +msgstr "Nom réel : " + +#: core/templates/core/file_detail.jinja:35 +msgid "Date: " +msgstr "Date : " + +#: core/templates/core/file_detail.jinja:37 +msgid "Type: " +msgstr "Type : " + +#: core/templates/core/file_detail.jinja:38 +msgid "Size: " +msgstr "Taille : " + +#: core/templates/core/file_detail.jinja:38 +msgid "bytes" +msgstr "octets" + +#: core/templates/core/file_detail.jinja:40 +msgid "Download" +msgstr "Télécharger" + +#: core/templates/core/file_list.jinja:19 +msgid "There is no file in this website." +msgstr "Il n'y a pas de fichier sur ce site web." + +#: core/templates/core/group_edit.jinja:4 +msgid "Back to list" +msgstr "Retour à la liste" + +#: core/templates/core/group_edit.jinja:5 +msgid "Edit group" +msgstr "Éditer le groupe" + +#: core/templates/core/group_edit.jinja:9 +#: core/templates/core/user_edit.jinja:36 +#: core/templates/core/user_group.jinja:8 +msgid "Update" +msgstr "Mettre à jour" + +#: core/templates/core/group_list.jinja:4 +#: core/templates/core/group_list.jinja:8 +msgid "Group list" +msgstr "Liste des groupes" + +#: core/templates/core/group_list.jinja:9 +msgid "New group" +msgstr "Nouveau groupe" + +#: core/templates/core/index.jinja:7 +msgid "Welcome to the new AE's website!" +msgstr "Bienvenue sur le nouveau site de l'AE ! " + +#: core/templates/core/login.jinja:10 +msgid "Your username and password didn't match. Please try again." +msgstr "" +"Votre nom d'utilisateur et votre mot de passe ne correspondent pas. Merci de " +"réessayer." + +#: core/templates/core/login.jinja:15 +msgid "" +"Your account doesn't have access to this page. To proceed,\n" +" please login with an account that has access." +msgstr "" +"Votre compte n'a pas accès à cette page. Merci de vous identifier avec un " +"compte qui a accès." + +#: core/templates/core/login.jinja:18 +msgid "Please login to see this page." +msgstr "Merci de vous identifier pour voir cette page." + +#: core/templates/core/login.jinja:28 +#: counter/templates/counter/counter_main.jinja:51 +msgid "login" +msgstr "login" + +#: core/templates/core/login.jinja:32 +msgid "Lost password?" +msgstr "Mot de passe perdu ?" + +#: core/templates/core/macros.jinja:27 core/templates/core/user_detail.jinja:27 +msgid "Born: " +msgstr "Né le : " + +#: core/templates/core/macros.jinja:31 core/templates/core/user_detail.jinja:48 +msgid "Promo: " +msgstr "Promo : " + +#: core/templates/core/macros.jinja:38 +#, python-format +msgid "Subscribed until %(subscription_end)s" +msgstr "Cotisant jusqu'au %(subscription_end)s" + +#: core/templates/core/macros.jinja:39 core/templates/core/user_edit.jinja:39 +msgid "Account number: " +msgstr "Numero de compte : " + +#: core/templates/core/macros.jinja:44 launderette/models.py:129 +msgid "Slot" +msgstr "Créneau" + +#: core/templates/core/macros.jinja:55 +#: launderette/templates/launderette/launderette_admin.jinja:20 +msgid "Tokens" +msgstr "Jetons" + +#: core/templates/core/new_user_email.jinja:2 +msgid "" +"You're receiving this email because you subscribed to the UTBM student " +"association." +msgstr "" +"Vous avez reçu cet email parce que vous avez cotisé à l'Association des " +"Étudiants de l'UTBM." + +#: core/templates/core/new_user_email.jinja:4 +#: core/templates/core/password_reset_email.jinja:4 +msgid "Please go to the following page and choose a new password:" +msgstr "" +"Merci de vous rendre sur la page suivante et de choisir un nouveau mot de " +"passe :" + +#: core/templates/core/new_user_email.jinja:8 +msgid "Your username, in case it was not given to you: " +msgstr "Votre nom d'utilisateur, si il ne vous a pas été donné :" + +#: core/templates/core/new_user_email.jinja:9 +msgid "" +"You also got a new account that will be useful to purchase products in the " +"living areas and on the Eboutic." +msgstr "" +"Un compte vous a également été créé, qui vous servira notamment à consommer " +"dans les lieux de vie ou sur l'Eboutic." + +#: core/templates/core/new_user_email.jinja:10 +#, python-format +msgid "Here is your account number: %(account)s" +msgstr "Voici votre numéro de compte AE : %(account)s" + +#: core/templates/core/new_user_email.jinja:12 +msgid "Thanks for subscribing! " +msgstr "Merci d'avoir cotisé !" + +#: core/templates/core/new_user_email.jinja:14 +msgid "The AE team" +msgstr "L'équipe AE" + +#: core/templates/core/new_user_email_subject.jinja:2 +msgid "New subscription to the UTBM student association" +msgstr "Nouvelle cotisation à l'Association des Étudiants de l'UTBM" + +#: core/templates/core/page.jinja:7 core/templates/core/page_list.jinja:4 +#: core/templates/core/page_list.jinja:9 +msgid "Page list" +msgstr "Liste des pages" + +#: core/templates/core/page.jinja:9 +msgid "Create page" +msgstr "Créer une page" + +#: core/templates/core/page.jinja:29 +msgid "History" +msgstr "Historique" + +#: core/templates/core/page.jinja:45 +msgid "Page does not exist" +msgstr "La page n'existe pas." + +#: core/templates/core/page.jinja:47 +msgid "Create it?" +msgstr "La créer ?" + +#: core/templates/core/page_detail.jinja:5 +#, python-format +msgid "This may not be the last update, you are seeing revision %(rev_id)s!" +msgstr "" +"Ceci n'est peut-être pas la dernière version de la page. Vous consultez la " +"version %(rev_id)s." + +#: core/templates/core/page_hist.jinja:6 +msgid "Page history" +msgstr "Historique de la page" + +#: core/templates/core/page_hist.jinja:7 +#, python-format +msgid "You're seeing the history of page \"%(page_name)s\"" +msgstr "Vous consultez l'historique de la page \"%(page_name)s\"" + +#: core/templates/core/page_hist.jinja:11 +msgid "last" +msgstr "actuel" + +#: core/templates/core/page_list.jinja:16 +msgid "There is no page in this website." +msgstr "Il n'y a pas de page sur ce site web." + +#: core/templates/core/page_prop.jinja:4 +msgid "Page properties" +msgstr "Propriétés de la page" + +#: core/templates/core/pagerev_edit.jinja:19 +msgid "Edit page" +msgstr "Éditer la page" + +#: core/templates/core/pagerev_edit.jinja:23 +msgid "Preview" +msgstr "Prévisualiser" + +#: core/templates/core/password_change.jinja:6 +#, python-format +msgid "Change password for %(user)s" +msgstr "Changer le mot de passe de %(user)s" + +#: core/templates/core/password_change.jinja:11 +msgid "Change" +msgstr "Changer" + +#: core/templates/core/password_change_done.jinja:4 +msgid "You successfully changed your password!" +msgstr "Vous avez correctement changé votre mot de passe !" + +#: core/templates/core/password_reset.jinja:7 +#: core/templates/core/password_reset_confirm.jinja:7 +msgid "Reset" +msgstr "Reset" + +#: core/templates/core/password_reset_complete.jinja:4 +msgid "You successfully reset your password!" +msgstr "Vous avez correctement réinitialisé votre mot de passe !" + +#: core/templates/core/password_reset_done.jinja:4 +msgid "Password reset sent" +msgstr "Réinitialisation de mot de passe envoyée" + +#: core/templates/core/password_reset_done.jinja:7 +msgid "" +"We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should\n" +"receive them shortly." +msgstr "" +"Nous vous avons envoyé les instructions pour réinitialiser votre mot de " +"passe par email, si un compte avec l'email entré existe effectivement.\n" +"Vous devriez les recevoir rapidement." + +#: core/templates/core/password_reset_done.jinja:12 +msgid "" +"If you don't receive an email, please make sure you've entered the address " +"you registered with, and check your spam\n" +"folder." +msgstr "" +"Si vous ne recevez pas d'email, assurez-vous d'avoir correctement entré " +"l'adresse email avec laquelle vous vous êtes inscrit, et vérifiez votre " +"dossier de spam." + +#: core/templates/core/password_reset_email.jinja:2 +#, python-format +msgid "" +"You're receiving this email because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" +"Vous avez reçu cet email parce que vous avez demandé une réinitialisation du " +"mot de passe pour votre compte sur le site %(site_name)s." + +#: core/templates/core/password_reset_email.jinja:8 +msgid "Your username, in case you've forgotten: " +msgstr "Votre nom d'utilisateur, en cas d'oubli :" + +#: core/templates/core/password_reset_email.jinja:10 +msgid "Thanks for using our site! " +msgstr "Merci d'utiliser notre site !" + +#: core/templates/core/password_reset_email.jinja:12 +#, python-format +msgid "The %(site_name)s team" +msgstr "L'équipe de %(site_name)s" + +#: core/templates/core/register.jinja:3 core/templates/core/register.jinja:6 +msgid "Register a user" +msgstr "Enregistrer un utilisateur" + +#: core/templates/core/register.jinja:9 +#, python-format +msgid "Welcome %(user_name)s!" +msgstr "Bienvenue, %(user_name)s!" + +#: core/templates/core/register.jinja:10 +msgid "" +"You successfully registred and you will soon receive a confirmation mail." +msgstr "" +"Vous vous êtes correctement enregistré, et vous devriez recevoir rapidement " +"un email de confirmation." + +#: core/templates/core/register.jinja:12 +#, python-format +msgid "Your username is %(username)s." +msgstr "Votre nom d'utilisateur est %(username)s." + +#: core/templates/core/search.jinja:6 +msgid "Search result" +msgstr "Résultat de la recherche" + +#: core/templates/core/search.jinja:10 +msgid "Users" +msgstr "Utilisateurs" + +#: core/templates/core/search.jinja:18 core/views/user.py:153 +#: counter/templates/counter/stats.jinja:17 +msgid "Clubs" +msgstr "Clubs" + +#: core/templates/core/user_account.jinja:7 +msgid "Year" +msgstr "Année" + +#: core/templates/core/user_account.jinja:8 +msgid "Month" +msgstr "Mois" + +#: core/templates/core/user_account.jinja:30 +#: core/templates/core/user_account_detail.jinja:4 +#, python-format +msgid "%(user_name)s's account" +msgstr "Compte de %(user_name)s" + +#: core/templates/core/user_account.jinja:35 +#: core/templates/core/user_account_detail.jinja:9 +msgid "User account" +msgstr "Compte utilisateur" + +#: core/templates/core/user_account.jinja:38 +#: core/templates/core/user_account_detail.jinja:13 +#: counter/templates/counter/cash_summary_list.jinja:17 +#: counter/templates/counter/last_ops.jinja:10 +msgid "Refillings" +msgstr "Rechargements" + +#: core/templates/core/user_account.jinja:42 +#: core/templates/core/user_account_detail.jinja:42 +msgid "Account buyings" +msgstr "Achat sur compte utilisateur" + +#: core/templates/core/user_account.jinja:46 +#: core/templates/core/user_account_detail.jinja:75 +msgid "Eboutic invoices" +msgstr "Facture eboutic" + +#: core/templates/core/user_account.jinja:50 counter/views.py:475 +msgid "Etickets" +msgstr "Etickets" + +#: core/templates/core/user_account.jinja:58 +#: core/templates/core/user_account_detail.jinja:103 +msgid "User has no account" +msgstr "L'utilisateur n'a pas de compte" + +#: core/templates/core/user_account_detail.jinja:11 +#: core/templates/core/user_account_detail.jinja:105 launderette/views.py:146 +msgid "Back" +msgstr "Retour" + +#: core/templates/core/user_account_detail.jinja:80 +msgid "Items" +msgstr "Articles" + +#: core/templates/core/user_clubs.jinja:4 +#, python-format +msgid "%(user_name)s's club(s)" +msgstr "Clubs de %(user_name)s" + +#: core/templates/core/user_clubs.jinja:8 +msgid "Club(s)" +msgstr "Clubs" + +#: core/templates/core/user_clubs.jinja:10 +msgid "Current club(s) :" +msgstr "Clubs actuels : " + +#: core/templates/core/user_clubs.jinja:36 +msgid "Old club(s) :" +msgstr "Anciens clubs :" + +#: core/templates/core/user_detail.jinja:5 +#, python-format +msgid "%(user_name)s's profile" +msgstr "Profil de %(user_name)s" + +#: core/templates/core/user_detail.jinja:33 +msgid "Option: " +msgstr "Filière : " + +#: core/templates/core/user_detail.jinja:68 +msgid "Not subscribed" +msgstr "Non cotisant" + +#: core/templates/core/user_detail.jinja:70 +#: subscription/templates/subscription/subscription.jinja:4 +#: subscription/templates/subscription/subscription.jinja:8 +msgid "New subscription" +msgstr "Nouvelle cotisation" + +#: core/templates/core/user_edit.jinja:4 +msgid "Edit user" +msgstr "Éditer l'utilisateur" + +#: core/templates/core/user_edit.jinja:8 +msgid "Edit user profile" +msgstr "Éditer le profil de l'utilisateur" + +#: core/templates/core/user_edit.jinja:14 +msgid "Current profile: " +msgstr "Profil actuel : " + +#: core/templates/core/user_edit.jinja:24 +msgid "Take picture" +msgstr "Prendre une photo" + +#: core/templates/core/user_edit.jinja:29 +msgid "Current avatar: " +msgstr "Avatar actuel : " + +#: core/templates/core/user_edit.jinja:30 +msgid "Avatar" +msgstr "Avatar" + +#: core/templates/core/user_edit.jinja:32 +msgid "Current scrub: " +msgstr "Blouse actuelle : " + +#: core/templates/core/user_edit.jinja:33 +msgid "Scrub" +msgstr "Blouse" + +#: core/templates/core/user_edit.jinja:37 +msgid "Username: " +msgstr "Nom d'utilisateur : " + +#: core/templates/core/user_edit.jinja:42 +msgid "Change my password" +msgstr "Changer mon mot de passe" + +#: core/templates/core/user_edit.jinja:44 +msgid "Change user password" +msgstr "Changer le mot de passe" + +#: core/templates/core/user_godfathers.jinja:5 +#, python-format +msgid "%(user_name)s's godfathers" +msgstr "Parrains de %(user_name)s" + +#: core/templates/core/user_godfathers.jinja:10 core/views/user.py:135 +msgid "Godfathers" +msgstr "Parrains" + +#: core/templates/core/user_godfathers.jinja:18 +msgid "No godfathers" +msgstr "Pas de parrains" + +#: core/templates/core/user_godfathers.jinja:21 +msgid "Godchildren" +msgstr "Fillots" + +#: core/templates/core/user_godfathers.jinja:29 +msgid "No godchildren" +msgstr "Pas de fillots" + +#: core/templates/core/user_group.jinja:4 +#, python-format +msgid "Edit user groups for %(user_name)s" +msgstr "Éditer les groupes pour %(user_name)s" + +#: core/templates/core/user_list.jinja:4 core/templates/core/user_list.jinja:8 +msgid "User list" +msgstr "Liste d'utilisateurs" + +#: core/templates/core/user_stats.jinja:4 +#, python-format +msgid "%(user_name)s's stats" +msgstr "Stats de %(user_name)s" + +#: core/templates/core/user_stats.jinja:9 +msgid "Permanencies" +msgstr "Permanences" + +#: core/templates/core/user_stats.jinja:17 +msgid "Buyings" +msgstr "Achats" + +#: core/templates/core/user_stats.jinja:23 +msgid "Product top 10" +msgstr "Top 10 produits" + +#: core/templates/core/user_tools.jinja:4 +#, python-format +msgid "%(user_name)s's tools" +msgstr "Outils de %(user_name)s" + +#: core/templates/core/user_tools.jinja:8 +msgid "User Tools" +msgstr "Outils utilisateurs" + +#: core/templates/core/user_tools.jinja:11 +msgid "Sith management" +msgstr "Gestion de Sith" + +#: core/templates/core/user_tools.jinja:14 core/views/user.py:159 +msgid "Groups" +msgstr "Groupes" + +#: core/templates/core/user_tools.jinja:15 +#: rootplace/templates/rootplace/merge.jinja:4 +msgid "Merge users" +msgstr "Fusionner deux utilisateurs" + +#: core/templates/core/user_tools.jinja:18 +msgid "Subscriptions" +msgstr "Cotisations" + +#: core/templates/core/user_tools.jinja:23 counter/views.py:445 +#: counter/views.py:594 +msgid "Counters" +msgstr "Comptoirs" + +#: core/templates/core/user_tools.jinja:26 +msgid "General management" +msgstr "Gestion générale" + +#: core/templates/core/user_tools.jinja:27 +msgid "General counters management" +msgstr "Gestion générale des comptoirs" + +#: core/templates/core/user_tools.jinja:28 +msgid "Products management" +msgstr "Gestion des produits" + +#: core/templates/core/user_tools.jinja:29 +msgid "Product types management" +msgstr "Gestion des types de produit" + +#: core/templates/core/user_tools.jinja:30 +#: counter/templates/counter/cash_summary_list.jinja:23 counter/views.py:465 +msgid "Cash register summaries" +msgstr "Relevés de caisse" + +#: core/templates/core/user_tools.jinja:36 core/views/user.py:169 +#: counter/templates/counter/counter_list.jinja:18 +#: counter/templates/counter/counter_list.jinja:33 +#: counter/templates/counter/counter_list.jinja:53 +msgid "Stats" +msgstr "Stats" + +#: core/templates/core/user_tools.jinja:45 +msgid "General accounting" +msgstr "Comptabilité générale" + +#: core/templates/core/user_tools.jinja:54 +msgid "Club account: " +msgstr "Compte club : " + +#: core/views/files.py:46 +msgid "Add a new folder" +msgstr "Ajouter un nouveau dossier" + +#: core/views/files.py:57 +#, python-format +msgid "Error creating folder %(folder_name)s: %(msg)s" +msgstr "Erreur de création du dossier %(folder_name)s : %(msg)s" + +#: core/views/files.py:66 core/views/forms.py:181 core/views/forms.py:185 +#, python-format +msgid "Error uploading file %(file_name)s: %(msg)s" +msgstr "Erreur d'envoie du fichier %(file_name)s : %(msg)s" + +#: core/views/forms.py:59 core/views/forms.py:62 +msgid "Choose file" +msgstr "Choisir un fichier" + +#: core/views/forms.py:73 core/views/forms.py:76 +msgid "Choose user" +msgstr "Choisir un utilisateur" + +#: core/views/forms.py:98 +msgid "Username, email, or account number" +msgstr "Nom d'utilisateur, email, ou numéro de compte AE" + +#: core/views/forms.py:140 +msgid "" +"Profile: you need to be visible on the picture, in order to be recognized (e." +"g. by the barmen)" +msgstr "" +"Photo de profil: vous devez être visible sur la photo afin d'être reconnu " +"(par exemple par les barmen)" + +#: core/views/forms.py:141 +msgid "Avatar: used on the forum" +msgstr "Avatar : utilisé sur le forum" + +#: core/views/forms.py:142 +msgid "Scrub: let other know how your scrub looks like!" +msgstr "Blouse : montrez aux autres à quoi ressemble votre blouse !" + +#: core/views/forms.py:186 +msgid "Bad image format, only jpeg, png, and gif are accepted" +msgstr "Mauvais format d'image, seuls les jpeg, png, et gif sont acceptés" + +#: core/views/forms.py:203 +msgid "Godfather" +msgstr "Parrain" + +#: core/views/forms.py:203 +msgid "Godchild" +msgstr "Fillot" + +#: core/views/user.py:298 +msgid "User already has a profile picture" +msgstr "L'utilisateur a déjà une photo de profil" + +#: counter/models.py:26 +msgid "account id" +msgstr "numéro de compte" + +#: counter/models.py:30 +msgid "customer" +msgstr "client" + +#: counter/models.py:31 +msgid "customers" +msgstr "clients" + +#: counter/models.py:46 counter/templates/counter/counter_click.jinja:48 +#: counter/templates/counter/counter_click.jinja:82 +msgid "Not enough money" +msgstr "Solde insuffisant" + +#: counter/models.py:67 counter/models.py:89 +msgid "product type" +msgstr "type du produit" + +#: counter/models.py:92 +msgid "purchase price" +msgstr "prix d'achat" + +#: counter/models.py:93 +msgid "selling price" +msgstr "prix de vente" + +#: counter/models.py:94 +msgid "special selling price" +msgstr "prix de vente spécial" + +#: counter/models.py:95 +msgid "icon" +msgstr "icône" + +#: counter/models.py:97 +msgid "limit age" +msgstr "âge limite" + +#: counter/models.py:98 +msgid "tray price" +msgstr "prix plateau" + +#: counter/models.py:99 +msgid "parent product" +msgstr "produit parent" + +#: counter/models.py:101 +msgid "buying groups" +msgstr "groupe d'achat" + +#: counter/models.py:102 +msgid "archived" +msgstr "archivé" + +#: counter/models.py:105 counter/models.py:439 +msgid "product" +msgstr "produit" + +#: counter/models.py:124 +msgid "products" +msgstr "produits" + +#: counter/models.py:125 +msgid "counter type" +msgstr "type de comptoir" + +#: counter/models.py:127 +msgid "Bar" +msgstr "Bar" + +#: counter/models.py:127 +msgid "Office" +msgstr "Bureau" + +#: counter/models.py:127 counter/templates/counter/counter_list.jinja:11 +#: eboutic/templates/eboutic/eboutic_main.jinja:4 +#: eboutic/templates/eboutic/eboutic_main.jinja:24 +#: eboutic/templates/eboutic/eboutic_makecommand.jinja:8 +#: eboutic/templates/eboutic/eboutic_payment_result.jinja:4 +#: sith/settings.py:279 sith/settings.py:287 +msgid "Eboutic" +msgstr "Eboutic" + +#: counter/models.py:128 +msgid "sellers" +msgstr "vendeurs" + +#: counter/models.py:131 launderette/models.py:125 +msgid "token" +msgstr "jeton" + +#: counter/models.py:134 counter/models.py:340 counter/models.py:357 +#: launderette/models.py:16 stock/models.py:11 +msgid "counter" +msgstr "comptoir" + +#: counter/models.py:232 +msgid "bank" +msgstr "banque" + +#: counter/models.py:234 counter/models.py:275 +msgid "is validated" +msgstr "est validé" + +#: counter/models.py:237 +msgid "refilling" +msgstr "rechargement" + +#: counter/models.py:268 eboutic/models.py:103 +msgid "unit price" +msgstr "prix unitaire" + +#: counter/models.py:269 counter/models.py:429 eboutic/models.py:104 +msgid "quantity" +msgstr "quantité" + +#: counter/models.py:274 +msgid "Sith account" +msgstr "Compte utilisateur" + +#: counter/models.py:274 sith/settings.py:272 sith/settings.py:277 +#: sith/settings.py:299 +msgid "Credit card" +msgstr "Carte bancaire" + +#: counter/models.py:278 +msgid "selling" +msgstr "vente" + +#: counter/models.py:343 +msgid "last activity date" +msgstr "dernière activité" + +#: counter/models.py:346 +msgid "permanency" +msgstr "permanence" + +#: counter/models.py:360 +msgid "emptied" +msgstr "coffre vidée" + +#: counter/models.py:363 +msgid "cash register summary" +msgstr "relevé de caisse" + +#: counter/models.py:427 +msgid "cash summary" +msgstr "relevé" + +#: counter/models.py:428 +msgid "value" +msgstr "valeur" + +#: counter/models.py:430 +msgid "check" +msgstr "chèque" + +#: counter/models.py:433 +msgid "cash register summary item" +msgstr "élément de relevé de caisse" + +#: counter/models.py:440 +msgid "banner" +msgstr "bannière" + +#: counter/models.py:441 +msgid "event date" +msgstr "date de l'événement" + +#: counter/models.py:442 +msgid "event title" +msgstr "titre de l'événement" + +#: counter/models.py:443 +msgid "secret" +msgstr "secret" + +#: counter/templates/counter/activity.jinja:5 +#: counter/templates/counter/activity.jinja:9 +#, python-format +msgid "%(counter_name)s activity" +msgstr "Activité sur %(counter_name)s" + +#: counter/templates/counter/activity.jinja:11 +msgid "Barman list" +msgstr "Barmans" + +#: counter/templates/counter/cash_register_summary.jinja:8 +msgid "Make a cash register summary" +msgstr "Faire un relevé de caisse" + +#: counter/templates/counter/cash_summary_list.jinja:5 +#: counter/templates/counter/cash_summary_list.jinja:10 +msgid "Cash register summary list" +msgstr "Liste des relevés de caisse" + +#: counter/templates/counter/cash_summary_list.jinja:11 +msgid "Theoric sums" +msgstr "Sommes théoriques" + +#: counter/templates/counter/cash_summary_list.jinja:36 counter/views.py:708 +msgid "Emptied" +msgstr "Coffre vidé" + +#: counter/templates/counter/cash_summary_list.jinja:48 +msgid "yes" +msgstr "oui" + +#: counter/templates/counter/cash_summary_list.jinja:59 +msgid "There is no cash register summary in this website." +msgstr "Il n'y a pas de relevé de caisse dans ce site web." + +#: counter/templates/counter/counter_click.jinja:35 +#: launderette/templates/launderette/launderette_admin.jinja:8 +msgid "Selling" +msgstr "Vente" + +#: counter/templates/counter/counter_click.jinja:39 +#: counter/templates/counter/counter_click.jinja:73 +msgid "Too young for that product" +msgstr "Trop jeune pour ce produit" + +#: counter/templates/counter/counter_click.jinja:42 +#: counter/templates/counter/counter_click.jinja:76 +msgid "Not allowed for that product" +msgstr "Non autorisé pour ce produit" + +#: counter/templates/counter/counter_click.jinja:45 +#: counter/templates/counter/counter_click.jinja:79 +msgid "No date of birth provided" +msgstr "Pas de date de naissance renseigné" + +#: counter/templates/counter/counter_click.jinja:55 +#: counter/templates/counter/counter_click.jinja:103 +#: counter/templates/counter/invoices_call.jinja:16 +#: launderette/templates/launderette/launderette_admin.jinja:35 +#: launderette/templates/launderette/launderette_click.jinja:13 +msgid "Go" +msgstr "Valider" + +#: counter/templates/counter/counter_click.jinja:57 +#: eboutic/templates/eboutic/eboutic_main.jinja:27 +#: eboutic/templates/eboutic/eboutic_makecommand.jinja:11 +msgid "Basket: " +msgstr "Panier : " + +#: counter/templates/counter/counter_click.jinja:88 +msgid "Finish" +msgstr "Terminer" + +#: counter/templates/counter/counter_click.jinja:97 +msgid "Refilling" +msgstr "Rechargement" + +#: counter/templates/counter/counter_list.jinja:4 +#: counter/templates/counter/counter_list.jinja:10 +msgid "Counter admin list" +msgstr "Liste des comptoirs" + +#: counter/templates/counter/counter_list.jinja:8 +msgid "New counter" +msgstr "Nouveau comptoir" + +#: counter/templates/counter/counter_list.jinja:26 +msgid "Bars" +msgstr "Bars" + +#: counter/templates/counter/counter_list.jinja:37 +msgid "Create new stock" +msgstr "Créer un nouveau stock" + +#: counter/templates/counter/counter_list.jinja:46 +msgid "Offices" +msgstr "Bureaux" + +#: counter/templates/counter/counter_list.jinja:62 +msgid "There is no counters in this website." +msgstr "Il n'y a pas de comptoirs dans ce site web." + +#: counter/templates/counter/counter_main.jinja:12 +#: counter/templates/counter/counter_main.jinja:16 +#: launderette/templates/launderette/launderette_click.jinja:8 +#, python-format +msgid "%(counter_name)s counter" +msgstr "Comptoir %(counter_name)s" + +#: counter/templates/counter/counter_main.jinja:21 +msgid "Last selling: " +msgstr "Dernière vente : " + +#: counter/templates/counter/counter_main.jinja:22 +msgid "Client: " +msgstr "Client : " + +#: counter/templates/counter/counter_main.jinja:22 +msgid "New amount: " +msgstr "Nouveau montant : " + +#: counter/templates/counter/counter_main.jinja:31 +msgid "Enter client code:" +msgstr "Entrez un code client : " + +#: counter/templates/counter/counter_main.jinja:36 +msgid "validate" +msgstr "valider" + +#: counter/templates/counter/counter_main.jinja:39 +msgid "Please, login" +msgstr "Merci de vous identifier" + +#: counter/templates/counter/counter_main.jinja:44 +msgid "Barman: " +msgstr "Barman : " + +#: counter/templates/counter/eticket_list.jinja:4 +#: counter/templates/counter/eticket_list.jinja:10 +msgid "Eticket list" +msgstr "Liste des etickets" + +#: counter/templates/counter/eticket_list.jinja:8 +msgid "New eticket" +msgstr "Nouveau eticket" + +#: counter/templates/counter/eticket_list.jinja:17 +msgid "There is no eticket in this website." +msgstr "Il n'y a pas de eticket sur ce site web." + +#: counter/templates/counter/invoices_call.jinja:4 counter/views.py:470 +msgid "Invoices call" +msgstr "Appels à facture" + +#: counter/templates/counter/invoices_call.jinja:8 +#, python-format +msgid "Invoices call for %(date)s" +msgstr "Appels à facture pour %(date)s" + +#: counter/templates/counter/invoices_call.jinja:9 +msgid "Choose another month: " +msgstr "Choisir un autre mois : " + +#: counter/templates/counter/invoices_call.jinja:21 +msgid "Sum" +msgstr "Somme" + +#: counter/templates/counter/last_ops.jinja:5 +#: counter/templates/counter/last_ops.jinja:9 +#, python-format +msgid "%(counter_name)s last operations" +msgstr "Dernières opérations sur %(counter_name)s" + +#: counter/templates/counter/product_list.jinja:4 +#: counter/templates/counter/product_list.jinja:12 +msgid "Product list" +msgstr "Liste des produits" + +#: counter/templates/counter/product_list.jinja:9 +msgid "New product" +msgstr "Nouveau produit" + +#: counter/templates/counter/product_list.jinja:21 +msgid "Uncategorized" +msgstr "Sans catégorie" + +#: counter/templates/counter/product_list.jinja:28 +msgid "There is no products in this website." +msgstr "Il n'y a pas de produits dans ce site web." + +#: counter/templates/counter/producttype_list.jinja:4 +#: counter/templates/counter/producttype_list.jinja:10 +msgid "Product type list" +msgstr "Liste des types de produit" + +#: counter/templates/counter/producttype_list.jinja:8 +msgid "New product type" +msgstr "Nouveau type de produit" + +#: counter/templates/counter/producttype_list.jinja:17 +msgid "There is no product types in this website." +msgstr "Il n'y a pas de types de produit dans ce site web." + +#: counter/templates/counter/stats.jinja:5 +#: counter/templates/counter/stats.jinja:9 +#, python-format +msgid "%(counter_name)s stats" +msgstr "Stats sur %(counter_name)s" + +#: counter/templates/counter/stats.jinja:10 +#, python-format +msgid "Top 100 %(counter_name)s" +msgstr "Top 100 %(counter_name)s" + +#: counter/templates/counter/stats.jinja:16 +msgid "Promo" +msgstr "Promo" + +#: counter/templates/counter/stats.jinja:19 +msgid "Percentage" +msgstr "Pourcentage" + +#: counter/views.py:55 +msgid "User not found" +msgstr "Utilisateur non trouvé" + +#: counter/views.py:81 +msgid "Cash summary" +msgstr "Relevé de caisse" + +#: counter/views.py:86 +msgid "Last operations" +msgstr "Dernières opérations" + +#: counter/views.py:120 +msgid "Bad credentials" +msgstr "Mauvais identifiants" + +#: counter/views.py:122 +msgid "User is not barman" +msgstr "L'utilisateur n'est pas barman." + +#: counter/views.py:126 +msgid "Bad location, someone is already logged in somewhere else" +msgstr "Mauvais comptoir, quelqu'un est déjà connecté ailleurs" + +#: counter/views.py:310 +msgid "END" +msgstr "FIN" + +#: counter/views.py:312 +msgid "CAN" +msgstr "ANN" + +#: counter/views.py:342 +msgid "You have not enough money to buy all the basket" +msgstr "Vous n'avez pas assez d'argent pour acheter le panier" + +#: counter/views.py:435 +msgid "Counter administration" +msgstr "Administration des comptoirs" + +#: counter/views.py:440 +msgid "Stocks" +msgstr "" + +#: counter/views.py:450 +msgid "Products" +msgstr "Produits" + +#: counter/views.py:455 +msgid "Archived products" +msgstr "Produits archivés" + +#: counter/views.py:460 +msgid "Product types" +msgstr "Types de produit" + +#: counter/views.py:591 +msgid "Parent product" +msgstr "Produit parent" + +#: counter/views.py:592 +msgid "Buying groups" +msgstr "Groupes d'achat" + +#: counter/views.py:687 +msgid "10 cents" +msgstr "10 centimes" + +#: counter/views.py:688 +msgid "20 cents" +msgstr "20 centimes" + +#: counter/views.py:689 +msgid "50 cents" +msgstr "50 centimes" + +#: counter/views.py:690 +msgid "1 euro" +msgstr "1 €" + +#: counter/views.py:691 +msgid "2 euros" +msgstr "2 €" + +#: counter/views.py:692 +msgid "5 euros" +msgstr "5 €" + +#: counter/views.py:693 +msgid "10 euros" +msgstr "10 €" + +#: counter/views.py:694 +msgid "20 euros" +msgstr "20 €" + +#: counter/views.py:695 +msgid "50 euros" +msgstr "50 €" + +#: counter/views.py:696 +msgid "100 euros" +msgstr "100 €" + +#: counter/views.py:697 counter/views.py:699 counter/views.py:701 +#: counter/views.py:703 counter/views.py:705 +msgid "Check amount" +msgstr "Montant du chèque" + +#: counter/views.py:698 counter/views.py:700 counter/views.py:702 +#: counter/views.py:704 counter/views.py:706 +msgid "Check quantity" +msgstr "Nombre de chèque" + +#: eboutic/models.py:49 +msgid "validated" +msgstr "validé" + +#: eboutic/models.py:62 +msgid "Invoice already validated" +msgstr "Facture déjà validée" + +#: eboutic/models.py:100 +msgid "product id" +msgstr "ID du produit" + +#: eboutic/models.py:101 +msgid "product name" +msgstr "nom du produit" + +#: eboutic/models.py:102 +msgid "product type id" +msgstr "id du type du produit" + +#: eboutic/models.py:113 +msgid "basket" +msgstr "panier" + +#: eboutic/templates/eboutic/eboutic_main.jinja:37 +msgid "Proceed to command" +msgstr "Procéder à la commande" + +#: eboutic/templates/eboutic/eboutic_makecommand.jinja:4 +msgid "Basket state" +msgstr "État du panier" + +#: eboutic/templates/eboutic/eboutic_makecommand.jinja:35 +msgid "Pay with credit card" +msgstr "Payer avec une carte bancaire" + +#: eboutic/templates/eboutic/eboutic_makecommand.jinja:38 +msgid "" +"AE account payment disabled because your basket contains refilling items." +msgstr "" +"Paiement par compte AE désactivé parce que votre panier contient des bons de " +"rechargement." + +#: eboutic/templates/eboutic/eboutic_makecommand.jinja:43 +msgid "Pay with Sith account" +msgstr "Payer avec un compte AE" + +#: eboutic/templates/eboutic/eboutic_payment_result.jinja:8 +msgid "Payment failed" +msgstr "Le paiement a échoué" + +#: eboutic/templates/eboutic/eboutic_payment_result.jinja:10 +msgid "Payment successful" +msgstr "Le paiement a été effectué" + +#: eboutic/templates/eboutic/eboutic_payment_result.jinja:12 +msgid "Return to eboutic" +msgstr "Retourner à l'eboutic" + +#: eboutic/views.py:140 +msgid "You do not have enough money to buy the basket" +msgstr "Vous n'avez pas assez d'argent pour acheter le panier" + +#: launderette/models.py:19 +#: launderette/templates/launderette/launderette_book.jinja:5 +#: launderette/templates/launderette/launderette_book_choose.jinja:4 +#: launderette/templates/launderette/launderette_main.jinja:4 +msgid "Launderette" +msgstr "Laverie" + +#: launderette/models.py:61 launderette/models.py:86 +msgid "launderette" +msgstr "laverie" + +#: launderette/models.py:62 launderette/models.py:87 launderette/models.py:123 +msgid "type" +msgstr "type" + +#: launderette/models.py:63 +msgid "is working" +msgstr "fonctionne" + +#: launderette/models.py:66 +msgid "Machine" +msgstr "Machine" + +#: launderette/models.py:88 +msgid "borrow date" +msgstr "date d'emprunt" + +#: launderette/models.py:92 +msgid "Token" +msgstr "Jeton" + +#: launderette/models.py:98 +msgid "Token name can not be blank" +msgstr "Le nom du jeton ne peut pas être vide" + +#: launderette/models.py:124 +msgid "machine" +msgstr "machine" + +#: launderette/templates/launderette/launderette_admin.jinja:4 +msgid "Launderette admin" +msgstr "Gestion de la laverie" + +#: launderette/templates/launderette/launderette_admin.jinja:9 +msgid "Sell" +msgstr "Vendre" + +#: launderette/templates/launderette/launderette_admin.jinja:11 +msgid "Machines" +msgstr "Machines" + +#: launderette/templates/launderette/launderette_admin.jinja:12 +msgid "New machine" +msgstr "Nouvelle machine" + +#: launderette/templates/launderette/launderette_admin.jinja:42 +#: launderette/views.py:148 +msgid "Type" +msgstr "Type" + +#: launderette/templates/launderette/launderette_book.jinja:12 +msgid "Choose" +msgstr "Choisir" + +#: launderette/templates/launderette/launderette_book.jinja:23 +msgid "Washing and drying" +msgstr "Lavage et séchage" + +#: launderette/templates/launderette/launderette_book.jinja:27 +#: sith/settings.py:416 +msgid "Washing" +msgstr "Lavage" + +#: launderette/templates/launderette/launderette_book.jinja:31 +#: sith/settings.py:416 +msgid "Drying" +msgstr "Séchage" + +#: launderette/templates/launderette/launderette_list.jinja:4 +#: launderette/templates/launderette/launderette_list.jinja:12 +msgid "Launderette admin list" +msgstr "Liste des laveries" + +#: launderette/templates/launderette/launderette_list.jinja:9 +msgid "New launderette" +msgstr "Nouvelle laverie" + +#: launderette/templates/launderette/launderette_list.jinja:20 +msgid "There is no launderette in this website." +msgstr "Il n'y a pas de laverie dans ce site web." + +#: launderette/templates/launderette/launderette_main.jinja:9 +msgid "Edit presentation page" +msgstr "Éditer la page de présentation" + +#: launderette/templates/launderette/launderette_main.jinja:12 +msgid "Book launderette slot" +msgstr "Réserver un créneau de laverie" + +#: launderette/views.py:147 +msgid "Action" +msgstr "Action" + +#: launderette/views.py:150 +msgid "Tokens, separated by spaces" +msgstr "Jetons, séparés par des espaces" + +#: launderette/views.py:165 launderette/views.py:179 +#, python-format +msgid "Token %(token_name)s does not exists" +msgstr "Le jeton %(token_name)s n'existe pas" + +#: launderette/views.py:173 +#, python-format +msgid "Token %(token_name)s already exists" +msgstr "Un jeton %(token_name)s existe déjà" + +#: launderette/views.py:229 +msgid "User has booked no slot" +msgstr "L'utilisateur n'a pas réservé de créneau" + +#: launderette/views.py:319 +msgid "Token not found" +msgstr "Jeton non trouvé" + +#: rootplace/templates/rootplace/merge.jinja:8 +msgid "Merge two users" +msgstr "Fusionner deux utilisateurs" + +#: rootplace/templates/rootplace/merge.jinja:12 +msgid "Merge" +msgstr "Fusion" + +#: rootplace/views.py:66 +msgid "User that will be kept" +msgstr "Utilisateur qui sera conservé" + +#: rootplace/views.py:67 +msgid "User that will be deleted" +msgstr "Utilisateur qui sera supprimé" + +#: sith/settings.py:166 +msgid "English" +msgstr "Anglais" + +#: sith/settings.py:167 +msgid "French" +msgstr "Français" + +#: sith/settings.py:269 sith/settings.py:276 sith/settings.py:297 +msgid "Check" +msgstr "Chèque" + +#: sith/settings.py:270 sith/settings.py:278 sith/settings.py:298 +msgid "Cash" +msgstr "Espèces" + +#: sith/settings.py:271 +msgid "Transfert" +msgstr "Virement" + +#: sith/settings.py:284 +msgid "Belfort" +msgstr "Belfort" + +#: sith/settings.py:285 +msgid "Sevenans" +msgstr "Sevenans" + +#: sith/settings.py:286 +msgid "Montbéliard" +msgstr "Montbéliard" + +#: sith/settings.py:326 +msgid "One semester" +msgstr "Un semestre, 15 €" + +#: sith/settings.py:331 +msgid "Two semesters" +msgstr "Deux semestres, 28 €" + +#: sith/settings.py:336 +msgid "Common core cursus" +msgstr "Cursus tronc commun, 45 €" + +#: sith/settings.py:341 +msgid "Branch cursus" +msgstr "Cursus branche, 45 €" + +#: sith/settings.py:346 +msgid "Alternating cursus" +msgstr "Cursus alternant, 30 €" + +#: sith/settings.py:351 +msgid "Honorary member" +msgstr "Membre honoraire, 0 €" + +#: sith/settings.py:356 +msgid "Assidu member" +msgstr "Membre d'Assidu, 0 €" + +#: sith/settings.py:361 +msgid "Amicale/DOCEO member" +msgstr "Membre de l'Amicale/DOCEO, 0 €" + +#: sith/settings.py:366 +msgid "UT network member" +msgstr "Cotisant du réseau UT, 0 €" + +#: sith/settings.py:371 +msgid "CROUS member" +msgstr "Membres du CROUS, 0 €" + +#: sith/settings.py:376 +msgid "Sbarro/ESTA member" +msgstr "Membre de Sbarro ou de l'ESTA, 15 €" + +#: sith/settings.py:384 +msgid "President" +msgstr "Président" + +#: sith/settings.py:385 +msgid "Vice-President" +msgstr "Vice-Président" + +#: sith/settings.py:386 +msgid "Treasurer" +msgstr "Trésorier" + +#: sith/settings.py:387 +msgid "Communication supervisor" +msgstr "Responsable com" + +#: sith/settings.py:388 +msgid "Secretary" +msgstr "Secrétaire" + +#: sith/settings.py:389 +msgid "IT supervisor" +msgstr "Responsable info" + +#: sith/settings.py:390 +msgid "Board member" +msgstr "Membre du bureau" + +#: sith/settings.py:391 +msgid "Active member" +msgstr "Membre actif" + +#: sith/settings.py:392 +msgid "Curious" +msgstr "Curieux" + +#: stock/models.py:22 +msgid "unit quantity" +msgstr "Unité de quantité" + +#: stock/models.py:23 +msgid "effective quantity" +msgstr "Quantité actuelle" + +#: stock/templates/stock/stock_list.jinja:4 +#: stock/templates/stock/stock_list.jinja:9 +msgid "Stock list" +msgstr "Liste des stocks" + +#: stock/templates/stock/stock_list.jinja:21 +msgid "There is no stocks in this website." +msgstr "Il n'y a pas de stock sur ce site web." + +#: stock/templates/stock/stock_main.jinja:9 +msgid "New Item" +msgstr "Nouvel élément" + +#: subscription/models.py:16 +msgid "Bad subscription type" +msgstr "Mauvais type de cotisation" + +#: subscription/models.py:20 +msgid "Bad payment method" +msgstr "Mauvais type de paiement" + +#: subscription/models.py:52 +msgid "subscription type" +msgstr "type d'inscription" + +#: subscription/models.py:55 +msgid "subscription start" +msgstr "début de la cotisation" + +#: subscription/models.py:56 +msgid "subscription end" +msgstr "fin de la cotisation" + +#: subscription/models.py:59 +msgid "location" +msgstr "lieu" + +#: subscription/models.py:68 +msgid "You can not subscribe many time for the same period" +msgstr "Vous ne pouvez pas cotiser plusieurs fois pour la même période" + +#: subscription/models.py:72 +msgid "Subscription error" +msgstr "Erreur de cotisation" + +#: subscription/views.py:54 +msgid "A user with that email address already exists" +msgstr "Un utilisateur avec cette adresse email existe déjà" + +#: subscription/views.py:70 +msgid "You must either choose an existing user or create a new one properly" +msgstr "" +"Vous devez soit choisir un utilisateur existant, ou en créer un proprement." + +#~ msgid "Download as cvs" +#~ msgstr "Télécharger en csv" + +#, fuzzy +#~| msgid "Select user" +#~ msgid "lock user" +#~ msgstr "Choisir un utilisateur" + +#~ msgid "Unknown event" +#~ msgstr "Événement inconnu" + +#~ msgid "Eticket bought for the event %(event)s" +#~ msgstr "Eticket acheté pour l'événement %(event)s" + +#~ msgid "" +#~ "You bought an eticket for the event %(event)s.\n" +#~ "You can download it on this page %(url)s." +#~ msgstr "" +#~ "Vous avez acheté un Eticket pour l'événement %(event)s.\n" +#~ "Vous pouvez le télécharger sur cette page: %(url)s" + +#~ msgid "people(s)" +#~ msgstr "personne(s)" diff --git a/stock/models.py b/stock/models.py index 7c769679..50336f72 100644 --- a/stock/models.py +++ b/stock/models.py @@ -1,5 +1,7 @@ from django.db import models from django.utils.translation import ugettext_lazy as _ +from django.core.urlresolvers import reverse + from counter.models import Counter @@ -11,6 +13,9 @@ class Stock(models.Model): def __str__(self): return "%s (%s)" % (self.name, self.counter) + def get_absolute_url(self): + return reverse('stock:list') + class StockItem(models.Model): """ The StockItem class, element of the stock """ name = models.CharField(_('name'), max_length=64) diff --git a/stock/templates/stock/stock_list.jinja b/stock/templates/stock/stock_list.jinja new file mode 100644 index 00000000..0b3b6122 --- /dev/null +++ b/stock/templates/stock/stock_list.jinja @@ -0,0 +1,23 @@ +{% extends "core/base.jinja" %} + +{% block title %} +{% trans %}Stock list{% endtrans %} +{% endblock %} + +{% block content %} +{% if stock_list %} +

{% trans %}Stock list{% endtrans %}

+
    + {% for s in stock_list.order_by('name') %} +
  • + {% if user.can_edit(s) %} + {{s}} + - Edit + {% endif %} +
  • + {% endfor %} +
+{% else %} +{% trans %}There is no stocks in this website.{% endtrans %} +{% endif %} +{% endblock %} diff --git a/stock/templates/stock/stock_main.jinja b/stock/templates/stock/stock_main.jinja index 3cf56022..9c585863 100644 --- a/stock/templates/stock/stock_main.jinja +++ b/stock/templates/stock/stock_main.jinja @@ -6,6 +6,6 @@ {% block content %}

{{stock}}

-{{stock.name}} +{% trans %}New Item{% endtrans %} {% endblock %} diff --git a/stock/urls.py b/stock/urls.py index 0f5ae091..e824f657 100644 --- a/stock/urls.py +++ b/stock/urls.py @@ -5,5 +5,7 @@ from stock.views import * urlpatterns = [ url(r'^(?P[0-9]+)$', StockMain.as_view(), name='main'), url(r'^new/counter/(?P[0-9]+)$', StockCreateView.as_view(), name='new'), + url(r'^edit/(?P[0-9]+)$', StockEditView.as_view(), name='edit'), + url(r'^list$', StockListView.as_view(), name='list'), url(r'^(?P[0-9]+)/newItem$', StockItemCreateView.as_view(), name='new_item'), ] diff --git a/stock/views.py b/stock/views.py index c60c3528..a2e4cbdc 100644 --- a/stock/views.py +++ b/stock/views.py @@ -1,24 +1,85 @@ from django.shortcuts import render from django.views.generic import ListView, DetailView, RedirectView, TemplateView from django.views.generic.edit import UpdateView, CreateView, DeleteView, ProcessFormView, FormMixin +from django.utils.translation import ugettext_lazy as _ +from django import forms +from django.forms.models import modelform_factory +from django.core.urlresolvers import reverse_lazy, reverse -from stock.models import Stock -class StockMain(DetailView): +from core.views import CanViewMixin, CanEditMixin, CanEditPropMixin, CanCreateMixin, TabedViewMixin +from counter.views import CounterAdminTabsMixin +from counter.models import Counter +from stock.models import Stock, StockItem + + + +class StockMain(CounterAdminTabsMixin, CanCreateMixin, DetailView): """ - The stock view for the counter owner + The stock view for the counter owner """ model = Stock template_name = 'stock/stock_main.jinja' pk_url_kwarg = "stock_id" + current_tab = "stocks" -class StockCreateView(CreateView): +class StockListView(CounterAdminTabsMixin, CanViewMixin, ListView): """ - docstring for StockCreateView + A list view for the admins """ + model = Stock + template_name = 'stock/stock_list.jinja' + current_tab = "stocks" -class StockItemCreateView(CreateView): + +class StockEditForm(forms.ModelForm): """ + docstring for StockEditForm"forms.ModelForm + """ + class Meta: + model = Stock + fields = ['name'] + + def __init__(self, *args, **kwargs): + super(StockEditForm, self).__init__(*args, **kwargs) + + def save(self, *args, **kwargs): + return super(StockEditForm, self).save(*args, **kwargs) + + +class StockEditView(CounterAdminTabsMixin, CanEditPropMixin, UpdateView): + """ + A edit view for the stock + """ + model = Stock + form_class = StockEditForm + pk_url_kwarg = "stock_id" + template_name = 'core/edit.jinja' + current_tab = "stocks" + + +class StockCreateView(CounterAdminTabsMixin, CanCreateMixin, CreateView): + """ + A create view for a new Stock + """ + model = Stock + form_class = modelform_factory(Stock, fields=['name', 'counter']) + template_name = 'core/create.jinja' + pk_url_kwarg = "counter_id" + current_tab = "stocks" + success_url = reverse_lazy('stock:list') + + +class StockItemCreateView(CounterAdminTabsMixin, CanCreateMixin, CreateView): + """ + A create view for a new StockItem + """ + model = StockItem + form_class = modelform_factory(StockItem, fields=['name', 'unit_quantity', 'effective_quantity', 'stock_owner']) + template_name = 'core/create.jinja' + pk_url_kwarg = "stock_id" + current_tab = "stocks" - """ \ No newline at end of file + def get_success_url(self): + return reverse_lazy('stock:main', kwargs={'stock_id': self.object.stock_owner.id})