Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
AE
Sith
Commits
66fdf6cb
Commit
66fdf6cb
authored
Aug 14, 2016
by
Skia
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Migrate and improve subscriptions
parent
e1474c7a
Pipeline
#116
failed with stage
in 3 minutes and 14 seconds
Changes
18
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
351 additions
and
89 deletions
+351
-89
accounting/migrations/0002_auto_20160814_1634.py
accounting/migrations/0002_auto_20160814_1634.py
+19
-0
core/templates/core/user_account.jinja
core/templates/core/user_account.jinja
+1
-1
core/templates/core/user_edit.jinja
core/templates/core/user_edit.jinja
+1
-1
core/templates/core/user_mini.jinja
core/templates/core/user_mini.jinja
+19
-0
core/urls.py
core/urls.py
+1
-0
core/views/forms.py
core/views/forms.py
+0
-1
core/views/user.py
core/views/user.py
+9
-0
counter/migrations/0003_auto_20160814_1634.py
counter/migrations/0003_auto_20160814_1634.py
+19
-0
counter/models.py
counter/models.py
+1
-1
launderette/templates/launderette/launderette_main.jinja
launderette/templates/launderette/launderette_main.jinja
+1
-1
locale/fr/LC_MESSAGES/django.mo
locale/fr/LC_MESSAGES/django.mo
+0
-0
locale/fr/LC_MESSAGES/django.po
locale/fr/LC_MESSAGES/django.po
+89
-62
migrate.py
migrate.py
+86
-8
sith/settings_sample.py
sith/settings_sample.py
+43
-9
subscription/migrations/0002_auto_20160814_1634.py
subscription/migrations/0002_auto_20160814_1634.py
+24
-0
subscription/models.py
subscription/models.py
+2
-1
subscription/templates/subscription/subscription.jinja
subscription/templates/subscription/subscription.jinja
+34
-2
subscription/views.py
subscription/views.py
+2
-2
No files found.
accounting/migrations/0002_auto_20160814_1634.py
0 → 100644
View file @
66fdf6cb
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'accounting'
,
'0001_initial'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'operation'
,
name
=
'mode'
,
field
=
models
.
CharField
(
verbose_name
=
'payment method'
,
max_length
=
255
,
choices
=
[(
'CHECK'
,
'Check'
),
(
'CASH'
,
'Cash'
),
(
'TRANSFERT'
,
'Transfert'
),
(
'CARD'
,
'Credit card'
)]),
),
]
core/templates/core/user_account.jinja
View file @
66fdf6cb
...
...
@@ -71,7 +71,7 @@
<td>
<ul>
{%
for
it
in
i.items.all
()
%}
<li>
{{
it.product_name
}}
-
{{
it.product_unit_price
}}
€
</li>
<li>
{{
it.quantity
}}
x
{{
it.product_name
}}
-
{{
it.product_unit_price
}}
€
</li>
{%
endfor
%}
</ul>
</td>
...
...
core/templates/core/user_edit.jinja
View file @
66fdf6cb
...
...
@@ -28,7 +28,7 @@
{%
endif
%}
{%
if
form.instance
==
user
%}
<p><a
href=
"
{{
url
(
'core:password_change'
)
}}
"
>
{%
trans
%}
Change my password
{%
endtrans
%}
</a></p>
{%
elif
user.is_root
()
%}
{%
elif
user.is_root
%}
<p><a
href=
"
{{
url
(
'core:password_root_change'
,
user_id
=
form.instance.id
)
}}
"
>
{%
trans
%}
Change user password
{%
endtrans
%}
</a></p>
{%
endif
%}
</form>
...
...
core/templates/core/user_mini.jinja
0 → 100644
View file @
66fdf6cb
<div
id=
"user_profile"
>
<div
id=
"pictures"
>
{%
if
profile.profile_pict
%}
<img
src=
"
{{
profile.profile_pict.get_download_url
()
}}
"
alt=
"
{%
trans
%}
Profile
{%
endtrans
%}
"
/>
{%
endif
%}
</div>
<p>
{{
profile.get_full_name
()
}}
</p>
{%
if
profile.nick_name
%}
<p
id=
"nickname"
>
«
{{
profile.nick_name
}}
»
</p>
{%
endif
%}
{%
if
profile.date_of_birth
%}
<p>
{%
trans
%}
Born:
{%
endtrans
%}{{
profile.date_of_birth
|
date
(
"d/m/Y"
)
}}
</p>
{%
endif
%}
{%
if
profile.promo
%}
<p><img
src=
"
{{
static
(
'core/img/promo_%02d.png'
%
profile.promo
)
}}
"
alt=
"Promo
{{
profile.promo
}}
"
class=
"promo_pict"
/>
{%
trans
%}
Promo:
{%
endtrans
%}{{
profile.promo
}}
</p>
{%
endif
%}
</div>
core/urls.py
View file @
66fdf6cb
...
...
@@ -25,6 +25,7 @@ urlpatterns = [
# User views
url
(
r
'^user/$'
,
UserListView
.
as_view
(),
name
=
'user_list'
),
url
(
r
'^user/(?P<user_id>[0-9]+)/mini$'
,
UserMiniView
.
as_view
(),
name
=
'user_profile_mini'
),
url
(
r
'^user/(?P<user_id>[0-9]+)/$'
,
UserView
.
as_view
(),
name
=
'user_profile'
),
url
(
r
'^user/(?P<user_id>[0-9]+)/edit$'
,
UserUpdateProfileView
.
as_view
(),
name
=
'user_edit'
),
url
(
r
'^user/(?P<user_id>[0-9]+)/groups$'
,
UserUpdateGroupView
.
as_view
(),
name
=
'user_groups'
),
...
...
core/views/forms.py
View file @
66fdf6cb
...
...
@@ -50,7 +50,6 @@ class SelectFile(TextInput):
'name'
:
name
,
}
output
+=
'<span name="'
+
name
+
'" class="choose_file_button">'
+
_
(
"Choose file"
)
+
'</span>'
print
(
output
)
return
output
# Forms
...
...
core/views/user.py
View file @
66fdf6cb
...
...
@@ -121,6 +121,15 @@ class UserView(CanViewMixin, DetailView):
context_object_name
=
"profile"
template_name
=
"core/user_detail.jinja"
class
UserMiniView
(
CanViewMixin
,
DetailView
):
"""
Display a user's profile
"""
model
=
User
pk_url_kwarg
=
"user_id"
context_object_name
=
"profile"
template_name
=
"core/user_mini.jinja"
class
UserListView
(
ListView
):
"""
Displays the user list
...
...
counter/migrations/0003_auto_20160814_1634.py
0 → 100644
View file @
66fdf6cb
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'counter'
,
'0002_auto_20160810_1348'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'refilling'
,
name
=
'payment_method'
,
field
=
models
.
CharField
(
verbose_name
=
'payment method'
,
default
=
'cash'
,
max_length
=
255
,
choices
=
[(
'CHECK'
,
'Check'
),
(
'CASH'
,
'Cash'
)]),
),
]
counter/models.py
View file @
66fdf6cb
...
...
@@ -30,7 +30,7 @@ class Customer(models.Model):
ordering
=
[
'account_id'
,]
def
__str__
(
self
):
return
self
.
user
.
username
return
"%s - %s"
%
(
self
.
user
.
username
,
self
.
account_id
)
def
generate_account_id
(
number
):
number
=
str
(
number
)
...
...
launderette/templates/launderette/launderette_main.jinja
View file @
66fdf6cb
...
...
@@ -5,7 +5,7 @@
{%
endblock
%}
{%
block
content
%}
{%
if
request.user.is_
in_group
(
settings.SITH_GROUPS
[
'launderette-admin'
][
'name'
])
%}
{%
if
request.user.is_
root
%}
<p><a
href=
"
{{
url
(
'core:page_edit'
,
page_name
=
page.get_full_name
())
}}
"
>
{%
trans
%}
Edit presentation page
{%
endtrans
%}
</a></p>
{%
endif
%}
{%
if
request.user.is_in_group
(
settings.SITH_MAIN_MEMBERS_GROUP
)
%}
...
...
locale/fr/LC_MESSAGES/django.mo
View file @
66fdf6cb
No preview for this file type
locale/fr/LC_MESSAGES/django.po
View file @
66fdf6cb
...
...
@@ -6,7 +6,7 @@
msgid
""
msgstr
""
"Report-Msgid-Bugs-To:
\n
"
"POT-Creation-Date: 2016-08-1
3
1
7:14
+0200
\n
"
"POT-Creation-Date: 2016-08-1
4
1
6:36
+0200
\n
"
"PO-Revision-Date: 2016-07-18
\n
"
"Last-Translator: Skia <skia@libskia.so>
\n
"
"Language-Team: AE info <ae.info@utbm.fr>
\n
"
...
...
@@ -66,7 +66,7 @@ msgstr "montant effectif"
msgid
"number"
msgstr
"numéro"
#: accounting/models.py:154 core/models.py:40
3
core/models.py:6
79
#: accounting/models.py:154 core/models.py:40
4
core/models.py:6
80
#: counter/models.py:209 counter/models.py:244 eboutic/models.py:13
#: eboutic/models.py:46
msgid
"date"
...
...
@@ -122,7 +122,7 @@ msgstr "Compte"
msgid
"Company"
msgstr
"Entreprise"
#: accounting/models.py:163 sith/settings.py:2
7
8 sith/settings_sample.py:26
8
#: accounting/models.py:163 sith/settings.py:28
0
sith/settings_sample.py:26
6
msgid
"Other"
msgstr
"Autre"
...
...
@@ -766,113 +766,113 @@ msgstr "téléphone des parents"
msgid
"parent address"
msgstr
"adresse des parents"
#: core/models.py:25
3
#: core/models.py:25
4
msgid
"A user with that username already exists"
msgstr
"Un utilisateur de ce nom d'utilisateur existe déjà"
#: core/models.py:38
0
#: core/models.py:38
1
msgid
"Visitor"
msgstr
"Visiteur"
#: core/models.py:38
5
#: core/models.py:38
6
msgid
"define if we show a users stats"
msgstr
"Definit si l'on montre les statistiques de l'utilisateur"
#: core/models.py:38
7
#: core/models.py:38
8
msgid
"Show your account statistics to others"
msgstr
"Montrez vos statistiques de compte aux autres"
#: core/models.py:39
4
#: core/models.py:39
5
msgid
"file name"
msgstr
"nom du fichier"
#: core/models.py:39
5
core/models.py:52
8
#: core/models.py:39
6
core/models.py:52
9
msgid
"parent"
msgstr
"parent"
#: core/models.py:39
6
core/models.py:40
6
#: core/models.py:39
7
core/models.py:40
7
msgid
"file"
msgstr
"fichier"
#: core/models.py:39
7
#: core/models.py:39
8
msgid
"owner"
msgstr
"propriétaire"
#: core/models.py:39
8
core/models.py:53
4
#: core/models.py:39
9
core/models.py:53
5
msgid
"edit group"
msgstr
"groupe d'édition"
#: core/models.py:
399
core/models.py:53
5
#: core/models.py:
400
core/models.py:53
6
msgid
"view group"
msgstr
"groupe de vue"
#: core/models.py:40
0
#: core/models.py:40
1
msgid
"is folder"
msgstr
"est un dossier"
#: core/models.py:40
1
#: core/models.py:40
2
msgid
"mime type"
msgstr
"type mime"
#: core/models.py:40
2
#: core/models.py:40
3
msgid
"size"
msgstr
"taille"
#: core/models.py:43
2
#: core/models.py:43
3
msgid
"Character '/' not authorized in name"
msgstr
"Le caractère '/' n'est pas autorisé dans les noms de fichier"
#: core/models.py:43
5
core/models.py:44
0
#: core/models.py:43
6
core/models.py:44
1
msgid
"Loop in folder tree"
msgstr
"Boucle dans l'arborescence des dossiers"
#: core/models.py:44
4
#: core/models.py:44
5
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:44
8
#: core/models.py:44
9
msgid
"Duplicate file"
msgstr
"Un fichier de ce nom existe déjà"
#: core/models.py:45
8
#: core/models.py:45
9
msgid
"You must provide a file"
msgstr
"Vous devez fournir un fichier"
#: core/models.py:48
3
#: core/models.py:48
4
msgid
"Folder: "
msgstr
"Dossier : "
#: core/models.py:48
5
#: core/models.py:48
6
msgid
"File: "
msgstr
"Fichier : "
#: core/models.py:52
7
core/models.py:53
1
#: core/models.py:52
8
core/models.py:53
2
msgid
"page name"
msgstr
"nom de la page"
#: core/models.py:53
2
#: core/models.py:53
3
msgid
"owner group"
msgstr
"groupe propriétaire"
#: core/models.py:56
3
#: core/models.py:56
4
msgid
"Duplicate page"
msgstr
"Une page de ce nom existe déjà"
#: core/models.py:5
69
#: core/models.py:5
70
msgid
"Loop in page tree"
msgstr
"Boucle dans l'arborescence des pages"
#: core/models.py:67
6
#: core/models.py:67
7
msgid
"revision"
msgstr
"révision"
#: core/models.py:67
7
#: core/models.py:67
8
msgid
"page title"
msgstr
"titre de la page"
#: core/models.py:67
8
#: core/models.py:67
9
msgid
"page content"
msgstr
"contenu de la page"
...
...
@@ -931,7 +931,7 @@ msgstr "Services"
#: core/templates/core/base.jinja:55
msgid
"Site made by good people"
msgstr
"Site réalisé par des gens b
ie
ns"
msgstr
"Site réalisé par des gens b
o
ns"
#: core/templates/core/create.jinja:4
#, python-format
...
...
@@ -1411,7 +1411,7 @@ msgstr "Ajouter un nouveau dossier"
msgid
"Error creating folder %(folder_name)s: %(msg)s"
msgstr
"Erreur de création du dossier %(folder_name)s : %(msg)s"
#: core/views/files.py:62 core/views/forms.py:15
5
core/views/forms.py:15
9
#: core/views/files.py:62 core/views/forms.py:15
4
core/views/forms.py:15
8
#, python-format
msgid
"Error uploading file %(file_name)s: %(msg)s"
msgstr
"Erreur d'envoie du fichier %(file_name)s : %(msg)s"
...
...
@@ -1420,7 +1420,7 @@ msgstr "Erreur d'envoie du fichier %(file_name)s : %(msg)s"
msgid
"Choose file"
msgstr
"Choisir un fichier"
#: core/views/forms.py:11
4
#: core/views/forms.py:11
3
msgid
""
"Profile: you need to be visible on the picture, in order to be recognized (e."
"g. by the barmen)"
...
...
@@ -1428,15 +1428,15 @@ msgstr ""
"Photo de profil: vous devez être visible sur la photo afin d'être reconnu "
"(par exemple par les barmen)"
#: core/views/forms.py:11
5
#: core/views/forms.py:11
4
msgid
"Avatar: used on the forum"
msgstr
"Avatar : utilisé sur le forum"
#: core/views/forms.py:11
6
#: core/views/forms.py:11
5
msgid
"Scrub: let other know how your scrub looks like!"
msgstr
"Blouse : montrez aux autres à quoi ressemble votre blouse !"
#: core/views/forms.py:1
60
#: core/views/forms.py:1
59
msgid
"Bad image format, only jpeg, png, and gif are accepted"
msgstr
"Mauvais format d'image, seuls les jpeg, png, et gif sont acceptés"
...
...
@@ -1491,6 +1491,7 @@ msgstr "Bureau"
#: counter/models.py:110 eboutic/templates/eboutic/eboutic_main.jinja:20
#: eboutic/templates/eboutic/eboutic_makecommand.jinja:4
#: eboutic/templates/eboutic/eboutic_payment_result.jinja:4
#: sith/settings.py:279 sith/settings_sample.py:265
msgid
"Eboutic"
msgstr
"Eboutic"
...
...
@@ -1676,7 +1677,8 @@ msgstr "ANN"
msgid
"You have not enough money to buy all the basket"
msgstr
"Vous n'avez pas assez d'argent pour acheter le panier"
#: eboutic/models.py:47 sith/settings.py:272 sith/settings_sample.py:262
#: eboutic/models.py:47 sith/settings.py:272 sith/settings.py:277
#: sith/settings_sample.py:258 sith/settings_sample.py:263
msgid
"Credit card"
msgstr
"Carte banquaire"
...
...
@@ -1824,12 +1826,12 @@ msgid "Washing and drying"
msgstr
"Lavage et séchage"
#: launderette/templates/launderette/launderette_book.jinja:26
#: sith/settings.py:3
60
sith/settings_sample.py:3
50
#: sith/settings.py:3
98
sith/settings_sample.py:3
84
msgid
"Washing"
msgstr
"Lavage"
#: launderette/templates/launderette/launderette_book.jinja:30
#: sith/settings.py:3
60
sith/settings_sample.py:3
50
#: sith/settings.py:3
98
sith/settings_sample.py:3
84
msgid
"Drying"
msgstr
"Séchage"
...
...
@@ -1884,83 +1886,108 @@ msgstr "L'utilisateur n'a pas réservé de créneau"
msgid
"Token not found"
msgstr
"Jeton non trouvé"
#: sith/settings.py:269 sith/settings.py:276 sith/settings.py:29
4
#: sith/settings_sample.py:25
9
sith/settings_sample.py:26
6
#: sith/settings_sample.py:28
4
#: sith/settings.py:269 sith/settings.py:276 sith/settings.py:29
6
#: sith/settings_sample.py:25
5
sith/settings_sample.py:26
2
#: sith/settings_sample.py:28
2
msgid
"Check"
msgstr
"Chèque"
#: sith/settings.py:270 sith/settings.py:27
7
sith/settings.py:29
5
#: sith/settings_sample.py:26
0
sith/settings_sample.py:26
7
#: sith/settings_sample.py:28
5
#: sith/settings.py:270 sith/settings.py:27
8
sith/settings.py:29
7
#: sith/settings_sample.py:2
5
6 sith/settings_sample.py:26
4
#: sith/settings_sample.py:28
3
msgid
"Cash"
msgstr
"Espèces"
#: sith/settings.py:271 sith/settings_sample.py:2
61
#: sith/settings.py:271 sith/settings_sample.py:2
57
msgid
"Transfert"
msgstr
"Virement"
#: sith/settings.py:28
2
sith/settings_sample.py:27
2
#: sith/settings.py:28
4
sith/settings_sample.py:27
0
msgid
"Belfort"
msgstr
"Belfort"
#: sith/settings.py:28
3
sith/settings_sample.py:27
3
#: sith/settings.py:28
5
sith/settings_sample.py:27
1
msgid
"Sevenans"
msgstr
"Sevenans"
#: sith/settings.py:28
4
sith/settings_sample.py:27
4
#: sith/settings.py:28
6
sith/settings_sample.py:27
2
msgid
"Montbéliard"
msgstr
"Montbéliard"
#: sith/settings.py:3
08
sith/settings_sample.py:29
8
#: sith/settings.py:3
11
sith/settings_sample.py:29
7
msgid
"One semester"
msgstr
"Un semestre"
#: sith/settings.py:31
3
sith/settings_sample.py:30
3
#: sith/settings.py:31
6
sith/settings_sample.py:30
2
msgid
"Two semesters"
msgstr
"Deux semestres"
#: sith/settings.py:31
8
sith/settings_sample.py:30
8
#: sith/settings.py:3
2
1 sith/settings_sample.py:30
7
msgid
"Common core cursus"
msgstr
"Cursus tronc commun"
#: sith/settings.py:323 sith/settings_sample.py:313
#: sith/settings.py:326 sith/settings.py:331 sith/settings_sample.py:312
#: sith/settings_sample.py:317
msgid
"Branch cursus"
msgstr
"Cursus branche"
#: sith/settings.py:331 sith/settings_sample.py:321
#: sith/settings.py:336 sith/settings_sample.py:322
msgid
"Honorary member"
msgstr
"Membre honoraire"
#: sith/settings.py:341 sith/settings_sample.py:327
msgid
"Assidu member"
msgstr
"Membre d'Assidu"
#: sith/settings.py:346 sith/settings_sample.py:332
msgid
"Amicale/DOCEO member"
msgstr
"Membre de l'Amicale/DOCEO"
#: sith/settings.py:351 sith/settings_sample.py:337
msgid
"UT network member"
msgstr
"Cotisant du réseau UT"
#: sith/settings.py:356 sith/settings_sample.py:342
msgid
"CROUS member"
msgstr
"Membres du CROUS"
#: sith/settings.py:361 sith/settings_sample.py:347
msgid
"Sbarro/ESTA member"
msgstr
"Membre de Sbarro ou de l'ESTA"
#: sith/settings.py:369 sith/settings_sample.py:355
msgid
"President"
msgstr
"Président"
#: sith/settings.py:3
32
sith/settings_sample.py:3
22
#: sith/settings.py:3
70
sith/settings_sample.py:3
56
msgid
"Vice-President"
msgstr
"Vice-Président"
#: sith/settings.py:3
33
sith/settings_sample.py:3
23
#: sith/settings.py:3
71
sith/settings_sample.py:3
57
msgid
"Treasurer"
msgstr
"Trésorier"
#: sith/settings.py:3
34
sith/settings_sample.py:3
24
#: sith/settings.py:3
72
sith/settings_sample.py:3
58
msgid
"Communication supervisor"
msgstr
"Responsable com"
#: sith/settings.py:33
5
sith/settings_sample.py:3
2
5
#: sith/settings.py:3
7
3 sith/settings_sample.py:35
9
msgid
"Secretary"
msgstr
"Secrétaire"
#: sith/settings.py:3
36
sith/settings_sample.py:3
2
6
#: sith/settings.py:3
74
sith/settings_sample.py:36
0
msgid
"IT supervisor"
msgstr
"Responsable info"
#: sith/settings.py:3
3
7 sith/settings_sample.py:3
27
#: sith/settings.py:37
5
sith/settings_sample.py:3
61
msgid
"Board member"
msgstr
"Membre du bureau"
#: sith/settings.py:3
38
sith/settings_sample.py:32
8
#: sith/settings.py:3
76
sith/settings_sample.py:3
6
2
msgid
"Active member"
msgstr
"Membre actif"
#: sith/settings.py:3
39
sith/settings_sample.py:3
29
#: sith/settings.py:3
77
sith/settings_sample.py:3
63
msgid
"Curious"
msgstr
"Curieux"
...
...
migrate.py
View file @
66fdf6cb
...
...
@@ -16,6 +16,8 @@ from django.db import connection
from
core.models
import
User
,
SithFile
from
club.models
import
Club
,
Membership
from
counter.models
import
Customer
from
subscription.models
import
Subscription
,
Subscriber
db
=
MySQLdb
.
connect
(
host
=
"ae-db"
,
...
...
@@ -87,15 +89,15 @@ def migrate_users():
c
.
execute
(
"""
SELECT *
FROM utilisateurs utl
JOIN utl_etu ue
LEFT
JOIN utl_etu ue
ON ue.id_utilisateur = utl.id_utilisateur
JOIN utl_etu_utbm ueu
LEFT
JOIN utl_etu_utbm ueu
ON ueu.id_utilisateur = utl.id_utilisateur
JOIN utl_extra uxtra
LEFT
JOIN utl_extra uxtra
ON uxtra.id_utilisateur = utl.id_utilisateur
JOIN loc_ville ville
LEFT
JOIN loc_ville ville
ON utl.id_ville = ville.id_ville
-- WHERE utl.id_utilisateur
>
9
000
-- WHERE utl.id_utilisateur
=
9
248
"""
)
User
.
objects
.
filter
(
id__gt
=
0
).
delete
()
print
(
"Users deleted"
)
...
...
@@ -237,12 +239,88 @@ def migrate_club_memberships():
print
(
"FAIL for club membership %s: %s"
%
(
m
[
'id_asso'
],
repr
(
e
)))
cur
.
close
()
def
migrate_subscriptions
():
LOCATION
=
{
5
:
"SEVENANS"
,
6
:
"BELFORT"
,
9
:
"MONTBELIARD"
,
None
:
"SEVENANS"
,
}
TYPE
=
{
0
:
'un-semestre'
,
1
:
'deux-semestres'
,
2
:
'cursus-tronc-commun'
,
3
:
'cursus-branche'
,
4
:
'membre-honoraire'
,
5
:
'assidu'
,
6
:
'amicale/doceo'
,
7
:
'reseau-ut'
,
8
:
'crous'
,
9
:
'sbarro/esta'
,
10
:
'cursus-alternant'
,
None
:
'un-semestre'
,
}
PAYMENT
=
{
1
:
"CHECK"
,
2
:
"CARD"
,
3
:
"CASH"
,
4
:
"OTHER"
,
5
:
"EBOUTIC"
,
0
:
"OTHER"
,
}
cur
=
db
.
cursor
(
MySQLdb
.
cursors
.
DictCursor
)
cur
.
execute
(
"""
SELECT *
FROM ae_cotisations
"""
)
Subscription
.
objects
.
all
().
delete
()
print
(
"Subscriptions deleted"
)
Customer
.
objects
.
all
().
delete
()
print
(
"Customers deleted"
)
for
r
in
cur
.
fetchall
():
try
:
user
=
Subscriber
.
objects
.
filter
(
id
=
r
[
'id_utilisateur'
]).
first
()
if
user
:
new
=
Subscription
(
id
=
r
[
'id_cotisation'
],
member
=
user
,
subscription_start
=
r
[
'date_cotis'
],
subscription_end
=
r
[
'date_fin_cotis'
],
subscription_type
=
TYPE
[
r
[
'type_cotis'
]],
payment_method
=
PAYMENT
[
r
[
'mode_paiement_cotis'
]],
location
=
LOCATION
[
r
[
'id_comptoir'
]],
)
new
.
save
()
except
Exception
as
e
:
print
(
"FAIL for subscription %s: %s"
%
(
r
[
'id_cotisation'
],
repr
(
e
)))
cur
.
close
()
def
update_customer_account
():
cur
=
db
.
cursor
(
MySQLdb
.
cursors
.
DictCursor
)
cur
.
execute
(
"""
SELECT *
FROM ae_carte carte
JOIN ae_cotisations cotis
ON carte.id_cotisation = cotis.id_cotisation
"""
)
for
r
in
cur
.
fetchall
():
try
:
user
=
Customer
.
objects
.
filter
(
user_id
=
r
[
'id_utilisateur'
]).
first
()
if
user
:
user
.
account_id
=
str
(
r
[
'id_carte_ae'
])
+
r
[
'cle_carteae'
].
lower
()
user
.
save
()
except
Exception
as
e
:
print
(
"FAIL to update customer account for %s: %s"
%
(
r
[
'id_cotisation'
],
repr
(
e
)))
cur
.
close
()
def
main
():
#
migrate_users()
#
migrate_profile_pict()
#
migrate_clubs()
migrate_users
()