populate.py 5.82 KB
Newer Older
Skia's avatar
Skia committed
1
2
3
4
5
6
7
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
8
from accounting.models import Customer, GeneralJournal, ProductType, Product, BankAccount, ClubAccount, Operation
Skia's avatar
Skia committed
9
from club.models import Club, Membership
Skia's avatar
Skia committed
10
11
12
13
14
15
16
17
18
19
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
        for g in settings.SITH_GROUPS.values():
Skia's avatar
Skia committed
27
            Group(id=g['id'], name=g['name']).save()
Skia's avatar
Skia committed
28
29
30
        ae = Club(name=settings.SITH_MAIN_CLUB['name'], unix_name=settings.SITH_MAIN_CLUB['unix_name'],
                address=settings.SITH_MAIN_CLUB['address'])
        ae.save()
Skia's avatar
Skia committed
31
32
33
        p = Page(name='Index')
        p.set_lock(root)
        p.save()
Skia's avatar
Skia committed
34
        p.view_groups=[settings.SITH_GROUPS['public']['id']]
Skia's avatar
Skia committed
35
36
37
38
39
        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=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Skia's avatar
Skia committed
51
            s.save()
Skia's avatar
Skia committed
52
53
54
55
56
57
58
            # 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
59
            u.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Skia's avatar
Skia committed
60
            u.save()
Skia's avatar
Skia committed
61
62
63
64
65
66
            # 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
67
            r.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Skia's avatar
Skia committed
68
            r.save()
Skia's avatar
Skia committed
69
70
71
72
73
74
75
76
77
            # 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()
Skia's avatar
Skia committed
78
            p.view_groups=[settings.SITH_GROUPS['public']['id']]
Skia's avatar
Skia committed
79
80
81
82
83
84
            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
Skia's avatar
Skia committed
85
86
            ## Skia
            Subscription(member=Subscriber.objects.filter(pk=s.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
87
                    payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0]).save()
Skia's avatar
Skia committed
88
89
            ## Richard
            Subscription(member=Subscriber.objects.filter(pk=r.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
90
                    payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0]).save()
Skia's avatar
Skia committed
91
92
93
94
95
96
97

            # 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()
98
99
100
            troll = Club(name="Troll Penché", unix_name="troll",
                    address="Terre Du Milieu", parent=ae)
            troll.save()
Skia's avatar
Skia committed
101
102
103
104
            Club(name="Woenzel'UT", unix_name="woenzel",
                    address="Woenzel", parent=guyut).save()
            Club(name="BdF", unix_name="bdf",
                    address="Guyéuéyuéyuyé").save()
Skia's avatar
Skia committed
105
            Membership(user=s, club=ae, role=3, description="").save()
Skia's avatar
Skia committed
106
107
108
109
110
111
112

            # 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()
Skia's avatar
Skia committed
113
114
115
116
117
118
            Product(name="Chimay", code="CBLE", product_type=p, purchase_price="1.50", selling_price="1.7",
                    special_selling_price="1.6").save()
            Product(name="Corsendonk", code="CORS", product_type=p, purchase_price="1.50", selling_price="1.7",
                    special_selling_price="1.6").save()
            Product(name="Carolus", code="CARO", product_type=p, purchase_price="1.50", selling_price="1.7",
                    special_selling_price="1.6").save()
119
120
121
122
123
124
125
            BankAccount(name="AE TG").save()
            BankAccount(name="Carte AE").save()
            ba = BankAccount(name="AE TI")
            ba.save()
            ca = ClubAccount(name="Troll Penché", bank_account=ba, club=troll)
            ca.save()

Skia's avatar
Skia committed
126