use ints for stats
authorRadek Czajka <rczajka@rczajka.pl>
Tue, 17 Feb 2026 14:38:53 +0000 (15:38 +0100)
committerRadek Czajka <rczajka@rczajka.pl>
Tue, 17 Feb 2026 14:38:53 +0000 (15:38 +0100)
src/catalogue/migrations/0053_alter_book_pages_alter_book_read_time.py [new file with mode: 0644]
src/catalogue/models/book.py

diff --git a/src/catalogue/migrations/0053_alter_book_pages_alter_book_read_time.py b/src/catalogue/migrations/0053_alter_book_pages_alter_book_read_time.py
new file mode 100644 (file)
index 0000000..ea4339e
--- /dev/null
@@ -0,0 +1,23 @@
+# Generated by Django 4.0.8 on 2026-02-17 14:38
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('catalogue', '0052_book_pages_book_read_time'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='book',
+            name='pages',
+            field=models.IntegerField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='book',
+            name='read_time',
+            field=models.IntegerField(blank=True, null=True),
+        ),
+    ]
index 6fcf181..d7c6f01 100644 (file)
@@ -98,8 +98,8 @@ class Book(models.Model):
     translators = models.ManyToManyField(Tag, blank=True)
     narrators = models.ManyToManyField(Tag, blank=True, related_name='narrated')
     has_audio = models.BooleanField(default=False)
     translators = models.ManyToManyField(Tag, blank=True)
     narrators = models.ManyToManyField(Tag, blank=True, related_name='narrated')
     has_audio = models.BooleanField(default=False)
-    read_time = models.FloatField(blank=True, null=True)
-    pages = models.FloatField(blank=True, null=True)
+    read_time = models.IntegerField(blank=True, null=True)
+    pages = models.IntegerField(blank=True, null=True)
     
     html_built = django.dispatch.Signal()
     published = django.dispatch.Signal()
     
     html_built = django.dispatch.Signal()
     published = django.dispatch.Signal()
@@ -814,10 +814,10 @@ class Book(models.Model):
 
     def update_stats(self):
         stats = self.wldocument2().get_statistics()['total']
 
     def update_stats(self):
         stats = self.wldocument2().get_statistics()['total']
-        self.pages = (
+        self.pages = round(
             stats['verses_with_fn'] / 30 +
             stats['chars_out_verse_with_fn'] / 1800)
             stats['verses_with_fn'] / 30 +
             stats['chars_out_verse_with_fn'] / 1800)
-        self.read_time = self.get_time()
+        self.read_time = round(self.get_time())
         self.save(update_fields=['pages', 'read_time'])
         if self.parent is not None:
             self.parent.update_stats()
         self.save(update_fields=['pages', 'read_time'])
         if self.parent is not None:
             self.parent.update_stats()