populate.py 25.3 KB
Newer Older
Skia's avatar
Skia committed
1
import os
Skia's avatar
Skia committed
2
from datetime import date, datetime
3
from io import StringIO, BytesIO
Skia's avatar
Skia committed
4

Skia's avatar
Skia committed
5
6
7
from django.core.management.base import BaseCommand, CommandError
from django.core.management import call_command
from django.conf import settings
Skia's avatar
Skia committed
8
from django.db import connection
9
from django.contrib.sites.models import Site
Skia's avatar
Skia committed
10

11
from PIL import Image
Skia's avatar
Skia committed
12

Skia's avatar
Skia committed
13
from core.models import Group, User, Page, PageRev, SithFile
Krophil's avatar
Krophil committed
14
from accounting.models import GeneralJournal, BankAccount, ClubAccount, Operation, AccountingType, SimplifiedAccountingType, Company
15
from core.utils import resize_image
Skia's avatar
Skia committed
16
from club.models import Club, Membership
Skia's avatar
Skia committed
17
from subscription.models import Subscription
Skia's avatar
Skia committed
18
from counter.models import Customer, ProductType, Product, Counter
Skia's avatar
Skia committed
19
from com.models import Sith
Sli's avatar
Sli committed
20
21
from election.models import Election, Role, Candidature, ElectionList

Skia's avatar
Skia committed
22
23
24
25
26
27
28

class Command(BaseCommand):
    help = "Populate a new instance of the Sith AE"

    def add_arguments(self, parser):
        parser.add_argument('--prod', action="store_true")

29
30
31
32
33
34
    def reset_index(self, *args):
        sqlcmd = StringIO()
        call_command("sqlsequencereset", *args, stdout=sqlcmd)
        cursor = connection.cursor()
        cursor.execute(sqlcmd.getvalue())

Skia's avatar
Skia committed
35
    def handle(self, *args, **options):
Skia's avatar
Skia committed
36
        os.environ['DJANGO_COLORS'] = 'nocolor'
37
        Site(id=4000, domain=settings.SITH_URL, name=settings.SITH_NAME).save()
Skia's avatar
Skia committed
38
        root_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
Skia's avatar
Skia committed
39
40
41
42
43
44
45
46
47
        Group(name="Root").save()
        Group(name="Not registered users").save()
        Group(name="Accounting admin").save()
        Group(name="Communication admin").save()
        Group(name="Counter admin").save()
        Group(name="Banned from buying alcohol").save()
        Group(name="Banned from counters").save()
        Group(name="Banned to subscribe").save()
        Group(name="SAS admin").save()
48
        self.reset_index("core", "auth")
Skia's avatar
Skia committed
49
        root = User(id=0, username='root', last_name="", first_name="Bibou",
Skia's avatar
Skia committed
50
51
52
                 email="ae.info@utbm.fr",
                 date_of_birth="1942-06-12",
                 is_superuser=True, is_staff=True)
Skia's avatar
Skia committed
53
54
        root.set_password("plop")
        root.save()
55
56
        profiles_root = SithFile(parent=None, name="profiles", is_folder=True, owner=root)
        profiles_root.save()
Skia's avatar
Skia committed
57
58
59
60
        home_root = SithFile(parent=None, name="users", is_folder=True, owner=root)
        home_root.save()
        club_root = SithFile(parent=None, name="clubs", is_folder=True, owner=root)
        club_root.save()
Skia's avatar
Skia committed
61
        SithFile(parent=None, name="SAS", is_folder=True, owner=root).save()
Skia's avatar
Skia committed
62
        main_club = Club(id=1, name=settings.SITH_MAIN_CLUB['name'], unix_name=settings.SITH_MAIN_CLUB['unix_name'],
Skia's avatar
Skia committed
63
                address=settings.SITH_MAIN_CLUB['address'])
64
        main_club.save()
Skia's avatar
Skia committed
65
        bar_club = Club(id=2, name=settings.SITH_BAR_MANAGER['name'], unix_name=settings.SITH_BAR_MANAGER['unix_name'],
66
67
                address=settings.SITH_BAR_MANAGER['address'])
        bar_club.save()
