Sith/core/management/commands/setup.py

70 lines
3.1 KiB
Python
Raw Normal View History

2015-12-04 15:13:20 +00:00
import os
2015-12-03 17:00:08 +00:00
from django.core.management.base import BaseCommand, CommandError
from django.core.management import call_command
from django.conf import settings
2016-01-28 15:53:37 +00:00
from core.models import Group, User, Page, PageRev
2016-01-28 15:53:37 +00:00
from accounting.models import Customer, GeneralJournal, ProductType, Product
from club.models import Club
2016-02-01 08:55:23 +00:00
from subscription.models import Subscription, Subscriber
2015-12-03 17:00:08 +00:00
class Command(BaseCommand):
help = "Set up a new instance of the Sith AE"
2015-12-04 15:13:20 +00:00
def add_arguments(self, parser):
parser.add_argument('--prod', action="store_true")
2015-12-03 17:00:08 +00:00
def handle(self, *args, **options):
try:
2015-12-04 15:13:20 +00:00
os.unlink(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))), 'db.sqlite3'))
2016-01-28 15:53:37 +00:00
os.mkdir(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))))+'/data')
except Exception as e:
print(e)
2015-12-03 17:00:08 +00:00
call_command('migrate')
u = User(username='root', last_name="", first_name="Bibou",
email="ae.info@utbm.fr",
2016-01-28 09:13:45 +00:00
date_of_birth="1942-06-12",
2015-12-03 17:00:08 +00:00
is_superuser=True, is_staff=True)
u.set_password("plop")
u.save()
for g in settings.AE_GROUPS.values():
Group(id=g['id'], name=g['name']).save()
Club(name=settings.AE_MAIN_CLUB['name'], unix_name=settings.AE_MAIN_CLUB['unix_name'],
address=settings.AE_MAIN_CLUB['address']).save()
# Here we add a lot of test datas, that are not necessary for the Sith, but that provide a basic development environment
2015-12-04 15:13:20 +00:00
if not options['prod']:
print("Dev mode, adding some test data")
s = User(username='skia', last_name="Kia", first_name="S'",
2015-12-04 15:13:20 +00:00
email="skia@git.an",
2016-01-28 09:13:45 +00:00
date_of_birth="1942-06-12",
2015-12-04 15:13:20 +00:00
is_superuser=True, is_staff=True)
s.set_password("plop")
s.save()
u = User(username='guy', last_name="Carlier", first_name="Guy",
email="guy@git.an",
2016-01-28 09:13:45 +00:00
date_of_birth="1942-06-12",
is_superuser=False, is_staff=False)
u.set_password("plop")
u.save()
2016-01-08 15:27:59 +00:00
p = Page(name='Aide_sur_la_syntaxe')
p.set_lock(s)
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()
2015-12-03 17:00:08 +00:00
2016-01-28 15:53:37 +00:00
# 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()
2016-02-01 08:55:23 +00:00
# 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()