From 257cb9cfe709a92cd9c43b6719bcdeffd9bb21dd Mon Sep 17 00:00:00 2001 From: klmp200 Date: Sat, 15 Oct 2016 02:33:38 +0200 Subject: [PATCH 1/9] Add ban for alcohol --- .../migrations/0005_user_is_banned_alcohol.py | 19 +++++++++++++++++++ core/models.py | 7 +++++++ core/views/forms.py | 2 +- core/views/user.py | 13 ++++++++++--- counter/views.py | 3 +++ 5 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 core/migrations/0005_user_is_banned_alcohol.py diff --git a/core/migrations/0005_user_is_banned_alcohol.py b/core/migrations/0005_user_is_banned_alcohol.py new file mode 100644 index 00000000..4e143899 --- /dev/null +++ b/core/migrations/0005_user_is_banned_alcohol.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0004_user_godfathers'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='is_banned_alcohol', + field=models.BooleanField(help_text='Designates whether this user is denyed from buying alchool. ', verbose_name='banned from buying alcohol', default=False), + ), + ] diff --git a/core/models.py b/core/models.py index 8e3a8899..0ce644ea 100644 --- a/core/models.py +++ b/core/models.py @@ -169,6 +169,13 @@ class User(AbstractBaseUser): parent_address = models.CharField(_("parent address"), max_length=128, blank=True, default="") is_subscriber_viewable = models.BooleanField(_("is subscriber viewable"), default=True) godfathers = models.ManyToManyField('User', related_name='godchildren', blank=True) + is_banned_alcohol = models.BooleanField( + _('banned from buying alcohol'), + default=False, + help_text=_( + 'Designates whether this user is denyed from buying alchool. ' + ), + ) objects = UserManager() diff --git a/core/views/forms.py b/core/views/forms.py index 27226d25..898b7e6b 100644 --- a/core/views/forms.py +++ b/core/views/forms.py @@ -127,7 +127,7 @@ class UserProfileForm(forms.ModelForm): fields = ['first_name', 'last_name', 'nick_name', 'email', 'date_of_birth', 'profile_pict', 'avatar_pict', 'scrub_pict', 'sex', 'second_email', 'address', 'parent_address', 'phone', 'parent_phone', 'tshirt_size', 'role', 'department', 'dpt_option', 'semester', 'quote', 'school', 'promo', - 'forum_signature', 'is_subscriber_viewable'] + 'forum_signature', 'is_subscriber_viewable', 'is_banned_alcohol'] widgets = { 'date_of_birth': SelectDate, 'profile_pict': forms.ClearableFileInput, diff --git a/core/views/user.py b/core/views/user.py index 0ac02de9..a88cd0b2 100644 --- a/core/views/user.py +++ b/core/views/user.py @@ -319,22 +319,29 @@ class UserUpdateProfileView(UserTabsMixin, CanEditMixin, UpdateView): form_class = UserProfileForm current_tab = "edit" edit_once = ['profile_pict', 'date_of_birth', 'first_name', 'last_name'] + board_only = ['is_banned_alcohol'] - def remove_once_edited_fields(self, request): + def remove_restricted_fields(self, request): + """ + Removes edit_once and board_only fields + """ for i in self.edit_once: if getattr(self.form.instance, i) and not (request.user.is_board_member or request.user.is_root): self.form.fields.pop(i, None) + for i in self.board_only: + if not (request.user.is_board_member or request.user.is_root): + self.form.fields.pop(i, None) def get(self, request, *args, **kwargs): self.object = self.get_object() self.form = self.get_form() - self.remove_once_edited_fields(request) + self.remove_restricted_fields(request) return self.render_to_response(self.get_context_data(form=self.form)) def post(self, request, *args, **kwargs): self.object = self.get_object() self.form = self.get_form() - self.remove_once_edited_fields(request) + self.remove_restricted_fields(request) files = request.FILES.items() self.form.process(files) if request.user.is_authenticated() and request.user.can_edit(self.object) and self.form.is_valid(): diff --git a/counter/views.py b/counter/views.py index 79a79297..5eb52709 100644 --- a/counter/views.py +++ b/counter/views.py @@ -278,6 +278,9 @@ class CounterClick(CounterTabsMixin, DetailView): if product.limit_age >= 18 and not self.customer.user.date_of_birth: request.session['no_age'] = True return False + if product.limit_age >= 18 and self.customer.user.is_banned_alcohol: + request.session['not_allowed'] = True + return False if self.customer.user.date_of_birth and self.customer.user.get_age() < product.limit_age: # Check if affordable request.session['too_young'] = True return False From ba86219b74b221de0b3536429a2cb4d273848cc5 Mon Sep 17 00:00:00 2001 From: klmp200 Date: Sat, 15 Oct 2016 19:58:32 +0200 Subject: [PATCH 2/9] Translations for alcool ban --- locale/fr/LC_MESSAGES/django.mo | Bin 36913 -> 36982 bytes locale/fr/LC_MESSAGES/django.po | 220 +++++++++++++++++--------------- 2 files changed, 117 insertions(+), 103 deletions(-) diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo index 69727b0730cb09d9c96cdead009c45fdb1c4d8bb..693a224d643f08d2f78f1d8d0c72ed8d4ffceb28 100644 GIT binary patch delta 11520 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 delta 11456 zcmYk?2Xs|c8iwI>lTeb7kN_bhffPb2Nk~Es5Tut#3({12lc035LA)>oK@>!fIDixj z&5@3vfGA=C6;uX6MpSS{M2Zeo1S#`=IlpVoUF*!V`~G)1H&@pD{z|~+R|5P$R0~?@ z@EH@}IJNPi>WBKoe0r@)&0042;B$s1<#Hn&3RD{SDMn z`I^{w6;y`}sEN0u`t3xu--nv; z3yj9YsLOW_)vjW5uU&Q20%K8^J-a#kudOMfK(~A_>L|)k9p|D}{CCtutFb1oN3HlH z^DETKzeBYHuCSEYq_spI@4)F1_QDe_TU)DE@c?x=wJq6Qpb` zDZyGe&B_;=%gj}%cI#1r??DCn4eG7(pCqBna27T34b;jiwDeXIiOSbP1ym0eXcp>D z6q-Fy;|xVjFcB5-6Q~{WqZaa%<)6jsdjDM#nqUobT+UY1E&mlqVqBp&zzo!Yb5Ik^ zv+|cvTe{3#hx$I*g=)VW`EGOeqVCSesD*rr5qkd*kx;{bqmJS{5K<&f;)Xt1UZMh#c(F>@Fm!JY)ZslvRpWgqCBnDumyS$DgFo*o3SRYrT z0{bT_&=aTtenM^SZ>X)kYWY7=69u&P77&W6k43dlM2(Y%ekHOSHYT{m~ z6%Rz+fw8ESO+%ga9MtQy1l4adD!{i<0l$mfZs$W(`)^R=oIxM{fdP2KPeLodh1$Xj z?Yx1)u{QbYs3XZmeX}(}4cyi8Lr{S|W|pDGTYw5|5o#gJt$qXQF732>|2`6$_#g)2 zQ7k_j)JjgEBK;XP@EKG97f}OMXz$&LYN&CNEuV!7tkCRY^?guxV~|(wcSc*m!>CA~ z^eUYBsIy&S`L(Fa_ZBLEk1hW%%q4#o6=+-s@9g7ITiy&cPAAlk_Cbv^34`_i&m^IS z^H3{Tidy+9)QZ=k26zj#qP?h!9Y##_G)P zv?QUwemzltj7C|5speeNK#NhY-D=b&-C^Y)A%F6nL&)D3C%6-TlCeE1@ZqQ}pNN%k zDr%gW=vTo@Bs9TtRAg_WZtYIg00&TiWWGhM_%dpRH?a~%bmly<7HTIRMU|Ig5YDpl zxmcO}0@MN)cV_>!r7I~=gqy5lCsro^F>1@cK#te>0X0E#7camJ)C4V1uT^Ud#I{!6 z5w+60QT+y??#c+Phzq;0|61Wv3WD(;sDR!=4ZH`nl8;dV9kl#W%l}}WMzz0ysdyE2 zl(mbz%a(@gbw_Q30*M6kLN^;X%|wPNH_; zH`Lp32{qAG)c65+dtY3^sB!#>Bot9P>bt&;H5iDYBujuf{a;`!O9aSb0ph@*l5$rv(Xh9EEl9S!|CRQ7gED74RA+<1N$#N!`7G zJEC@Q7;1%+to(7*cm6_D|4pccZnylGSV`~y5fZ^vd~cq{F!C2sM{x%=a8M8L(uJbx z>!8Z(quS+T2sXtk*cP>*9;mPGNvOAGE@~mmv6|lhy(ARC5zN687>?mRy>GHQs6RGM zQ3G~IO*9d;vT3OHe?tZGJnC#;GMA(7$ZC8Bcc8}WP^|MOF@S_FTPddEQ>cN~qbAsb zI*ND9U8qa;9;)45bDxzTzy~S+3i)m0wB!Qmi)kt*;C5_?M|-jVT5-rd-rwT_Y)`%f zwPhQyH-3V;L~&$zvz&IAg7a_;Zbh0n@qPFagOl(fT#1@Evak1z*cEfhKZqH)v@iRw zt^9-nZQ&uTiYHNLdjYkT*DQYrwNn-QdG%FMJ5UpK=5bb@ZZ^PB%A26>Ok32B_C$T< z_w|#|Eqw?zz-(*qBC5j@)C6nI^{94REdM?#z>mxW=GUlp-&y_)D)5V_yLJOLu0N>1 z7hy1J!YI@kC8Ktxoz-`@{C(y~jG%r3YDF_p{b!>BT8Nr(8ETx>sGZo1ns_%7h~L?3 z4Gy5T{u^s>+B|PwL=F5qY6Z6~U-@1yAAvO~k43FK4>fTsRKG5$K#NfU^uua;{|AuJ zfa6gSK5ovk^5;=2eHpc)b*O>1p$6WCk@z8MoFk~6IDwkzS1Z4Sx>Gk%{R8h~KIV6V zNhsnd)Btr+k!PVgG(}y`R;YH}EPo#=;1bJELG>#`P4FBl;Dx9_ms|a6)Hs{buf%&K zwDq5(IvhuJ_z5-8c~k(GtloFOR~~{2I0Dr#7PaDJRN(2T{td7OHn#F2)cD2sv;Rum zOM$j*C~Bbbs4tkuP%E5Dda==T@{bH7=t~qK9*oCF2rcugu4CvQSDAx`E@Ig9PG7A z$M)2>M*U*)&my6SW}{X<54ClRQGvZ;^=qwugVpauZRrQ7E&duc&MDM5=TPHZ!!*2Y zrVimAknfI-^!}HTNTpy0vS{Zds$=0$@ArCptWJI?>W)l7t#BslQZ7RUunyI4H!ARt zP)B;e^8Z5Z*pH|kyNTt$|7#5Mei+1KA{9+h1N29o=@87pF{l+U##~&7+VbyF6JNo2 z{L}KW!@bLygzDE6^%fLiTO5o9eiE;dsD7rvv(xt--^Vy)-Yz2H&7C4fJUeRI-&;XZuJkK z0(}A%`14p1U&bJO4Rs0EpjN)s+>2V+A@j#k?7t$pNP#*8Kj7WsC^HTTIr7n5j5Vih*PGdKogO1utb=6uxaw+Jia zYOISJF%kcXKD>+y;3@{-4b-K*g$l^W;97YwlJ`3?R*-}`^E}jR($32JVXTH0rf%!G!k{@V=e!%IStjX47H>4tb7G(;x(u*v~}p$N{*AzTkta~e;YMH@HnqS zq*>F9L#;3oU&lPuN{^t%IgXn6GA3Y!@m@eFsMkFQbyvoYXa6i1gtG1Qix!}809Rmk7KG^{ki`)|YssJqk~HDL+r2p&X@J8lB|udRB-3jC=6I`^ zjvC-a)S0d{-?jR$k$)I>enBlDm3Jx`Gf@+DNA(|wb#N?3;xninTZRPgciteOJFp$K z@()mFvmZ6USLR8qPW}RFfS`xHBZ@$+s3z(TrJ04O{`a63FdP-wRLsP=<>j3JHWG^P zAZm-xVGRtJ;u(#q&q7UHWcJ0bnfrE^1+2P!spI^5LijPQ&v5{x2h; zNdJzyd}~lE+Kakuhf$aG0xGcUsGSObly60hLS5D;vHZP9-HCbT64cwW#`2rZ_pto; z|K}vaXmHFbentgy8MU(T$Gi!KU`_I)EMJOxt!AR`z${c?Ph$!$u>5vxNq#pfkQ=C< za6ylA{@T*`$Gw3wQ3JF=t*Eo*yQ8+O4{C)2%~4i99mEJOv;9@VZ0Q?WPdD5j#?FF>_hih6BdLj|zP%HKxq z+-}sJ_!^_}gr9^i*ENjAsHxuBG?}7T5PQITx9d#Ms zK=nI@I+B1=?~hwL>Mii!Pa==RQ#b_QL9HO>NpD59Q61}IJ?xB{cr0p#FQRs8H74PD z)Iz?r^0Qcr{6*9bh1fT4geQOhNoY&zqP8d-^%dD3b>{jf+B#T_IhxTDU)+uwG*4PspLS|GykgDJuUK_Q$9>-sKyIEyypj{MV?vb9)Z^uWz~t zM$?%lVFk>^O4!6~g_X&7M6I}o*%#G+AO_<&D}M~j?}$0y%9o)gUWq#5?N77+n&=1x z@_W>ook9ij2L|D7)MX2t>*cGW@-;976Hx)yM+MXf)vp68;3Cxc#a4bVYMw!U5{hUd zHp7{y%k?g5f=^KcA3?SI0X4w|RDix`ysz#`W)!MlGDcwo)LYd76~F-0&Wy0Ue=-S0 zG8Gl^eA7imz6jNE1%}`nR6tu$1MR{@{0u|!9ID+lRJ(v@y`u?5jTeP_U29_?_s_{C zp$HqHCb}Cn&^@S?4n_qw0kz^OsCH9PE1ZeJxEQrVuOkCH+fWnkK(*h4`Xjd=^%@_= z@_+w3M?x#PjhZlQp4TxR6=@3Ud!Yc;t{C;+4?zty0kz^;sK6JPOHmWA#W382>i-_9 z|3Qq>`~N)&ZPjH|#5YkZ4V>@Yg<#YQYogjET6u<*H$k;;jq2ag?1uX4?QQw7sQwS5 z+Lxj~jKoZW;NU9Z?Td zzoE}@{#8j#pg@64M@2RttKf^MBY71S*cMc~w^3XBF=|BzQ3D?}f3f--X21e3@DNo0 zNHbvpqbTBR_tVsb$dmxSIDP!4r9_`}_j>AGzBIQWEv`-n>Kakkn(|IOJ4nyQ`RH>e zrd5wgrG-All%(;*@O;M8)m@g>&o|h;n%2}8=w_!!=l8ajYMo^19;l_SP$3`Pq+jSg zl7~P4kEF*3Bm}rGrKkF`+}-K*BRg3?{bQj%_qf;76T)gzdOuG(rN6o<83_fUNBd+mX)_M}9omIor!peei6)pAI9o=r3alv)1)kt?@W~Zpy zF=bQTd&^ab4gd=(KU439rfEq_9xeh%nLlP z(mKx#%S!N#akI0ceU;n}Sq-vV(PB8YC8&?j#&1u$j+OmL`fk#<+*h;Wd?D`ctcJd1 z_hMFyYNu#@o!Wn+UY0vPw^eqg?>@IAJ1wccb-$0w1fDkJ!%&~6c&@mcv!i{z+)uMR zMfRlbIA!~(|1VEBHz_CDcgZct>Ez3HXXM0n=}Zf~z&ELV1NYcS`k^_>v+*3LIin~)fn%qycI?BWMuCpC8)r8OMJXgs_(eD30RW09)x+1IC zP5Qb!uR*eJh`YH#kHRX}CdKLplFy}0;s1^G8~F=7{3I^_6p_v#)yOT(P4E@D19Rg_ zE>fmXEi9n#0G=;NZ=vBya8C?@)!xxlI%E8aB_%-I_OWbk^3bPk&hPf3z@#6aWAK diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index db8f46d6..6df7d2ac 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-10-07 13:10+0200\n" +"POT-Creation-Date: 2016-10-15 19:07+0200\n" "PO-Revision-Date: 2016-07-18\n" "Last-Translator: Skia \n" "Language-Team: AE info \n" @@ -123,7 +123,7 @@ msgstr "numéro" msgid "journal" msgstr "classeur" -#: accounting/models.py:191 core/models.py:479 core/models.py:757 +#: accounting/models.py:191 core/models.py:486 core/models.py:764 #: counter/models.py:229 counter/models.py:272 counter/models.py:358 #: eboutic/models.py:15 eboutic/models.py:48 msgid "date" @@ -171,7 +171,7 @@ msgstr "type de cible" #: 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:27 +#: counter/templates/counter/cash_summary_list.jinja:32 #: counter/templates/counter/stats.jinja:15 #: launderette/templates/launderette/launderette_admin.jinja:44 msgid "User" @@ -305,7 +305,7 @@ msgstr "Compte en banque : " #: 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:61 +#: 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 @@ -337,8 +337,8 @@ msgstr "Nouveau compte club" #: 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:152 -#: counter/templates/counter/cash_summary_list.jinja:48 +#: 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:47 @@ -450,7 +450,7 @@ 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:31 +#: counter/templates/counter/counter_click.jinja:32 msgid "Amount: " msgstr "Montant: " @@ -476,7 +476,7 @@ msgstr "No" #: 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:29 +#: counter/templates/counter/cash_summary_list.jinja:34 #: counter/templates/counter/last_ops.jinja:14 #: counter/templates/counter/last_ops.jinja:39 msgid "Date" @@ -510,7 +510,7 @@ msgid "Done" msgstr "Effectué" #: accounting/templates/accounting/journal_details.jinja:37 -#: counter/templates/counter/cash_summary_list.jinja:32 counter/views.py:702 +#: counter/templates/counter/cash_summary_list.jinja:37 counter/views.py:705 msgid "Comment" msgstr "Commentaire" @@ -682,6 +682,7 @@ msgid "Sellings" msgstr "Ventes" #: club/templates/club/club_sellings.jinja:9 +#: counter/templates/counter/cash_summary_list.jinja:15 msgid "Show" msgstr "Montrer" @@ -694,7 +695,7 @@ msgid "units" msgstr "unités" #: club/templates/club/club_sellings.jinja:13 -#: counter/templates/counter/counter_click.jinja:67 +#: counter/templates/counter/counter_click.jinja:70 #: counter/templates/counter/counter_main.jinja:28 #: eboutic/templates/eboutic/eboutic_main.jinja:34 msgid "Total: " @@ -703,7 +704,7 @@ 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:28 counter/views.py:75 +#: counter/templates/counter/cash_summary_list.jinja:33 counter/views.py:75 msgid "Counter" msgstr "Comptoir" @@ -732,7 +733,7 @@ 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:30 +#: counter/templates/counter/cash_summary_list.jinja:35 #: counter/templates/counter/last_ops.jinja:44 #: counter/templates/counter/stats.jinja:18 msgid "Total" @@ -785,16 +786,16 @@ msgstr "Propriétés" msgid "Select user" msgstr "Choisir un utilisateur" -#: club/views.py:163 +#: club/views.py:163 counter/views.py:903 msgid "Begin date" msgstr "Date de début" -#: club/views.py:164 +#: club/views.py:164 counter/views.py:904 msgid "End date" msgstr "Date de fin" #: club/views.py:178 core/templates/core/user_stats.jinja:27 -#: counter/views.py:964 +#: counter/views.py:984 msgid "Product" msgstr "Produit" @@ -1073,120 +1074,130 @@ msgstr "adresse des parents" msgid "is subscriber viewable" msgstr "profil visible par les cotisants" -#: core/models.py:285 +#: core/models.py:173 +msgid "banned from buying alcohol" +msgstr "Interdit d'achat d'alcool" + +#: core/models.py:176 +#, fuzzy +#| msgid "Designates whether this user is a superuser. " +msgid "Designates whether this user is denyed from buying alchool. " +msgstr "Est-ce que l'utilisateur est super-utilisateur." + +#: core/models.py:292 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/models.py:413 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 +#: core/models.py:463 msgid "Visitor" msgstr "Visiteur" -#: core/models.py:461 +#: core/models.py:468 msgid "define if we show a users stats" msgstr "Definit si l'on montre les statistiques de l'utilisateur" -#: core/models.py:463 +#: core/models.py:470 msgid "Show your account statistics to others" msgstr "Montrez vos statistiques de compte aux autres" -#: core/models.py:470 +#: core/models.py:477 msgid "file name" msgstr "nom du fichier" -#: core/models.py:471 core/models.py:606 +#: core/models.py:478 core/models.py:613 msgid "parent" msgstr "parent" -#: core/models.py:472 core/models.py:482 +#: core/models.py:479 core/models.py:489 msgid "file" msgstr "fichier" -#: core/models.py:473 +#: core/models.py:480 msgid "owner" msgstr "propriétaire" -#: core/models.py:474 core/models.py:612 +#: core/models.py:481 core/models.py:619 msgid "edit group" msgstr "groupe d'édition" -#: core/models.py:475 core/models.py:613 +#: core/models.py:482 core/models.py:620 msgid "view group" msgstr "groupe de vue" -#: core/models.py:476 +#: core/models.py:483 msgid "is folder" msgstr "est un dossier" -#: core/models.py:477 +#: core/models.py:484 msgid "mime type" msgstr "type mime" -#: core/models.py:478 +#: core/models.py:485 msgid "size" msgstr "taille" -#: core/models.py:510 +#: core/models.py:517 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 +#: core/models.py:520 core/models.py:525 msgid "Loop in folder tree" msgstr "Boucle dans l'arborescence des dossiers" -#: core/models.py:522 +#: core/models.py:529 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 +#: core/models.py:533 msgid "Duplicate file" msgstr "Un fichier de ce nom existe déjà" -#: core/models.py:536 +#: core/models.py:543 msgid "You must provide a file" msgstr "Vous devez fournir un fichier" -#: core/models.py:561 +#: core/models.py:568 msgid "Folder: " msgstr "Dossier : " -#: core/models.py:563 +#: core/models.py:570 msgid "File: " msgstr "Fichier : " -#: core/models.py:605 core/models.py:609 +#: core/models.py:612 core/models.py:616 msgid "page name" msgstr "nom de la page" -#: core/models.py:610 +#: core/models.py:617 msgid "owner group" msgstr "groupe propriétaire" -#: core/models.py:641 +#: core/models.py:648 msgid "Duplicate page" msgstr "Une page de ce nom existe déjà" -#: core/models.py:647 +#: core/models.py:654 msgid "Loop in page tree" msgstr "Boucle dans l'arborescence des pages" -#: core/models.py:754 +#: core/models.py:761 msgid "revision" msgstr "révision" -#: core/models.py:755 +#: core/models.py:762 msgid "page title" msgstr "titre de la page" -#: core/models.py:756 +#: core/models.py:763 msgid "page content" msgstr "contenu de la page" @@ -1289,7 +1300,7 @@ msgstr "Confirmation" #: core/templates/core/delete_confirm.jinja:14 #: core/templates/core/file_delete_confirm.jinja:14 -#: counter/templates/counter/counter_click.jinja:76 +#: counter/templates/counter/counter_click.jinja:93 msgid "Cancel" msgstr "Annuler" @@ -1414,11 +1425,20 @@ msgstr "Né le : " msgid "Promo: " msgstr "Promo : " -#: core/templates/core/macros.jinja:39 launderette/models.py:129 +#: 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:50 +#: core/templates/core/macros.jinja:55 #: launderette/templates/launderette/launderette_admin.jinja:20 msgid "Tokens" msgstr "Jetons" @@ -1621,7 +1641,7 @@ msgstr "Résultat de la recherche" msgid "Users" msgstr "Utilisateurs" -#: core/templates/core/search.jinja:18 core/views/user.py:158 +#: core/templates/core/search.jinja:18 core/views/user.py:153 #: counter/templates/counter/stats.jinja:17 msgid "Clubs" msgstr "Clubs" @@ -1647,7 +1667,7 @@ 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:12 +#: counter/templates/counter/cash_summary_list.jinja:17 #: counter/templates/counter/last_ops.jinja:10 msgid "Refillings" msgstr "Rechargements" @@ -1662,7 +1682,7 @@ msgstr "Achat sur compte utilisateur" msgid "Eboutic invoices" msgstr "Facture eboutic" -#: core/templates/core/user_account.jinja:50 counter/views.py:470 +#: core/templates/core/user_account.jinja:50 counter/views.py:473 msgid "Etickets" msgstr "" @@ -1706,21 +1726,11 @@ msgstr "Profil de %(user_name)s" msgid "Option: " msgstr "Filière : " -#: core/templates/core/user_detail.jinja:59 -#, python-format -msgid "Subscribed until %(subscription_end)s" -msgstr "Cotisant jusqu'au %(subscription_end)s" - -#: core/templates/core/user_detail.jinja:60 -#: core/templates/core/user_edit.jinja:39 -msgid "Account number: " -msgstr "Numero de compte : " - -#: core/templates/core/user_detail.jinja:69 +#: core/templates/core/user_detail.jinja:68 msgid "Not subscribed" msgstr "Non cotisant" -#: core/templates/core/user_detail.jinja:71 +#: core/templates/core/user_detail.jinja:70 #: subscription/templates/subscription/subscription.jinja:4 #: subscription/templates/subscription/subscription.jinja:8 msgid "New subscription" @@ -1830,7 +1840,7 @@ msgstr "Outils utilisateurs" msgid "Sith management" msgstr "Gestion de Sith" -#: core/templates/core/user_tools.jinja:14 core/views/user.py:164 +#: core/templates/core/user_tools.jinja:14 core/views/user.py:159 msgid "Groups" msgstr "Groupes" @@ -1843,8 +1853,8 @@ msgstr "Fusionner deux utilisateurs" msgid "Subscriptions" msgstr "Cotisations" -#: core/templates/core/user_tools.jinja:23 counter/views.py:440 -#: counter/views.py:589 +#: core/templates/core/user_tools.jinja:23 counter/views.py:443 +#: counter/views.py:592 msgid "Counters" msgstr "Comptoirs" @@ -1865,11 +1875,11 @@ msgid "Product types management" msgstr "Gestion des types de produit" #: core/templates/core/user_tools.jinja:30 -#: counter/templates/counter/cash_summary_list.jinja:18 counter/views.py:460 +#: counter/templates/counter/cash_summary_list.jinja:23 counter/views.py:463 msgid "Cash register summaries" msgstr "Relevés de caisse" -#: core/templates/core/user_tools.jinja:36 core/views/user.py:146 +#: 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:48 @@ -1954,7 +1964,8 @@ msgstr "client" msgid "customers" msgstr "clients" -#: counter/models.py:46 counter/templates/counter/counter_click.jinja:46 +#: 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" @@ -2144,54 +2155,57 @@ msgstr "Liste des relevés de caisse" msgid "Theoric sums" msgstr "Sommes théoriques" -#: counter/templates/counter/cash_summary_list.jinja:31 counter/views.py:703 +#: counter/templates/counter/cash_summary_list.jinja:36 counter/views.py:706 msgid "Emptied" msgstr "Coffre vidé" -#: counter/templates/counter/cash_summary_list.jinja:43 +#: counter/templates/counter/cash_summary_list.jinja:48 msgid "yes" msgstr "oui" -#: counter/templates/counter/cash_summary_list.jinja:54 +#: 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:34 +#: counter/templates/counter/counter_click.jinja:35 #: launderette/templates/launderette/launderette_admin.jinja:8 msgid "Selling" msgstr "Vente" -#: counter/templates/counter/counter_click.jinja:37 +#: 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:40 +#: 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:43 +#: 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:52 -#: counter/templates/counter/counter_click.jinja:86 +#: 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:54 +#: 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:71 +#: counter/templates/counter/counter_click.jinja:88 msgid "Finish" msgstr "Terminer" -#: counter/templates/counter/counter_click.jinja:80 +#: counter/templates/counter/counter_click.jinja:97 msgid "Refilling" msgstr "Rechargement" @@ -2264,7 +2278,7 @@ msgstr "Nouveau eticket" 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:465 +#: counter/templates/counter/invoices_call.jinja:4 counter/views.py:468 msgid "Invoices call" msgstr "Appels à facture" @@ -2360,89 +2374,89 @@ msgstr "L'utilisateur n'est pas barman." msgid "Bad location, someone is already logged in somewhere else" msgstr "Mauvais comptoir, quelqu'un est déjà connecté ailleurs" -#: counter/views.py:310 +#: counter/views.py:313 msgid "END" msgstr "FIN" -#: counter/views.py:312 +#: counter/views.py:315 msgid "CAN" msgstr "ANN" -#: counter/views.py:342 +#: counter/views.py:345 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 +#: counter/views.py:438 msgid "Counter administration" msgstr "Administration des comptoirs" -#: counter/views.py:445 +#: counter/views.py:448 msgid "Products" msgstr "Produits" -#: counter/views.py:450 +#: counter/views.py:453 msgid "Archived products" msgstr "Produits archivés" -#: counter/views.py:455 +#: counter/views.py:458 msgid "Product types" msgstr "Types de produit" -#: counter/views.py:586 +#: counter/views.py:589 msgid "Parent product" msgstr "Produit parent" -#: counter/views.py:587 +#: counter/views.py:590 msgid "Buying groups" msgstr "Groupes d'achat" -#: counter/views.py:682 +#: counter/views.py:685 msgid "10 cents" msgstr "10 centimes" -#: counter/views.py:683 +#: counter/views.py:686 msgid "20 cents" msgstr "20 centimes" -#: counter/views.py:684 +#: counter/views.py:687 msgid "50 cents" msgstr "50 centimes" -#: counter/views.py:685 +#: counter/views.py:688 msgid "1 euro" msgstr "1 €" -#: counter/views.py:686 +#: counter/views.py:689 msgid "2 euros" msgstr "2 €" -#: counter/views.py:687 +#: counter/views.py:690 msgid "5 euros" msgstr "5 €" -#: counter/views.py:688 +#: counter/views.py:691 msgid "10 euros" msgstr "10 €" -#: counter/views.py:689 +#: counter/views.py:692 msgid "20 euros" msgstr "20 €" -#: counter/views.py:690 +#: counter/views.py:693 msgid "50 euros" msgstr "50 €" -#: counter/views.py:691 +#: counter/views.py:694 msgid "100 euros" msgstr "100 €" -#: counter/views.py:692 counter/views.py:694 counter/views.py:696 -#: counter/views.py:698 counter/views.py:700 +#: counter/views.py:695 counter/views.py:697 counter/views.py:699 +#: counter/views.py:701 counter/views.py:703 msgid "Check amount" msgstr "Montant du chèque" -#: counter/views.py:693 counter/views.py:695 counter/views.py:697 -#: counter/views.py:699 counter/views.py:701 +#: counter/views.py:696 counter/views.py:698 counter/views.py:700 +#: counter/views.py:702 counter/views.py:704 msgid "Check quantity" msgstr "Nombre de chèque" From c9005e2c313ae6f3c7f110204995b5e0bd716e20 Mon Sep 17 00:00:00 2001 From: klmp200 Date: Sat, 15 Oct 2016 19:58:51 +0200 Subject: [PATCH 3/9] Fix for etickets --- counter/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/counter/views.py b/counter/views.py index 5eb52709..d2d8bbfe 100644 --- a/counter/views.py +++ b/counter/views.py @@ -1019,7 +1019,8 @@ class EticketPDFView(CanViewMixin, DetailView): self.object = self.get_object() eticket = self.object.product.eticket user = self.object.customer.user - code = "%s %s %s" % (self.object.customer.user.id, self.object.product.id, self.object.quantity) + print(self.object) + code = "%s %s %s %s" % (self.object.customer.user.id, self.object.product.id, self.object.id, self.object.quantity) code += " " + eticket.get_hash(code)[:8].upper() response = HttpResponse(content_type='application/pdf') response['Content-Disposition'] = 'filename="eticket.pdf"' From 132bae72a753ba0022688a5da9a3cc19aaa30517 Mon Sep 17 00:00:00 2001 From: klmp200 Date: Sun, 16 Oct 2016 00:23:13 +0200 Subject: [PATCH 4/9] Fix club account name display for clubs --- club/templates/club/club_tools.jinja | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/club/templates/club/club_tools.jinja b/club/templates/club/club_tools.jinja index ebae977c..1c615952 100644 --- a/club/templates/club/club_tools.jinja +++ b/club/templates/club/club_tools.jinja @@ -22,7 +22,7 @@