Skia's avatar
Skia committed
68
        launderette_club = Club(id=84, name=settings.SITH_LAUNDERETTE_MANAGER['name'],
69
70
71
                unix_name=settings.SITH_LAUNDERETTE_MANAGER['unix_name'],
                address=settings.SITH_LAUNDERETTE_MANAGER['address'])
        launderette_club.save()
72
        self.reset_index("club")
73
74
75
76
77
78
79
80
        for b in settings.SITH_COUNTER_BARS:
            g = Group(name=b[1]+" admin")
            g.save()
            c = Counter(id=b[0], name=b[1], club=bar_club, type='BAR')
            c.save()
            c.edit_groups = [g]
            c.save()
        self.reset_index("counter")
Skia's avatar
Skia committed
81
        Counter(name="Eboutic", club=main_club, type='EBOUTIC').save()
Sli's avatar
Sli committed
82
        Counter(name="AE", club=main_club, type='OFFICE').save()
Skia's avatar
Skia committed
83
84
85
86
87
88

        home_root.view_groups = [Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first()]
        club_root.view_groups = [Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first()]
        home_root.save()
        club_root.save()

Skia's avatar
Skia committed
89
90
        Sith().save()

Skia's avatar
Skia committed
91
92
93
        p = Page(name='Index')
        p.set_lock(root)
        p.save()
Skia's avatar
Skia committed
94
        p.view_groups=[settings.SITH_GROUP_PUBLIC_ID]
Skia's avatar
Skia committed
95
96
97
98
        p.set_lock(root)
        p.save()
        PageRev(page=p, title="Wiki index", author=root, content="""
Welcome to the wiki page!
Skia's avatar
Skia committed
99
100
101
102
103
""").save()

        p = Page(name="services")
        p.set_lock(root)
        p.save()
Skia's avatar
Skia committed
104
        p.view_groups=[settings.SITH_GROUP_PUBLIC_ID]
Skia's avatar
Skia committed
105
106
107
108
109
110
111
        p.set_lock(root)
        PageRev(page=p, title="Services", author=root, content="""
|   |   |   |
| :---: | :---: | :---: | :---: |
| [Eboutic](/eboutic) | [Laverie](/launderette) | Matmat | [Fichiers](/file) |
| SAS | Weekmail | Forum | |

Skia's avatar
Skia committed
112
""").save()
Skia's avatar
Skia committed
113

114
115
116
117
        p = Page(name="launderette")
        p.set_lock(root)
        p.save()
        p.set_lock(root)
118
        PageRev(page=p, title="Laverie", author=root, content="Fonctionnement de la laverie").save()
119

Skia's avatar
Skia committed
120
121
122
        # Here we add a lot of test datas, that are not necessary for the Sith, but that provide a basic development environment
        if not options['prod']:
            # Adding user Skia
Skia's avatar
Skia committed
123
            skia = User(username='skia', last_name="Kia", first_name="S'",
Skia's avatar
Skia committed
124
125
                     email="skia@git.an",
                     date_of_birth="1942-06-12")
Skia's avatar
Skia committed
126
127
128
129
            skia.set_password("plop")
            skia.save()
            skia.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
            skia.save()
130
131
132
133
134
135
136
137
138
139
140
            skia_profile_path = os.path.join(root_path, 'core/fixtures/images/3.jpg')
            with open(skia_profile_path, 'rb') as f:
                name = str(skia.id) + "_profile.jpg"
                skia_profile = SithFile(parent=profiles_root, name=name,
                    file=resize_image(Image.open(BytesIO(f.read())), 400, 'JPEG'),
                    owner=skia, is_folder=False, mime_type='image/jpeg', size=os.path.getsize(skia_profile_path))
                skia_profile.file.name = name
                skia_profile.save()
                skia.profile_pict = skia_profile
                skia.save()

Skia's avatar
Skia committed
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
            # Adding user public
            public = User(username='public', last_name="Not subscribed", first_name="Public",
                     email="public@git.an",
                     date_of_birth="1942-06-12",
                     is_superuser=False, is_staff=False)
            public.set_password("plop")
            public.save()
            public.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
            public.save()
            # Adding user Subscriber
            subscriber = User(username='subscriber', last_name="User", first_name="Subscribed",
                     email="Subscribed@git.an",
                     date_of_birth="1942-06-12",
                     is_superuser=False, is_staff=False)
            subscriber.set_password("plop")
            subscriber.save()
            subscriber.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
            subscriber.save()
