populate.py 24 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# -*- coding:utf-8 -*
#
# Copyright 2016,2017
# - Skia <skia@libskia.so>
#
# Ce fichier fait partie du site de l'Association des Étudiants de l'UTBM,
# http://ae.utbm.fr.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License a published by the Free Software
# Foundation; either version 3 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Sofware Foundation, Inc., 59 Temple
# Place - Suite 330, Boston, MA 02111-1307, USA.
#
#

Skia's avatar
Skia committed
25
import os
Skia's avatar
Skia committed
26
from datetime import date, datetime
27
from io import StringIO, BytesIO
Skia's avatar
Skia committed
28

Skia's avatar
Skia committed
29
30
31
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
32
from django.db import connection
33
from django.contrib.sites.models import Site
Skia's avatar
Skia committed
34

35
from PIL import Image
Skia's avatar
Skia committed
36

Skia's avatar
Skia committed
37
from core.models import Group, User, Page, PageRev, SithFile
Krophil's avatar
Krophil committed
38
from accounting.models import GeneralJournal, BankAccount, ClubAccount, Operation, AccountingType, SimplifiedAccountingType, Company
39
from core.utils import resize_image
Skia's avatar
Skia committed
40
from club.models import Club, Membership
Skia's avatar
Skia committed
41
from subscription.models import Subscription
Skia's avatar
Skia committed
42
from counter.models import Customer, ProductType, Product, Counter
Skia's avatar
Skia committed
43
from com.models import Sith, Weekmail
Sli's avatar
Sli committed
44
from election.models import Election, Role, Candidature, ElectionList
Skia's avatar
Skia committed
45
from forum.models import Forum, ForumMessage, ForumTopic
Sli's avatar
Sli committed
46

Skia's avatar
Skia committed
47
48
49
50
51
52
53

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

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

54
55
56
57
58
59
    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
60
    def handle(self, *args, **options):
Skia's avatar
Skia committed
61
        os.environ['DJANGO_COLORS'] = 'nocolor'
62
        Site(id=4000, domain=settings.SITH_URL, name=settings.SITH_NAME).save()
Skia's avatar
Skia committed
63
        root_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
Skia's avatar
Skia committed
64
        Group(name="Root").save()
65
66
67
        Group(name="Public").save()
        Group(name="Subscribers").save()
        Group(name="Old subscribers").save()
Skia's avatar
Skia committed
68
69
70
71
72
73
74
        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()
75
        Group(name="Forum admin").save()
76
        self.reset_index("core", "auth")
Skia's avatar
Skia committed
77
        root = User(id=0, username='root', last_name="", first_name="Bibou",
Skia's avatar
Skia committed
78
79
80
                 email="ae.info@utbm.fr",
                 date_of_birth="1942-06-12",
                 is_superuser=True, is_staff=True)
Skia's avatar
Skia committed
81
82
        root.set_password("plop")
        root.save()
83
84
        profiles_root = SithFile(parent=None, name="profiles", is_folder=True, owner=root)
        profiles_root.save()
Skia's avatar
Skia committed
85
86
87
88
        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
89
        SithFile(parent=None, name="SAS", is_folder=True, owner=root).save()
Skia's avatar
Skia committed
90
        main_club = Club(id=1, name=settings.SITH_MAIN_CLUB['name'], unix_name=settings.SITH_MAIN_CLUB['unix_name'],
Skia's avatar
Skia committed
91
                address=settings.SITH_MAIN_CLUB['address'])
92
        main_club.save()
Skia's avatar
Skia committed
93
        bar_club = Club(id=2, name=settings.SITH_BAR_MANAGER['name'], unix_name=settings.SITH_BAR_MANAGER['unix_name'],
94
95
                address=settings.SITH_BAR_MANAGER['address'])
        bar_club.save()
Skia's avatar
Skia committed
96
        launderette_club = Club(id=84, name=settings.SITH_LAUNDERETTE_MANAGER['name'],
97
98
99
                unix_name=settings.SITH_LAUNDERETTE_MANAGER['unix_name'],
                address=settings.SITH_LAUNDERETTE_MANAGER['address'])
        launderette_club.save()
100
        self.reset_index("club")