{% trans %}Accouting: {% endtrans %}

{% endif %} From 1c97c8a74fa350a42b0bc53b4408ad5f07112e35 Mon Sep 17 00:00:00 2001 From: klmp200 Date: Sun, 16 Oct 2016 02:47:21 +0200 Subject: [PATCH 5/9] Swag dropdown on user account + autofocus for refillings on counters --- core/templates/core/user_account.jinja | 92 +++++++++++-------- core/templates/core/user_account_detail.jinja | 58 ++++++------ counter/templates/counter/counter_click.jinja | 5 +- counter/views.py | 3 + 4 files changed, 89 insertions(+), 69 deletions(-) diff --git a/core/templates/core/user_account.jinja b/core/templates/core/user_account.jinja index 3b459fc1..1ecaa8d9 100644 --- a/core/templates/core/user_account.jinja +++ b/core/templates/core/user_account.jinja @@ -1,29 +1,31 @@ {% extends "core/base.jinja" %} {% macro monthly(obj) %} - - - - - - - - - - {% for array in obj %} - {% for tuple in array %} - {% if tuple[0] != 0 %} - {% set link=url('core:user_account_detail', user_id=profile.id, year=tuple[1].year, month=tuple[1].month) %} +
+
{% trans %}Year{% endtrans %}{% trans %}Month{% endtrans %}{% trans %}Total{% endtrans %}
+ - - - + + + - {% endif %} + + + {% for array in obj %} + {% for tuple in array %} + {% if tuple[0] != 0 %} + {% set link=url('core:user_account_detail', user_id=profile.id, year=tuple[1].year, month=tuple[1].month) %} + + + + + + {% endif %} + {% endfor %} {% endfor %} - {% endfor %} - -
{{ tuple[1].year }}{{ tuple[1]|date("E") }}{{ tuple[0] }} €{% trans %}Year{% endtrans %}{% trans %}Month{% endtrans %}{% trans %}Total{% endtrans %}
{{ tuple[1].year }}{{ tuple[1]|date("E") }}{{ tuple[0] }} €
+ + + {% endmacro %} {% block title %} @@ -34,30 +36,42 @@ {% if customer %}

