populate.py 4.75 KB
Newer Older
Skia's avatar
Skia committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import os
from django.core.management.base import BaseCommand, CommandError
from django.core.management import call_command
from django.conf import settings


from core.models import Group, User, Page, PageRev
from accounting.models import Customer, GeneralJournal, ProductType, Product
from club.models import Club
from subscription.models import Subscription, Subscriber

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

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

    def handle(self, *args, **options):
        root_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
Skia's avatar
Skia committed
20
        root = User(username='root', last_name="", first_name="Bibou",
Skia's avatar
Skia committed
21
22
23
                 email="ae.info@utbm.fr",
                 date_of_birth="1942-06-12",
                 is_superuser=True, is_staff=True)
Skia's avatar
Skia committed
24
25
        root.set_password("plop")
        root.save()
Skia's avatar
Skia committed
26
27
28
29
30
        for g in settings.AE_GROUPS.values():
            Group(id=g['id'], name=g['name']).save()
        ae = Club(name=settings.AE_MAIN_CLUB['name'], unix_name=settings.AE_MAIN_CLUB['unix_name'],
                address=settings.AE_MAIN_CLUB['address'])
        ae.save()
Skia's avatar
Skia committed
31
32
33
34
35
36
37
38
39
        p = Page(name='Index')
        p.set_lock(root)
        p.save()
        p.view_groups=[settings.AE_GROUPS['public']['id']]
        p.set_lock(root)
        p.save()
        PageRev(page=p, title="Wiki index", author=root, content="""
Welcome to the wiki page!
""").save()
Skia's avatar
Skia committed
40
41
42
43
44
45
46
47
48
49

        # 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']:
            print("Dev mode, adding some test data")
            # Adding user Skia
            s = User(username='skia', last_name="Kia", first_name="S'",
                     email="skia@git.an",
                     date_of_birth="1942-06-12")
            s.set_password("plop")
            s.save()
Skia's avatar
Skia committed
50
            s.view_groups=[settings.AE_GROUPS['members']['id']]
Skia's avatar
Skia committed
51
            s.groups=[settings.AE_GROUPS['board']['id']]
Skia's avatar
Skia committed
52
            s.save()
Skia's avatar
Skia committed
53
54
55
56
57
58
59
            # 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
60
61
            u.view_groups=[settings.AE_GROUPS['members']['id']]
            u.save()
Skia's avatar
Skia committed
62
63
64
65
66
67
            # 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
68
69
            r.view_groups=[settings.AE_GROUPS['members']['id']]
            r.save()
Skia's avatar
Skia committed
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
            # Adding syntax help page
            p = Page(name='Aide_sur_la_syntaxe')
            p.save()
            PageRev(page=p, title="Aide sur la syntaxe", author=s, content="""
Cette page vise à documenter la syntaxe *Markdown* utilisée sur le site.
""").save()
            # Adding README
            p = Page(name='README')
            p.save()
            p.view_groups=[settings.AE_GROUPS['public']['id']]
            p.set_lock(s)
            p.save()
            with open(os.path.join(root_path)+'/README.md', 'r') as rm:
                PageRev(page=p, title="REAMDE", author=s, content=rm.read()).save()

            # Subscription
            Subscription(member=Subscriber.objects.filter(pk=s.pk).first(), subscription_type=list(settings.AE_SUBSCRIPTIONS.keys())[0],
                    payment_method=settings.AE_PAYMENT_METHOD[0]).save()
            Subscription(member=Subscriber.objects.filter(pk=r.pk).first(), subscription_type=list(settings.AE_SUBSCRIPTIONS.keys())[0],
                    payment_method=settings.AE_PAYMENT_METHOD[0]).save()

            # Clubs
            Club(name="Bibo'UT", unix_name="bibout",
                    address="46 de la Boustifaille", parent=ae).save()
            guyut = Club(name="Guy'UT", unix_name="guyut",
                    address="42 de la Boustifaille", parent=ae)
            guyut.save()
            Club(name="Woenzel'UT", unix_name="woenzel",
                    address="Woenzel", parent=guyut).save()
            Club(name="BdF", unix_name="bdf",
                    address="Guyéuéyuéyuyé").save()

            # Accounting test values:
            Customer(user=s, account_id="6568j").save()
            p = ProductType(name="Bières bouteilles")
            p.save()
            Product(name="Barbar", code="BARB", product_type=p, purchase_price="1.50", selling_price="1.7",
                    special_selling_price="1.6").save()
            GeneralJournal(start_date="2015-06-12", name="A15").save()