populate.py 23.1 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
        Group(name="Root").save()
41
42
43
        Group(name="Public").save()
        Group(name="Subscribers").save()
        Group(name="Old subscribers").save()
Skia's avatar
Skia committed
44
45
46
47
48
49
50
        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()
51
        Group(name="Forum admin").save()
52
        self.reset_index("core", "auth")
Skia's avatar
Skia committed
53
        root = User(id=0, username='root', last_name="", first_name="Bibou",
Skia's avatar
Skia committed
54
55
56
                 email="ae.info@utbm.fr",
                 date_of_birth="1942-06-12",
                 is_superuser=True, is_staff=True)
Skia's avatar
Skia committed
57
58
        root.set_password("plop")
        root.save()
59
60
        profiles_root = SithFile(parent=None, name="profiles", is_folder=True, owner=root)
        profiles_root.save()
Skia's avatar
Skia committed
61
62
63
64
        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
65
        SithFile(parent=None, name="SAS", is_folder=True, owner=root).save()
Skia's avatar
Skia committed
66
        main_club = Club(id=1, name=settings.SITH_MAIN_CLUB['name'], unix_name=settings.SITH_MAIN_CLUB['unix_name'],
Skia's avatar
Skia committed
67
                address=settings.SITH_MAIN_CLUB['address'])
68
        main_club.save()
Skia's avatar
Skia committed
69
        bar_club = Club(id=2, name=settings.SITH_BAR_MANAGER['name'], unix_name=settings.SITH_BAR_MANAGER['unix_name'],
70
71
                address=settings.SITH_BAR_MANAGER['address'])
        bar_club.save()
Skia's avatar
Skia committed
72
        launderette_club = Club(id=84, name=settings.SITH_LAUNDERETTE_MANAGER['name'],
73
74
75
                unix_name=settings.SITH_LAUNDERETTE_MANAGER['unix_name'],
                address=settings.SITH_LAUNDERETTE_MANAGER['address'])
        launderette_club.save()
76
        self.reset_index("club")
77
78
79
80
81
82
83
84
        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
85
        Counter(name="Eboutic", club=main_club, type='EBOUTIC').save()
Sli's avatar
Sli committed
86
        Counter(name="AE", club=main_club, type='OFFICE').save()
Skia's avatar
Skia committed
87
88
89
90
91
92

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

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

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

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

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

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

            # Subscription
Skia's avatar
Skia committed
228
            ## Root
Skia's avatar
Skia committed
229
            s = Subscription(member=User.objects.filter(pk=root.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
230
231
232
233
234
235
                    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
236
            ## Skia
Skia's avatar
Skia committed
237
            s = Subscription(member=User.objects.filter(pk=skia.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
238
239
240
241
242
243
                    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
244
            ## Comptable
Skia's avatar
Skia committed
245
            s = Subscription(member=User.objects.filter(pk=comptable.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
Skia's avatar
Skia committed
246
247
248
249
250
251
                    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
252
            ## Richard
Skia's avatar
Skia committed
253
            s = Subscription(member=User.objects.filter(pk=r.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
261
            ## User
            s = Subscription(member=User.objects.filter(pk=subscriber.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
269
270

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

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

            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
310
311

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

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

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

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

Skia's avatar
Skia committed
436
437
438
439
440
441
442
443
444
445
            # 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()