159
160
161
162
163
164
165
166
            # Adding user Counter admin
            counter = User(username='counter', last_name="Ter", first_name="Coun",
                     email="counter@git.an",
                     date_of_birth="1942-06-12",
                     is_superuser=False, is_staff=False)
            counter.set_password("plop")
            counter.save()
            counter.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Skia's avatar
Skia committed
167
            counter.groups=[Group.objects.filter(id=settings.SITH_GROUP_COUNTER_ADMIN_ID).first().id]
168
            counter.save()
Skia's avatar
Skia committed
169
170
171
172
173
174
175
176
            # Adding user Comptable
            comptable = User(username='comptable', last_name="Able", first_name="Compte",
                     email="compta@git.an",
                     date_of_birth="1942-06-12",
                     is_superuser=False, is_staff=False)
            comptable.set_password("plop")
            comptable.save()
            comptable.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Skia's avatar
Skia committed
177
            comptable.groups=[Group.objects.filter(id=settings.SITH_GROUP_ACCOUNTING_ADMIN_ID).first().id]
Skia's avatar
Skia committed
178
            comptable.save()
Skia's avatar
Skia committed
179
180
181
182
183
184
185
            # Adding user Guy
            u = User(username='guy', last_name="Carlier", first_name="Guy",
                     email="guy@git.an",
                     date_of_birth="1942-06-12",
                     is_superuser=False, is_staff=False)
            u.set_password("plop")
            u.save()
Skia's avatar
Skia committed
186
            u.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Skia's avatar
Skia committed
187
            u.save()
Skia's avatar
Skia committed
188
189
190
191
192
193
            # Adding user Richard Batsbak
            r = User(username='rbatsbak', last_name="Batsbak", first_name="Richard",
                     email="richard@git.an",
                     date_of_birth="1982-06-12")
            r.set_password("plop")
            r.save()
Skia's avatar
Skia committed
194
            r.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Skia's avatar
Skia committed
195
            r.save()
Skia's avatar
Skia committed
196
197
            # Adding syntax help page
            p = Page(name='Aide_sur_la_syntaxe')
Skia's avatar
Skia committed
198
            p.save(force_lock=True)
Skia's avatar
Skia committed
199
            PageRev(page=p, title="Aide sur la syntaxe", author=skia, content="""
Skia's avatar
Skia committed
200
Cette page vise à documenter la syntaxe *Markdown* utilisée sur le site.
Skia's avatar
Skia committed
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360

# Markdown-AE Documentation


## Basique

* Mettre le texte en **gras** : `**texte**`

* Mettre le texte en *italique* : `*texte*`

* __Souligner__ le texte : `__texte__`

* ~~Barrer du texte~~ : `~~texte~~`

* ^Mettre du texte^ en ^exposant : `^mot` ou `^texte^`

* _Mettre du texte_ en _indice : `_mot` ou `_texte_`



## Liens

* Les liens simples sont détectés automatiquement : `http://www.site.com`

http://www.site.com

* Il est possible de nommer son lien : `[nom du lien](http://www.site.com)`

[nom du lien](http://www.site.com)

* Les liens peuvent être internes au site de l'AE, on peut dès lors éviter d'entrer
l'adresse complète d'une page : `[nom du lien](article://nomDeLaPage)`

[nom du lien](article://nomDeLaPage)

* On peut également utiliser une image pour les liens :
`[nom du lien]![images/imageDuSiteAE.png](/chemin/vers/image.png titre optionnel)(options)`

[nom du lien]![images/imageDuSiteAE.png](/chemin/vers/image.png titre optionnel)(options)



## Titres

* Plusieurs niveaux de titres sont possibles

```
# Titre de niveau 1
## Titre de niveau 2
### Titre de niveau 3
etc...
```
# Titre de niveau 1
## Titre de niveau 2
### Titre de niveau 3

Si le titre de votre section commence par un tilde (~) alors le texte sous la section est
affiché par défaut caché et il est consultable grace à un bouton +/-


## Listes

Il est possible de créer des listes :

* ordonnées :

```
1. élément
2. élément
3. élément
```
1. élément
1. élément
1. élément

Vous pouvez marquer plus simplement comme suit, les numéros se faisant tout seuls:
```
1. élément
1. élément
1. élément
```

* non ordonnées :
```
 * élément
 * élément
 * élément
```
* élément
* élément
* élément


## Tableaux

Un tableau est obtenu en respectant la syntax suivante :

```
| Titre | Titre2 | Titre3 |
|-------|--------|--------|
| test  | test   |   test |
| test  | test   |   test |
```
| Titre | Titre2 | Titre3 |
|-------|--------|--------|
| test  | test   |   test |
| test  | test   |   test |

L'alignement dans les cellules est géré en mettant des espaces à droite ou a gauche des chaines de caractères contenues dans chaque case.

```
| Titre | Titre2 | Titre3 |
|-------|--------|--------|
|gauche | centre |  droite|
```
| Titre | Titre2 | Titre3 |
|-------|--------|--------|
|gauche | centre |  droite|


## Images et contenus

Une image est insérée ainsi : `![texte alternatif](/chemin/vers/image.png "titre optionnel")(options)`
![texte alternatif](/static/core/img/logo.png "titre optionnel")(options)

( devrait pouvoir détecter si vidéo ou non )
( TODO : parametres )

## Blocs de citations

Un bloc de citation se crée ainsi :
```
> Ceci est
> un bloc de
> citation
```

> Ceci est
> un bloc de
> citation

Il est possible d'intégrer de la syntaxe Markdown-AE dans un tel bloc.



## échapper des caractères

* Il est possible d'ignorer un caractère spécial en l'échappant à l'aide d'un \
* L'échappement de blocs de codes complet se fera à l'aide de balises <nosyntax></nosyntax>



## Autres ( hérité de l'ancien wiki )

* Une ligne peut être crée avec une ligne contenant 4 tirets ( - ).
* Une barre de progression est crée ainsi :
> [[[70]]]
* Notes en pied de page :
> ((note))

Skia's avatar
Skia committed
361
362
""").save()
            p = Page(name='Services')
