Added model based enforcements
This commit is contained in:
parent
8d2ca26860
commit
68ea97070b
29 changed files with 143 additions and 553 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-16 23:29
|
# Generated by Django 4.0.4 on 2022-09-03 04:48
|
||||||
|
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
import django.db.models.deletion
|
import django.db.models.deletion
|
||||||
|
|
@ -17,20 +17,84 @@ class Migration(migrations.Migration):
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
('name', models.CharField(max_length=100)),
|
('name', models.CharField(max_length=100)),
|
||||||
('quota', models.IntegerField()),
|
('default_quota', models.IntegerField(default=0)),
|
||||||
('time', models.IntegerField(choices=[(30, '30'), (60, '60')])),
|
('time', models.IntegerField(blank=True, choices=[(30, '30'), (60, '60')], null=True)),
|
||||||
|
('password', models.CharField(blank=True, default=None, max_length=100, null=True)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name_plural': 'Activities',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Award',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.CharField(max_length=15)),
|
||||||
|
('points', models.IntegerField(default=0)),
|
||||||
|
('activity', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='housewars.activity')),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='Entry',
|
name='House',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.CharField(max_length=100)),
|
||||||
|
('points', models.IntegerField(default=0)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='UserEntry',
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
('first_name', models.CharField(max_length=100)),
|
('first_name', models.CharField(max_length=100)),
|
||||||
('last_name', models.CharField(max_length=100)),
|
('last_name', models.CharField(max_length=100)),
|
||||||
('email', models.EmailField(max_length=100)),
|
('email', models.EmailField(max_length=100, unique=True)),
|
||||||
('grade', models.CharField(choices=[('9th', '9Th'), ('10th', '10Th'), ('11th', '11Th'), ('12th', '12Th')], max_length=5)),
|
('grade', models.IntegerField(choices=[(9, '9th/Freshman'), (10, '10th/Sophomore'), (11, '11th/Junior'), (12, '12th/Senior')])),
|
||||||
('activity1', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='activity1', to='housewars.activity')),
|
('activity1', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='activity1', to='housewars.activity')),
|
||||||
('activity2', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='activity2', to='housewars.activity')),
|
('activity2', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='activity2', to='housewars.activity')),
|
||||||
|
('house', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='housewars.house')),
|
||||||
],
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name_plural': 'User Entries',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='PointsEntry',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('password', models.CharField(blank=True, max_length=15)),
|
||||||
|
('activity', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='housewars.activity')),
|
||||||
|
('award', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='housewars.award')),
|
||||||
|
('house', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='housewars.house')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name_plural': 'Point Entries',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Teacher',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('first_name', models.CharField(max_length=100)),
|
||||||
|
('last_name', models.CharField(max_length=100)),
|
||||||
|
('grade', models.IntegerField(choices=[(9, '9th/Freshman'), (10, '10th/Sophomore'), (11, '11th/Junior'), (12, '12th/Senior')])),
|
||||||
|
('activity', models.OneToOneField(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='teacher', to='housewars.activity')),
|
||||||
|
('house', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='teacher', to='housewars.house')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'unique_together': {('house', 'grade')},
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Quota',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('quota', models.IntegerField(default=0)),
|
||||||
|
('activity', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='housewars.activity')),
|
||||||
|
('house', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='housewars.house')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'unique_together': {('activity', 'house')},
|
||||||
|
},
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-16 23:37
|
|
||||||
|
|
||||||
from django.db import migrations
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0001_initial'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterModelTable(
|
|
||||||
name='activity',
|
|
||||||
table='Activities',
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
# Generated by Django 4.0.4 on 2022-09-03 05:12
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
import django.db.models.expressions
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('housewars', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='award',
|
||||||
|
name='activity',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='awards', to='housewars.activity'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='pointsentry',
|
||||||
|
name='activity',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='Activity', to='housewars.activity'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='pointsentry',
|
||||||
|
name='award',
|
||||||
|
field=models.ForeignKey(limit_choices_to=models.Q(('activity__award', django.db.models.expressions.F('activity'))), on_delete=django.db.models.deletion.CASCADE, to='housewars.award'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-16 23:38
|
|
||||||
|
|
||||||
from django.db import migrations
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0002_alter_activity_table'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterModelOptions(
|
|
||||||
name='activity',
|
|
||||||
options={'verbose_name_plural': 'Activities'},
|
|
||||||
),
|
|
||||||
migrations.AlterModelOptions(
|
|
||||||
name='entry',
|
|
||||||
options={'verbose_name_plural': 'Entries'},
|
|
||||||
),
|
|
||||||
migrations.AlterModelTable(
|
|
||||||
name='activity',
|
|
||||||
table=None,
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
# Generated by Django 4.0.4 on 2022-09-03 05:46
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
import smart_selects.db_fields
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('housewars', '0002_alter_award_activity_alter_pointsentry_activity_and_more'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='award',
|
||||||
|
name='activity',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='housewars.activity'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='pointsentry',
|
||||||
|
name='award',
|
||||||
|
field=smart_selects.db_fields.ChainedForeignKey(auto_choose=True, blank=True, chained_field='activity', chained_model_field='activity__name', null=True, on_delete=django.db.models.deletion.CASCADE, to='housewars.award'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-17 02:04
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0003_alter_activity_options_alter_entry_options_and_more'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='entry',
|
|
||||||
name='grade',
|
|
||||||
field=models.IntegerField(choices=[(9, '9th/Freshman'), (10, '10th/Sophomore'), (11, '11th/Junior'), (12, '12th/Senior')]),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-17 12:43
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0004_alter_entry_grade'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='entry',
|
|
||||||
name='activity2',
|
|
||||||
field=models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, related_name='activity2', to='housewars.activity'),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-17 13:09
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0005_alter_entry_activity2'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='entry',
|
|
||||||
name='house',
|
|
||||||
field=models.CharField(choices=[('HAWK', 'Hawk'), ('GREATGREY', 'Great Grey'), ('EAGLE', 'Eagle'), ('SNOWY', 'Snowy')], default='HAWK', max_length=15),
|
|
||||||
preserve_default=False,
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-17 14:28
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0006_entry_house'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='entry',
|
|
||||||
name='activity2',
|
|
||||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='activity2', to='housewars.activity'),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-17 15:17
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0007_alter_entry_activity2'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='activity',
|
|
||||||
name='session1_signups',
|
|
||||||
field=models.IntegerField(default=10),
|
|
||||||
preserve_default=False,
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='activity',
|
|
||||||
name='session2_signups',
|
|
||||||
field=models.IntegerField(default=10),
|
|
||||||
preserve_default=False,
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-17 15:19
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0008_activity_session1_signups_activity_session2_signups'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='activity',
|
|
||||||
name='session1_signups',
|
|
||||||
field=models.IntegerField(default=0),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='activity',
|
|
||||||
name='session2_signups',
|
|
||||||
field=models.IntegerField(default=0),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-17 22:36
|
|
||||||
|
|
||||||
from django.db import migrations
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0009_alter_activity_session1_signups_and_more'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='activity',
|
|
||||||
name='session1_signups',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='activity',
|
|
||||||
name='session2_signups',
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-18 22:10
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
import django.db.models.manager
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0010_remove_activity_session1_signups_and_more'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='House',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('name', models.CharField(max_length=100)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
migrations.AlterModelManagers(
|
|
||||||
name='activity',
|
|
||||||
managers=[
|
|
||||||
('session1', django.db.models.manager.Manager()),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='entry',
|
|
||||||
name='house',
|
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='housewars.house'),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-19 00:21
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0011_house_alter_activity_managers_alter_entry_house'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterModelManagers(
|
|
||||||
name='activity',
|
|
||||||
managers=[
|
|
||||||
],
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='entry',
|
|
||||||
name='house',
|
|
||||||
field=models.CharField(choices=[('HAWK', 'Hawk'), ('GREATGREY', 'Great Grey'), ('EAGLE', 'Eagle'), ('SNOWY', 'Snowy')], max_length=15),
|
|
||||||
),
|
|
||||||
migrations.DeleteModel(
|
|
||||||
name='House',
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-21 18:15
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
import django.db.models.manager
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0012_alter_activity_managers_alter_entry_house_and_more'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='House',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('name', models.CharField(max_length=100)),
|
|
||||||
('points', models.IntegerField()),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='PointsEntry',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('name', models.CharField(max_length=100)),
|
|
||||||
('points', models.IntegerField()),
|
|
||||||
('reason', models.TextField()),
|
|
||||||
('activity', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='housewars.activity')),
|
|
||||||
('house', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='housewars.house')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'verbose_name_plural': 'Point Entries',
|
|
||||||
},
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='UserEntry',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('first_name', models.CharField(max_length=100)),
|
|
||||||
('last_name', models.CharField(max_length=100)),
|
|
||||||
('email', models.EmailField(max_length=100)),
|
|
||||||
('grade', models.IntegerField(choices=[(9, '9th/Freshman'), (10, '10th/Sophomore'), (11, '11th/Junior'), (12, '12th/Senior')])),
|
|
||||||
('activity1', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='activity1', to='housewars.activity')),
|
|
||||||
('activity2', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='activity2', to='housewars.activity')),
|
|
||||||
('house', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='housewars.house')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'verbose_name_plural': 'User Entries',
|
|
||||||
},
|
|
||||||
managers=[
|
|
||||||
('hawk', django.db.models.manager.Manager()),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
migrations.DeleteModel(
|
|
||||||
name='Entry',
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-21 18:17
|
|
||||||
|
|
||||||
from django.db import migrations
|
|
||||||
import django.db.models.manager
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0013_house_pointsentry_userentry_delete_entry'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterModelManagers(
|
|
||||||
name='pointsentry',
|
|
||||||
managers=[
|
|
||||||
('hawk', django.db.models.manager.Manager()),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-21 18:33
|
|
||||||
|
|
||||||
from django.db import migrations
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0014_alter_pointsentry_managers'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterModelManagers(
|
|
||||||
name='pointsentry',
|
|
||||||
managers=[
|
|
||||||
],
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-21 20:18
|
|
||||||
|
|
||||||
from django.db import migrations
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0015_alter_pointsentry_managers'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterModelManagers(
|
|
||||||
name='userentry',
|
|
||||||
managers=[
|
|
||||||
],
|
|
||||||
),
|
|
||||||
migrations.RenameField(
|
|
||||||
model_name='pointsentry',
|
|
||||||
old_name='reason',
|
|
||||||
new_name='comment',
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-05-21 20:31
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0016_alter_userentry_managers_and_more'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='house',
|
|
||||||
name='points',
|
|
||||||
field=models.IntegerField(default=0),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='pointsentry',
|
|
||||||
name='points',
|
|
||||||
field=models.IntegerField(default=0),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-08-08 22:45
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0017_alter_house_points_alter_pointsentry_points'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='pointsentry',
|
|
||||||
name='comment',
|
|
||||||
field=models.TextField(blank=True),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-08-08 22:46
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0018_alter_pointsentry_comment'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='pointsentry',
|
|
||||||
name='comment',
|
|
||||||
field=models.TextField(blank=True, default=''),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-08-30 14:13
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0019_alter_pointsentry_comment'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='Teacher',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('first_name', models.CharField(max_length=100)),
|
|
||||||
('last_name', models.CharField(max_length=100)),
|
|
||||||
('grade', models.IntegerField(choices=[(9, '9th/Freshman'), (10, '10th/Sophomore'), (11, '11th/Junior'), (12, '12th/Senior')])),
|
|
||||||
('activity', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='housewars.activity')),
|
|
||||||
('house', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='housewars.house')),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-08-30 21:54
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0020_teacher'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='teacher',
|
|
||||||
name='activity',
|
|
||||||
field=models.OneToOneField(on_delete=django.db.models.deletion.DO_NOTHING, to='housewars.activity'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='teacher',
|
|
||||||
name='house',
|
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='housewars.house'),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-08-30 22:02
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0021_alter_teacher_activity_alter_teacher_house'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='teacher',
|
|
||||||
name='activity',
|
|
||||||
field=models.OneToOneField(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='activity', to='housewars.activity'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='teacher',
|
|
||||||
name='house',
|
|
||||||
field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='house', to='housewars.house'),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-08-30 22:04
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0022_alter_teacher_activity_alter_teacher_house'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='teacher',
|
|
||||||
name='activity',
|
|
||||||
field=models.OneToOneField(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='teacher', to='housewars.activity'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='teacher',
|
|
||||||
name='house',
|
|
||||||
field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='teacher', to='housewars.house'),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
# Generated by Django 4.0.4 on 2022-08-31 02:15
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('housewars', '0023_alter_teacher_activity_alter_teacher_house'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='pointsentry',
|
|
||||||
name='comment',
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='pointsentry',
|
|
||||||
name='password',
|
|
||||||
field=models.CharField(blank=True, default=None, max_length=15, null=True),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -12,7 +12,10 @@ class Activity(models.Model):
|
||||||
|
|
||||||
name = models.CharField(max_length=100)
|
name = models.CharField(max_length=100)
|
||||||
quota = models.IntegerField()
|
quota = models.IntegerField()
|
||||||
time = models.IntegerField(choices=TimeslotChoices)
|
time = models.IntegerField(
|
||||||
|
choices=TimeslotChoices, blank=True, null=True, default=None)
|
||||||
|
password = models.CharField(
|
||||||
|
max_length=100, blank=True, null=True, default=None)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.name} ({self.time})"
|
return f"{self.name} ({self.time})"
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,9 @@ from . import House, Activity
|
||||||
|
|
||||||
|
|
||||||
class Teacher(models.Model):
|
class Teacher(models.Model):
|
||||||
|
class Meta:
|
||||||
|
unique_together = [['house', 'grade']]
|
||||||
|
|
||||||
GradeChoices = (
|
GradeChoices = (
|
||||||
(9, '9th/Freshman'),
|
(9, '9th/Freshman'),
|
||||||
(10, '10th/Sophomore'),
|
(10, '10th/Sophomore'),
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
from django.core.exceptions import ValidationError
|
||||||
|
|
||||||
from ..managers import (EagleEntryManager, EntryManager, GreatGreyEntryManager,
|
from ..managers import (EagleEntryManager, EntryManager, GreatGreyEntryManager,
|
||||||
HawkEntryManager, SnowyEntryManager)
|
HawkEntryManager, SnowyEntryManager)
|
||||||
|
|
||||||
from . import House, Activity
|
from . import House, Activity
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -25,7 +25,7 @@ class UserEntry(models.Model):
|
||||||
|
|
||||||
first_name = models.CharField(max_length=100)
|
first_name = models.CharField(max_length=100)
|
||||||
last_name = models.CharField(max_length=100)
|
last_name = models.CharField(max_length=100)
|
||||||
email = models.EmailField(max_length=100)
|
email = models.EmailField(max_length=100, unique=True)
|
||||||
grade = models.IntegerField(choices=GradeChoices)
|
grade = models.IntegerField(choices=GradeChoices)
|
||||||
house = models.ForeignKey(
|
house = models.ForeignKey(
|
||||||
House, on_delete=models.CASCADE)
|
House, on_delete=models.CASCADE)
|
||||||
|
|
@ -34,9 +34,17 @@ class UserEntry(models.Model):
|
||||||
activity2 = models.ForeignKey(
|
activity2 = models.ForeignKey(
|
||||||
Activity, related_name='activity2', on_delete=models.CASCADE, blank=True, null=True)
|
Activity, related_name='activity2', on_delete=models.CASCADE, blank=True, null=True)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def mentor(self):
|
||||||
|
return self.house.teacher.get(grade=self.grade)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.first_name} {self.last_name}"
|
return f"{self.first_name} {self.last_name}"
|
||||||
|
|
||||||
|
def clean(self):
|
||||||
|
if (self.activity1.time == None or self.activity2.time == None):
|
||||||
|
raise ValidationError('You cannot sign up for a null activity.')
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
self.full_clean()
|
self.full_clean()
|
||||||
return super().save(*args, **kwargs)
|
return super().save(*args, **kwargs)
|
||||||
|
|
|
||||||
Reference in a new issue