add recent_check field to link

needed to facilitate sorting of links by test results
main
eric 2023-04-27 17:01:05 -04:00
parent 3e0b3fbc93
commit 044f5a030d
4 changed files with 47 additions and 0 deletions

View File

@ -118,5 +118,7 @@ def check_link(link):
check.return_code = code
check.content_type = ct
check.save()
check.link.recent_check = check
check.link.save()

View File

@ -0,0 +1,19 @@
# Generated by Django 4.1.7 on 2023-04-27 18:10
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('doab_check', '0002_alter_check_content_type'),
]
operations = [
migrations.AddField(
model_name='link',
name='recent_check',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='checked_link', to='doab_check.check'),
),
]

View File

@ -0,0 +1,20 @@
# Generated by Django 4.1.7 on 2023-04-27 18:18
from django.db import migrations
def populate_recent(apps, schema_editor):
Check = apps.get_model("doab_check", "Check")
for check in Check.objects.order_by('created'):
check.link.recent_check = check
check.link.save()
class Migration(migrations.Migration):
dependencies = [
('doab_check', '0003_link_recent_check'),
]
operations = [
migrations.RunPython(populate_recent),
]

View File

@ -40,6 +40,12 @@ class Link(models.Model):
# derived from url so we can do sorting, etc.
provider = models.CharField(max_length=255, default='')
recent_check = models.ForeignKey("Check", null=True, related_name='checked_link',
on_delete=models.SET_NULL)
def recent_checks(self):
return self.checks.order_by('-created')
def save(self, *args, **kwargs):
if self.url:
netloc = urlparse(self.url).netloc.lower()