{% trans %}User account{% endtrans %}

{% trans %}Amount: {% endtrans %}{{ customer.amount }} €

+
{% if customer.refillings.exists() %} -

{% trans %}Refillings{% endtrans %}

- {{ monthly(refilling_month) }} -{% endif %} -{% if customer.buyings.exists() %} -

{% trans %}Account buyings{% endtrans %}

- {{ monthly(buyings_month) }} -{% endif %} -{% if customer.user.invoices.exists() %} -

{% trans %}Eboutic invoices{% endtrans %}

- {{ monthly(invoices_month) }} -{% endif %} -{% if etickets %} -

{% trans %}Etickets{% endtrans %}

- -{% endif %} + {% if customer.buyings.exists() %} +
{% trans %}Account buyings{% endtrans %}
+ {{ monthly(buyings_month) }} + {% endif %} +
{% trans %}Refillings{% endtrans %}
+ {{ monthly(refilling_month) }} + {% endif %} + {% if customer.user.invoices.exists() %} +
{% trans %}Eboutic invoices{% endtrans %}
+ {{ monthly(invoices_month) }} + {% endif %} + {% if etickets %} +

{% trans %}Etickets{% endtrans %}

+
+ +
+ {% endif %} +
{% else %}

{% trans %}User has no account{% endtrans %}

{% endif %} {% endblock %} +{% block script %} +{{ super() }} + +{% endblock %} diff --git a/core/templates/core/user_account_detail.jinja b/core/templates/core/user_account_detail.jinja index 5c74579d..e73c346f 100644 --- a/core/templates/core/user_account_detail.jinja +++ b/core/templates/core/user_account_detail.jinja @@ -9,35 +9,6 @@

{% trans %}User account{% endtrans %}

{% trans %}Amount: {% endtrans %}{{ customer.amount }} €

{% trans %}Back{% endtrans %}

-{% if customer.refillings.exists() %} -

{% trans %}Refillings{% endtrans %}

- - - - - - - - - - - - {% for i in customer.refillings.order_by('-date').filter( - date__year=year, date__month=month) %} - - - - - - - {% if i.is_owned_by(user) %} - - {% endif %} - -{% endfor %} - -
{% trans %}Date{% endtrans %}{% trans %}Counter{% endtrans %}{% trans %}Barman{% endtrans %}{% trans %}Amount{% endtrans %}{% trans %}Payment method{% endtrans %}
{{ i.date|localtime|date(DATETIME_FORMAT) }} - {{ i.date|localtime|time(DATETIME_FORMAT) }}{{ i.counter }}{{ i.operator.get_display_name() }}{{ i.amount }} €{{ i.get_payment_method_display() }}Delete
-{% endif %} {% if customer.buyings.exists() %}

{% trans %}Account buyings{% endtrans %}

@@ -71,6 +42,35 @@
{% endif %} +{% if customer.refillings.exists() %} +

{% trans %}Refillings{% endtrans %}

+ + + + + + + + + + + + {% for i in customer.refillings.order_by('-date').filter( + date__year=year, date__month=month) %} + + + + + + + {% if i.is_owned_by(user) %} + + {% endif %} + +{% endfor %} + +
{% trans %}Date{% endtrans %}{% trans %}Counter{% endtrans %}{% trans %}Barman{% endtrans %}{% trans %}Amount{% endtrans %}{% trans %}Payment method{% endtrans %}
{{ i.date|localtime|date(DATETIME_FORMAT) }} - {{ i.date|localtime|time(DATETIME_FORMAT) }}{{ i.counter }}{{ i.operator.get_display_name() }}{{ i.amount }} €{{ i.get_payment_method_display() }}Delete
+{% endif %} {% if customer.user.invoices.exists() %}

{% trans %}Eboutic invoices{% endtrans %}

diff --git a/counter/templates/counter/counter_click.jinja b/counter/templates/counter/counter_click.jinja index a086aa6a..0026bf1c 100644 --- a/counter/templates/counter/counter_click.jinja +++ b/counter/templates/counter/counter_click.jinja @@ -51,7 +51,7 @@ {% csrf_token %} - +

{% trans %}Basket: {% endtrans %}