Skia's avatar
Skia committed
363
            p.save(force_lock=True)
Skia's avatar
Skia committed
364
            p.view_groups=[settings.SITH_GROUP_PUBLIC_ID]
Skia's avatar
Skia committed
365
            p.save(force_lock=True)
Skia's avatar
Skia committed
366
367
368
369
370
371
            PageRev(page=p, title="Services", author=skia, content="""
|   |   |   |
| :---: | :---: | :---: |
| [Eboutic](/eboutic) | [Laverie](/launderette) | Matmat |
| SAS | Weekmail | Forum|

Skia's avatar
Skia committed
372
373
374
""").save()
            # Adding README
            p = Page(name='README')
Skia's avatar
Skia committed
375
            p.save(force_lock=True)
Skia's avatar
Skia committed
376
            p.view_groups=[settings.SITH_GROUP_PUBLIC_ID]
Skia's avatar
Skia committed
377
            p.save(force_lock=True)
Skia's avatar
Skia committed
378
            with open(os.path.join(root_path)+'/README.md', 'r') as rm:
379
                PageRev(page=p, title="README", author=skia, content=rm.read()).save()
Skia's avatar
Skia committed
380
381

            # Subscription
Skia's avatar
Skia committed
382
            ## Root
Skia's avatar
Skia committed
383
            s = Subscription(member=User.objects.filter(pk=root.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
384
385
386
387
388
389
                    payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0])
            s.subscription_start = s.compute_start()
            s.subscription_end = s.compute_end(
                    duration=settings.SITH_SUBSCRIPTIONS[s.subscription_type]['duration'],
                    start=s.subscription_start)
            s.save()
Skia's avatar
Skia committed
390
            ## Skia
Skia's avatar
Skia committed
391
            s = Subscription(member=User.objects.filter(pk=skia.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
392
393
394
395
396
397
                    payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0])
            s.subscription_start = s.compute_start()
            s.subscription_end = s.compute_end(
                    duration=settings.SITH_SUBSCRIPTIONS[s.subscription_type]['duration'],
                    start=s.subscription_start)
            s.save()
Skia's avatar
Skia committed
398
            ## Comptable
Skia's avatar
Skia committed
399
            s = Subscription(member=User.objects.filter(pk=comptable.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
400
401
402
403
404
405
                    payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0])
            s.subscription_start = s.compute_start()
            s.subscription_end = s.compute_end(
                    duration=settings.SITH_SUBSCRIPTIONS[s.subscription_type]['duration'],
                    start=s.subscription_start)
            s.save()
