From 60f0aa207d26ea158133d6a04cdae8894a24a6a2 Mon Sep 17 00:00:00 2001 From: Adam Kelly Date: Thu, 2 Apr 2020 19:05:10 +0100 Subject: [PATCH] Add model to store reading progress. --- fedireads/migrations/0031_readthrough.py | 31 ++++++++++++++++++++++++ fedireads/models/status.py | 15 ++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 fedireads/migrations/0031_readthrough.py diff --git a/fedireads/migrations/0031_readthrough.py b/fedireads/migrations/0031_readthrough.py new file mode 100644 index 00000000..1bd74842 --- /dev/null +++ b/fedireads/migrations/0031_readthrough.py @@ -0,0 +1,31 @@ +# Generated by Django 3.0.3 on 2020-04-15 12:24 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('fedireads', '0030_quotation'), + ] + + operations = [ + migrations.CreateModel( + name='ReadThrough', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_date', models.DateTimeField(auto_now_add=True)), + ('updated_date', models.DateTimeField(auto_now=True)), + ('pages_read', models.IntegerField(blank=True, null=True)), + ('start_date', models.DateTimeField(blank=True, null=True)), + ('finish_date', models.DateTimeField(blank=True, null=True)), + ('book', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='fedireads.Book')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/fedireads/models/status.py b/fedireads/models/status.py index 6e4c3868..6f19fe28 100644 --- a/fedireads/models/status.py +++ b/fedireads/models/status.py @@ -134,6 +134,21 @@ class Tag(FedireadsModel): unique_together = ('user', 'book', 'name') +class ReadThrough(FedireadsModel): + ''' Store progress through a book in the database. ''' + user = models.ForeignKey('User', on_delete=models.PROTECT) + book = models.ForeignKey('Book', on_delete=models.PROTECT) + pages_read = models.IntegerField( + null=True, + blank=True) + start_date = models.DateTimeField( + blank=True, + null=True) + finish_date = models.DateTimeField( + blank=True, + null=True) + + NotificationType = models.TextChoices( 'NotificationType', 'FAVORITE REPLY TAG FOLLOW FOLLOW_REQUEST BOOST')