populate.py 23 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, Weekmail
Sli's avatar
Sli committed
20
from election.models import Election, Role, Candidature, ElectionList
Skia's avatar
Skia committed
21
from forum.models import Forum, ForumMessage
Sli's avatar
Sli committed
22

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

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

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

30
31
32
33
34
35
    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
36
    def handle(self, *args, **options):
Skia's avatar
Skia committed
37
        os.environ['DJANGO_COLORS'] = 'nocolor'
38
        Site(id=4000, domain=settings.SITH_URL, name=settings.SITH_NAME).save()
Skia's avatar
Skia committed
39
        root_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
Skia's avatar
Skia committed
40
41
42
43
44
45
46
47
48
        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()
49
        self.reset_index("core", "auth")
Skia's avatar
Skia committed
50
        root = User(id=0, username='root', last_name="", first_name="Bibou",
Skia's avatar
Skia committed
51
52
53
                 email="ae.info@utbm.fr",
                 date_of_birth="1942-06-12",
                 is_superuser=True, is_staff=True)
Skia's avatar
Skia committed
54
55
        root.set_password("plop")
        root.save()
56
57
        profiles_root = SithFile(parent=None, name="profiles", is_folder=True, owner=root)
        profiles_root.save()
Skia's avatar
Skia committed
58
59
60
61
        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
62
        SithFile(parent=None, name="SAS", is_folder=True, owner=root).save()
Skia's avatar
Skia committed
63
        main_club = Club(id=1, name=settings.SITH_MAIN_CLUB['name'], unix_name=settings.SITH_MAIN_CLUB['unix_name'],
Skia's avatar
Skia committed
64
                address=settings.SITH_MAIN_CLUB['address'])
65
        main_club.save()
Skia's avatar
Skia committed
66
        bar_club = Club(id=2, name=settings.SITH_BAR_MANAGER['name'], unix_name=settings.SITH_BAR_MANAGER['unix_name'],
67
68
                address=settings.SITH_BAR_MANAGER['address'])
        bar_club.save()
Skia's avatar
Skia committed
69
        launderette_club = Club(id=84, name=settings.SITH_LAUNDERETTE_MANAGER['name'],
70
71
72
                unix_name=settings.SITH_LAUNDERETTE_MANAGER['unix_name'],
                address=settings.SITH_LAUNDERETTE_MANAGER['address'])
        launderette_club.save()
73
        self.reset_index("club")
74
75
76
77
78
79
80
81
        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
82
        Counter(name="Eboutic", club=main_club, type='EBOUTIC').save()
Sli's avatar
Sli committed
83
        Counter(name="AE", club=main_club, type='OFFICE').save()
Skia's avatar
Skia committed
84
85
86
87
88
89

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

Skia's avatar
Skia committed
93
94
95
        p = Page(name='Index')
        p.set_lock(root)
        p.save()
Skia's avatar
Skia committed
96
        p.view_groups=[settings.SITH_GROUP_PUBLIC_ID]
Skia's avatar
Skia committed
97
98
99
100
        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
101
102
103
104
105
""").save()

        p = Page(name="services")
        p.set_lock(root)
        p.save()
Skia's avatar
Skia committed
106
        p.view_groups=[settings.SITH_GROUP_PUBLIC_ID]
Skia's avatar
Skia committed
107
108
109
110
111
112
113
        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
114
""").save()
Skia's avatar
Skia committed
115

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

Skia's avatar
Skia committed
122
123
124
        # 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
125
            skia = User(username='skia', last_name="Kia", first_name="S'",
Skia's avatar
Skia committed
126
127
                     email="skia@git.an",
                     date_of_birth="1942-06-12")
Skia's avatar
Skia committed
128
129
130
131
            skia.set_password("plop")
            skia.save()
            skia.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
            skia.save()
132
133
134
135
136
137
138
139
140
141
142
            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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
            # 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()
161
162
163
164
165
166
167
168
            # 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
169
            counter.groups=[Group.objects.filter(id=settings.SITH_GROUP_COUNTER_ADMIN_ID).first().id]
170
            counter.save()
Skia's avatar
Skia committed
171
172
173
174
175
176
177
178
            # 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
179
            comptable.groups=[Group.objects.filter(id=settings.SITH_GROUP_ACCOUNTING_ADMIN_ID).first().id]
Skia's avatar
Skia committed
180
            comptable.save()
Skia's avatar
Skia committed
181
182
183
184
185
186
187
            # 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
188
            u.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Skia's avatar
Skia committed
189
            u.save()