Skia's avatar
Skia committed
406
            ## Richard
Skia's avatar
Skia committed
407
            s = Subscription(member=User.objects.filter(pk=r.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
408
409
410
411
412
413
                    payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0])
            s.subscription_start = s.compute_start()
            s.subscription_end = s.compute_end(
                    duration=settings.SITH_SUBSCRIPTIONS[s.subscription_type]['duration'],
                    start=s.subscription_start)
            s.save()
Skia's avatar
Skia committed
414
415
            ## User
            s = Subscription(member=User.objects.filter(pk=subscriber.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
416
417
418
419
420
421
                    payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0])
            s.subscription_start = s.compute_start()
            s.subscription_end = s.compute_end(
                    duration=settings.SITH_SUBSCRIPTIONS[s.subscription_type]['duration'],
                    start=s.subscription_start)
            s.save()
Skia's avatar
Skia committed
422
423
424

            # Clubs
            Club(name="Bibo'UT", unix_name="bibout",
425
                    address="46 de la Boustifaille", parent=main_club).save()
Skia's avatar
Skia committed
426
            guyut = Club(name="Guy'UT", unix_name="guyut",
427
                    address="42 de la Boustifaille", parent=main_club)
Skia's avatar
Skia committed
428
429
430
            guyut.save()
            Club(name="Woenzel'UT", unix_name="woenzel",
                    address="Woenzel", parent=guyut).save()
431
            Membership(user=skia, club=main_club, role=3, description="").save()
Skia's avatar
Skia committed
432
            troll = Club(name="Troll Penché", unix_name="troll",
433
                    address="Terre Du Milieu", parent=main_club)
Skia's avatar
Skia committed
434
            troll.save()
Sli's avatar
Sli committed
435
436
437
            refound = Club(name="Carte AE", unix_name="carte_ae",
                    address="Jamais imprimée", parent=main_club)
            refound.save()
Skia's avatar
Skia committed
438

Skia's avatar
Skia committed
439
440
            # Counters
            Customer(user=skia, account_id="6568j", amount=0).save()
441
            Customer(user=r, account_id="4000", amount=0).save()
Skia's avatar
Skia committed
442
443
            p = ProductType(name="Bières bouteilles")
            p.save()
Skia's avatar
Skia committed
444
            barb = Product(name="Barbar", code="BARB", product_type=p, purchase_price="1.50", selling_price="1.7",
445
                    special_selling_price="1.6", club=main_club)
Skia's avatar
Skia committed
446
447
            barb.save()
            cble = Product(name="Chimay Bleue", code="CBLE", product_type=p, purchase_price="1.50", selling_price="1.7",
448
                    special_selling_price="1.6", club=main_club)
Skia's avatar
Skia committed
449
            cble.save()
Skia's avatar
Skia committed
450
            Product(name="Corsendonk", code="CORS", product_type=p, purchase_price="1.50", selling_price="1.7",
451
                    special_selling_price="1.6", club=main_club).save()
Skia's avatar
Skia committed
452
            Product(name="Carolus", code="CARO", product_type=p, purchase_price="1.50", selling_price="1.7",
453
454
                    special_selling_price="1.6", club=main_club).save()
            mde = Counter.objects.filter(name="MDE").first()
Skia's avatar
Skia committed
455
456
457
            mde.products.add(barb)
            mde.products.add(cble)
            mde.save()
Sli's avatar
Sli committed
458
459
460
461
462
463

            refound_counter = Counter(name="Carte AE", club=refound, type='OFFICE')
            refound_counter.save()
            refound_product = Product(name="remboursement", code="REMBOURS", purchase_price="0", selling_price="0",
                    special_selling_price="0", club=refound)
            refound_product.save()
Skia's avatar
Skia committed
464
465

            # Accounting test values:
466
467
468
            BankAccount(name="AE TG", club=main_club).save()
            BankAccount(name="Carte AE", club=main_club).save()
            ba = BankAccount(name="AE TI", club=main_club)
469
470
471
            ba.save()
            ca = ClubAccount(name="Troll Penché", bank_account=ba, club=troll)
            ca.save()
