introduce story round and participants, extend models with additional information, replace initial migration

No need for backwards compatibility at this point, so just replace the migration
This commit is contained in:
Gesche 2021-03-31 01:10:04 +02:00
parent 03aee0abd6
commit 8aa459d2ef
2 changed files with 63 additions and 4 deletions

View File

@ -1,4 +1,4 @@
# Generated by Django 3.1.7 on 2021-03-30 19:23 # Generated by Django 3.1.7 on 2021-03-30 23:08
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models
@ -14,12 +14,29 @@ class Migration(migrations.Migration):
] ]
operations = [ operations = [
migrations.CreateModel(
name='Participant',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('order_by', models.IntegerField()),
],
),
migrations.CreateModel( migrations.CreateModel(
name='Story', name='Story',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(blank=True, max_length=256, null=True)), ('name', models.CharField(blank=True, max_length=256, null=True)),
('created', models.DateTimeField()), ('created', models.DateTimeField(auto_now_add=True)),
],
),
migrations.CreateModel(
name='StoryRound',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=256)),
('created', models.DateTimeField(auto_now_add=True)),
('number_of_rounds', models.IntegerField()),
('participants', models.ManyToManyField(through='writingtogether.Participant', to=settings.AUTH_USER_MODEL)),
], ],
), ),
migrations.CreateModel( migrations.CreateModel(
@ -28,7 +45,28 @@ class Migration(migrations.Migration):
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('text', models.TextField()), ('text', models.TextField()),
('part_of', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='writingtogether.story')), ('part_of', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='writingtogether.story')),
('previous_part', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='writingtogether.storypart')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
], ],
), ),
migrations.AddField(
model_name='story',
name='part_of_round',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='writingtogether.storyround'),
),
migrations.AddField(
model_name='story',
name='started_by',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
migrations.AddField(
model_name='participant',
name='story_round',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='writingtogether.storyround'),
),
migrations.AddField(
model_name='participant',
name='user',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
] ]

View File

@ -1,15 +1,36 @@
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.db import models from django.db import models
from django.db.models import CASCADE from django.db.models import CASCADE
from django.urls import reverse
User = get_user_model() User = get_user_model()
class StoryRound(models.Model):
name = models.CharField(max_length=256)
participants = models.ManyToManyField(User, through='Participant')
created = models.DateTimeField(auto_now_add=True)
number_of_rounds = models.IntegerField()
def get_absolute_url(self):
return reverse('writing:detail', kwargs={'pk': self.pk})
class Participant(models.Model):
user = models.ForeignKey(User, on_delete=CASCADE)
story_round = models.ForeignKey(StoryRound, on_delete=CASCADE)
order_by = models.IntegerField()
class Story(models.Model): class Story(models.Model):
name = models.CharField(max_length=256, null=True, blank=True) name = models.CharField(max_length=256, null=True, blank=True)
created = models.DateTimeField() created = models.DateTimeField(auto_now_add=True)
part_of_round = models.ForeignKey(StoryRound, on_delete=CASCADE)
started_by = models.ForeignKey(User, on_delete=CASCADE)
class StoryPart(models.Model): class StoryPart(models.Model):
user = models.ForeignKey(User, on_delete=CASCADE) user = models.ForeignKey(User, on_delete=CASCADE)
previous_part = models.ForeignKey('StoryPart', on_delete=CASCADE, null=True, blank=True)
text = models.TextField() text = models.TextField()
part_of = models.ForeignKey('Story', on_delete=CASCADE) part_of = models.ForeignKey('Story', on_delete=CASCADE)