Skia's avatar
Skia committed
190
191
192
193
194
195
            # 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
196
            r.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Skia's avatar
Skia committed
197
            r.save()
Skia's avatar
Skia committed
198
199
            # Adding syntax help page
            p = Page(name='Aide_sur_la_syntaxe')
Skia's avatar
Skia committed
200
            p.save(force_lock=True)
Skia's avatar
Skia committed
201
202
203
204
            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
205
            p = Page(name='Services')
Skia's avatar
Skia committed
206
            p.save(force_lock=True)
Skia's avatar
Skia committed
207
            p.view_groups=[settings.SITH_GROUP_PUBLIC_ID]
Skia's avatar
Skia committed
208
            p.save(force_lock=True)
Skia's avatar
Skia committed
209
210
211
212
213
214
            PageRev(page=p, title="Services", author=skia, content="""
|   |   |   |
| :---: | :---: | :---: |
| [Eboutic](/eboutic) | [Laverie](/launderette) | Matmat |
| SAS | Weekmail | Forum|

Skia's avatar
Skia committed
215
216
217
""").save()
            # Adding README
            p = Page(name='README')
Skia's avatar
Skia committed
218
            p.save(force_lock=True)
Skia's avatar
Skia committed
219
            p.view_groups=[settings.SITH_GROUP_PUBLIC_ID]
Skia's avatar
Skia committed
220
            p.save(force_lock=True)
Skia's avatar
Skia committed
221
            with open(os.path.join(root_path)+'/README.md', 'r') as rm:
222
                PageRev(page=p, title="README", author=skia, content=rm.read()).save()
Skia's avatar
Skia committed
223
224

            # Subscription
Skia's avatar
Skia committed
225
            ## Root
