Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
AE
Sith
Commits
325da79e
Commit
325da79e
authored
Aug 29, 2016
by
Skia
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add support for subscription typed products in eboutic
parent
dfb13c37
Pipeline
#147
failed with stage
in 1 minute and 51 seconds
Changes
9
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
175 additions
and
133 deletions
+175
-133
.gitignore
.gitignore
+1
-0
core/management/commands/populate.py
core/management/commands/populate.py
+3
-2
core/templates/core/user_detail.jinja
core/templates/core/user_detail.jinja
+3
-3
counter/views.py
counter/views.py
+6
-3
eboutic/models.py
eboutic/models.py
+31
-0
eboutic/views.py
eboutic/views.py
+2
-0
locale/fr/LC_MESSAGES/django.mo
locale/fr/LC_MESSAGES/django.mo
+0
-0
locale/fr/LC_MESSAGES/django.po
locale/fr/LC_MESSAGES/django.po
+124
-125
sith/settings_sample.py
sith/settings_sample.py
+5
-0
No files found.
.gitignore
View file @
325da79e
db.sqlite3
*.log
*.pyc
*__pycache__*
.DS_Store
...
...
core/management/commands/populate.py
View file @
325da79e
...
...
@@ -55,6 +55,7 @@ class Command(BaseCommand):
unix_name
=
settings
.
SITH_LAUNDERETTE_MANAGER
[
'unix_name'
],
address
=
settings
.
SITH_LAUNDERETTE_MANAGER
[
'address'
])
launderette_club
.
save
()
self
.
reset_index
(
"club"
)
for
b
in
settings
.
SITH_COUNTER_BARS
:
g
=
Group
(
name
=
b
[
1
]
+
" admin"
)
g
.
save
()
...
...
@@ -271,10 +272,10 @@ Cette page vise à documenter la syntaxe *Markdown* utilisée sur le site.
credit
.
save
()
debit
=
AccountingType
(
code
=
607
,
label
=
"Had to pay a beer"
,
movement_type
=
'debit'
)
debit
.
save
()
Operation
(
journal
=
gj
,
date
=
date
.
today
(),
amount
=
666.42
,
label
=
"Satanic answer"
,
Operation
(
journal
=
gj
,
date
=
date
.
today
(),
amount
=
666.42
,
remark
=
"An answer to life..."
,
mode
=
"CASH"
,
done
=
True
,
accounting_type
=
credit
,
target_type
=
"USER"
,
target_id
=
skia
.
id
).
save
()
Operation
(
journal
=
gj
,
date
=
date
.
today
(),
amount
=
42
,
label
=
"Answer"
,
Operation
(
journal
=
gj
,
date
=
date
.
today
(),
amount
=
42
,
remark
=
"An answer to life..."
,
mode
=
"CASH"
,
done
=
False
,
accounting_type
=
debit
,
target_type
=
"CLUB"
,
target_id
=
bar_club
.
id
).
save
()
woenzco
=
Company
(
name
=
"Woenzel & co"
)
...
...
core/templates/core/user_detail.jinja
View file @
325da79e
...
...
@@ -41,13 +41,13 @@
</div>
</div>
{%
if
user.membership.
filter
(
end_date
=
None
)
.
exists
()
or
user.is_in_group
(
settings.SITH_MAIN_BOARD_GROUP
)
%}
{%
if
user.membership.
filter
(
end_date
=
None
)
.
exists
()
or
user.is_in_group
(
settings.SITH_MAIN_BOARD_GROUP
)
or
user
==
profile
%}
{# if the user is member of a club, he can view the subscription state #}
<p>
{%
if
get_subscriber
(
profile
)
.
is_subscribed
()
%}
{%
trans
subscription_end
=
get_subscriber
(
profile
)
.
subscriptions.last
()
.
subscription_end
%}
User is s
ubscribe
r
until
{{
subscription_end
}}{%
endtrans
%}
{%
trans
subscription_end
=
get_subscriber
(
profile
)
.
subscriptions.last
()
.
subscription_end
%}
S
ubscribe
d
until
{{
subscription_end
}}{%
endtrans
%}
{%
else
%}
{%
trans
%}
User is n
ot subscribed
.
{%
endtrans
%}
{%
trans
%}
N
ot subscribed
{%
endtrans
%}
<a
href=
"
{{
url
(
'subscription:subscription'
)
}}
?member=
{{
profile.id
}}
"
>
{%
trans
%}
New subscription
{%
endtrans
%}
</a>
{%
endif
%}
</p>
...
...
counter/views.py
View file @
325da79e
...
...
@@ -212,9 +212,12 @@ class CounterClick(DetailView):
total
=
self
.
sum_basket
(
request
)
product
=
self
.
get_product
(
pid
)
can_buy
=
False
for
g
in
product
.
buying_groups
.
all
():
if
self
.
customer
.
user
.
is_in_group
(
g
.
name
):
can_buy
=
True
if
not
product
.
buying_groups
.
exists
():
can_buy
=
True
else
:
for
g
in
product
.
buying_groups
.
all
():
if
self
.
customer
.
user
.
is_in_group
(
g
.
name
):
can_buy
=
True
if
not
can_buy
:
request
.
session
[
'not_allowed'
]
=
True
return
False
...
...
eboutic/models.py
View file @
325da79e
...
...
@@ -5,6 +5,7 @@ from django.conf import settings
from
accounting.models
import
CurrencyField
from
counter.models
import
Counter
,
Product
,
Customer
,
Selling
,
Refilling
from
core.models
import
User
from
subscription.models
import
Subscription
,
Subscriber
class
Basket
(
models
.
Model
):
"""
...
...
@@ -92,6 +93,36 @@ class Invoice(models.Model):
date
=
self
.
date
,
)
new
.
save
()
if
i
.
product_id
==
settings
.
SITH_PRODUCT_SUBSCRIPTION_ONE_SEMESTER
:
s
=
Subscriber
.
objects
.
filter
(
id
=
self
.
user
.
id
).
first
()
sub
=
Subscription
(
member
=
s
,
subscription_type
=
'un-semestre'
,
payment_method
=
"EBOUTIC"
,
location
=
"EBOUTIC"
,
)
sub
.
subscription_start
=
Subscription
.
compute_start
()
sub
.
subscription_start
=
Subscription
.
compute_start
(
duration
=
settings
.
SITH_SUBSCRIPTIONS
[
sub
.
subscription_type
][
'duration'
])
sub
.
subscription_end
=
Subscription
.
compute_end
(
duration
=
settings
.
SITH_SUBSCRIPTIONS
[
sub
.
subscription_type
][
'duration'
],
start
=
sub
.
subscription_start
)
sub
.
save
()
elif
i
.
product_id
==
settings
.
SITH_PRODUCT_SUBSCRIPTION_TWO_SEMESTERS
:
s
=
Subscriber
.
objects
.
filter
(
id
=
self
.
user
.
id
).
first
()
sub
=
Subscription
(
member
=
s
,
subscription_type
=
'deux-semestres'
,
payment_method
=
"EBOUTIC"
,
location
=
"EBOUTIC"
,
)
sub
.
subscription_start
=
Subscription
.
compute_start
()
sub
.
subscription_start
=
Subscription
.
compute_start
(
duration
=
settings
.
SITH_SUBSCRIPTIONS
[
sub
.
subscription_type
][
'duration'
])
sub
.
subscription_end
=
Subscription
.
compute_end
(
duration
=
settings
.
SITH_SUBSCRIPTIONS
[
sub
.
subscription_type
][
'duration'
],
start
=
sub
.
subscription_start
)
sub
.
save
()
self
.
validated
=
True
self
.
save
()
...
...
eboutic/views.py
View file @
325da79e
...
...
@@ -55,6 +55,8 @@ class EbouticMain(TemplateView):
""" Add a product to the basket """
try
:
p
=
Product
.
objects
.
filter
(
id
=
int
(
request
.
POST
[
'product_id'
])).
first
()
if
not
p
.
buying_groups
.
exists
():
self
.
basket
.
add_product
(
p
)
for
g
in
p
.
buying_groups
.
all
():
if
request
.
user
.
is_in_group
(
g
.
name
):
self
.
basket
.
add_product
(
p
)
...
...
locale/fr/LC_MESSAGES/django.mo
View file @
325da79e
No preview for this file type
locale/fr/LC_MESSAGES/django.po
View file @
325da79e
...
...
@@ -6,7 +6,7 @@
msgid
""
msgstr
""
"Report-Msgid-Bugs-To:
\n
"
"POT-Creation-Date: 2016-08-2
6 20:28
+0200
\n
"
"POT-Creation-Date: 2016-08-2
9 02:59
+0200
\n
"
"PO-Revision-Date: 2016-07-18
\n
"
"Last-Translator: Skia <skia@libskia.so>
\n
"
"Language-Team: AE info <ae.info@utbm.fr>
\n
"
...
...
@@ -123,9 +123,9 @@ msgstr "numéro"
msgid
"journal"
msgstr
"classeur"
#: accounting/models.py:179 core/models.py:4
37
core/models.py:7
1
3
#: accounting/models.py:179 core/models.py:4
58
core/models.py:73
4
#: counter/models.py:200 counter/models.py:246 counter/models.py:296
#: eboutic/models.py:1
4
eboutic/models.py:4
7
#: eboutic/models.py:1
5
eboutic/models.py:4
8
msgid
"date"
msgstr
"date"
...
...
@@ -134,7 +134,7 @@ msgid "comment"
msgstr
"commentaire"
#: accounting/models.py:181 counter/models.py:201 counter/models.py:247
#: subscription/models.py:
34
#: subscription/models.py:
52
msgid
"payment method"
msgstr
"méthode de paiement"
...
...
@@ -142,7 +142,7 @@ msgstr "méthode de paiement"
msgid
"cheque number"
msgstr
"numéro de chèque"
#: accounting/models.py:183 eboutic/models.py:1
15
#: accounting/models.py:183 eboutic/models.py:1
46
msgid
"invoice"
msgstr
"facture"
...
...
@@ -179,7 +179,7 @@ msgstr "Compte"
msgid
"Company"
msgstr
"Entreprise"
#: accounting/models.py:190 sith/settings.py:29
0
sith/settings_sample.py:27
2
#: accounting/models.py:190 sith/settings.py:29
1
sith/settings_sample.py:27
3
msgid
"Other"
msgstr
"Autre"
...
...
@@ -468,7 +468,7 @@ msgid "Done"
msgstr
"Effectué"
#: accounting/templates/accounting/journal_details.jinja:34
#: counter/views.py:5
58
#: counter/views.py:5
61
msgid
"Comment"
msgstr
"Commentaire"
...
...
@@ -488,8 +488,7 @@ msgstr "Éditer l'opération"
#: 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
#: counter/templates/counter/counter_edit.jinja:12
#: counter/templates/counter/counter_edit.jinja:14
#: counter/templates/counter/cash_register_summary.jinja:22
#: subscription/templates/subscription/subscription.jinja:22
msgid
"Save"
msgstr
"Sauver"
...
...
@@ -540,7 +539,7 @@ msgid "A club with that unix_name already exists"
msgstr
"Un club avec ce nom UNIX existe déjà."
#: club/models.py:145 counter/models.py:280 counter/models.py:294
#: eboutic/models.py:1
3
eboutic/models.py:4
6
launderette/models.py:89
#: eboutic/models.py:1
4
eboutic/models.py:4
7
launderette/models.py:89
#: launderette/models.py:126
msgid
"user"
msgstr
"nom d'utilisateur"
...
...
@@ -902,120 +901,120 @@ msgstr "adresse des parents"
msgid
"is subscriber viewable"
msgstr
"profil visible par les cotisants"
#: core/models.py:2
5
7
#: core/models.py:27
4
msgid
"A user with that username already exists"
msgstr
"Un utilisateur de ce nom d'utilisateur existe déjà"
#: core/models.py:3
76
core/templates/core/macros.jinja:17
#: core/models.py:3
93
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:4
14
#: core/models.py:4
35
msgid
"Visitor"
msgstr
"Visiteur"
#: core/models.py:4
19
#: core/models.py:4
40
msgid
"define if we show a users stats"
msgstr
"Definit si l'on montre les statistiques de l'utilisateur"
#: core/models.py:42
1
#: core/models.py:4
4
2
msgid
"Show your account statistics to others"
msgstr
"Montrez vos statistiques de compte aux autres"
#: core/models.py:4
28
#: core/models.py:4
49
msgid
"file name"
msgstr
"nom du fichier"
#: core/models.py:4
29
core/models.py:5
62
#: core/models.py:4
50
core/models.py:5
83
msgid
"parent"
msgstr
"parent"
#: core/models.py:4
30
core/models.py:4
40
#: core/models.py:4
51
core/models.py:4
61
msgid
"file"
msgstr
"fichier"
#: core/models.py:4
31
#: core/models.py:4
52
msgid
"owner"
msgstr
"propriétaire"
#: core/models.py:43
2
core/models.py:5
6
8
#: core/models.py:4
5
3 core/models.py:58
9
msgid
"edit group"
msgstr
"groupe d'édition"
#: core/models.py:4
33
core/models.py:5
6
9
#: core/models.py:4
54
core/models.py:59
0
msgid
"view group"
msgstr
"groupe de vue"
#: core/models.py:4
34
#: core/models.py:4
55
msgid
"is folder"
msgstr
"est un dossier"
#: core/models.py:4
3
5
#: core/models.py:45
6
msgid
"mime type"
msgstr
"type mime"
#: core/models.py:4
36
#: core/models.py:4
57
msgid
"size"
msgstr
"taille"
#: core/models.py:4
66
#: core/models.py:4
87
msgid
"Character '/' not authorized in name"
msgstr
"Le caractère '/' n'est pas autorisé dans les noms de fichier"
#: core/models.py:4
6
9 core/models.py:4
74
#: core/models.py:49
0
core/models.py:4
95
msgid
"Loop in folder tree"
msgstr
"Boucle dans l'arborescence des dossiers"
#: core/models.py:4
78
#: core/models.py:4
99
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:
482
#: core/models.py:
503
msgid
"Duplicate file"
msgstr
"Un fichier de ce nom existe déjà"
#: core/models.py:
492
#: core/models.py:
513
msgid
"You must provide a file"
msgstr
"Vous devez fournir un fichier"
#: core/models.py:5
17
#: core/models.py:5
38
msgid
"Folder: "
msgstr
"Dossier : "
#: core/models.py:5
19
#: core/models.py:5
40
msgid
"File: "
msgstr
"Fichier : "
#: core/models.py:5
61
core/models.py:56
5
#: core/models.py:5
82
core/models.py:5
8
6
msgid
"page name"
msgstr
"nom de la page"
#: core/models.py:5
66
#: core/models.py:5
87
msgid
"owner group"
msgstr
"groupe propriétaire"
#: core/models.py:
597
#: core/models.py:
618
msgid
"Duplicate page"
msgstr
"Une page de ce nom existe déjà"
#: core/models.py:6
03
#: core/models.py:6
24
msgid
"Loop in page tree"
msgstr
"Boucle dans l'arborescence des pages"
#: core/models.py:71
0
#: core/models.py:7
3
1
msgid
"revision"
msgstr
"révision"
#: core/models.py:7
11
#: core/models.py:7
32
msgid
"page title"
msgstr
"titre de la page"
#: core/models.py:7
12
#: core/models.py:7
33
msgid
"page content"
msgstr
"contenu de la page"
...
...
@@ -1111,8 +1110,7 @@ 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/counter_edit.jinja:4
#: counter/templates/counter/counter_edit.jinja:8
#: counter/templates/counter/cash_register_summary.jinja:4
#, python-format
msgid
"Edit %(obj)s"
msgstr
"Éditer %(obj)s"
...
...
@@ -1460,13 +1458,12 @@ msgid "Option: "
msgstr
"Filière : "
#: core/templates/core/user_detail.jinja:48
#, python-format
msgid
"User is subscriber until %(subscription_end)s"
msgstr
"L'utilisateur est cotisant jusqu'au %(subscription_end)s"
msgid
"Subscribed until %(subscription_end)s"
msgstr
"Cotisant jusqu'au %(subscription_end)s"
#: core/templates/core/user_detail.jinja:50
msgid
"
User is n
ot subscribed
.
"
msgstr
"
L'utilisateur n'est pas
cotisant
.
"
msgid
"
N
ot subscribed"
msgstr
"
Non
cotisant"
#: core/templates/core/user_detail.jinja:51
#: subscription/templates/subscription/subscription.jinja:4
...
...
@@ -1557,7 +1554,7 @@ msgstr "Gestion de Sith"
msgid
"Subscriptions"
msgstr
"Cotisations"
#: core/templates/core/user_tools.jinja:22 counter/views.py:47
3
#: core/templates/core/user_tools.jinja:22 counter/views.py:47
6
msgid
"Counters"
msgstr
"Comptoirs"
...
...
@@ -1707,7 +1704,8 @@ msgstr "Bureau"
#: 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:289 sith/settings_sample.py:271
#: sith/settings.py:290 sith/settings.py:298 sith/settings_sample.py:272
#: sith/settings_sample.py:280
msgid
"Eboutic"
msgstr
"Eboutic"
...
...
@@ -1732,11 +1730,11 @@ msgstr "est validé"
msgid
"refilling"
msgstr
"rechargement"
#: counter/models.py:242 eboutic/models.py:1
02
#: counter/models.py:242 eboutic/models.py:1
33
msgid
"unit price"
msgstr
"prix unitaire"
#: counter/models.py:243 counter/models.py:320 eboutic/models.py:1
0
3
#: counter/models.py:243 counter/models.py:320 eboutic/models.py:13
4
msgid
"quantity"
msgstr
"quantité"
...
...
@@ -1744,9 +1742,9 @@ msgstr "quantité"
msgid
"Sith account"
msgstr
"Compte utilisateur"
#: counter/models.py:248 sith/settings.py:28
2
sith/settings.py:28
7
#: sith/settings.py:30
8
sith/settings_sample.py:26
4
#: sith/settings_sample.py:2
69
sith/settings_sample.py:29
0
#: counter/models.py:248 sith/settings.py:28
3
sith/settings.py:28
8
#: sith/settings.py:3
1
0 sith/settings_sample.py:26
5
#: sith/settings_sample.py:2
70
sith/settings_sample.py:29
2
msgid
"Credit card"
msgstr
"Carte banquaire"
...
...
@@ -1786,6 +1784,11 @@ msgstr "chèque"
msgid
"cash register summary item"
msgstr
"élément de relevé de caisse"
#: counter/templates/counter/cash_register_summary.jinja:8
#: counter/templates/counter/counter_main.jinja:43
msgid
"Make a cash register summary"
msgstr
"Faire un relevé de caisse"
#: counter/templates/counter/counter_click.jinja:29
msgid
"Customer"
msgstr
"Client"
...
...
@@ -1882,10 +1885,6 @@ msgstr "valider"
msgid
"Please, login"
msgstr
"Merci de vous identifier"
#: counter/templates/counter/counter_main.jinja:43
msgid
"Make a cash register summary"
msgstr
"Faire un relevé de caisse"
#: counter/templates/counter/counter_main.jinja:46
msgid
"Barman: "
msgstr
"Barman : "
...
...
@@ -1932,101 +1931,101 @@ msgstr "Mauvais identifiants"
msgid
"User is not subscriber"
msgstr
"L'utilisateur n'est pas cotisant."
#: counter/views.py:2
58
#: counter/views.py:2
61
msgid
"END"
msgstr
"FIN"
#: counter/views.py:26
0
#: counter/views.py:26
3
msgid
"CAN"
msgstr
"ANN"
#: counter/views.py:29
0
#: counter/views.py:29
3
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:47
0
#: counter/views.py:47
3
msgid
"Parent product"
msgstr
"Produit parent"
#: counter/views.py:47
1
#: counter/views.py:47
4
msgid
"Buying groups"
msgstr
"Groupes d'achat"
#: counter/views.py:5
38
#: counter/views.py:5
41
msgid
"10 cents"
msgstr
"10 centimes"
#: counter/views.py:5
39
#: counter/views.py:5
42
msgid
"20 cents"
msgstr
"20 centimes"
#: counter/views.py:54
0
#: counter/views.py:54
3
msgid
"50 cents"
msgstr
"50 centimes"
#: counter/views.py:54
1
#: counter/views.py:54
4
msgid
"1 euro"
msgstr
"1 €"
#: counter/views.py:54
2
#: counter/views.py:54
5
msgid
"2 euros"
msgstr
"2 €"
#: counter/views.py:54
3
#: counter/views.py:54
6
msgid
"5 euros"
msgstr
"5 €"
#: counter/views.py:54
4
#: counter/views.py:54
7
msgid
"10 euros"
msgstr
"10 €"
#: counter/views.py:54
5
#: counter/views.py:54
8
msgid
"20 euros"
msgstr
"20 €"
#: counter/views.py:54
6
#: counter/views.py:54
9
msgid
"50 euros"
msgstr
"50 €"
#: counter/views.py:5
47
#: counter/views.py:5
50
msgid
"100 euros"
msgstr
"100 €"
#: counter/views.py:5
48
counter/views.py:55
0
counter/views.py:55
2
#: counter/views.py:55
4
counter/views.py:55
6
#: counter/views.py:5
51
counter/views.py:55
3
counter/views.py:55
5
#: counter/views.py:55
7
counter/views.py:55
9
msgid
"Check amount"
msgstr
"Montant du chèque"
#: counter/views.py:5
49
counter/views.py:55
1
counter/views.py:55
3
#: counter/views.py:55
5
counter/views.py:5
57
#: counter/views.py:5
52
counter/views.py:55
4
counter/views.py:55
6
#: counter/views.py:55
8
counter/views.py:5
60
msgid
"Check quantity"
msgstr
"Nombre de chèque"
#: counter/views.py:5
59
#: counter/views.py:5
62
msgid
"Emptied"
msgstr
"Coffre vidé"
#: eboutic/models.py:4
8
#: eboutic/models.py:4
9
msgid
"validated"
msgstr
"validé"
#: eboutic/models.py:6
1
#: eboutic/models.py:6
2
msgid
"Invoice already validated"
msgstr
"Facture déjà validée"
#: eboutic/models.py:
99
#: eboutic/models.py:
130
msgid
"product id"
msgstr
"ID du produit"
#: eboutic/models.py:1
00
#: eboutic/models.py:1
31
msgid
"product name"
msgstr
"nom du produit"
#: eboutic/models.py:1
01
#: eboutic/models.py:1
32
msgid
"product type id"
msgstr
"id du type du produit"
#: eboutic/models.py:1
12
#: eboutic/models.py:1
43
msgid
"basket"
msgstr
"panier"
...
...
@@ -2065,7 +2064,7 @@ msgstr "Le paiement a été effectué"
msgid
"Return to eboutic"
msgstr
"Retourner à l'eboutic"
#: eboutic/views.py:1
38
#: eboutic/views.py:1
40
msgid
"You do not have enough money to buy the basket"
msgstr
"Vous n'avez pas assez d'argent pour acheter le panier"
...
...
@@ -2154,12 +2153,12 @@ msgid "Washing and drying"
msgstr
"Lavage et séchage"
#: launderette/templates/launderette/launderette_book.jinja:26
#: sith/settings.py:4
18
sith/settings_sample.py:40
0
#: sith/settings.py:4
24
sith/settings_sample.py:40
6
msgid
"Washing"
msgstr
"Lavage"
#: launderette/templates/launderette/launderette_book.jinja:30
#: sith/settings.py:4
18
sith/settings_sample.py:40
0
#: sith/settings.py:4
24
sith/settings_sample.py:40
6
msgid
"Drying"
msgstr
"Séchage"
...
...
@@ -2214,148 +2213,148 @@ msgstr "L'utilisateur n'a pas réservé de créneau"
msgid
"Token not found"
msgstr
"Jeton non trouvé"
#: sith/settings.py:17
3
sith/settings_sample.py:16
0
#: sith/settings.py:17
4
sith/settings_sample.py:16
1
msgid
"English"
msgstr
"Anglais"
#: sith/settings.py:17
4
sith/settings_sample.py:16
1
#: sith/settings.py:17
5
sith/settings_sample.py:16
2
msgid
"French"
msgstr
"Français"
#: sith/settings.py:2
79
sith/settings.py:28
6
sith/settings.py:30
6
#: sith/settings_sample.py:26
1
sith/settings_sample.py:26
8
#: sith/settings_sample.py:2
88
#: sith/settings.py:2
80
sith/settings.py:28
7
sith/settings.py:30
8
#: sith/settings_sample.py:26
2
sith/settings_sample.py:26
9
#: sith/settings_sample.py:2
90
msgid
"Check"
msgstr
"Chèque"
#: sith/settings.py:28
0
sith/settings.py:28
8
sith/settings.py:30
7
#: sith/settings_sample.py:26
2
sith/settings_sample.py:27
0
#: sith/settings_sample.py:2
8
9
#: sith/settings.py:28
1
sith/settings.py:28
9
sith/settings.py:30
9
#: sith/settings_sample.py:26
3
sith/settings_sample.py:27
1
#: sith/settings_sample.py:29
1
msgid
"Cash"
msgstr
"Espèces"
#: sith/settings.py:28
1
sith/settings_sample.py:26
3
#: sith/settings.py:28
2
sith/settings_sample.py:26
4
msgid
"Transfert"
msgstr
"Virement"
#: sith/settings.py:29
4
sith/settings_sample.py:27
6
#: sith/settings.py:29
5
sith/settings_sample.py:27
7
msgid
"Belfort"
msgstr
"Belfort"
#: sith/settings.py:29
5
sith/settings_sample.py:27
7
#: sith/settings.py:29
6
sith/settings_sample.py:27
8
msgid
"Sevenans"
msgstr
"Sevenans"
#: sith/settings.py:29
6
sith/settings_sample.py:27
8
#: sith/settings.py:29
7
sith/settings_sample.py:27
9