move snapshot id to old_id

This commit is contained in:
Nick Sweeting 2024-08-18 00:24:38 -07:00
parent 951025228f
commit 8c50257fe9
No known key found for this signature in database
3 changed files with 26 additions and 6 deletions

View file

@ -20,7 +20,7 @@ from signal_webhooks.admin import WebhookAdmin, get_webhook_model
from ..util import htmldecode, urldecode, ansi_to_html
from core.models import Snapshot, ArchiveResult, Tag
from core.models import Snapshot, ArchiveResult, Tag, SnapshotTag
from core.forms import AddLinkForm
from core.mixins import SearchResultsAdminMixin
@ -125,9 +125,14 @@ archivebox_admin.get_urls = get_urls(archivebox_admin.get_urls).__get__(archiveb
class ArchiveResultInline(admin.TabularInline):
model = ArchiveResult
fk_name = 'snapshot'
class TagInline(admin.TabularInline):
model = Snapshot.tags.through
# fk_name = 'snapshottag'
def identifiers(self, obj):
return '-'
from django.contrib.admin.helpers import ActionForm
from django.contrib.admin.widgets import AutocompleteSelectMultiple
@ -449,6 +454,17 @@ class SnapshotAdmin(SearchResultsAdminMixin, admin.ModelAdmin):
# @admin.register(SnapshotTag, site=archivebox_admin)
# class SnapshotTagAdmin(admin.ModelAdmin):
# list_display = ('id', 'snapshot', 'tag')
# sort_fields = ('id', 'snapshot', 'tag')
# search_fields = ('id', 'snapshot_id', 'tag_id')
# fields = ('snapshot', 'id')
# actions = ['delete_selected']
# ordering = ['-id']
# def identifiers(self, obj):
# return get_abid_info(self, obj)
@admin.register(Tag, site=archivebox_admin)

View file

@ -114,16 +114,19 @@ class Tag(ABIDModel):
def api_docs_url(self) -> str:
return f'/api/v1/docs#/Core%20Models/api_v1_core_get_tag'
class SnapshotTag(models.Model):
snapshot = models.OneToOneField('Snapshot', primary_key=True, on_delete=models.CASCADE, to_field='id')
tag = models.ForeignKey(Tag, on_delete=models.CASCADE, to_field='id')
class Snapshot(ABIDModel):
abid_prefix = 'snp_'
abid_ts_src = 'self.added'
abid_uri_src = 'self.url'
abid_subtype_src = '"01"'
abid_rand_src = 'self.id'
abid_rand_src = 'self.old_id'
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) # legacy pk
uuid = models.UUIDField(default=uuid.uuid4, editable=True, unique=True)
old_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) # legacy pk
id = models.UUIDField(default=uuid.uuid4, editable=True, unique=True)
abid = ABIDField(prefix=abid_prefix)
url = models.URLField(unique=True, db_index=True)
@ -351,7 +354,8 @@ class ArchiveResult(ABIDModel):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=True, unique=True, verbose_name='ID')
abid = ABIDField(prefix=abid_prefix)
snapshot = models.ForeignKey(Snapshot, on_delete=models.CASCADE)
snapshot = models.ForeignKey(Snapshot, on_delete=models.CASCADE, to_field='id')
extractor = models.CharField(choices=EXTRACTOR_CHOICES, max_length=32)
cmd = models.JSONField()
pwd = models.CharField(max_length=256)

View file

@ -266,7 +266,7 @@ class Link:
@cached_property
def snapshot(self):
from core.models import Snapshot
return Snapshot.objects.only('uuid').get(url=self.url)
return Snapshot.objects.only('id').get(url=self.url)
@cached_property
def snapshot_id(self):