diff --git a/Seeder/blacklists/views.py b/Seeder/blacklists/views.py index 5fdbcbea..f45c6f5b 100644 --- a/Seeder/blacklists/views.py +++ b/Seeder/blacklists/views.py @@ -24,10 +24,10 @@ class ListView(BlacklistView, TemplateView): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - last_change = timezone.now().replace(microsecond=0) -\ - models.Blacklist.last_change().replace(microsecond=0) - - context['last_change'] = last_change + last_change = models.Blacklist.last_change() + if last_change: + context['last_change'] = (timezone.now().replace(microsecond=0) - + last_change.replace(microsecond=0)) context['blacklists'] = models.Blacklist.objects.all() return context diff --git a/Seeder/core/dashboard_data.py b/Seeder/core/dashboard_data.py index 6dfb1150..d3bdd05e 100644 --- a/Seeder/core/dashboard_data.py +++ b/Seeder/core/dashboard_data.py @@ -236,6 +236,9 @@ def get_queryset(self): random.seed(str(self.user) + str(timezone.now().date())) # Include all sources, both owned by user and not qa_sources = source_models.Source.objects.needs_qa() + # Don't continue if there are no QA sources + if qa_sources.count() == 0: + return qa_sources # Randomly select up to N sources for QA with at most M tries random_qa = set() # collect pks tries = 0 diff --git a/Seeder/harvests/models.py b/Seeder/harvests/models.py index 21e8ddcf..980b499c 100755 --- a/Seeder/harvests/models.py +++ b/Seeder/harvests/models.py @@ -2,6 +2,7 @@ from itertools import chain from datetime import date +from django.contrib import messages from django.db import models from django.utils.translation import ugettext_lazy as _ @@ -96,7 +97,7 @@ def get_custom_seeds(self): return set(self.custom_seeds.splitlines()) def get_custom_sources_seeds(self): - seeds = Seed.objects.archiving().filter( + seeds = Seed.objects.filter( source__in=self.custom_sources.all()) return set(seeds.values_list('url', flat=True)) - self.get_blacklisted() @@ -341,8 +342,12 @@ def freeze_seeds(self): """ Freezes the seeds to preserve them for later use """ - self.seeds_frozen = '\n'.join(self.get_seeds()) - self.save() + seeds = self.get_seeds() + if len(seeds) > 0: + self.seeds_frozen = '\n'.join(seeds) + self.save() + return True # frozen correctly + return False # not frozen @property def is_oneshot(self): @@ -496,4 +501,6 @@ def freeze_urls(sender, instance, **kwargs): :type instance: Harvest """ if instance.status == Harvest.STATE_RUNNING and not instance.seeds_frozen: - instance.freeze_seeds() + # If cannot freeze correctly, reset Harvest status + if not instance.freeze_seeds(): + instance.status = Harvest.STATE_PLANNED diff --git a/Seeder/harvests/templates/topic_collection.html b/Seeder/harvests/templates/topic_collection.html index 89ebedb1..e5a6bd18 100644 --- a/Seeder/harvests/templates/topic_collection.html +++ b/Seeder/harvests/templates/topic_collection.html @@ -117,6 +117,7 @@