Skip to content

Commit 2a9113a

Browse files
committed
created models and migrations for challenges
1 parent 19c2987 commit 2a9113a

File tree

2 files changed

+133
-1
lines changed

2 files changed

+133
-1
lines changed

challenges/migrations/0001_initial.py

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Generated by Django 2.1.2 on 2018-10-07 00:29
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
import django.db.models.deletion
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
initial = True
11+
12+
dependencies = [
13+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
14+
]
15+
16+
operations = [
17+
migrations.CreateModel(
18+
name='Attachment',
19+
fields=[
20+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
21+
('created_at', models.DateTimeField(auto_now_add=True)),
22+
('updated_at', models.DateTimeField(auto_now=True)),
23+
('name', models.CharField(max_length=250)),
24+
('url', models.TextField()),
25+
('active', models.BooleanField(default=True)),
26+
],
27+
),
28+
migrations.CreateModel(
29+
name='Challenge',
30+
fields=[
31+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
32+
('created_at', models.DateTimeField(auto_now_add=True)),
33+
('updated_at', models.DateTimeField(auto_now=True)),
34+
('is_visible', models.BooleanField(default=True)),
35+
('title', models.CharField(max_length=250)),
36+
('short_title', models.CharField(max_length=250)),
37+
('owner', models.CharField(max_length=250)),
38+
('difficulty', models.CharField(max_length=250)),
39+
('challenge_type', models.CharField(blank=True, choices=[('feature', 'Feature'), ('bug', 'Bug'), ('improvement', 'Improvement'), ('task', 'Task'), ('subtask', 'Sub Task')], max_length=30, null=True)),
40+
('priority', models.CharField(max_length=250)),
41+
('description', models.TextField()),
42+
('short_description', models.TextField()),
43+
('extra_points', models.TextField()),
44+
('technical_notes', models.TextField()),
45+
('procedure', models.TextField()),
46+
('code_tips', models.TextField()),
47+
('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL)),
48+
],
49+
),
50+
migrations.CreateModel(
51+
name='Source',
52+
fields=[
53+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
54+
('created_at', models.DateTimeField(auto_now_add=True)),
55+
('updated_at', models.DateTimeField(auto_now=True)),
56+
('name', models.CharField(max_length=250)),
57+
('url', models.TextField()),
58+
('active', models.BooleanField(default=True)),
59+
('challenge', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='challenges.Challenge')),
60+
],
61+
),
62+
migrations.CreateModel(
63+
name='Tag',
64+
fields=[
65+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
66+
('created_at', models.DateTimeField(auto_now_add=True)),
67+
('updated_at', models.DateTimeField(auto_now=True)),
68+
('name', models.CharField(max_length=250)),
69+
],
70+
),
71+
migrations.AddField(
72+
model_name='attachment',
73+
name='challenge',
74+
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='challenges.Challenge'),
75+
),
76+
]

challenges/models.py

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,59 @@
11
from django.db import models
2+
from accounts.models import User
23

3-
# Create your models here.
4+
class Tag(models.Model):
5+
def __str__(self):
6+
return self.name
7+
8+
created_at = models.DateTimeField(auto_now_add=True)
9+
updated_at = models.DateTimeField(auto_now=True)
10+
name = models.CharField(max_length=250,)
11+
12+
class Challenge(models.Model):
13+
14+
CHALLENGE_TYPES = (
15+
('feature', 'Feature'),
16+
('bug', 'Bug'),
17+
('improvement', 'Improvement'),
18+
('task', 'Task'),
19+
('subtask', 'Sub Task'),
20+
)
21+
22+
user = models.ForeignKey(User, on_delete=models.DO_NOTHING)
23+
created_at = models.DateTimeField(auto_now_add=True)
24+
updated_at = models.DateTimeField(auto_now=True)
25+
is_visible = models.BooleanField(default=True)
26+
title = models.CharField(max_length=250,)
27+
short_title = models.CharField(max_length=250,)
28+
owner = models.CharField(max_length=250,)
29+
difficulty = models.CharField(max_length=250,)
30+
challenge_type = models.CharField(max_length=30, choices=CHALLENGE_TYPES, null=True, blank=True)
31+
priority = models.CharField(max_length=250)
32+
description = models.TextField()
33+
short_description = models.TextField()
34+
extra_points = models.TextField()
35+
technical_notes = models.TextField()
36+
procedure = models.TextField()
37+
code_tips = models.TextField()
38+
39+
class Attachment(models.Model):
40+
def __str__(self):
41+
return self.name
42+
43+
created_at = models.DateTimeField(auto_now_add=True)
44+
updated_at = models.DateTimeField(auto_now=True)
45+
name = models.CharField(max_length=250,)
46+
url = models.TextField()
47+
active = models.BooleanField(default=True)
48+
challenge = models.ForeignKey(Challenge, on_delete=models.DO_NOTHING)
49+
50+
class Source(models.Model):
51+
def __str__(self):
52+
return self.name
53+
54+
created_at = models.DateTimeField(auto_now_add=True)
55+
updated_at = models.DateTimeField(auto_now=True)
56+
name = models.CharField(max_length=250,)
57+
url = models.TextField()
58+
active = models.BooleanField(default=True)
59+
challenge = models.ForeignKey(Challenge, on_delete=models.DO_NOTHING)

0 commit comments

Comments
 (0)