populate.py 8.47 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 GeneralJournal, BankAccount, ClubAccount, Operation, AccountingType
Skia's avatar
Skia committed
9
from club.models import Club, Membership
Skia's avatar
Skia committed
10
from subscription.models import Subscription, Subscriber
Skia's avatar
Skia committed
11
from counter.models import Customer, ProductType, Product, Counter
Skia's avatar
Skia committed
12
13
14
15
16
17
18
19
20

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
21
        root = User(username='root', last_name="", first_name="Bibou",
Skia's avatar
Skia committed
22
23
24
                 email="ae.info@utbm.fr",
                 date_of_birth="1942-06-12",
                 is_superuser=True, is_staff=True)
Skia's avatar
Skia committed
25
26
        root.set_password("plop")
        root.save()
Skia's avatar
Skia committed
27
        for g in settings.SITH_GROUPS.values():
Skia's avatar
Skia committed
28
            Group(id=g['id'], name=g['name']).save()
Skia's avatar
Skia committed
29
30
31
        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
32
33
34
        p = Page(name='Index')
        p.set_lock(root)
        p.save()
Skia's avatar
Skia committed
35
        p.view_groups=[settings.SITH_GROUPS['public']['id']]
Skia's avatar
Skia committed
36
37
38
39
40
        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
41
42
43
44

        # 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
45
            skia = User(username='skia', last_name="Kia", first_name="S'",
Skia's avatar
Skia committed
46
47
                     email="skia@git.an",
                     date_of_birth="1942-06-12")
Skia's avatar
Skia committed
48
49
50
51
            skia.set_password("plop")
            skia.save()
            skia.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
            skia.save()
Skia's avatar
Skia committed
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
            # 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()
Skia's avatar
Skia committed
70
71
72
73
74
75
76
77
78
79
            # 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]
            comptable.groups=[Group.objects.filter(name=settings.SITH_GROUPS['accounting-admin']['name']).first().id]
            comptable.save()
Skia's avatar
Skia committed
80
81
82
83
84
85
86
            # 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
87
            u.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Skia's avatar
Skia committed
88
            u.save()
Skia's avatar
Skia committed
89
90
91
92
93
94
            # 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
95
            r.view_groups=[Group.objects.filter(name=settings.SITH_MAIN_MEMBERS_GROUP).first().id]
Skia's avatar
Skia committed
96
            r.save()
Skia's avatar
Skia committed
97
98
99
            # Adding syntax help page
            p = Page(name='Aide_sur_la_syntaxe')
            p.save()
Skia's avatar
Skia committed
100
            PageRev(page=p, title="Aide sur la syntaxe", author=skia, content="""
Skia's avatar
Skia committed
101
102
103
104
105
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
106
            p.view_groups=[settings.SITH_GROUPS['public']['id']]
Skia's avatar
Skia committed
107
            p.set_lock(skia)
Skia's avatar
Skia committed
108
109
            p.save()
            with open(os.path.join(root_path)+'/README.md', 'r') as rm:
Skia's avatar
Skia committed
110
                PageRev(page=p, title="REAMDE", author=skia, content=rm.read()).save()
Skia's avatar
Skia committed
111
112

            # Subscription
Skia's avatar
Skia committed
113
            ## Skia
Skia's avatar
Skia committed
114
115
116
117
            Subscription(member=Subscriber.objects.filter(pk=skia.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
                    payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0]).save()
            ## Comptable
            Subscription(member=Subscriber.objects.filter(pk=comptable.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
118
                    payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0]).save()
Skia's avatar
Skia committed
119
120
            ## Richard
            Subscription(member=Subscriber.objects.filter(pk=r.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
121
                    payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0]).save()
Skia's avatar
Skia committed
122
123
124
            ## Subscriber
            Subscription(member=Subscriber.objects.filter(pk=subscriber.pk).first(), subscription_type=list(settings.SITH_SUBSCRIPTIONS.keys())[0],
                    payment_method=settings.SITH_SUBSCRIPTION_PAYMENT_METHOD[0]).save()
Skia's avatar
Skia committed
125
126
127
128
129
130
131
132
133
134

            # 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",
Skia's avatar
Skia committed
135
                    address="6 Bd Anatole France").save()
Skia's avatar
Skia committed
136
            Membership(user=skia, club=ae, role=3, description="").save()
Skia's avatar
Skia committed
137
138
139
            troll = Club(name="Troll Penché", unix_name="troll",
                    address="Terre Du Milieu", parent=ae)
            troll.save()
Skia's avatar
Skia committed
140

Skia's avatar
Skia committed
141
142
            # Counters
            Customer(user=skia, account_id="6568j", amount=0).save()
143
            Customer(user=r, account_id="4000", amount=0).save()
Skia's avatar
Skia committed
144
145
            p = ProductType(name="Bières bouteilles")
            p.save()
Skia's avatar
Skia committed
146
147
148
149
150
151
            barb = Product(name="Barbar", code="BARB", product_type=p, purchase_price="1.50", selling_price="1.7",
                    special_selling_price="1.6", club=ae)
            barb.save()
            cble = Product(name="Chimay Bleue", code="CBLE", product_type=p, purchase_price="1.50", selling_price="1.7",
                    special_selling_price="1.6", club=ae)
            cble.save()
Skia's avatar
Skia committed
152
            Product(name="Corsendonk", code="CORS", product_type=p, purchase_price="1.50", selling_price="1.7",
Skia's avatar
Skia committed
153
                    special_selling_price="1.6", club=ae).save()
Skia's avatar
Skia committed
154
            Product(name="Carolus", code="CARO", product_type=p, purchase_price="1.50", selling_price="1.7",
Skia's avatar
Skia committed
155
                    special_selling_price="1.6", club=ae).save()
Skia's avatar
Skia committed
156
157
158
159
160
161
162
            mde = Counter(name="MDE", club=ae, type="BAR")
            mde.save()
            mde.products.add(barb)
            mde.products.add(cble)
            mde.save()

            # Accounting test values:
Skia's avatar
Skia committed
163
164
165
            BankAccount(name="AE TG", club=ae).save()
            BankAccount(name="Carte AE", club=ae).save()
            ba = BankAccount(name="AE TI", club=ae)
166
167
168
            ba.save()
            ca = ClubAccount(name="Troll Penché", bank_account=ba, club=troll)
            ca.save()
Skia's avatar
Skia committed
169
170
            AccountingType(code=756, label="Someone gave us money", movement_type='credit').save()
            AccountingType(code=8570, label="Had to pay for food", movement_type='debit').save()
Skia's avatar
Skia committed
171