101
102
103
104
105
106
107
108
        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
109
        Counter(name="Eboutic", club=main_club, type='EBOUTIC').save()
Sli's avatar
Sli committed
110
        Counter(name="AE", club=main_club, type='OFFICE').save()
Skia's avatar
Skia committed
111
112
113
114
115
116

        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
117
        Sith(weekmail_destinations="etudiants@git.an personnel@git.an").save()
Skia's avatar
Skia committed
118
        Weekmail().save()
Skia's avatar
Skia committed
119

Skia's avatar
Skia committed
120
121
122
        p = Page(name='Index')
        p.set_lock(root)
        p.save()
Skia's avatar
Skia committed
123
        p.view_groups=[settings.SITH_GROUP_PUBLIC_ID]
Skia's avatar
Skia committed
124
125
126
127
        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
128
129
130
131
132
""").save()

        p = Page(name="services")
        p.set_lock(root)
        p.save()
Skia's avatar
Skia committed
133
        p.view_groups=[settings.SITH_GROUP_PUBLIC_ID]
Skia's avatar
Skia committed
134
135
136
137
138
139
140
        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
141
""").save()
Skia's avatar
Skia committed
142

143
144
145
146
        p = Page(name="launderette")
        p.set_lock(root)
        p.save()
        p.set_lock(root)
147
        PageRev(page=p, title="Laverie", author=root, content="Fonctionnement de la laverie").save()
148

Skia's avatar
Skia committed
149
150
151
        # 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
152
            skia = User(username='skia', last_name="Kia", first_name="S'",
Skia's avatar
Skia committed
153
154
                     email="skia@git.an",
                     date_of_birth="1942-06-12")
Skia's avatar
Skia committed
155
156
157
158
            skia.set_password("plop")
            skia.save()
            skia.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
            skia.save()
159
160
161
162
163
164
165
166
167
168
169
            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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
            # 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()
188
189
190
191
192
193
194
195
            # 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
196
            counter.groups=[Group.objects.filter(id=settings.SITH_GROUP_COUNTER_ADMIN_ID).first().id]
197
            counter.save()
Skia's avatar
Skia committed
198
199
200
201
202
203
204
205
            # 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
206
            comptable.groups=[Group.objects.filter(id=settings.SITH_GROUP_ACCOUNTING_ADMIN_ID).first().id]
Skia's avatar
Skia committed
207
            comptable.save()
Skia's avatar
Skia committed
208
209
210
211
212
213
214
            # 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
215
            u.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Skia's avatar
Skia committed
216
            u.save()
Skia's avatar
Skia committed
217
218
219
220
221
222
            # 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
223
            r.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Skia's avatar
Skia committed
224
            r.save()
Skia's avatar
Skia committed
225
226
            # Adding syntax help page
            p = Page(name='Aide_sur_la_syntaxe')
Skia's avatar
Skia committed
227
            p.save(force_lock=True)
Skia's avatar
Skia committed
228
229
230
231
            with open(os.path.join(root_path)+'/doc/SYNTAX.md', 'r') as rm:
                PageRev(page=p, title="Aide sur la syntaxe", author=skia, content=rm.read()).save()
            p.view_groups=[settings.SITH_GROUP_PUBLIC_ID]
            p.save(force_lock=True)
Skia's avatar
Skia committed
232
            p = Page(name='Services')
Skia's avatar
Skia committed
233
            p.save(force_lock=True)
Skia's avatar
Skia committed
234
            p.view_groups=[settings.SITH_GROUP_PUBLIC_ID]
Skia's avatar
Skia committed
235
            p.save(force_lock=True)
Skia's avatar
Skia committed
236
237
238
239
240
241
            PageRev(page=p, title="Services", author=skia, content="""
|   |   |   |
| :---: | :---: | :---: |
| [Eboutic](/eboutic) | [Laverie](/launderette) | Matmat |
| SAS | Weekmail | Forum|

Skia's avatar
Skia committed
242
243
244
""").save()
            # Adding README
            p = Page(name='README')
Skia's avatar
Skia committed
245
            p.save(force_lock=True)
Skia's avatar
Skia committed
246
            p.view_groups=[settings.SITH_GROUP_PUBLIC_ID]
