Skip to content

Commit 20ca422

Browse files
committed
added script to populate database with example data
1 parent 583368f commit 20ca422

File tree

12 files changed

+185
-364
lines changed

12 files changed

+185
-364
lines changed

manage.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
import os
33
import sys
44

5+
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'opensutd.settings')
6+
57
if __name__ == '__main__':
6-
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'opensutd.settings')
78
try:
89
from django.core.management import execute_from_command_line
910
except ImportError as exc:

opensutd/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
'django.contrib.sessions',
3939
'django.contrib.messages',
4040
'django.contrib.staticfiles',
41+
'django_extensions',
4142
]
4243

4344
MIDDLEWARE = [
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from django.contrib.auth.management.commands import createsuperuser
2+
from django.core.management import CommandError
3+
4+
class Command(createsuperuser.Command):
5+
help = 'Crate a superuser, and allow password to be provided'
6+
7+
def add_arguments(self, parser):
8+
super(Command, self).add_arguments(parser)
9+
parser.add_argument(
10+
'--password', dest='password', default=None,
11+
help='Specifies the password for the superuser.',
12+
)
13+
14+
def handle(self, *args, **options):
15+
password = options.get('password')
16+
username = options.get('username')
17+
database = options.get('database')
18+
19+
if password and not username:
20+
raise CommandError("--username is required if specifying --password")
21+
22+
super(Command, self).handle(*args, **options)
23+
24+
if password:
25+
user = self.UserModel._default_manager.db_manager(database).get(username=username)
26+
user.set_password(password)
27+
user.save()

projects/migrations/0001_initial.py

100755100644
Lines changed: 59 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,95 +1,59 @@
1-
# Generated by Django 2.1.7 on 2019-02-25 07:22
2-
3-
from django.db import migrations, models
4-
5-
6-
class Migration(migrations.Migration):
7-
8-
initial = True
9-
10-
dependencies = [
11-
]
12-
13-
operations = [
14-
migrations.CreateModel(
15-
name='AdminGroup',
16-
fields=[
17-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18-
],
19-
),
20-
migrations.CreateModel(
21-
name='Links',
22-
fields=[
23-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
24-
],
25-
),
26-
migrations.CreateModel(
27-
name='Pillar',
28-
fields=[
29-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
30-
('pillar', models.CharField(max_length=10)),
31-
],
32-
),
33-
migrations.CreateModel(
34-
name='Project',
35-
fields=[
36-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
37-
('title', models.CharField(max_length=200)),
38-
('projectuid', models.CharField(max_length=20)),
39-
('featuredimage', models.CharField(max_length=200)),
40-
('caption', models.CharField(max_length=200)),
41-
('url', models.CharField(max_length=200)),
42-
],
43-
),
44-
migrations.CreateModel(
45-
name='Status',
46-
fields=[
47-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
48-
('status', models.CharField(max_length=20)),
49-
],
50-
),
51-
migrations.CreateModel(
52-
name='Tag',
53-
fields=[
54-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
55-
],
56-
),
57-
migrations.CreateModel(
58-
name='Tester',
59-
fields=[
60-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
61-
('projectuid', models.CharField(max_length=20)),
62-
],
63-
),
64-
migrations.CreateModel(
65-
name='User',
66-
fields=[
67-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
68-
('displayname', models.CharField(max_length=20)),
69-
('displaypicture', models.CharField(max_length=200)),
70-
('userid', models.CharField(max_length=200)),
71-
('issutd', models.BooleanField()),
72-
('graduationyear', models.IntegerField()),
73-
('contactemail', models.CharField(max_length=200)),
74-
('bio', models.CharField(max_length=300)),
75-
('admingroup', models.ManyToManyField(to='projects.AdminGroup')),
76-
('personallinks', models.ManyToManyField(to='projects.Links')),
77-
('pillar', models.ManyToManyField(to='projects.Pillar')),
78-
],
79-
),
80-
migrations.AddField(
81-
model_name='project',
82-
name='owner',
83-
field=models.ManyToManyField(to='projects.User'),
84-
),
85-
migrations.AddField(
86-
model_name='project',
87-
name='status',
88-
field=models.ManyToManyField(to='projects.Status'),
89-
),
90-
migrations.AddField(
91-
model_name='project',
92-
name='tags',
93-
field=models.ManyToManyField(to='projects.Tag'),
94-
),
95-
]
1+
# Generated by Django 2.1.7 on 2019-02-28 05:25
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
initial = True
9+
10+
dependencies = [
11+
]
12+
13+
operations = [
14+
migrations.CreateModel(
15+
name='Project',
16+
fields=[
17+
('title', models.CharField(default='', max_length=200)),
18+
('project_uid', models.CharField(default='NONE_99999', max_length=20, primary_key=True, serialize=False)),
19+
('featured_image', models.CharField(default='https://via.placeholder.com/150', max_length=200)),
20+
('caption', models.CharField(max_length=200)),
21+
('category', models.CharField(choices=[('UROP', 'Undergraduate Research Opportunities Project'), ('UTOP', 'Undergraduate Teaching Opportunities Project'), ('ACAD', 'Academic Project (1D, 2D etc.)'), ('SELF', 'Student-initiated project'), ('NONE', "Unknown, or doesn't fall into any category")], default='NONE', max_length=4)),
22+
('url', models.CharField(max_length=200)),
23+
('status', models.CharField(choices=[('ACCEPT', 'Accepted Project, will display'), ('REJECT', 'Rejected Project, will not display'), ('PENDING', 'Pending Project, will not display')], default='PENDING', max_length=10)),
24+
('published_date', models.DateTimeField(auto_now=True)),
25+
],
26+
),
27+
migrations.CreateModel(
28+
name='Tag',
29+
fields=[
30+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
31+
('name', models.CharField(default='', max_length=40)),
32+
],
33+
),
34+
migrations.CreateModel(
35+
name='User',
36+
fields=[
37+
('user_id', models.CharField(max_length=200, primary_key=True, serialize=False)),
38+
('display_name', models.CharField(default='Tom', max_length=20)),
39+
('display_picture', models.CharField(default='https://via.placeholder.com/150', max_length=200)),
40+
('is_sutd', models.BooleanField(default='False')),
41+
('graduation_year', models.IntegerField()),
42+
('pillar', models.CharField(choices=[('FRSH', 'Freshmore'), ('EPD', 'Engineering Product and Design'), ('ESD', 'Engineering Systems Design'), ('ASD', 'Architecture and Sustainable Design'), ('ISTD', 'Information Systems Technology and Design'), ('PSTG', 'Post-graduate')], default='', max_length=4)),
43+
('admin_groups', models.CharField(choices=[('UROP', 'Undergraduate Research Opportunities Project'), ('UTOP', 'Undergraduate Teaching Opportunities Project'), ('ACAD', 'Academic Project (1D, 2D etc.)'), ('SELF', 'Student-initiated project'), ('NONE', "Unknown, or doesn't fall into any category")], default='', max_length=4)),
44+
('contact_email', models.CharField(default='[email protected]', max_length=200)),
45+
('personal_links', models.CharField(default='', max_length=200)),
46+
('bio', models.CharField(default='', max_length=300)),
47+
],
48+
),
49+
migrations.AddField(
50+
model_name='project',
51+
name='tags',
52+
field=models.ManyToManyField(to='projects.Tag'),
53+
),
54+
migrations.AddField(
55+
model_name='project',
56+
name='users',
57+
field=models.ManyToManyField(to='projects.User'),
58+
),
59+
]

projects/migrations/0002_auto_20190228_0100.py

Lines changed: 0 additions & 29 deletions
This file was deleted.

projects/migrations/0003_auto_20190228_0112.py

Lines changed: 0 additions & 116 deletions
This file was deleted.

0 commit comments

Comments
 (0)