Skia's avatar
Skia committed
226
            s = Subscription(member=User.objects.filter(pk=root.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
227
228
229
230
231
232
                    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
233
            ## Skia
Skia's avatar
Skia committed
234
            s = Subscription(member=User.objects.filter(pk=skia.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
235
236
237
238
239
240
                    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
241
            ## Comptable
Skia's avatar
Skia committed
242
            s = Subscription(member=User.objects.filter(pk=comptable.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
243
244
245
246
247
248
                    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
249
            ## Richard
Skia's avatar
Skia committed
250
            s = Subscription(member=User.objects.filter(pk=r.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
251
252
253
254
255
256
                    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
257
258
            ## User
            s = Subscription(member=User.objects.filter(pk=subscriber.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
259
260
261
262
263
264
                    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
265
266
267

            # Clubs
            Club(name="Bibo'UT", unix_name="bibout",
268
                    address="46 de la Boustifaille", parent=main_club).save()
Skia's avatar
Skia committed
269
            guyut = Club(name="Guy'UT", unix_name="guyut",
270
                    address="42 de la Boustifaille", parent=main_club)
Skia's avatar
Skia committed
271
272
273
            guyut.save()
            Club(name="Woenzel'UT", unix_name="woenzel",
                    address="Woenzel", parent=guyut).save()
274
            Membership(user=skia, club=main_club, role=3, description="").save()
Skia's avatar
Skia committed
275
            troll = Club(name="Troll Penché", unix_name="troll",
276
                    address="Terre Du Milieu", parent=main_club)
Skia's avatar
Skia committed
277
            troll.save()
Sli's avatar
Sli committed
278
279
280
            refound = Club(name="Carte AE", unix_name="carte_ae",
                    address="Jamais imprimée", parent=main_club)
            refound.save()
Skia's avatar
Skia committed
281

Skia's avatar
Skia committed
282
283
            # Counters
            Customer(user=skia, account_id="6568j", amount=0).save()
284
            Customer(user=r, account_id="4000", amount=0).save()
Skia's avatar
Skia committed
285
286
            p = ProductType(name="Bières bouteilles")
            p.save()
Skia's avatar
Skia committed
287
            barb = Product(name="Barbar", code="BARB", product_type=p, purchase_price="1.50", selling_price="1.7",
288
                    special_selling_price="1.6", club=main_club)
Skia's avatar
Skia committed
289
290
            barb.save()
            cble = Product(name="Chimay Bleue", code="CBLE", product_type=p, purchase_price="1.50", selling_price="1.7",
291
                    special_selling_price="1.6", club=main_club)
Skia's avatar
Skia committed
292
            cble.save()
Skia's avatar
Skia committed
293
            Product(name="Corsendonk", code="CORS", product_type=p, purchase_price="1.50", selling_price="1.7",
294
                    special_selling_price="1.6", club=main_club).save()
Skia's avatar
Skia committed
295
            Product(name="Carolus", code="CARO", product_type=p, purchase_price="1.50", selling_price="1.7",
296
297
                    special_selling_price="1.6", club=main_club).save()
            mde = Counter.objects.filter(name="MDE").first()
Skia's avatar
Skia committed
298
299
300
            mde.products.add(barb)
            mde.products.add(cble)
            mde.save()
Sli's avatar
Sli committed
301
302
303
304
305
306

            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
307
308

            # Accounting test values:
309
310
311
            BankAccount(name="AE TG", club=main_club).save()
            BankAccount(name="Carte AE", club=main_club).save()
            ba = BankAccount(name="AE TI", club=main_club)
312
313
314
            ba.save()
            ca = ClubAccount(name="Troll Penché", bank_account=ba, club=troll)
            ca.save()
Skia's avatar
Skia committed
315
316
            gj = GeneralJournal(name="A16", start_date=date.today(), club_account=ca)
            gj.save()
Krophil's avatar
Krophil committed
317
            credit = AccountingType(code='74', label="Subventions d'exploitation", movement_type='CREDIT')
Skia's avatar
Skia committed
318
            credit.save()
Krophil's avatar
Krophil committed
319
            debit = AccountingType(code='606', label="Achats non stockés de matières et fournitures(*1)", movement_type='DEBIT')
Skia's avatar
Skia committed
320
            debit.save()
Krophil's avatar
Krophil committed
321
322
323
324
            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
325
326
327
328
            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
329
330
            woenzco = Company(name="Woenzel & co")
            woenzco.save()
Sli's avatar
Sli committed
331
332

            operation_list = [
Skia's avatar
Skia committed
333
                            (27, "J'avais trop de bière", 'CASH', None, buying, 'USER', skia.id, "", None),
Sli's avatar
Sli committed
334
335
336
337
338
339
340
341
342
343
344
                            (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
345
346
347
                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
348
349
350
351
                    target_label=op[7], cheque_number=op[8])
                operation.clean()
                operation.save()

Sli's avatar
Sli committed
352
353
354
355
356
357
            # 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()
358
            sli.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Sli's avatar
Sli committed
359
            sli.save()
360
361
362
363
364
365
366
367
368
369
            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
370
371
372
373
374
375
            # 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()
376
377
378
379
380
381
382
383
384
385
            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
386
387
388
389
390
391
392
393
            ## 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
394
395
396
397
398
399
400
401
            ## 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
402

Sli's avatar
Sli committed
403
            # Create an election
Sli's avatar
Sli committed
404
405
406
            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
407
408
409
            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
410
            el.save()
Sli's avatar
Sli committed
411
412
            el.view_groups.add(public_group)
            el.edit_groups.add(ae_board_gorup)
413
414
            el.candidature_groups.add(subscriber_group)
            el.vote_groups.add(subscriber_group)
Sli's avatar
Sli committed
415
            el.save()
Sli's avatar
Sli committed
416
            liste = ElectionList(title="Candidature Libre", election=el)
Sli's avatar
Sli committed
417
            liste.save()
Sli's avatar
Sli committed
418
            listeT = ElectionList(title="Troll", election=el)
Sli's avatar
Sli committed
419
420
421
            listeT.save()
            pres = Role(election=el, title="Président AE", description="Roi de l'AE")
            pres.save()
Sli's avatar
Sli committed
422
            resp = Role(election=el, title="Co Respo Info", max_choice=2, description="Ghetto++")
Sli's avatar
Sli committed
423
            resp.save()
Sli's avatar
Sli committed
424
            cand = Candidature(role=resp, user=skia, election_list=liste, program="Refesons le site AE")
Sli's avatar
Sli committed
425
            cand.save()
Sli's avatar
Sli committed
426
            cand = Candidature(role=resp, user=sli, election_list=liste, program="Vasy je deviens mon propre adjoint")
Sli's avatar
Sli committed
427
            cand.save()
Sli's avatar
Sli committed
428
            cand = Candidature(role=resp, user=krophil, election_list=listeT, program="Le Pôle Troll !")
Sli's avatar
Sli committed
429
            cand.save()
Sli's avatar
Sli committed
430
            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
431
            cand.save()
Krophil's avatar
Krophil committed
432

Skia's avatar
Skia committed
433
434
435
436
437
438
439
440
441
442
            # 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()
            Forum(name="Hall de discussions", description="Pour toutes les discussions", parent=room).save()
            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()