fixes
authorRadek Czajka <rczajka@rczajka.pl>
Wed, 2 Aug 2023 21:41:10 +0000 (23:41 +0200)
committerRadek Czajka <rczajka@rczajka.pl>
Wed, 2 Aug 2023 21:41:10 +0000 (23:41 +0200)
src/catalogue/management/commands/build_stale.py
src/social/models.py

index b03e3e8..26e1cf6 100644 (file)
@@ -25,17 +25,20 @@ class Command(BaseCommand):
     def handle(self, **options):
         t = time()
         counter = 0
+        tasks = []
         while True:
             if options['time'] is not None and time() - t > options['time']:
                 break
             if options['limit'] is not None and counter >= options['limit']:
                 break
-            tasks = EbookField.find_all_stale(Book, 1)
+            if not tasks:
+                tasks = EbookField.find_all_stale(Book, options['limit'] or 100)
             if not tasks:
                 break
-            for field_name, book in tasks:
-                print(field_name, book)
-                try:
-                    getattr(book, field_name).build()
-                except Exception as e:
-                    print('ERROR', e)
+            field_name, book = tasks.pop(0)
+            print(field_name, book)
+            counter += 1
+            try:
+                getattr(book, field_name).build()
+            except Exception as e:
+                print('ERROR', e)
index e852988..d46dc08 100644 (file)
@@ -140,7 +140,7 @@ class Carousel(models.Model):
 
     @classmethod
     def get(cls, placement):
-        carousel = cls.objects.filter(models.Q(language='') | models.Q(language=get_language()), placement=placement).order_by('-priority', '?').first()
+        carousel = cls.objects.filter(placement=placement).order_by('-priority', '?').first()
         if carousel is None:
             carousel = cls.objects.create(placement=placement)
         return carousel