@@ -174,6 +174,9 @@ $( function() { $( function() { $("#bar_ui").accordion({ heightStyle: "content", + activate: function(event, ui){ + $(".focus").focus(); + } }); $("#products").tabs(); }); diff --git a/counter/views.py b/counter/views.py index d2d8bbfe..303c47ff 100644 --- a/counter/views.py +++ b/counter/views.py @@ -63,6 +63,9 @@ class RefillForm(forms.ModelForm): class Meta: model = Refilling fields = ['amount', 'payment_method', 'bank'] + widgets = { + 'amount': forms.NumberInput(attrs={'class':'focus'},) + } class CounterTabsMixin(TabedViewMixin): def get_tabs_title(self): From 2daaf992f2ca5749b0ce76e034a19c38e5dd5c78 Mon Sep 17 00:00:00 2001 From: klmp200 Date: Sun, 16 Oct 2016 03:45:06 +0200 Subject: [PATCH 6/9] Add groups, allow to ban users from counters and from buying alcohol --- .../migrations/0005_user_is_banned_alcohol.py | 19 -- core/models.py | 15 +- core/views/forms.py | 2 +- core/views/user.py | 2 +- counter/views.py | 3 + locale/fr/LC_MESSAGES/django.mo | Bin 36982 -> 36913 bytes locale/fr/LC_MESSAGES/django.po | 265 +++++++++--------- sith/settings.py | 12 + 8 files changed, 155 insertions(+), 163 deletions(-) delete mode 100644 core/migrations/0005_user_is_banned_alcohol.py diff --git a/core/migrations/0005_user_is_banned_alcohol.py b/core/migrations/0005_user_is_banned_alcohol.py deleted file mode 100644 index 4e143899..00000000 --- a/core/migrations/0005_user_is_banned_alcohol.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('core', '0004_user_godfathers'), - ] - - operations = [ - migrations.AddField( - model_name='user', - name='is_banned_alcohol', - field=models.BooleanField(help_text='Designates whether this user is denyed from buying alchool. ', verbose_name='banned from buying alcohol', default=False), - ), - ] diff --git a/core/models.py b/core/models.py index 0ce644ea..7638ae14 100644 --- a/core/models.py +++ b/core/models.py @@ -169,13 +169,6 @@ class User(AbstractBaseUser): parent_address = models.CharField(_("parent address"), max_length=128, blank=True, default="") is_subscriber_viewable = models.BooleanField(_("is subscriber viewable"), default=True) godfathers = models.ManyToManyField('User', related_name='godchildren', blank=True) - is_banned_alcohol = models.BooleanField( - _('banned from buying alcohol'), - default=False, - help_text=_( - 'Designates whether this user is denyed from buying alchool. ' - ), - ) objects = UserManager() @@ -248,6 +241,14 @@ class User(AbstractBaseUser): from club.models import Club return Club.objects.filter(unix_name=settings.SITH_LAUNDERETTE_MANAGER['unix_name']).first().get_membership_for(self) + @property + def is_banned_alcohol(self): + return self.groups.filter(name=settings.SITH_GROUPS['banned-alcohol']['name']).exists() + + @property + def is_banned_counter(self): + return self.groups.filter(name=settings.SITH_GROUPS['banned-from-counters']['name']).exists() + def save(self, *args, **kwargs): create = False with transaction.atomic(): diff --git a/core/views/forms.py b/core/views/forms.py index 898b7e6b..27226d25 100644 --- a/core/views/forms.py +++ b/core/views/forms.py @@ -127,7 +127,7 @@ class UserProfileForm(forms.ModelForm): fields = ['first_name', 'last_name', 'nick_name', 'email', 'date_of_birth', 'profile_pict', 'avatar_pict', 'scrub_pict', 'sex', 'second_email', 'address', 'parent_address', 'phone', 'parent_phone', 'tshirt_size', 'role', 'department', 'dpt_option', 'semester', 'quote', 'school', 'promo', - 'forum_signature', 'is_subscriber_viewable', 'is_banned_alcohol'] + 'forum_signature', 'is_subscriber_viewable'] widgets = { 'date_of_birth': SelectDate, 'profile_pict': forms.ClearableFileInput, diff --git a/core/views/user.py b/core/views/user.py index a88cd0b2..0ed37567 100644 --- a/core/views/user.py +++ b/core/views/user.py @@ -319,7 +319,7 @@ class UserUpdateProfileView(UserTabsMixin, CanEditMixin, UpdateView): form_class = UserProfileForm current_tab = "edit" edit_once = ['profile_pict', 'date_of_birth', 'first_name', 'last_name'] - board_only = ['is_banned_alcohol'] + board_only = [] def remove_restricted_fields(self, request): """ diff --git a/counter/views.py b/counter/views.py index 303c47ff..da8c53a8 100644 --- a/counter/views.py +++ b/counter/views.py @@ -284,6 +284,9 @@ class CounterClick(CounterTabsMixin, DetailView): if product.limit_age >= 18 and self.customer.user.is_banned_alcohol: request.session['not_allowed'] = True return False + if self.customer.user.is_banned_counter: + request.session['not_allowed'] = True + return False if self.customer.user.date_of_birth and self.customer.user.get_age() < product.limit_age: # Check if affordable request.session['too_young'] = True return False diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo index 693a224d643f08d2f78f1d8d0c72ed8d4ffceb28..da7a8d6b274671d3431e849a7b4af0a3be6ea0ed 100644 GIT binary patch delta 11455 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 delta 11519 zcmYk?33!fI`p5C-%_5T6f+QkH2w5c}q@@vSG}6Yt6;ZoJ?OUfQ?OVFow>}tjYN%36 zE!9%0mVc?D^{=H$tCT85sg5qDDD(Y!?zygcuj`%9*`9OmbD#6PGIPzl%L4vb7T`Zy zF=&CqXJ~-qRKszV949BxaXwE}tK)2I;5fB$JI3Hytb+f>c#LT1I8m5|(O6*i!>ZIv ztUezjslQ`>j1M`E-#JCWM@RW=$0>yoSQ@LCH8GTWDu!S~Yj0w<#&Wc`Gkc@P4YU4n z=JS|J`>U9O?_xUZJEtim(-2BH>d3+ZEJ97R3d`dLtbn^P48Oq2_>HySz;No$!`?>9 zpq{UUWib{>tdoM8Cmk!ZzSERKFm}d@*h3vS43&{dsEka-bex9~xEr;jqo@V$qQ-|c z@{TG3gQ%yW=F7w~*c!E=PUt6Sr$2?pxEK|{ag4-Es0Z$%77S&OQXPxhNh)f=4AjoE zQGvEVE&Lej`S#Xcgv#6?RAxpsCjT1nEDc)l71V^UqjvPBxe4{aF4V&NQO_MhjX#N6 z@GM5-1=QucgBln0h&L_)wZT->WzT(t{3|s*Y0xbni8_k;s0WvzcKkMKp{*E&J5f9S z(maRS`8CwI-%$bGMa|>O@itTrHD5Kl+Qse^d@TIwWz>1So;UqUGM*H3Pl**%zJPgW>BAkX}A>? z*!QSFZ=eGD4VBt^sMH2G_v+!Og({*l6N~CkMUBry&GRt&RcJy%DQba=G!M0dHW-V& zP-pu$)DEYh`WK;|TZa#Jh7XPs72sY}CJ&pZPyt*(t$VdO`A?>Bg9fFlN(*nHc+`WL zs0VUT541G%%|g`gL`R%}eNa0+jWKxM`tM*>>Y**Y{@PfNdTL9*cUgK`M-gh_{-_-f zN2Tz2)Xrw2&Uz8*F04f@_mO4c5O4b(aoVzyBl!Eqn$8@e)2b z8`Ms2U;zGsn)pvt0KPnLqDa)8sD+xRfz_L!0&8pbu>L`)yD`FR_dCy8!^@~hXL}va zQq->ybph1BbU}Mw*kE33z4j71?ti2m*r@c_m zjX>R%aaamh7Lb4K@EsaL@k3NV`%n`fLGADaDxfn~zhw2F&0DDP&SQ>~2*IeMtc$vA zEl>e;LS^y^RK`d9DQJf;pdy-$nrH!P!6m2%SD0&10d2%O_yKB%XHXmY1(kt&sJ9{D zac`ku)ch4uKU^`WdHk6a6j3A8Z+%A_FdW0Fzl@!5E-K;+sD*#QEQ~7TZv-qrwGYMG zIM3R*ViNUJn2b(aZ+r@-vcB^;1wHr-*1~^a9_~i%AgG;}fe=ifUKX`LeN@2RP#GM9 z+TmntpN9I)Ux~rE2er}tR{st|^!{I@5K6~&^A?t+?rZNIMS0Z3l~Hd+EUG`<+H+7x z))K=oAIo4T)Q0+?e!3^4eixRYHnIUL>is`PK>=LE47`Emuto>(mnj4zOEg~e>{a@6m;2UVInR>O|%oWz{jYgIADH; zx@7;48h6Y*Y3<+QP}4#|s#^HW!fR{Rvf9<$xXYb$R0?eacf=byg?1EpR zE>Rj4-ZZB(>dw4@Pvc%>h?CKkdx4X27`~5MxMnx+7qJL4sZYQZe5V`vS1P}vK`A_s zHVKfL9fRY)Pze= z5x!+^vi6TqJKc}k(Mi-q=TH-0!U+5sHILKN%S0F|!&Ol2)lqjT34>YR$)NBc^{9xO zqXxD`Mcy6tK!4OF9fBJ7tkqvZJwM;-%TUj4L)(#r$S(6!>py}T|Bau5CO(JC zz)z?h|BAW%NplP9P|xP?s~Xq~WAHgl!}(Yh_h2-hM&15jQRBk;cg=PMc5>ZAR^U8!C1CP=S4B{l~5UYwN#=O6fIJitnT5snFM(Cki!BElk1`vm<8f z{V$==kdBR*h(92kcEbC44;EuJ>Lald&P3gjWvCr)KwZiMr~po)7QBoK{08bsZ&^L4 zzn8Hx7_Ij|iGt3o8CJmpjK}_{30|`P8JIzR0cywlFcVLrQd@d}w{RTRpq^;;)~L%_ zhMag{%5w+77QGrfDZDbAx;bPQV zveeo)pfa@$HU3ldYk@B)#N#>C1inGuj>1tB)Iu$kg<7~V>ayjcChCg1<-Jim9E>`$ z64Yz95H)T!YJ;0F0S^u$|C;DJ4NWn4us1LdHBljIfey5=|3vMZL#P1$ zh009jpTVoEzkbn9QqWFHjqu)r2vj`#7CSFW~B3q8CuSNZ{x*4^j!&X0z zn&@ZL`y4phtH+~`CL8s93)GPmpkA{M<}g%%Q&9mg@LR(Y)Y-pnu0u_*5f$lHt8YhT zW)CVeCsB9hDr(}uG2RbO1*|~5HkQY1vo)5Z-qrg311abiYP>Z}GnZKVI@AQaQ9spR zm_J(oedK>IcPfqbHqa3hsCPvzRDybbDptou7=c@njQO1d6cqWFs5@{TwexGJRQ`&Z z;EowS&I>pemGXM1Bg#STxCQDCbux=l&%c1$z-&}tt1wmX{}$^whl=pus1!$y_s%xm zY>Ddcj#_xUISC7?&%%!Q4Q627XS}27h1%FS)WUvipN%1U|KFxi5jUbD{TOxmj-hsR z9d+66p)P6c-@L$TqcYVPi?KN>6Khc8Hli}S&HMyIsUNfYxA@@i|0~w;2bN_(;IrO? z5vV|Fpmx?6wZIIF!g*F-je4y%pf2$yRABF89o%8{^Vo#?WmF(_O31(dhO1ZNrL+Jw zaaYs?!%z#3wR#EaPP~ZP;Z$>;wJ*VR+TTRIc1KW`?HX#ndl-+w&v_Y7e2)Ap<&9}j zLQ3C(1kn`2 zCU}>t7FMO+9CdcRuqzg$?#M1o!K2s!@1O#yH_`j=1Klv0`ebt*>N0+bdM@yJ??}=y zi@Luvg;WZ!VtsrU`{D)E4)R{`c9f4g%eJVW)Ul|A7om2z8eWyg%0@EncXGUflZQ%4TU3gkK>b9HM4kCKtd0{=N45m@I;};eemhpePf(fq8nv-& zn1<0WdjANuLbVTgP^WV?1)bpr%*DN^Bk@h*=3|W62$iAksPWTKN3;|b&^lDWJ5YCM z4=N)EQ2`yn5AXuU;Omn)D%N+lPzb}bsFYqoO;q6}FIABkKt0y1fq~R(qQ=!hEtG2Q z^^uG2WMfO*h`K{JQD@%fW$qVFKz}xck0{8Ss9&<=SG-h@$4=B;)MdMbPhr(pz5iKl zGESqu6Z>NRln4Kx4rev0{vAGn&8K>oZ!zXj-)r^zQ#pTKo)l)$FI^7mObam>dtnIn zGl!s3I~uj)=gdi{=cl4lyBI_9J=D0JsCoC9$F2SQY2;r4T%kc{eFwE*)#;wKP-mBl z3MdzYuoddkwXu2^tM|Y#+6SQm9fb<41ohl>R6ui3>n!wJ$5PZnD^LM##YT7lb;*1) zyamglCa#Jamw;Lz8x`QAsGsmcvnPgAFUCk5hkCoFqXO_Rr=ZlVv4(A^K=z;_K5m{u zMSceL;13vv*H8i7Le1mM^nPN?V>s1J)VL<7arqdE9gz9_PEQJYZ~I{&jz>jUf?8-U zYNAD`oxX(%Yzu0~AEL(XLGADWYJsz;3|&UedmFWZd#Lfjvy>^$zbpm4&#|bTXQFn} z3bkM-)Pn<1fj*7;eRu&iZXxRZUx}J$3u?!QP=TK?&!ZN;j%D$8ET{KBaJDx=Mbr*z zp;FZdwQvj6PTOD^Y=_!mFVwg});_}8C!of^f_i?2`5Njcc(K(tqhAwjr=SNuMn!f2 z)&3PK)!(6Z_=EYI88pXRpfc*nVzC@%nJrMM?|{lo7gXkkpfWvaj=lf$Y0!hKusm)- z1@Z|hu;Zwme~mhlOQ^tZp~l@sr8aD?7kEX~*~gmcsQzYVJ}NWq=Ms)4=thGah>CcO zyFD>3B9UL+mOic!E&8OmR}!1~lHHV~*y@kc*O0#EwCD5PPI(H>#sIfpQl*$AM(ER# zmL$G0d=K$$>&{B*?(6GbOnTTC8M0zM7oqOLx~Nr$w}}=kz}s>eI!&k{nkyn${w|$+Z6LMyA9yE<>#*{RjDe&Nq*G zD!pU*R;2tJcH#Tq&s!8~Q!jRhr__sR%?N!GXt|Hq-1RBZDUsHCnAUi8+vg7T+LZNg z$9T#u-0LZ^+0AYA7+Tw?hi?;W3&WL+)Mtmsga6ETb5mnO6KvFAw_j?0WOZum=`Ca9 z2T`x%?o3Szji)q~)|&41)Yy&>QEO&%>C*I}J{*5!#94dxG1>;xcAk0$-&E@QY_$Fm z>KCa0#iEzHUy% zON{=L-tSQ_3)e6sJ=NFC?U9~Tv#veflg>E4Evc79eO~4JySqF++Sl3Lo}M4kk-pQk z9iaagzU|zIjA-AlZc0YJFT)+35nE8e2))36(Yprs*i8C^ZwP&9e78|UBU1Zc(d}mVLim4jHX9eFss7EpGe?Jwh-iW@(tYatT+wSxA z5`6vK<@MUsnT%=rKXcun{x81#iTvR6808d7*=~AfobPeBZD#C{o3!au z1s~zr-h98HyoI(_lsDm8z6~f}x3T-pO0>O2xgP4Hzs>YHz_+KhMbID0_r7~HGuHQ~ zdp&bN^-k7T&3y2X{l~-Z@cMCOyV1kn*UpPP8R#yqA6GM$mOeISpgp(F>ZP%q`*r;| zUw8M<`Zob#fCQK$&0jvy2G=gBO+{`4{ZEX?t-kilwewSGUl|k zUdAnazq2}B&N;rh?wPFU(0|j~lG*_GudMbpV|ex^wena%PbuPX}!H-pU436Cwx34<0jeczplyB|}C$72j{zfRV)`hrO57{Zw#Bc6|NDk7Pdl kUa8*2bz=%fj2kp&;E-|g1C#m\n" "Language-Team: AE info \n" @@ -123,7 +123,7 @@ msgstr "numéro" msgid "journal" msgstr "classeur" -#: accounting/models.py:191 core/models.py:486 core/models.py:764 +#: accounting/models.py:191 core/models.py:487 core/models.py:765 #: counter/models.py:229 counter/models.py:272 counter/models.py:358 #: eboutic/models.py:15 eboutic/models.py:48 msgid "date" @@ -190,7 +190,7 @@ msgstr "Compte" msgid "Company" msgstr "Entreprise" -#: accounting/models.py:204 sith/settings.py:279 +#: accounting/models.py:204 sith/settings.py:287 msgid "Other" msgstr "Autre" @@ -306,7 +306,7 @@ msgstr "Compte en banque : " #: 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_account_detail.jinja:38 #: core/templates/core/user_edit.jinja:18 #: counter/templates/counter/last_ops.jinja:29 #: counter/templates/counter/last_ops.jinja:59 @@ -408,7 +408,7 @@ 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:53 #: core/templates/core/user_account_detail.jinja:81 #: counter/templates/counter/last_ops.jinja:17 msgid "Amount" @@ -448,7 +448,7 @@ msgid "General journal:" msgstr "Classeur : " #: accounting/templates/accounting/journal_details.jinja:18 -#: core/templates/core/user_account.jinja:36 +#: core/templates/core/user_account.jinja:38 #: core/templates/core/user_account_detail.jinja:10 #: counter/templates/counter/counter_click.jinja:32 msgid "Amount: " @@ -474,7 +474,7 @@ 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:50 #: core/templates/core/user_account_detail.jinja:79 #: counter/templates/counter/cash_summary_list.jinja:34 #: counter/templates/counter/last_ops.jinja:14 @@ -484,7 +484,7 @@ msgstr "Date" #: accounting/templates/accounting/journal_details.jinja:30 #: club/templates/club/club_sellings.jinja:22 -#: core/templates/core/user_account_detail.jinja:49 +#: core/templates/core/user_account_detail.jinja:20 #: counter/templates/counter/last_ops.jinja:42 msgid "Label" msgstr "Étiquette" @@ -510,7 +510,7 @@ msgid "Done" msgstr "Effectué" #: accounting/templates/accounting/journal_details.jinja:37 -#: counter/templates/counter/cash_summary_list.jinja:37 counter/views.py:705 +#: counter/templates/counter/cash_summary_list.jinja:37 counter/views.py:711 msgid "Comment" msgstr "Commentaire" @@ -703,14 +703,14 @@ 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 +#: core/templates/core/user_account_detail.jinja:51 +#: counter/templates/counter/cash_summary_list.jinja:33 counter/views.py:78 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 +#: core/templates/core/user_account_detail.jinja:52 #: counter/templates/counter/last_ops.jinja:15 #: counter/templates/counter/last_ops.jinja:40 msgid "Barman" @@ -724,15 +724,15 @@ msgid "Customer" msgstr "Client" #: club/templates/club/club_sellings.jinja:23 -#: core/templates/core/user_account_detail.jinja:50 +#: core/templates/core/user_account_detail.jinja:21 #: 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 +#: core/templates/core/user_account.jinja:10 +#: core/templates/core/user_account_detail.jinja:22 #: counter/templates/counter/cash_summary_list.jinja:35 #: counter/templates/counter/last_ops.jinja:44 #: counter/templates/counter/stats.jinja:18 @@ -740,8 +740,8 @@ 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 +#: core/templates/core/user_account_detail.jinja:23 +#: core/templates/core/user_account_detail.jinja:54 #: counter/templates/counter/last_ops.jinja:18 #: counter/templates/counter/last_ops.jinja:45 msgid "Payment method" @@ -786,16 +786,16 @@ msgstr "Propriétés" msgid "Select user" msgstr "Choisir un utilisateur" -#: club/views.py:163 counter/views.py:903 +#: club/views.py:163 counter/views.py:909 msgid "Begin date" msgstr "Date de début" -#: club/views.py:164 counter/views.py:904 +#: club/views.py:164 counter/views.py:910 msgid "End date" msgstr "Date de fin" #: club/views.py:178 core/templates/core/user_stats.jinja:27 -#: counter/views.py:984 +#: counter/views.py:990 msgid "Product" msgstr "Produit" @@ -1074,130 +1074,120 @@ msgstr "adresse des parents" msgid "is subscriber viewable" msgstr "profil visible par les cotisants" -#: core/models.py:173 -msgid "banned from buying alcohol" -msgstr "Interdit d'achat d'alcool" - -#: core/models.py:176 -#, fuzzy -#| msgid "Designates whether this user is a superuser. " -msgid "Designates whether this user is denyed from buying alchool. " -msgstr "Est-ce que l'utilisateur est super-utilisateur." - -#: core/models.py:292 +#: core/models.py:293 msgid "A user with that username already exists" msgstr "Un utilisateur de ce nom d'utilisateur existe déjà" -#: core/models.py:413 core/templates/core/macros.jinja:17 +#: core/models.py:414 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:463 +#: core/models.py:464 msgid "Visitor" msgstr "Visiteur" -#: core/models.py:468 +#: core/models.py:469 msgid "define if we show a users stats" msgstr "Definit si l'on montre les statistiques de l'utilisateur" -#: core/models.py:470 +#: core/models.py:471 msgid "Show your account statistics to others" msgstr "Montrez vos statistiques de compte aux autres" -#: core/models.py:477 +#: core/models.py:478 msgid "file name" msgstr "nom du fichier" -#: core/models.py:478 core/models.py:613 +#: core/models.py:479 core/models.py:614 msgid "parent" msgstr "parent" -#: core/models.py:479 core/models.py:489 +#: core/models.py:480 core/models.py:490 msgid "file" msgstr "fichier" -#: core/models.py:480 +#: core/models.py:481 msgid "owner" msgstr "propriétaire" -#: core/models.py:481 core/models.py:619 +#: core/models.py:482 core/models.py:620 msgid "edit group" msgstr "groupe d'édition" -#: core/models.py:482 core/models.py:620 +#: core/models.py:483 core/models.py:621 msgid "view group" msgstr "groupe de vue" -#: core/models.py:483 +#: core/models.py:484 msgid "is folder" msgstr "est un dossier" -#: core/models.py:484 +#: core/models.py:485 msgid "mime type" msgstr "type mime" -#: core/models.py:485 +#: core/models.py:486 msgid "size" msgstr "taille" -#: core/models.py:517 +#: core/models.py:518 msgid "Character '/' not authorized in name" msgstr "Le caractère '/' n'est pas autorisé dans les noms de fichier" -#: core/models.py:520 core/models.py:525 +#: core/models.py:521 core/models.py:526 msgid "Loop in folder tree" msgstr "Boucle dans l'arborescence des dossiers" -#: core/models.py:529 +#: core/models.py:530 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:533 +#: core/models.py:534 msgid "Duplicate file" msgstr "Un fichier de ce nom existe déjà" -#: core/models.py:543 +#: core/models.py:544 msgid "You must provide a file" msgstr "Vous devez fournir un fichier" -#: core/models.py:568 +#: core/models.py:569 msgid "Folder: " msgstr "Dossier : " -#: core/models.py:570 +#: core/models.py:571 msgid "File: " msgstr "Fichier : " -#: core/models.py:612 core/models.py:616 +#: core/models.py:613 core/models.py:617 msgid "page name" msgstr "nom de la page" -#: core/models.py:617 +#: core/models.py:618 msgid "owner group" msgstr "groupe propriétaire" -#: core/models.py:648 +#: core/models.py:649 msgid "Duplicate page" msgstr "Une page de ce nom existe déjà" -#: core/models.py:654 +#: core/models.py:655 msgid "Loop in page tree" msgstr "Boucle dans l'arborescence des pages" -#: core/models.py:761 +#: core/models.py:762 msgid "revision" msgstr "révision" -#: core/models.py:762 +#: core/models.py:763 msgid "page title" msgstr "titre de la page" -#: core/models.py:763 +#: core/models.py:764 msgid "page content" msgstr "contenu de la page" @@ -1646,47 +1636,47 @@ msgstr "Utilisateurs" msgid "Clubs" msgstr "Clubs" -#: core/templates/core/user_account.jinja:7 +#: core/templates/core/user_account.jinja:8 msgid "Year" msgstr "Année" -#: core/templates/core/user_account.jinja:8 +#: core/templates/core/user_account.jinja:9 msgid "Month" msgstr "Mois" -#: core/templates/core/user_account.jinja:30 +#: core/templates/core/user_account.jinja:32 #: 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.jinja:37 #: 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.jinja:42 #: core/templates/core/user_account_detail.jinja:13 +msgid "Account buyings" +msgstr "Achat sur compte utilisateur" + +#: core/templates/core/user_account.jinja:45 +#: core/templates/core/user_account_detail.jinja:46 #: 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.jinja:49 #: core/templates/core/user_account_detail.jinja:75 msgid "Eboutic invoices" msgstr "Facture eboutic" -#: core/templates/core/user_account.jinja:50 counter/views.py:473 +#: core/templates/core/user_account.jinja:53 counter/views.py:479 msgid "Etickets" msgstr "" -#: core/templates/core/user_account.jinja:58 +#: core/templates/core/user_account.jinja:64 #: core/templates/core/user_account_detail.jinja:103 msgid "User has no account" msgstr "L'utilisateur n'a pas de compte" @@ -1853,8 +1843,8 @@ msgstr "Fusionner deux utilisateurs" msgid "Subscriptions" msgstr "Cotisations" -#: core/templates/core/user_tools.jinja:23 counter/views.py:443 -#: counter/views.py:592 +#: core/templates/core/user_tools.jinja:23 counter/views.py:449 +#: counter/views.py:598 msgid "Counters" msgstr "Comptoirs" @@ -1875,7 +1865,7 @@ 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:463 +#: counter/templates/counter/cash_summary_list.jinja:23 counter/views.py:469 msgid "Cash register summaries" msgstr "Relevés de caisse" @@ -2034,7 +2024,7 @@ 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:278 sith/settings.py:286 +#: sith/settings.py:286 sith/settings.py:294 msgid "Eboutic" msgstr "Eboutic" @@ -2075,8 +2065,8 @@ msgstr "quantité" msgid "Sith account" msgstr "Compte utilisateur" -#: counter/models.py:274 sith/settings.py:271 sith/settings.py:276 -#: sith/settings.py:298 +#: counter/models.py:274 sith/settings.py:279 sith/settings.py:284 +#: sith/settings.py:306 msgid "Credit card" msgstr "Carte bancaire" @@ -2155,7 +2145,7 @@ msgstr "Liste des relevés de caisse" msgid "Theoric sums" msgstr "Sommes théoriques" -#: counter/templates/counter/cash_summary_list.jinja:36 counter/views.py:706 +#: counter/templates/counter/cash_summary_list.jinja:36 counter/views.py:712 msgid "Emptied" msgstr "Coffre vidé" @@ -2278,7 +2268,7 @@ msgstr "Nouveau eticket" 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:468 +#: counter/templates/counter/invoices_call.jinja:4 counter/views.py:474 msgid "Invoices call" msgstr "Appels à facture" @@ -2354,109 +2344,109 @@ msgstr "Pourcentage" msgid "User not found" msgstr "Utilisateur non trouvé" -#: counter/views.py:81 +#: counter/views.py:84 msgid "Cash summary" msgstr "Relevé de caisse" -#: counter/views.py:86 +#: counter/views.py:89 msgid "Last operations" msgstr "Dernières opérations" -#: counter/views.py:120 +#: counter/views.py:123 msgid "Bad credentials" msgstr "Mauvais identifiants" -#: counter/views.py:122 +#: counter/views.py:125 msgid "User is not barman" msgstr "L'utilisateur n'est pas barman." -#: counter/views.py:126 +#: counter/views.py:129 msgid "Bad location, someone is already logged in somewhere else" msgstr "Mauvais comptoir, quelqu'un est déjà connecté ailleurs" -#: counter/views.py:313 +#: counter/views.py:319 msgid "END" msgstr "FIN" -#: counter/views.py:315 +#: counter/views.py:321 msgid "CAN" msgstr "ANN" -#: counter/views.py:345 +#: counter/views.py:351 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:438 +#: counter/views.py:444 msgid "Counter administration" msgstr "Administration des comptoirs" -#: counter/views.py:448 +#: counter/views.py:454 msgid "Products" msgstr "Produits" -#: counter/views.py:453 +#: counter/views.py:459 msgid "Archived products" msgstr "Produits archivés" -#: counter/views.py:458 +#: counter/views.py:464 msgid "Product types" msgstr "Types de produit" -#: counter/views.py:589 +#: counter/views.py:595 msgid "Parent product" msgstr "Produit parent" -#: counter/views.py:590 +#: counter/views.py:596 msgid "Buying groups" msgstr "Groupes d'achat" -#: counter/views.py:685 +#: counter/views.py:691 msgid "10 cents" msgstr "10 centimes" -#: counter/views.py:686 +#: counter/views.py:692 msgid "20 cents" msgstr "20 centimes" -#: counter/views.py:687 +#: counter/views.py:693 msgid "50 cents" msgstr "50 centimes" -#: counter/views.py:688 +#: counter/views.py:694 msgid "1 euro" msgstr "1 €" -#: counter/views.py:689 +#: counter/views.py:695 msgid "2 euros" msgstr "2 €" -#: counter/views.py:690 +#: counter/views.py:696 msgid "5 euros" msgstr "5 €" -#: counter/views.py:691 +#: counter/views.py:697 msgid "10 euros" msgstr "10 €" -#: counter/views.py:692 +#: counter/views.py:698 msgid "20 euros" msgstr "20 €" -#: counter/views.py:693 +#: counter/views.py:699 msgid "50 euros" msgstr "50 €" -#: counter/views.py:694 +#: counter/views.py:700 msgid "100 euros" msgstr "100 €" -#: counter/views.py:695 counter/views.py:697 counter/views.py:699 -#: counter/views.py:701 counter/views.py:703 +#: counter/views.py:701 counter/views.py:703 counter/views.py:705 +#: counter/views.py:707 counter/views.py:709 msgid "Check amount" msgstr "Montant du chèque" -#: counter/views.py:696 counter/views.py:698 counter/views.py:700 -#: counter/views.py:702 counter/views.py:704 +#: counter/views.py:702 counter/views.py:704 counter/views.py:706 +#: counter/views.py:708 counter/views.py:710 msgid "Check quantity" msgstr "Nombre de chèque" @@ -2592,12 +2582,12 @@ msgid "Washing and drying" msgstr "Lavage et séchage" #: launderette/templates/launderette/launderette_book.jinja:27 -#: sith/settings.py:415 +#: sith/settings.py:423 msgid "Washing" msgstr "Lavage" #: launderette/templates/launderette/launderette_book.jinja:31 -#: sith/settings.py:415 +#: sith/settings.py:423 msgid "Drying" msgstr "Séchage" @@ -2672,107 +2662,107 @@ msgstr "Anglais" msgid "French" msgstr "Français" -#: sith/settings.py:268 sith/settings.py:275 sith/settings.py:296 +#: sith/settings.py:276 sith/settings.py:283 sith/settings.py:304 msgid "Check" msgstr "Chèque" -#: sith/settings.py:269 sith/settings.py:277 sith/settings.py:297 +#: sith/settings.py:277 sith/settings.py:285 sith/settings.py:305 msgid "Cash" msgstr "Espèces" -#: sith/settings.py:270 +#: sith/settings.py:278 msgid "Transfert" msgstr "Virement" -#: sith/settings.py:283 +#: sith/settings.py:291 msgid "Belfort" msgstr "Belfort" -#: sith/settings.py:284 +#: sith/settings.py:292 msgid "Sevenans" msgstr "Sevenans" -#: sith/settings.py:285 +#: sith/settings.py:293 msgid "Montbéliard" msgstr "Montbéliard" -#: sith/settings.py:325 +#: sith/settings.py:333 msgid "One semester" msgstr "Un semestre, 15 €" -#: sith/settings.py:330 +#: sith/settings.py:338 msgid "Two semesters" msgstr "Deux semestres, 28 €" -#: sith/settings.py:335 +#: sith/settings.py:343 msgid "Common core cursus" msgstr "Cursus tronc commun, 45 €" -#: sith/settings.py:340 +#: sith/settings.py:348 msgid "Branch cursus" msgstr "Cursus branche, 45 €" -#: sith/settings.py:345 +#: sith/settings.py:353 msgid "Alternating cursus" msgstr "Cursus alternant, 30 €" -#: sith/settings.py:350 +#: sith/settings.py:358 msgid "Honorary member" msgstr "Membre honoraire, 0 €" -#: sith/settings.py:355 +#: sith/settings.py:363 msgid "Assidu member" msgstr "Membre d'Assidu, 0 €" -#: sith/settings.py:360 +#: sith/settings.py:368 msgid "Amicale/DOCEO member" msgstr "Membre de l'Amicale/DOCEO, 0 €" -#: sith/settings.py:365 +#: sith/settings.py:373 msgid "UT network member" msgstr "Cotisant du réseau UT, 0 €" -#: sith/settings.py:370 +#: sith/settings.py:378 msgid "CROUS member" msgstr "Membres du CROUS, 0 €" -#: sith/settings.py:375 +#: sith/settings.py:383 msgid "Sbarro/ESTA member" msgstr "Membre de Sbarro ou de l'ESTA, 15 €" -#: sith/settings.py:383 +#: sith/settings.py:391 msgid "President" msgstr "Président" -#: sith/settings.py:384 +#: sith/settings.py:392 msgid "Vice-President" msgstr "Vice-Président" -#: sith/settings.py:385 +#: sith/settings.py:393 msgid "Treasurer" msgstr "Trésorier" -#: sith/settings.py:386 +#: sith/settings.py:394 msgid "Communication supervisor" msgstr "Responsable com" -#: sith/settings.py:387 +#: sith/settings.py:395 msgid "Secretary" msgstr "Secrétaire" -#: sith/settings.py:388 +#: sith/settings.py:396 msgid "IT supervisor" msgstr "Responsable info" -#: sith/settings.py:389 +#: sith/settings.py:397 msgid "Board member" msgstr "Membre du bureau" -#: sith/settings.py:390 +#: sith/settings.py:398 msgid "Active member" msgstr "Membre actif" -#: sith/settings.py:391 +#: sith/settings.py:399 msgid "Curious" msgstr "Curieux" @@ -2817,6 +2807,11 @@ 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." +#, fuzzy +#~| msgid "Designates whether this user is a superuser. " +#~ msgid "Designates whether this user is denyed from buying alchool. " +#~ msgstr "Est-ce que l'utilisateur est super-utilisateur." + #~ msgid "Last name" #~ msgstr "Nom" diff --git a/sith/settings.py b/sith/settings.py index a3962437..7dc760ab 100644 --- a/sith/settings.py +++ b/sith/settings.py @@ -256,6 +256,18 @@ SITH_GROUPS = { 'id': 5, 'name': "Counter admin", }, + 'banned-alcohol': { + 'id': 6, + 'name': "Banned from buying alcohol", + }, + 'banned-from-counters': { + 'id': 7, + 'name': "Banned from counters", + }, + 'banned-to-subscribe': { + 'id': 8, + 'name': "Banned to subscribe", + } } SITH_BOARD_SUFFIX="-bureau" From c40171fe86e5c3bcc23db3bb71a3d087bdd539a9 Mon Sep 17 00:00:00 2001 From: klmp200 Date: Tue, 18 Oct 2016 23:02:53 +0200 Subject: [PATCH 7/9] Clean permission check for alcohol and counter ban --- core/models.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/models.py b/core/models.py index 7638ae14..5101980d 100644 --- a/core/models.py +++ b/core/models.py @@ -243,11 +243,11 @@ class User(AbstractBaseUser): @property def is_banned_alcohol(self): - return self.groups.filter(name=settings.SITH_GROUPS['banned-alcohol']['name']).exists() + return self.is_in_group(settings.SITH_GROUPS['banned-alcohol']['name']) @property def is_banned_counter(self): - return self.groups.filter(name=settings.SITH_GROUPS['banned-from-counters']['name']).exists() + return self.is_in_group(settings.SITH_GROUPS['banned-from-counters']['name']) def save(self, *args, **kwargs): create = False @@ -439,6 +439,14 @@ class AnonymousUser(AuthAnonymousUser): def is_launderette_manager(self): return False + @property + def is_banned_alcohol(self): + return False + + @property + def is_banned_conuter(self): + return False + def is_in_group(self, group_name): """ The anonymous user is only the public group From 029bc7cc7c4c268651d65fe645da00c8112d7c28 Mon Sep 17 00:00:00 2001 From: klmp200 Date: Tue, 18 Oct 2016 23:36:26 +0200 Subject: [PATCH 8/9] Add link to create club in rootplace --- core/templates/core/edit.jinja | 8 + core/templates/core/user_tools.jinja | 1 + locale/fr/LC_MESSAGES/django.po | 3715 +++++++++++++++----------- 3 files changed, 2185 insertions(+), 1539 deletions(-) diff --git a/core/templates/core/edit.jinja b/core/templates/core/edit.jinja index 82513bd4..a6fe7a40 100644 --- a/core/templates/core/edit.jinja +++ b/core/templates/core/edit.jinja @@ -1,11 +1,19 @@ {% extends "core/base.jinja" %} {% block title %} +{% if object %} {% trans obj=object %}Edit {{ obj }}{% endtrans %} +{% else %} +{% trans %}Save{% endtrans %} +{% endif %} {% endblock %} {% block content %} +{% if object %}

{% trans obj=object %}Edit {{ obj }}{% endtrans %}

+{% else %} +

{% trans %}Save{% endtrans %}

+{% endif %}
{% csrf_token %} {{ form.as_p() }} diff --git a/core/templates/core/user_tools.jinja b/core/templates/core/user_tools.jinja index d1e64128..c62db0bd 100644 --- a/core/templates/core/user_tools.jinja +++ b/core/templates/core/user_tools.jinja @@ -16,6 +16,7 @@ {% endif %} {% if user.is_in_group(settings.SITH_MAIN_BOARD_GROUP) or user.is_root %}
  • {% trans %}Subscriptions{% endtrans %}
  • +
  • {% trans %}New club{% endtrans %}
  • {% endif %} diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index a2623c8f..5f16b674 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-10-16 03:23+0200\n" +"POT-Creation-Date: 2016-10-18 23:31+0200\n" "PO-Revision-Date: 2016-07-18\n" "Last-Translator: Skia \n" "Language-Team: AE info \n" @@ -123,7 +123,7 @@ msgstr "numéro" msgid "journal" msgstr "classeur" -#: accounting/models.py:191 core/models.py:487 core/models.py:765 +#: accounting/models.py:191 core/models.py:495 core/models.py:773 #: counter/models.py:229 counter/models.py:272 counter/models.py:358 #: eboutic/models.py:15 eboutic/models.py:48 msgid "date" @@ -167,18 +167,11 @@ msgstr "intitulé" 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 +#: accounting/models.py:204 msgid "User" msgstr "Utilisateur" -#: accounting/models.py:204 club/templates/club/club_detail.jinja:5 -#: counter/templates/counter/invoices_call.jinja:20 +#: accounting/models.py:204 msgid "Club" msgstr "Club" @@ -190,7 +183,7 @@ msgstr "Compte" msgid "Company" msgstr "Entreprise" -#: accounting/models.py:204 sith/settings.py:287 +#: accounting/models.py:204 sith/settings.py:291 msgid "Other" msgstr "Autre" @@ -264,297 +257,6 @@ msgstr "type simplifié" 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:38 -#: 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:47 -#: 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:53 -#: 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:38 -#: 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:50 -#: 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:20 -#: 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:711 -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" @@ -614,155 +316,9 @@ msgstr "L'utilisateur est déjà membre de ce club" 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:51 -#: counter/templates/counter/cash_summary_list.jinja:33 counter/views.py:78 -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:52 -#: 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:21 -#: 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:10 -#: core/templates/core/user_account_detail.jinja:22 -#: 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:23 -#: core/templates/core/user_account_detail.jinja:54 -#: 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:31 core/views/user.py:130 +msgid "Infos" +msgstr "Infos" #: club/views.py:37 msgid "Members" @@ -772,13 +328,19 @@ msgstr "Membres" msgid "Old members" msgstr "Anciens membres" -#: club/views.py:48 core/templates/core/base.jinja:40 core/views/user.py:141 +#: club/views.py:48 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:36 -#: counter/templates/counter/counter_list.jinja:51 +#: club/views.py:53 core/views/user.py:147 +msgid "Edit" +msgstr "Éditer" + +#: club/views.py:58 +msgid "Sellings" +msgstr "Ventes" + +#: club/views.py:64 msgid "Props" msgstr "Propriétés" @@ -794,8 +356,11 @@ msgstr "Date de début" msgid "End date" msgstr "Date de fin" -#: club/views.py:178 core/templates/core/user_stats.jinja:27 -#: counter/views.py:990 +#: club/views.py:165 counter/views.py:78 +msgid "Counter" +msgstr "Comptoir" + +#: club/views.py:178 counter/views.py:990 msgid "Product" msgstr "Produit" @@ -1078,816 +643,124 @@ msgstr "profil visible par les cotisants" msgid "A user with that username already exists" msgstr "Un utilisateur de ce nom d'utilisateur existe déjà" -#: core/models.py:414 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 +#: core/models.py:414 msgid "Profile" msgstr "Profil" -#: core/models.py:464 +#: core/models.py:472 msgid "Visitor" msgstr "Visiteur" -#: core/models.py:469 +#: core/models.py:477 msgid "define if we show a users stats" msgstr "Definit si l'on montre les statistiques de l'utilisateur" -#: core/models.py:471 +#: core/models.py:479 msgid "Show your account statistics to others" msgstr "Montrez vos statistiques de compte aux autres" -#: core/models.py:478 +#: core/models.py:486 msgid "file name" msgstr "nom du fichier" -#: core/models.py:479 core/models.py:614 +#: core/models.py:487 core/models.py:622 msgid "parent" msgstr "parent" -#: core/models.py:480 core/models.py:490 +#: core/models.py:488 core/models.py:498 msgid "file" msgstr "fichier" -#: core/models.py:481 +#: core/models.py:489 msgid "owner" msgstr "propriétaire" -#: core/models.py:482 core/models.py:620 +#: core/models.py:490 core/models.py:628 msgid "edit group" msgstr "groupe d'édition" -#: core/models.py:483 core/models.py:621 +#: core/models.py:491 core/models.py:629 msgid "view group" msgstr "groupe de vue" -#: core/models.py:484 +#: core/models.py:492 msgid "is folder" msgstr "est un dossier" -#: core/models.py:485 +#: core/models.py:493 msgid "mime type" msgstr "type mime" -#: core/models.py:486 +#: core/models.py:494 msgid "size" msgstr "taille" -#: core/models.py:518 +#: core/models.py:526 msgid "Character '/' not authorized in name" msgstr "Le caractère '/' n'est pas autorisé dans les noms de fichier" -#: core/models.py:521 core/models.py:526 +#: core/models.py:529 core/models.py:534 msgid "Loop in folder tree" msgstr "Boucle dans l'arborescence des dossiers" -#: core/models.py:530 +#: core/models.py:538 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:534 +#: core/models.py:542 msgid "Duplicate file" msgstr "Un fichier de ce nom existe déjà" -#: core/models.py:544 +#: core/models.py:552 msgid "You must provide a file" msgstr "Vous devez fournir un fichier" -#: core/models.py:569 +#: core/models.py:577 msgid "Folder: " msgstr "Dossier : " -#: core/models.py:571 +#: core/models.py:579 msgid "File: " msgstr "Fichier : " -#: core/models.py:613 core/models.py:617 +#: core/models.py:621 core/models.py:625 msgid "page name" msgstr "nom de la page" -#: core/models.py:618 +#: core/models.py:626 msgid "owner group" msgstr "groupe propriétaire" -#: core/models.py:649 +#: core/models.py:657 msgid "Duplicate page" msgstr "Une page de ce nom existe déjà" -#: core/models.py:655 +#: core/models.py:663 msgid "Loop in page tree" msgstr "Boucle dans l'arborescence des pages" -#: core/models.py:762 +#: core/models.py:770 msgid "revision" msgstr "révision" -#: core/models.py:763 +#: core/models.py:771 msgid "page title" msgstr "titre de la page" -#: core/models.py:764 +#: core/models.py:772 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:8 -msgid "Year" -msgstr "Année" - -#: core/templates/core/user_account.jinja:9 -msgid "Month" -msgstr "Mois" - -#: core/templates/core/user_account.jinja:32 -#: 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:37 -#: core/templates/core/user_account_detail.jinja:9 -msgid "User account" -msgstr "Compte utilisateur" - -#: core/templates/core/user_account.jinja:42 -#: core/templates/core/user_account_detail.jinja:13 -msgid "Account buyings" -msgstr "Achat sur compte utilisateur" - -#: core/templates/core/user_account.jinja:45 -#: core/templates/core/user_account_detail.jinja:46 -#: 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:49 -#: core/templates/core/user_account_detail.jinja:75 -msgid "Eboutic invoices" -msgstr "Facture eboutic" - -#: core/templates/core/user_account.jinja:53 counter/views.py:479 -msgid "Etickets" -msgstr "" - -#: core/templates/core/user_account.jinja:64 -#: 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:449 -#: counter/views.py:598 -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:469 -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:48 -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:47 +msgid "Files" +msgstr "Fichiers" + #: core/views/files.py:57 #, python-format msgid "Error creating folder %(folder_name)s: %(msg)s" @@ -1938,6 +811,26 @@ msgstr "Parrain" msgid "Godchild" msgstr "Fillot" +#: core/views/forms.py:203 launderette/views.py:146 +msgid "Add" +msgstr "Ajouter" + +#: core/views/user.py:135 +msgid "Godfathers" +msgstr "Parrains" + +#: core/views/user.py:153 +msgid "Clubs" +msgstr "Clubs" + +#: core/views/user.py:159 +msgid "Groups" +msgstr "Groupes" + +#: core/views/user.py:169 +msgid "Stats" +msgstr "Stats" + #: core/views/user.py:298 msgid "User already has a profile picture" msgstr "L'utilisateur a déjà une photo de profil" @@ -1954,8 +847,7 @@ msgstr "client" msgid "customers" msgstr "clients" -#: counter/models.py:46 counter/templates/counter/counter_click.jinja:48 -#: counter/templates/counter/counter_click.jinja:82 +#: counter/models.py:46 msgid "Not enough money" msgstr "Solde insuffisant" @@ -2019,12 +911,7 @@ msgstr "Bar" 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:286 sith/settings.py:294 +#: counter/models.py:127 sith/settings.py:290 sith/settings.py:298 msgid "Eboutic" msgstr "Eboutic" @@ -2065,8 +952,8 @@ msgstr "quantité" msgid "Sith account" msgstr "Compte utilisateur" -#: counter/models.py:274 sith/settings.py:279 sith/settings.py:284 -#: sith/settings.py:306 +#: counter/models.py:274 sith/settings.py:283 sith/settings.py:288 +#: sith/settings.py:310 msgid "Credit card" msgstr "Carte bancaire" @@ -2122,224 +1009,6 @@ msgstr "titre de l'événement" 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:712 -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:41 -msgid "Offices" -msgstr "Bureaux" - -#: counter/templates/counter/counter_list.jinja:57 -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:474 -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é" @@ -2380,6 +1049,10 @@ msgstr "Vous n'avez pas assez d'argent pour acheter le panier" msgid "Counter administration" msgstr "Administration des comptoirs" +#: counter/views.py:449 counter/views.py:598 +msgid "Counters" +msgstr "Comptoirs" + #: counter/views.py:454 msgid "Products" msgstr "Produits" @@ -2392,6 +1065,18 @@ msgstr "Produits archivés" msgid "Product types" msgstr "Types de produit" +#: counter/views.py:469 +msgid "Cash register summaries" +msgstr "Relevés de caisse" + +#: counter/views.py:474 +msgid "Invoices call" +msgstr "Appels à facture" + +#: counter/views.py:479 +msgid "Etickets" +msgstr "" + #: counter/views.py:595 msgid "Parent product" msgstr "Produit parent" @@ -2450,6 +1135,14 @@ msgstr "Montant du chèque" msgid "Check quantity" msgstr "Nombre de chèque" +#: counter/views.py:711 +msgid "Comment" +msgstr "Commentaire" + +#: counter/views.py:712 +msgid "Emptied" +msgstr "Coffre vidé" + #: eboutic/models.py:49 msgid "validated" msgstr "validé" @@ -2474,49 +1167,1193 @@ msgstr "id du type du produit" 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" +#: env/lib/python3.5/site-packages/alabaster/layout.html:55 +#, fuzzy +#| msgid "Page history" +msgid "Page source" +msgstr "Historique de la page" + +#: env/lib/python3.5/site-packages/alabaster/navigation.html:1 +msgid "Navigation" +msgstr "" + +#: env/lib/python3.5/site-packages/django/contrib/messages/apps.py:7 +msgid "Messages" +msgstr "" + +#: env/lib/python3.5/site-packages/django/contrib/sitemaps/apps.py:7 +msgid "Site Maps" +msgstr "" + +#: env/lib/python3.5/site-packages/django/contrib/staticfiles/apps.py:7 +msgid "Static Files" +msgstr "" + +#: env/lib/python3.5/site-packages/django/contrib/syndication/apps.py:7 +#, fuzzy +#| msgid "location" +msgid "Syndication" +msgstr "lieu" + +#: env/lib/python3.5/site-packages/django/contrib/webdesign/apps.py:7 +msgid "Web Design" +msgstr "" + +#: env/lib/python3.5/site-packages/django/core/validators.py:20 +msgid "Enter a valid value." +msgstr "" + +#: env/lib/python3.5/site-packages/django/core/validators.py:94 +#: env/lib/python3.5/site-packages/django/forms/fields.py:712 +msgid "Enter a valid URL." +msgstr "" + +#: env/lib/python3.5/site-packages/django/core/validators.py:137 +msgid "Enter a valid integer." +msgstr "" + +#: env/lib/python3.5/site-packages/django/core/validators.py:148 +#, fuzzy +#| msgid "second email address" +msgid "Enter a valid email address." +msgstr "adresse email secondaire" + +#: env/lib/python3.5/site-packages/django/core/validators.py:222 +#, fuzzy +#| msgid "" +#| "Enter a valid username. This value may contain only letters, numbers " +#| "and ./+/-/_ characters." +msgid "" +"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Entrez un nom d'utilisateur correct. Uniquement des lettres, numéros, et ./" +"+/-/_" + +#: env/lib/python3.5/site-packages/django/core/validators.py:227 +#: env/lib/python3.5/site-packages/django/core/validators.py:246 +msgid "Enter a valid IPv4 address." +msgstr "" + +#: env/lib/python3.5/site-packages/django/core/validators.py:232 +#: env/lib/python3.5/site-packages/django/core/validators.py:247 +msgid "Enter a valid IPv6 address." +msgstr "" + +#: env/lib/python3.5/site-packages/django/core/validators.py:242 +#: env/lib/python3.5/site-packages/django/core/validators.py:245 +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "" + +#: env/lib/python3.5/site-packages/django/core/validators.py:270 +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1144 +msgid "Enter only digits separated by commas." +msgstr "" + +#: env/lib/python3.5/site-packages/django/core/validators.py:279 +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" + +#: env/lib/python3.5/site-packages/django/core/validators.py:305 +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" + +#: env/lib/python3.5/site-packages/django/core/validators.py:312 +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" + +#: env/lib/python3.5/site-packages/django/core/validators.py:321 +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python3.5/site-packages/django/core/validators.py:332 +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python3.5/site-packages/django/db/models/base.py:1130 +#: env/lib/python3.5/site-packages/django/forms/models.py:718 +#, fuzzy +#| msgid "End" +msgid "and" +msgstr "Fin" + +#: env/lib/python3.5/site-packages/django/db/models/base.py:1132 +#, fuzzy, python-format +#| msgid "A user with that email address already exists" +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "Un utilisateur avec cette adresse email existe déjà" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:107 +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:108 +msgid "This field cannot be null." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:109 +#, fuzzy +#| msgid "Token name can not be blank" +msgid "This field cannot be blank." +msgstr "Le nom du jeton ne peut pas être vide" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:110 +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:114 +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:132 +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:922 +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1833 +msgid "Integer" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:926 +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1831 +#, python-format +msgid "'%(value)s' value must be an integer." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1001 +#, python-format +msgid "'%(value)s' value must be either True or False." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1003 +msgid "Boolean (Either True or False)" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1078 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1139 +msgid "Comma-separated integers" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1188 +#, python-format +msgid "" +"'%(value)s' value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1190 +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1340 +#, python-format +msgid "" +"'%(value)s' value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1193 +msgid "Date (without time)" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1338 +#, python-format +msgid "" +"'%(value)s' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1342 +#, python-format +msgid "" +"'%(value)s' value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1346 +msgid "Date (with time)" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1498 +#, python-format +msgid "'%(value)s' value must be a decimal number." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1500 +#, fuzzy +#| msgid "number" +msgid "Decimal number" +msgstr "numéro" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1651 +#, python-format +msgid "" +"'%(value)s' value has an invalid format. It must be in [DD] [HH:[MM:]]ss[." +"uuuuuu] format." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1654 +#, fuzzy +#| msgid "Description" +msgid "Duration" +msgstr "Description" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1706 +#, fuzzy +#| msgid "email address" +msgid "Email address" +msgstr "adresse email" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1730 +#, fuzzy +#| msgid "File list" +msgid "File path" +msgstr "Liste des fichiers" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1797 +#, python-format +msgid "'%(value)s' value must be a float." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1799 +#, fuzzy +#| msgid "account number" +msgid "Floating point number" +msgstr "numero de compte" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1900 +msgid "Big (8 byte) integer" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1915 +#, fuzzy +#| msgid "address" +msgid "IPv4 address" +msgstr "Adresse" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:1951 +#, fuzzy +#| msgid "address" +msgid "IP address" +msgstr "Adresse" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:2030 +#, python-format +msgid "'%(value)s' value must be either None, True or False." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:2032 +msgid "Boolean (Either True, False or None)" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:2092 +msgid "Positive integer" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:2104 +msgid "Positive small integer" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:2117 +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:2146 +msgid "Small integer" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:2153 +msgid "Text" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:2176 +#, python-format +msgid "" +"'%(value)s' value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:2178 +#, python-format +msgid "" +"'%(value)s' value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:2181 +msgid "Time" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:2309 +msgid "URL" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:2332 +msgid "Raw binary data" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/__init__.py:2376 +#, python-format +msgid "'%(value)s' is not a valid UUID." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/files.py:238 +msgid "File" +msgstr "Fichier" + +#: env/lib/python3.5/site-packages/django/db/models/fields/files.py:388 +msgid "Image" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/related.py:1809 +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/related.py:1811 +msgid "Foreign Key (type determined by related field)" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/related.py:2041 +msgid "One-to-one relationship" +msgstr "" + +#: env/lib/python3.5/site-packages/django/db/models/fields/related.py:2131 +msgid "Many-to-many relationship" +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:64 +msgid "This field is required." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:237 +msgid "Enter a whole number." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:280 +#: env/lib/python3.5/site-packages/django/forms/fields.py:317 +#, fuzzy +#| msgid "account number" +msgid "Enter a number." +msgstr "numero de compte" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:319 +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:323 +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:327 +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:438 +#: env/lib/python3.5/site-packages/django/forms/fields.py:1193 +msgid "Enter a valid date." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:462 +#: env/lib/python3.5/site-packages/django/forms/fields.py:1194 +msgid "Enter a valid time." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:484 +msgid "Enter a valid date/time." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:525 +msgid "Enter a valid duration." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:591 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:592 +msgid "No file was submitted." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:593 +msgid "The submitted file is empty." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:595 +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:598 +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:660 +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:827 +#: env/lib/python3.5/site-packages/django/forms/fields.py:921 +#: env/lib/python3.5/site-packages/django/forms/models.py:1238 +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:922 +#: env/lib/python3.5/site-packages/django/forms/fields.py:1037 +#: env/lib/python3.5/site-packages/django/forms/models.py:1237 +msgid "Enter a list of values." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:1038 +msgid "Enter a complete value." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/fields.py:1264 +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +#: env/lib/python3.5/site-packages/django/forms/forms.py:129 +msgid ":" +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/forms.py:214 +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the label +#: env/lib/python3.5/site-packages/django/forms/forms.py:659 +msgid ":?.!" +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/formsets.py:96 +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/formsets.py:333 +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python3.5/site-packages/django/forms/formsets.py:340 +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python3.5/site-packages/django/forms/formsets.py:368 +#: env/lib/python3.5/site-packages/django/forms/formsets.py:370 +msgid "Order" +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/formsets.py:372 +#: launderette/views.py:146 +msgid "Delete" +msgstr "Supprimer" + +#: env/lib/python3.5/site-packages/django/forms/models.py:712 +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/models.py:716 +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/models.py:722 +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/models.py:730 +msgid "Please correct the duplicate values below." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/models.py:1053 +msgid "The inline foreign key did not match the parent instance primary key." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/models.py:1123 +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/models.py:1240 +#, python-format +msgid "\"%(pk)s\" is not a valid value for a primary key." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/utils.py:165 +#, python-format +msgid "" +"%(datetime)s couldn't be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/widgets.py:345 +#, fuzzy +#| msgid "Current club(s) :" +msgid "Currently" +msgstr "Clubs actuels : " + +#: env/lib/python3.5/site-packages/django/forms/widgets.py:346 +msgid "Change" +msgstr "Changer" + +#: env/lib/python3.5/site-packages/django/forms/widgets.py:347 +msgid "Clear" +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/widgets.py:555 +msgid "Unknown" +msgstr "" + +#: env/lib/python3.5/site-packages/django/forms/widgets.py:556 +msgid "Yes" +msgstr "Oui" + +#: env/lib/python3.5/site-packages/django/forms/widgets.py:557 +msgid "No" +msgstr "Non" + +#: env/lib/python3.5/site-packages/django/template/defaultfilters.py:865 +msgid "yes,no,maybe" +msgstr "" + +#: env/lib/python3.5/site-packages/django/template/defaultfilters.py:894 +#: env/lib/python3.5/site-packages/django/template/defaultfilters.py:906 +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python3.5/site-packages/django/template/defaultfilters.py:908 +#, python-format +msgid "%s KB" +msgstr "" + +#: env/lib/python3.5/site-packages/django/template/defaultfilters.py:910 +#, python-format +msgid "%s MB" +msgstr "" + +#: env/lib/python3.5/site-packages/django/template/defaultfilters.py:912 +#, python-format +msgid "%s GB" +msgstr "" + +#: env/lib/python3.5/site-packages/django/template/defaultfilters.py:914 +#, python-format +msgid "%s TB" +msgstr "" + +#: env/lib/python3.5/site-packages/django/template/defaultfilters.py:916 +#, python-format +msgid "%s PB" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dateformat.py:61 +msgid "p.m." +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dateformat.py:62 +msgid "a.m." +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dateformat.py:67 +#, fuzzy +#| msgid "M" +msgid "PM" +msgstr "M" + +#: env/lib/python3.5/site-packages/django/utils/dateformat.py:68 +#, fuzzy +#| msgid "M" +msgid "AM" +msgstr "M" + +#: env/lib/python3.5/site-packages/django/utils/dateformat.py:153 +msgid "midnight" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dateformat.py:155 +msgid "noon" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:6 +msgid "Monday" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:6 +msgid "Tuesday" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:6 +msgid "Wednesday" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:6 +msgid "Thursday" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:6 +msgid "Friday" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:7 +msgid "Saturday" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:7 +msgid "Sunday" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:10 +#, fuzzy +#| msgid "Month" +msgid "Mon" +msgstr "Mois" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:10 +msgid "Tue" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:10 +msgid "Wed" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:10 +msgid "Thu" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:10 +msgid "Fri" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:11 +#, fuzzy +#| msgid "Start" +msgid "Sat" +msgstr "Début" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:11 +#, fuzzy +#| msgid "Sum" +msgid "Sun" +msgstr "Somme" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:18 +msgid "January" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:18 +msgid "February" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:18 +#, fuzzy +#| msgid "Search" +msgid "March" +msgstr "Recherche" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:18 +msgid "April" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:18 +#, fuzzy +#| msgid "Man" +msgid "May" +msgstr "Homme" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:18 +msgid "June" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:19 +msgid "July" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:19 +msgid "August" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:19 +#, fuzzy +#| msgid "past member" +msgid "September" +msgstr "Anciens membres" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:19 +msgid "October" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:19 +#, fuzzy +#| msgid "Members" +msgid "November" +msgstr "Membres" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:20 +#, fuzzy +#| msgid "Members" +msgid "December" +msgstr "Membres" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:23 +#, fuzzy +#| msgid "Man" +msgid "jan" +msgstr "Homme" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:23 +msgid "feb" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:23 +#, fuzzy +#| msgid "Bar" +msgid "mar" +msgstr "Bar" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:23 +#, fuzzy +#| msgid "Bar" +msgid "apr" +msgstr "Bar" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:23 +#, fuzzy +#| msgid "company" +msgid "may" +msgstr "entreprise" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:23 +#, fuzzy +#| msgid "journal" +msgid "jun" +msgstr "classeur" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:24 +#, fuzzy +#| msgid "journal" +msgid "jul" +msgstr "classeur" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:24 +msgid "aug" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:24 +#, fuzzy +#| msgid "sex" +msgid "sep" +msgstr "sexe" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:24 +#, fuzzy +#| msgid "Doctor" +msgid "oct" +msgstr "Doctorant" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:24 +msgid "nov" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:24 +msgid "dec" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:31 +msgctxt "abbrev. month" +msgid "Jan." +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:32 +msgctxt "abbrev. month" +msgid "Feb." +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:33 +#, fuzzy +#| msgid "Search" +msgctxt "abbrev. month" +msgid "March" +msgstr "Recherche" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:34 +msgctxt "abbrev. month" +msgid "April" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:35 +#, fuzzy +#| msgid "Man" +msgctxt "abbrev. month" +msgid "May" +msgstr "Homme" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:36 +msgctxt "abbrev. month" +msgid "June" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:37 +msgctxt "abbrev. month" +msgid "July" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:38 +msgctxt "abbrev. month" +msgid "Aug." +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:39 +msgctxt "abbrev. month" +msgid "Sept." +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:40 +msgctxt "abbrev. month" +msgid "Oct." +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:41 +msgctxt "abbrev. month" +msgid "Nov." +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:42 +msgctxt "abbrev. month" +msgid "Dec." +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:45 +msgctxt "alt. month" +msgid "January" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:46 +msgctxt "alt. month" +msgid "February" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:47 +#, fuzzy +#| msgid "Search" +msgctxt "alt. month" +msgid "March" +msgstr "Recherche" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:48 +msgctxt "alt. month" +msgid "April" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:49 +#, fuzzy +#| msgid "Man" +msgctxt "alt. month" +msgid "May" +msgstr "Homme" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:50 +msgctxt "alt. month" +msgid "June" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:51 +msgctxt "alt. month" +msgid "July" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:52 +msgctxt "alt. month" +msgid "August" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:53 +#, fuzzy +#| msgid "past member" +msgctxt "alt. month" +msgid "September" +msgstr "Anciens membres" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:54 +msgctxt "alt. month" +msgid "October" +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:55 +#, fuzzy +#| msgid "Members" +msgctxt "alt. month" +msgid "November" +msgstr "Membres" + +#: env/lib/python3.5/site-packages/django/utils/dates.py:56 +#, fuzzy +#| msgid "Members" +msgctxt "alt. month" +msgid "December" +msgstr "Membres" + +#: env/lib/python3.5/site-packages/django/utils/ipv6.py:10 +msgid "This is not a valid IPv6 address." +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/text.py:79 +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s..." +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/text.py:248 +msgid "or" +msgstr "" + +#. Translators: This string is used as a separator between list elements +#: env/lib/python3.5/site-packages/django/utils/text.py:267 +#: env/lib/python3.5/site-packages/django/utils/timesince.py:58 +msgid ", " +msgstr "" + +#: env/lib/python3.5/site-packages/django/utils/timesince.py:10 +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python3.5/site-packages/django/utils/timesince.py:11 +#, fuzzy, python-format +#| msgid "Month" +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "Mois" +msgstr[1] "Mois" + +#: env/lib/python3.5/site-packages/django/utils/timesince.py:12 +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python3.5/site-packages/django/utils/timesince.py:13 +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python3.5/site-packages/django/utils/timesince.py:14 +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python3.5/site-packages/django/utils/timesince.py:15 +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python3.5/site-packages/django/utils/timesince.py:47 +msgid "0 minutes" +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/csrf.py:107 +#, fuzzy +#| msgid "403, Forbidden" +msgid "Forbidden" +msgstr "403. Non autorisé" + +#: env/lib/python3.5/site-packages/django/views/csrf.py:108 +msgid "CSRF verification failed. Request aborted." +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/csrf.py:112 +msgid "" +"You are seeing this message because this HTTPS site requires a 'Referer " +"header' to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/csrf.py:117 +msgid "" +"If you have configured your browser to disable 'Referer' headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for 'same-" +"origin' requests." +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/csrf.py:122 +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/csrf.py:127 +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for 'same-origin' requests." +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/csrf.py:132 +msgid "More information is available with DEBUG=True." +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/debug.py:583 +msgid "Welcome to Django" +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/debug.py:584 +msgid "It worked!" +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/debug.py:585 +msgid "Congratulations on your first Django-powered page." +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/debug.py:586 +msgid "" +"Of course, you haven't actually done any work yet. Next, start your first " +"app by running python manage.py startapp [app_label]." +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/debug.py:588 +msgid "" +"You're seeing this message because you have DEBUG = True in " +"your Django settings file and you haven't configured any URLs. Get to work!" +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/generic/dates.py:48 +msgid "No year specified" +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/generic/dates.py:104 +msgid "No month specified" +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/generic/dates.py:163 +msgid "No day specified" +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/generic/dates.py:219 +msgid "No week specified" +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/generic/dates.py:378 +#: env/lib/python3.5/site-packages/django/views/generic/dates.py:406 +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/generic/dates.py:660 +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/generic/dates.py:694 +#, python-format +msgid "Invalid date string '%(datestr)s' given format '%(format)s'" +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/generic/detail.py:55 +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/generic/list.py:76 +msgid "Page is not 'last', nor can it be converted to an int." +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/generic/list.py:81 +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/generic/list.py:172 +#, python-format +msgid "Empty list and '%(class_name)s.allow_empty' is False." +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/static.py:58 +msgid "Directory indexes are not allowed here." +msgstr "" + +#: env/lib/python3.5/site-packages/django/views/static.py:60 +#, fuzzy, python-format +#| msgid "Page does not exist" +msgid "\"%(path)s\" does not exist" +msgstr "La page n'existe pas." + +#: env/lib/python3.5/site-packages/django/views/static.py:100 +#, python-format +msgid "Index of %(directory)s" +msgstr "" + #: 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" @@ -2552,70 +2389,22 @@ msgstr "Le nom du jeton ne peut pas être vide" msgid "machine" msgstr "machine" -#: launderette/templates/launderette/launderette_admin.jinja:4 -msgid "Launderette admin" -msgstr "Gestion de la laverie" +#: launderette/models.py:129 +msgid "Slot" +msgstr "Créneau" -#: 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:423 -msgid "Washing" -msgstr "Lavage" - -#: launderette/templates/launderette/launderette_book.jinja:31 -#: sith/settings.py:423 -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:146 +msgid "Back" +msgstr "Retour" #: launderette/views.py:147 msgid "Action" msgstr "Action" +#: launderette/views.py:148 +msgid "Type" +msgstr "Type" + #: launderette/views.py:150 msgid "Tokens, separated by spaces" msgstr "Jetons, séparés par des espaces" @@ -2638,14 +2427,6 @@ msgstr "L'utilisateur n'a pas réservé de créneau" 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é" @@ -2662,110 +2443,118 @@ msgstr "Anglais" msgid "French" msgstr "Français" -#: sith/settings.py:276 sith/settings.py:283 sith/settings.py:304 +#: sith/settings.py:280 sith/settings.py:287 sith/settings.py:308 msgid "Check" msgstr "Chèque" -#: sith/settings.py:277 sith/settings.py:285 sith/settings.py:305 +#: sith/settings.py:281 sith/settings.py:289 sith/settings.py:309 msgid "Cash" msgstr "Espèces" -#: sith/settings.py:278 +#: sith/settings.py:282 msgid "Transfert" msgstr "Virement" -#: sith/settings.py:291 +#: sith/settings.py:295 msgid "Belfort" msgstr "Belfort" -#: sith/settings.py:292 +#: sith/settings.py:296 msgid "Sevenans" msgstr "Sevenans" -#: sith/settings.py:293 +#: sith/settings.py:297 msgid "Montbéliard" msgstr "Montbéliard" -#: sith/settings.py:333 +#: sith/settings.py:337 msgid "One semester" msgstr "Un semestre, 15 €" -#: sith/settings.py:338 +#: sith/settings.py:342 msgid "Two semesters" msgstr "Deux semestres, 28 €" -#: sith/settings.py:343 +#: sith/settings.py:347 msgid "Common core cursus" msgstr "Cursus tronc commun, 45 €" -#: sith/settings.py:348 +#: sith/settings.py:352 msgid "Branch cursus" msgstr "Cursus branche, 45 €" -#: sith/settings.py:353 +#: sith/settings.py:357 msgid "Alternating cursus" msgstr "Cursus alternant, 30 €" -#: sith/settings.py:358 +#: sith/settings.py:362 msgid "Honorary member" msgstr "Membre honoraire, 0 €" -#: sith/settings.py:363 +#: sith/settings.py:367 msgid "Assidu member" msgstr "Membre d'Assidu, 0 €" -#: sith/settings.py:368 +#: sith/settings.py:372 msgid "Amicale/DOCEO member" msgstr "Membre de l'Amicale/DOCEO, 0 €" -#: sith/settings.py:373 +#: sith/settings.py:377 msgid "UT network member" msgstr "Cotisant du réseau UT, 0 €" -#: sith/settings.py:378 +#: sith/settings.py:382 msgid "CROUS member" msgstr "Membres du CROUS, 0 €" -#: sith/settings.py:383 +#: sith/settings.py:387 msgid "Sbarro/ESTA member" msgstr "Membre de Sbarro ou de l'ESTA, 15 €" -#: sith/settings.py:391 +#: sith/settings.py:395 msgid "President" msgstr "Président" -#: sith/settings.py:392 +#: sith/settings.py:396 msgid "Vice-President" msgstr "Vice-Président" -#: sith/settings.py:393 +#: sith/settings.py:397 msgid "Treasurer" msgstr "Trésorier" -#: sith/settings.py:394 +#: sith/settings.py:398 msgid "Communication supervisor" msgstr "Responsable com" -#: sith/settings.py:395 +#: sith/settings.py:399 msgid "Secretary" msgstr "Secrétaire" -#: sith/settings.py:396 +#: sith/settings.py:400 msgid "IT supervisor" msgstr "Responsable info" -#: sith/settings.py:397 +#: sith/settings.py:401 msgid "Board member" msgstr "Membre du bureau" -#: sith/settings.py:398 +#: sith/settings.py:402 msgid "Active member" msgstr "Membre actif" -#: sith/settings.py:399 +#: sith/settings.py:403 msgid "Curious" msgstr "Curieux" +#: sith/settings.py:427 +msgid "Washing" +msgstr "Lavage" + +#: sith/settings.py:427 +msgid "Drying" +msgstr "Séchage" + #: subscription/models.py:16 msgid "Bad subscription type" msgstr "Mauvais type de cotisation" @@ -2807,6 +2596,854 @@ 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 "Accounting type list" +#~ msgstr "Liste des types comptable" + +#~ msgid "Accounting" +#~ msgstr "Comptabilité" + +#~ msgid "Accounting types" +#~ msgstr "Type comptable" + +#~ msgid "New accounting type" +#~ msgstr "Nouveau type comptable" + +#~ msgid "There is no types in this website." +#~ msgstr "Il n'y a pas de types comptable dans ce site web." + +#~ msgid "Bank account: " +#~ msgstr "Compte en banque : " + +#~ msgid "IBAN: " +#~ msgstr "IBAN : " + +#~ msgid "Number: " +#~ msgstr "Numéro : " + +#~ msgid "New club account" +#~ msgstr "Nouveau compte club" + +#~ msgid "Bank account list" +#~ msgstr "Liste des comptes en banque" + +#~ msgid "Manage simplified types" +#~ msgstr "Gérer les types simplifiés" + +#~ msgid "Manage accounting types" +#~ msgstr "Gérer les types comptable" + +#~ msgid "New bank account" +#~ msgstr "Nouveau compte en banque" + +#~ msgid "There is no accounts in this website." +#~ msgstr "Il n'y a pas de comptes dans ce site web." + +#~ msgid "Club account:" +#~ msgstr "Compte club : " + +#~ msgid "New label" +#~ msgstr "Nouvelle étiquette" + +#~ msgid "Label list" +#~ msgstr "Liste des étiquettes" + +#~ msgid "New journal" +#~ msgstr "Nouveau classeur" + +#~ 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" + +#~ msgid "Name" +#~ msgstr "Nom" + +#~ msgid "Amount" +#~ msgstr "Montant" + +#~ msgid "Effective amount" +#~ msgstr "Montant effectif" + +#~ msgid "Closed" +#~ msgstr "Fermé" + +#~ msgid "Actions" +#~ msgstr "Actions" + +#~ msgid "View" +#~ msgstr "Voir" + +#~ msgid "General journal:" +#~ msgstr "Classeur : " + +#~ msgid "Amount: " +#~ msgstr "Montant: " + +#~ msgid "Effective amount: " +#~ msgstr "Montant effectif: " + +#~ msgid "Journal is closed, you can not create operation" +#~ msgstr "Le classeur est fermé, vous ne pouvez pas créer d'opération" + +#~ msgid "New operation" +#~ msgstr "Nouvelle opération" + +#~ msgid "Nb" +#~ msgstr "No" + +#~ msgid "Date" +#~ msgstr "Date" + +#~ msgid "Label" +#~ msgstr "Étiquette" + +#~ msgid "Payment mode" +#~ msgstr "Méthode de paiement" + +#~ msgid "Target" +#~ msgstr "Cible" + +#~ msgid "Code" +#~ msgstr "Code" + +#~ msgid "Nature" +#~ msgstr "Nature" + +#~ msgid "Done" +#~ msgstr "Effectué" + +#~ msgid "Back to club account" +#~ msgstr "Retour au compte club" + +#~ msgid "There is no label in this club account." +#~ msgstr "Il n'y a pas d'étiquette dans ce compte club." + +#~ msgid "Edit operation" +#~ msgstr "Éditer l'opération" + +#~ msgid "Save" +#~ msgstr "Sauver" + +#~ msgid "Simplified type list" +#~ msgstr "Liste des types simplifiés" + +#~ msgid "Simplified types" +#~ msgstr "Types simplifiés" + +#~ msgid "New simplified type" +#~ msgstr "Nouveau type simplifié" + +#~ msgid "Club list" +#~ msgstr "Liste des clubs" + +#~ msgid "New club" +#~ msgstr "Nouveau club" + +#~ msgid "There is no club in this website." +#~ msgstr "Il n'y a pas de club dans ce site web." + +#~ msgid "Club members" +#~ msgstr "Membres du club" + +#~ msgid "Role" +#~ msgstr "Rôle" + +#~ msgid "Since" +#~ msgstr "Depuis" + +#~ msgid "Mark as old" +#~ msgstr "Marquer comme ancien" + +#~ msgid "Club old members" +#~ msgstr "Anciens membres du club" + +#~ msgid "From" +#~ msgstr "Du" + +#~ msgid "To" +#~ msgstr "Au" + +#~ msgid "Show" +#~ msgstr "Montrer" + +#~ msgid "Quantity: " +#~ msgstr "Quantité : " + +#~ msgid "units" +#~ msgstr "unités" + +#~ msgid "Total: " +#~ msgstr "Total : " + +#~ msgid "Barman" +#~ msgstr "Barman" + +#~ msgid "Customer" +#~ msgstr "Client" + +#~ msgid "Quantity" +#~ msgstr "Quantité" + +#~ msgid "Total" +#~ msgstr "Total" + +#~ msgid "Payment method" +#~ msgstr "Méthode de paiement" + +#~ msgid "Club tools" +#~ msgstr "Outils club" + +#~ msgid "Counters:" +#~ msgstr "Comptoirs : " + +#~ msgid "Accouting: " +#~ msgstr "Comptabilité : " + +#~ msgid "Manage launderettes" +#~ msgstr "Gestion des laveries" + +#~ msgid "404, Not Found" +#~ msgstr "404. Non trouvé" + +#~ msgid "Welcome!" +#~ msgstr "Bienvenue!" + +#~ msgid "Logo" +#~ msgstr "Logo" + +#~ msgid "Login" +#~ msgstr "Connexion" + +#~ msgid "Register" +#~ msgstr "S'enregister" + +#~ msgid "Logout" +#~ msgstr "Déconnexion" + +#~ msgid "Main" +#~ msgstr "Accueil" + +#~ msgid "Matmatronch" +#~ msgstr "Matmatronch" + +#~ msgid "Wiki" +#~ msgstr "Wiki" + +#~ msgid "SAS" +#~ msgstr "SAS" + +#~ msgid "Forum" +#~ msgstr "Forum" + +#~ msgid "Services" +#~ msgstr "Services" + +#~ msgid "Sponsors" +#~ msgstr "Partenaires" + +#~ msgid "Help" +#~ msgstr "Aide" + +#~ msgid "Site made by good people" +#~ msgstr "Site réalisé par des gens bons" + +#~ msgid "Create %(name)s" +#~ msgstr "Créer %(name)s" + +#~ msgid "Delete confirmation" +#~ msgstr "Confirmation de suppression" + +#~ msgid "Are you sure you want to delete \"%(obj)s\"?" +#~ msgstr "Êtes-vous sûr de vouloir supprimer \"%(obj)s\" ?" + +#~ msgid "Confirm" +#~ msgstr "Confirmation" + +#~ msgid "Cancel" +#~ msgstr "Annuler" + +#~ msgid "Edit %(obj)s" +#~ msgstr "Éditer %(obj)s" + +#, fuzzy +#~| msgid "Create it?" +#~ msgid "Create " +#~ msgstr "La créer ?" + +#, fuzzy +#~| msgid "Create it?" +#~ msgid "Create" +#~ msgstr "La créer ?" + +#~ msgid "New file" +#~ msgstr "Nouveau fichier" + +#~ msgid "Not found" +#~ msgstr "Non trouvé" + +#~ msgid "My files" +#~ msgstr "Mes fichiers" + +#~ msgid "Prop" +#~ msgstr "Propriétés" + +#~ msgid "Owner: " +#~ msgstr "Propriétaire : " + +#~ msgid "Real name: " +#~ msgstr "Nom réel : " + +#~ msgid "Date: " +#~ msgstr "Date : " + +#~ msgid "Type: " +#~ msgstr "Type : " + +#~ msgid "Size: " +#~ msgstr "Taille : " + +#~ msgid "bytes" +#~ msgstr "octets" + +#~ msgid "Download" +#~ msgstr "Télécharger" + +#~ msgid "There is no file in this website." +#~ msgstr "Il n'y a pas de fichier sur ce site web." + +#~ msgid "Back to list" +#~ msgstr "Retour à la liste" + +#~ msgid "Edit group" +#~ msgstr "Éditer le groupe" + +#~ msgid "Update" +#~ msgstr "Mettre à jour" + +#~ msgid "Group list" +#~ msgstr "Liste des groupes" + +#~ msgid "New group" +#~ msgstr "Nouveau groupe" + +#~ msgid "Welcome to the new AE's website!" +#~ msgstr "Bienvenue sur le nouveau site de l'AE ! " + +#~ 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." + +#~ 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." + +#~ msgid "Please login to see this page." +#~ msgstr "Merci de vous identifier pour voir cette page." + +#~ msgid "login" +#~ msgstr "login" + +#~ msgid "Lost password?" +#~ msgstr "Mot de passe perdu ?" + +#~ msgid "Born: " +#~ msgstr "Né le : " + +#~ msgid "Promo: " +#~ msgstr "Promo : " + +#~ msgid "Subscribed until %(subscription_end)s" +#~ msgstr "Cotisant jusqu'au %(subscription_end)s" + +#~ msgid "Account number: " +#~ msgstr "Numero de compte : " + +#~ msgid "Tokens" +#~ msgstr "Jetons" + +#~ 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." + +#~ 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 :" + +#~ msgid "Your username, in case it was not given to you: " +#~ msgstr "Votre nom d'utilisateur, si il ne vous a pas été donné :" + +#~ 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." + +#~ msgid "Here is your account number: %(account)s" +#~ msgstr "Voici votre numéro de compte AE : %(account)s" + +#~ msgid "Thanks for subscribing! " +#~ msgstr "Merci d'avoir cotisé !" + +#~ msgid "The AE team" +#~ msgstr "L'équipe AE" + +#~ msgid "New subscription to the UTBM student association" +#~ msgstr "Nouvelle cotisation à l'Association des Étudiants de l'UTBM" + +#~ msgid "Page list" +#~ msgstr "Liste des pages" + +#~ msgid "Create page" +#~ msgstr "Créer une page" + +#~ msgid "History" +#~ msgstr "Historique" + +#~ msgid "Create it?" +#~ msgstr "La créer ?" + +#~ 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." + +#~ msgid "You're seeing the history of page \"%(page_name)s\"" +#~ msgstr "Vous consultez l'historique de la page \"%(page_name)s\"" + +#~ msgid "last" +#~ msgstr "actuel" + +#~ msgid "There is no page in this website." +#~ msgstr "Il n'y a pas de page sur ce site web." + +#~ msgid "Page properties" +#~ msgstr "Propriétés de la page" + +#~ msgid "Edit page" +#~ msgstr "Éditer la page" + +#~ msgid "Preview" +#~ msgstr "Prévisualiser" + +#~ msgid "Change password for %(user)s" +#~ msgstr "Changer le mot de passe de %(user)s" + +#~ msgid "You successfully changed your password!" +#~ msgstr "Vous avez correctement changé votre mot de passe !" + +#~ msgid "Reset" +#~ msgstr "Reset" + +#~ msgid "You successfully reset your password!" +#~ msgstr "Vous avez correctement réinitialisé votre mot de passe !" + +#~ msgid "Password reset sent" +#~ msgstr "Réinitialisation de mot de passe envoyée" + +#~ 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." + +#~ 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." + +#~ 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." + +#~ msgid "Your username, in case you've forgotten: " +#~ msgstr "Votre nom d'utilisateur, en cas d'oubli :" + +#~ msgid "Thanks for using our site! " +#~ msgstr "Merci d'utiliser notre site !" + +#~ msgid "The %(site_name)s team" +#~ msgstr "L'équipe de %(site_name)s" + +#~ msgid "Register a user" +#~ msgstr "Enregistrer un utilisateur" + +#~ msgid "Welcome %(user_name)s!" +#~ msgstr "Bienvenue, %(user_name)s!" + +#~ 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." + +#~ msgid "Your username is %(username)s." +#~ msgstr "Votre nom d'utilisateur est %(username)s." + +#~ msgid "Search result" +#~ msgstr "Résultat de la recherche" + +#~ msgid "Users" +#~ msgstr "Utilisateurs" + +#~ msgid "Year" +#~ msgstr "Année" + +#~ msgid "%(user_name)s's account" +#~ msgstr "Compte de %(user_name)s" + +#~ msgid "User account" +#~ msgstr "Compte utilisateur" + +#~ msgid "Account buyings" +#~ msgstr "Achat sur compte utilisateur" + +#~ msgid "Refillings" +#~ msgstr "Rechargements" + +#~ msgid "Eboutic invoices" +#~ msgstr "Facture eboutic" + +#~ msgid "User has no account" +#~ msgstr "L'utilisateur n'a pas de compte" + +#~ msgid "Items" +#~ msgstr "Articles" + +#~ msgid "%(user_name)s's club(s)" +#~ msgstr "Clubs de %(user_name)s" + +#~ msgid "Club(s)" +#~ msgstr "Clubs" + +#~ msgid "Old club(s) :" +#~ msgstr "Anciens clubs :" + +#~ msgid "%(user_name)s's profile" +#~ msgstr "Profil de %(user_name)s" + +#~ msgid "Option: " +#~ msgstr "Filière : " + +#~ msgid "Not subscribed" +#~ msgstr "Non cotisant" + +#~ msgid "New subscription" +#~ msgstr "Nouvelle cotisation" + +#~ msgid "Edit user" +#~ msgstr "Éditer l'utilisateur" + +#~ msgid "Edit user profile" +#~ msgstr "Éditer le profil de l'utilisateur" + +#~ msgid "Current profile: " +#~ msgstr "Profil actuel : " + +#~ msgid "Take picture" +#~ msgstr "Prendre une photo" + +#~ msgid "Current avatar: " +#~ msgstr "Avatar actuel : " + +#~ msgid "Avatar" +#~ msgstr "Avatar" + +#~ msgid "Current scrub: " +#~ msgstr "Blouse actuelle : " + +#~ msgid "Scrub" +#~ msgstr "Blouse" + +#~ msgid "Username: " +#~ msgstr "Nom d'utilisateur : " + +#~ msgid "Change my password" +#~ msgstr "Changer mon mot de passe" + +#~ msgid "Change user password" +#~ msgstr "Changer le mot de passe" + +#~ msgid "%(user_name)s's godfathers" +#~ msgstr "Parrains de %(user_name)s" + +#~ msgid "No godfathers" +#~ msgstr "Pas de parrains" + +#~ msgid "Godchildren" +#~ msgstr "Fillots" + +#~ msgid "No godchildren" +#~ msgstr "Pas de fillots" + +#~ msgid "Edit user groups for %(user_name)s" +#~ msgstr "Éditer les groupes pour %(user_name)s" + +#~ msgid "User list" +#~ msgstr "Liste d'utilisateurs" + +#~ msgid "%(user_name)s's stats" +#~ msgstr "Stats de %(user_name)s" + +#~ msgid "Permanencies" +#~ msgstr "Permanences" + +#~ msgid "Buyings" +#~ msgstr "Achats" + +#~ msgid "Product top 10" +#~ msgstr "Top 10 produits" + +#~ msgid "%(user_name)s's tools" +#~ msgstr "Outils de %(user_name)s" + +#~ msgid "User Tools" +#~ msgstr "Outils utilisateurs" + +#~ msgid "Sith management" +#~ msgstr "Gestion de Sith" + +#~ msgid "Merge users" +#~ msgstr "Fusionner deux utilisateurs" + +#~ msgid "Subscriptions" +#~ msgstr "Cotisations" + +#~ msgid "General management" +#~ msgstr "Gestion générale" + +#~ msgid "General counters management" +#~ msgstr "Gestion générale des comptoirs" + +#~ msgid "Products management" +#~ msgstr "Gestion des produits" + +#~ msgid "Product types management" +#~ msgstr "Gestion des types de produit" + +#~ msgid "General accounting" +#~ msgstr "Comptabilité générale" + +#~ msgid "Club account: " +#~ msgstr "Compte club : " + +#~ msgid "%(counter_name)s activity" +#~ msgstr "Activité sur %(counter_name)s" + +#~ msgid "Barman list" +#~ msgstr "Barmans" + +#~ msgid "Make a cash register summary" +#~ msgstr "Faire un relevé de caisse" + +#~ msgid "Cash register summary list" +#~ msgstr "Liste des relevés de caisse" + +#~ msgid "Theoric sums" +#~ msgstr "Sommes théoriques" + +#~ msgid "yes" +#~ msgstr "oui" + +#~ msgid "There is no cash register summary in this website." +#~ msgstr "Il n'y a pas de relevé de caisse dans ce site web." + +#~ msgid "Selling" +#~ msgstr "Vente" + +#~ msgid "Too young for that product" +#~ msgstr "Trop jeune pour ce produit" + +#~ msgid "Not allowed for that product" +#~ msgstr "Non autorisé pour ce produit" + +#~ msgid "No date of birth provided" +#~ msgstr "Pas de date de naissance renseigné" + +#~ msgid "Go" +#~ msgstr "Valider" + +#~ msgid "Basket: " +#~ msgstr "Panier : " + +#~ msgid "Finish" +#~ msgstr "Terminer" + +#~ msgid "Refilling" +#~ msgstr "Rechargement" + +#~ msgid "Counter admin list" +#~ msgstr "Liste des comptoirs" + +#~ msgid "New counter" +#~ msgstr "Nouveau comptoir" + +#~ msgid "Bars" +#~ msgstr "Bars" + +#~ msgid "Offices" +#~ msgstr "Bureaux" + +#~ msgid "There is no counters in this website." +#~ msgstr "Il n'y a pas de comptoirs dans ce site web." + +#~ msgid "%(counter_name)s counter" +#~ msgstr "Comptoir %(counter_name)s" + +#~ msgid "Last selling: " +#~ msgstr "Dernière vente : " + +#~ msgid "Client: " +#~ msgstr "Client : " + +#~ msgid "New amount: " +#~ msgstr "Nouveau montant : " + +#~ msgid "Enter client code:" +#~ msgstr "Entrez un code client : " + +#~ msgid "validate" +#~ msgstr "valider" + +#~ msgid "Please, login" +#~ msgstr "Merci de vous identifier" + +#~ msgid "Barman: " +#~ msgstr "Barman : " + +#~ msgid "Eticket list" +#~ msgstr "Liste des etickets" + +#~ msgid "New eticket" +#~ msgstr "Nouveau eticket" + +#~ msgid "There is no eticket in this website." +#~ msgstr "Il n'y a pas de eticket sur ce site web." + +#~ msgid "Invoices call for %(date)s" +#~ msgstr "Appels à facture pour %(date)s" + +#~ msgid "Choose another month: " +#~ msgstr "Choisir un autre mois : " + +#~ msgid "%(counter_name)s last operations" +#~ msgstr "Dernières opérations sur %(counter_name)s" + +#~ msgid "Product list" +#~ msgstr "Liste des produits" + +#~ msgid "New product" +#~ msgstr "Nouveau produit" + +#~ msgid "Uncategorized" +#~ msgstr "Sans catégorie" + +#~ msgid "There is no products in this website." +#~ msgstr "Il n'y a pas de produits dans ce site web." + +#~ msgid "Product type list" +#~ msgstr "Liste des types de produit" + +#~ msgid "New product type" +#~ msgstr "Nouveau type de produit" + +#~ msgid "There is no product types in this website." +#~ msgstr "Il n'y a pas de types de produit dans ce site web." + +#~ msgid "%(counter_name)s stats" +#~ msgstr "Stats sur %(counter_name)s" + +#~ msgid "Top 100 %(counter_name)s" +#~ msgstr "Top 100 %(counter_name)s" + +#~ msgid "Promo" +#~ msgstr "Promo" + +#~ msgid "Percentage" +#~ msgstr "Pourcentage" + +#~ msgid "Proceed to command" +#~ msgstr "Procéder à la commande" + +#~ msgid "Basket state" +#~ msgstr "État du panier" + +#~ msgid "Pay with credit card" +#~ msgstr "Payer avec une carte bancaire" + +#~ 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." + +#~ msgid "Pay with Sith account" +#~ msgstr "Payer avec un compte AE" + +#~ msgid "Payment failed" +#~ msgstr "Le paiement a échoué" + +#~ msgid "Payment successful" +#~ msgstr "Le paiement a été effectué" + +#~ msgid "Return to eboutic" +#~ msgstr "Retourner à l'eboutic" + +#~ msgid "Launderette admin" +#~ msgstr "Gestion de la laverie" + +#~ msgid "Sell" +#~ msgstr "Vendre" + +#~ msgid "Machines" +#~ msgstr "Machines" + +#~ msgid "New machine" +#~ msgstr "Nouvelle machine" + +#~ msgid "Choose" +#~ msgstr "Choisir" + +#~ msgid "Washing and drying" +#~ msgstr "Lavage et séchage" + +#~ msgid "Launderette admin list" +#~ msgstr "Liste des laveries" + +#~ msgid "New launderette" +#~ msgstr "Nouvelle laverie" + +#~ msgid "There is no launderette in this website." +#~ msgstr "Il n'y a pas de laverie dans ce site web." + +#~ msgid "Edit presentation page" +#~ msgstr "Éditer la page de présentation" + +#~ msgid "Book launderette slot" +#~ msgstr "Réserver un créneau de laverie" + +#~ msgid "Merge two users" +#~ msgstr "Fusionner deux utilisateurs" + +#~ msgid "Merge" +#~ msgstr "Fusion" + #, fuzzy #~| msgid "Designates whether this user is a superuser. " #~ msgid "Designates whether this user is denyed from buying alchool. " From 224374f5e8c49c4c3c21cce43adaef89fb85ef8f Mon Sep 17 00:00:00 2001 From: klmp200 Date: Wed, 19 Oct 2016 01:57:54 +0200 Subject: [PATCH 9/9] More readable user_account --- core/templates/core/user_account.jinja | 12 ++++++------ core/views/user.py | 8 ++++---- counter/views.py | 1 - 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/core/templates/core/user_account.jinja b/core/templates/core/user_account.jinja index 1ecaa8d9..88c21d6d 100644 --- a/core/templates/core/user_account.jinja +++ b/core/templates/core/user_account.jinja @@ -12,13 +12,13 @@
    {% for array in obj %} - {% for tuple in array %} - {% if tuple[0] != 0 %} - {% set link=url('core:user_account_detail', user_id=profile.id, year=tuple[1].year, month=tuple[1].month) %} + {% for dict in array %} + {% if dict['sum'] != 0 %} + {% set link=url('core:user_account_detail', user_id=profile.id, year=dict['date'].year, month=dict['date'].month) %} - - - + + + {% endif %} {% endfor %} diff --git a/core/views/user.py b/core/views/user.py index 0ed37567..92a7db9b 100644 --- a/core/views/user.py +++ b/core/views/user.py @@ -427,10 +427,10 @@ class UserAccountView(UserAccountBase): date__year=month.year, date__month=month.month ) - stats[i].append(( - sum([calc(p) for p in q]), - month - )) + stats[i].append({ + 'sum':sum([calc(p) for p in q]), + 'date':month + }) i += 1 return stats diff --git a/counter/views.py b/counter/views.py index da8c53a8..f450f0e8 100644 --- a/counter/views.py +++ b/counter/views.py @@ -1025,7 +1025,6 @@ class EticketPDFView(CanViewMixin, DetailView): self.object = self.get_object() eticket = self.object.product.eticket user = self.object.customer.user - print(self.object) code = "%s %s %s %s" % (self.object.customer.user.id, self.object.product.id, self.object.id, self.object.quantity) code += " " + eticket.get_hash(code)[:8].upper() response = HttpResponse(content_type='application/pdf')
    {{ tuple[1].year }}{{ tuple[1]|date("E") }}{{ tuple[0] }} €{{ dict['date'].year }}{{ dict['date']|date("E") }}{{ dict['sum'] }} €