Skia's avatar
Skia committed
472
473
            gj = GeneralJournal(name="A16", start_date=date.today(), club_account=ca)
            gj.save()
Krophil's avatar
Krophil committed
474
            credit = AccountingType(code='74', label="Subventions d'exploitation", movement_type='CREDIT')
Skia's avatar
Skia committed
475
            credit.save()
Krophil's avatar
Krophil committed
476
            debit = AccountingType(code='606', label="Achats non stockés de matières et fournitures(*1)", movement_type='DEBIT')
Skia's avatar
Skia committed
477
            debit.save()
Krophil's avatar
Krophil committed
478
479
480
481
            debit2 = AccountingType(code='604', label="Achats d'études et prestations de services(*2)", movement_type='DEBIT')
            debit2.save()
            buying = AccountingType(code='60', label="Achats (sauf 603)", movement_type='DEBIT')
            buying.save()
Krophil's avatar
Krophil committed
482
483
484
485
            comptes = AccountingType(code='6', label="Comptes de charge", movement_type='DEBIT')
            comptes.save()
            simple = SimplifiedAccountingType(label = 'Je fais du simple 6', accounting_type = comptes, movement_type='DEBIT')
            simple.save()
Skia's avatar
Skia committed
486
487
            woenzco = Company(name="Woenzel & co")
            woenzco.save()
Sli's avatar
Sli committed
488
489

            operation_list = [
Skia's avatar
Skia committed
490
                            (27, "J'avais trop de bière", 'CASH', None, buying, 'USER', skia.id, "", None),
Sli's avatar
Sli committed
491
492
493
494
495
496
497
498
499
500
501
                            (4000, "Ceci n'est pas une opération... en fait si mais non", 'CHECK', None, debit,'COMPANY', woenzco.id, "", 23),
                            (22, "C'est de l'argent ?", 'CARD', None, credit, 'CLUB', troll.id, "", None),
                            (37, "Je paye CASH", 'CASH', None, debit2, 'OTHER', None, "tous les étudiants <3", None),
                            (300, "Paiement Guy", 'CASH', None, buying, 'USER', skia.id, "", None),
                            (32.3, "Essence", 'CASH', None, buying, 'OTHER', None, "station", None),
                            (46.42, "Allumette", 'CHECK', None, credit, 'CLUB', main_club.id, "", 57),
                            (666.42, "Subvention de far far away", 'CASH', None, comptes, 'CLUB', main_club.id, "", None),
                            (496, "Ça, c'est un 6", 'CARD', simple, None, 'USER', skia.id, "", None),
                            (17, "La Gargotte du Korrigan", 'CASH', None, debit2, 'CLUB', bar_club.id, "", None),
                            ]
            for op in operation_list:
Skia's avatar
Skia committed
502
503
504
                operation = Operation(journal=gj, date=date.today(), amount=op[0],
                    remark=op[1], mode=op[2], done=True, simpleaccounting_type=op[3],
                    accounting_type=op[4], target_type=op[5], target_id=op[6],
Sli's avatar
Sli committed
505
506
507
508
                    target_label=op[7], cheque_number=op[8])
                operation.clean()
                operation.save()

Sli's avatar
Sli committed
509
510
511
512
513
514
            # Adding user sli
            sli = User(username='sli', last_name="Li", first_name="S",
                       email="sli@git.an",
                       date_of_birth="1942-06-12")
            sli.set_password("plop")
            sli.save()
515
            sli.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Sli's avatar
Sli committed
516
            sli.save()
517
518
519
520
521
522
523
524
525
526
            sli_profile_path = os.path.join(root_path, 'core/fixtures/images/5.jpg')
            with open(sli_profile_path, 'rb') as f:
                name = str(sli.id) + "_profile.jpg"
                sli_profile = SithFile(parent=profiles_root, name=name,
                    file=resize_image(Image.open(BytesIO(f.read())), 400, 'JPEG'),
                    owner=sli, is_folder=False, mime_type='image/jpeg', size=os.path.getsize(sli_profile_path))
                sli_profile.file.name = name
                sli_profile.save()
                sli.profile_pict = sli_profile
                sli.save()
Sli's avatar
Sli committed
527
528
529
530
531
532
            # Adding user Krophil
            krophil = User(username='krophil', last_name="Phil'", first_name="Kro",
                           email="krophil@git.an",
                           date_of_birth="1942-06-12")
            krophil.set_password("plop")
            krophil.save()