Skia's avatar
Skia committed
247
            p.save(force_lock=True)
Skia's avatar
Skia committed
248
            with open(os.path.join(root_path)+'/README.md', 'r') as rm:
249
                PageRev(page=p, title="README", author=skia, content=rm.read()).save()
Skia's avatar
Skia committed
250
251

            # Subscription
Skia's avatar
Skia committed
252
            ## Root
Skia's avatar
Skia committed
253
            s = Subscription(member=User.objects.filter(pk=root.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
254
255
256
257
258
259
                    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
260
            ## Skia
Skia's avatar
Skia committed
261
            s = Subscription(member=User.objects.filter(pk=skia.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
262
263
264
265
266
267
                    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
268
            ## Comptable
Skia's avatar
Skia committed
269
            s = Subscription(member=User.objects.filter(pk=comptable.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
270
271
272
273
274
275
                    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
276
            ## Richard
Skia's avatar
Skia committed
277
            s = Subscription(member=User.objects.filter(pk=r.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
278
279
280
281
282
283
                    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
284
285
            ## User
            s = Subscription(member=User.objects.filter(pk=subscriber.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
286
287
288
289
290
291
                    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
292
293
294

            # Clubs
            Club(name="Bibo'UT", unix_name="bibout",
295
                    address="46 de la Boustifaille", parent=main_club).save()
Skia's avatar
Skia committed
296
            guyut = Club(name="Guy'UT", unix_name="guyut",
297
                    address="42 de la Boustifaille", parent=main_club)
Skia's avatar
Skia committed
298
299
300
            guyut.save()
            Club(name="Woenzel'UT", unix_name="woenzel",
                    address="Woenzel", parent=guyut).save()
301
            Membership(user=skia, club=main_club, role=3, description="").save()
Skia's avatar
Skia committed
302
            troll = Club(name="Troll Penché", unix_name="troll",
303
                    address="Terre Du Milieu", parent=main_club)
Skia's avatar
Skia committed
304
            troll.save()
Sli's avatar
Sli committed
305
306
307
            refound = Club(name="Carte AE", unix_name="carte_ae",
                    address="Jamais imprimée", parent=main_club)
            refound.save()
Skia's avatar
Skia committed
308

Skia's avatar
Skia committed
309
310
            # Counters
            Customer(user=skia, account_id="6568j", amount=0).save()
311
            Customer(user=r, account_id="4000", amount=0).save()
Skia's avatar
Skia committed
312
313
            p = ProductType(name="Bières bouteilles")
            p.save()
Skia's avatar
Skia committed
314
            barb = Product(name="Barbar", code="BARB", product_type=p, purchase_price="1.50", selling_price="1.7",
315
                    special_selling_price="1.6", club=main_club)
Skia's avatar
Skia committed
316
317
            barb.save()
            cble = Product(name="Chimay Bleue", code="CBLE", product_type=p, purchase_price="1.50", selling_price="1.7",
318
                    special_selling_price="1.6", club=main_club)
Skia's avatar
Skia committed
319
            cble.save()
Skia's avatar
Skia committed
320
            Product(name="Corsendonk", code="CORS", product_type=p, purchase_price="1.50", selling_price="1.7",
321
                    special_selling_price="1.6", club=main_club).save()
Skia's avatar
Skia committed
322
            Product(name="Carolus", code="CARO", product_type=p, purchase_price="1.50", selling_price="1.7",
323
324
                    special_selling_price="1.6", club=main_club).save()
            mde = Counter.objects.filter(name="MDE").first()
Skia's avatar
Skia committed
325
326
327
            mde.products.add(barb)
            mde.products.add(cble)
            mde.save()
Sli's avatar
Sli committed
328
329
330
331
332
333

            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
334
335

            # Accounting test values:
336
337
338
            BankAccount(name="AE TG", club=main_club).save()
            BankAccount(name="Carte AE", club=main_club).save()
            ba = BankAccount(name="AE TI", club=main_club)
339
340
341
            ba.save()
            ca = ClubAccount(name="Troll Penché", bank_account=ba, club=troll)
            ca.save()
Skia's avatar
Skia committed
342
343
            gj = GeneralJournal(name="A16", start_date=date.today(), club_account=ca)
            gj.save()
Krophil's avatar
Krophil committed
344
            credit = AccountingType(code='74', label="Subventions d'exploitation", movement_type='CREDIT')
Skia's avatar
Skia committed
345
            credit.save()
Krophil's avatar
Krophil committed
346
            debit = AccountingType(code='606', label="Achats non stockés de matières et fournitures(*1)", movement_type='DEBIT')
Skia's avatar
Skia committed
347
            debit.save()
Krophil's avatar
Krophil committed
348
349
350
351
            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
352
353
354
355
            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
356
357
            woenzco = Company(name="Woenzel & co")
            woenzco.save()
Sli's avatar
Sli committed
358
359

            operation_list = [
Skia's avatar
Skia committed
360
                            (27, "J'avais trop de bière", 'CASH', None, buying, 'USER', skia.id, "", None),
Sli's avatar
Sli committed
361
362
363
364
365
366
367
368
369
370
371
                            (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
372
373
374
                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
375
376
377
378
                    target_label=op[7], cheque_number=op[8])
                operation.clean()
                operation.save()

Sli's avatar
Sli committed
379
380
381
382
383
384
            # 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()
385
            sli.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Sli's avatar
Sli committed
386
            sli.save()
387
388
389
390
391
392
393
394
395
396
            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
397
398
399
400
401
402
            # 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()
403
404
405
406
407
408
409
410
411
412
            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
413
414
415
416
417
418
419
420
            ## 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
421
422
423
424
425
426
427
428
            ## 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
429

Sli's avatar
Sli committed
430
            # Create an election
Sli's avatar
Sli committed
431
432
433
            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
434
435
436
            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
437
            el.save()
Sli's avatar
Sli committed
438
439
            el.view_groups.add(public_group)
            el.edit_groups.add(ae_board_gorup)
440
441
            el.candidature_groups.add(subscriber_group)
            el.vote_groups.add(subscriber_group)
Sli's avatar
Sli committed
442
            el.save()
Sli's avatar
Sli committed
443
            liste = ElectionList(title="Candidature Libre", election=el)
Sli's avatar
Sli committed
444
            liste.save()
Sli's avatar
Sli committed
445
            listeT = ElectionList(title="Troll", election=el)
Sli's avatar
Sli committed
446
447
448
            listeT.save()
            pres = Role(election=el, title="Président AE", description="Roi de l'AE")
            pres.save()
Sli's avatar
Sli committed
449
            resp = Role(election=el, title="Co Respo Info", max_choice=2, description="Ghetto++")
Sli's avatar
Sli committed
450
            resp.save()
Sli's avatar
Sli committed
451
            cand = Candidature(role=resp, user=skia, election_list=liste, program="Refesons le site AE")
Sli's avatar
Sli committed
452
            cand.save()
Sli's avatar
Sli committed
453
            cand = Candidature(role=resp, user=sli, election_list=liste, program="Vasy je deviens mon propre adjoint")
Sli's avatar
Sli committed
454
            cand.save()
Sli's avatar
Sli committed
455
            cand = Candidature(role=resp, user=krophil, election_list=listeT, program="Le Pôle Troll !")
Sli's avatar
Sli committed
456
            cand.save()
Sli's avatar
Sli committed
457
            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
458
            cand.save()
Krophil's avatar
Krophil committed
459

Skia's avatar
Skia committed
460
461
462
463
464
            # Forum
            room = Forum(name="Salon de discussions", description="Pour causer de tout", is_category=True)
            room.save()
            Forum(name="AE", description="Réservé au bureau AE", parent=room).save()
            Forum(name="BdF", description="Réservé au bureau BdF", parent=room).save()
Skia's avatar
Skia committed
465
466
            hall = Forum(name="Hall de discussions", description="Pour toutes les discussions", parent=room)
            hall.save()
Skia's avatar
Skia committed
467
468
469
            various = Forum(name="Divers", description="Pour causer de rien", is_category=True)
            various.save()
            Forum(name="Promos", description="Réservé aux Promos", parent=various).save()
Skia's avatar
Skia committed
470
            ForumTopic(forum=hall)
Skia's avatar
Skia committed
471