diff --git a/src/newsreader/news/collection/migrations/0013_auto_20201219_1345.py b/src/newsreader/news/collection/migrations/0013_auto_20201219_1345.py new file mode 100644 index 0000000..93c78a3 --- /dev/null +++ b/src/newsreader/news/collection/migrations/0013_auto_20201219_1345.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.7 on 2020-12-19 12:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [("collection", "0012_auto_20201219_1331")] + + operations = [ + migrations.AlterField( + model_name="collectionrule", + name="reddit_downvotes_max", + field=models.PositiveIntegerField( + blank=True, null=True, verbose_name="Maximum amount of downvotes" + ), + ) + ] diff --git a/src/newsreader/news/collection/migrations/0014_auto_20201219_1346.py b/src/newsreader/news/collection/migrations/0014_auto_20201219_1346.py new file mode 100644 index 0000000..57af0c7 --- /dev/null +++ b/src/newsreader/news/collection/migrations/0014_auto_20201219_1346.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.7 on 2020-12-19 12:46 + +from django.db import migrations + + +def reset_default_downvotes(apps, schema_editor): + CollectionRule = apps.get_model("collection", "CollectionRule") + + for rule in CollectionRule.objects.all(): + rule.reddit_downvotes_max = None + rule.save() + + +class Migration(migrations.Migration): + + dependencies = [("collection", "0013_auto_20201219_1345")] + + operations = [migrations.RunPython(reset_default_downvotes)] diff --git a/src/newsreader/news/collection/models.py b/src/newsreader/news/collection/models.py index 68d0396..907de11 100644 --- a/src/newsreader/news/collection/models.py +++ b/src/newsreader/news/collection/models.py @@ -66,7 +66,7 @@ class CollectionRule(TimeStampedModel): _("Minimum amount of upvotes"), default=0 ) reddit_downvotes_max = models.PositiveIntegerField( - _("Maximum amount of downvotes"), default=0 + _("Maximum amount of downvotes"), blank=True, null=True ) reddit_comments_min = models.PositiveIntegerField( _("Minimum amount of comments"), default=0 diff --git a/src/newsreader/news/collection/reddit.py b/src/newsreader/news/collection/reddit.py index 631d078..7d25ee8 100644 --- a/src/newsreader/news/collection/reddit.py +++ b/src/newsreader/news/collection/reddit.py @@ -194,7 +194,10 @@ class RedditBuilder(PostBuilder): raise BuilderSkippedException( "Post does not meet minimum amount of upvotes" ) - elif downvotes >= rule.reddit_downvotes_max: + elif ( + rule.reddit_downvotes_max is not None + and downvotes > rule.reddit_downvotes_max + ): raise BuilderSkippedException("Post has more downvotes than allowed") elif not comments >= rule.reddit_comments_min: raise BuilderSkippedException("Post does not have enough comments")