533
534
535
536
537
538
539
540
541
542
            krophil_profile_path = os.path.join(root_path, 'core/fixtures/images/6.jpg')
            with open(krophil_profile_path, 'rb') as f:
                name = str(krophil.id) + "_profile.jpg"
                krophil_profile = SithFile(parent=profiles_root, name=name,
                    file=resize_image(Image.open(BytesIO(f.read())), 400, 'JPEG'),
                    owner=krophil, is_folder=False, mime_type='image/jpeg', size=os.path.getsize(krophil_profile_path))
                krophil_profile.file.name = name
                krophil_profile.save()
                krophil.profile_pict = krophil_profile
                krophil.save()
Sli's avatar
Sli committed
543
544
545
546
547
548
549
550
            ## Adding subscription for sli
            s = Subscription(member=User.objects.filter(pk=sli.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
                    payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0])
            s.subscription_start = s.compute_start()
            s.subscription_end = s.compute_end(
                    duration=settings.SITH_SUBSCRIPTIONS[s.subscription_type]['duration'],
                    start=s.subscription_start)
            s.save()
Sli's avatar
Sli committed
551
552
553
554
555
556
557
558
            ## Adding subscription for Krophil
            s = Subscription(member=User.objects.filter(pk=krophil.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
                    payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0])
            s.subscription_start = s.compute_start()
            s.subscription_end = s.compute_end(
                    duration=settings.SITH_SUBSCRIPTIONS[s.subscription_type]['duration'],
                    start=s.subscription_start)
            s.save()
Krophil's avatar
Krophil committed
559

Sli's avatar
Sli committed
560
            # Create an election
Sli's avatar
Sli committed
561
562
563
            public_group = Group.objects.get(id=settings.SITH_GROUP_PUBLIC_ID)
            subscriber_group = Group.objects.get(name=settings.SITH_MAIN_MEMBERS_GROUP)
            ae_board_gorup = Group.objects.get(name=settings.SITH_MAIN_BOARD_GROUP)
Skia's avatar
Skia committed
564
565
566
            el = Election(title="Élection 2017", description="La roue tourne", start_candidature='1942-06-12 10:28:45+01',
                    end_candidature='2042-06-12 10:28:45+01',start_date='1942-06-12 10:28:45+01',
                    end_date='7942-06-12 10:28:45+01')
Sli's avatar
Sli committed
567
            el.save()
Sli's avatar
Sli committed
568
569
            el.view_groups.add(public_group)
            el.edit_groups.add(ae_board_gorup)
570
571
            el.candidature_groups.add(subscriber_group)
            el.vote_groups.add(subscriber_group)
Sli's avatar
Sli committed
572
            el.save()
Sli's avatar
Sli committed
573
            liste = ElectionList(title="Candidature Libre", election=el)
Sli's avatar
Sli committed
574
            liste.save()
Sli's avatar
Sli committed
575
            listeT = ElectionList(title="Troll", election=el)
Sli's avatar
Sli committed
576
577
578
            listeT.save()
            pres = Role(election=el, title="Président AE", description="Roi de l'AE")
            pres.save()
Sli's avatar
Sli committed
579
            resp = Role(election=el, title="Co Respo Info", max_choice=2, description="Ghetto++")
Sli's avatar
Sli committed
580
            resp.save()
Sli's avatar
Sli committed
581
            cand = Candidature(role=resp, user=skia, election_list=liste, program="Refesons le site AE")
Sli's avatar
Sli committed
582
            cand.save()
Sli's avatar
Sli committed
583
            cand = Candidature(role=resp, user=sli, election_list=liste, program="Vasy je deviens mon propre adjoint")
Sli's avatar
Sli committed
584
            cand.save()
Sli's avatar
Sli committed
585
            cand = Candidature(role=resp, user=krophil, election_list=listeT, program="Le Pôle Troll !")
Sli's avatar
Sli committed
586
            cand.save()
Sli's avatar
Sli committed
587
            cand = Candidature(role=pres, user=sli, election_list=listeT, program="En fait j'aime pas l'info, je voulais faire GMC")
Sli's avatar
Sli committed
588
            cand.save()
Krophil's avatar
Krophil committed
589