From 71354cc376c350d761e591f8e1028d89c6c8eb1e Mon Sep 17 00:00:00 2001 From: Longze Chen Date: Thu, 17 Apr 2025 12:29:48 -0400 Subject: [PATCH] Add addon_verified_resource_links to node --- ...tractnode_addon_verified_resource_links.py | 19 +++++++++++++++++++ osf/models/node.py | 10 ++++++++++ 2 files changed, 29 insertions(+) create mode 100644 osf/migrations/0029_abstractnode_addon_verified_resource_links.py diff --git a/osf/migrations/0029_abstractnode_addon_verified_resource_links.py b/osf/migrations/0029_abstractnode_addon_verified_resource_links.py new file mode 100644 index 00000000000..922ffaf67c0 --- /dev/null +++ b/osf/migrations/0029_abstractnode_addon_verified_resource_links.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.15 on 2025-04-17 16:21 + +from django.db import migrations +import osf.utils.datetime_aware_jsonfield + + +class Migration(migrations.Migration): + + dependencies = [ + ('osf', '0028_collection_grade_levels_choices_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='abstractnode', + name='addon_verified_resource_links', + field=osf.utils.datetime_aware_jsonfield.DateTimeAwareJSONField(blank=True, default=dict, encoder=osf.utils.datetime_aware_jsonfield.DateTimeAwareJSONEncoder), + ), + ] diff --git a/osf/models/node.py b/osf/models/node.py index d06af182e47..13098d6fe66 100644 --- a/osf/models/node.py +++ b/osf/models/node.py @@ -294,6 +294,7 @@ class AbstractNode(DirtyFieldsMixin, TypedModel, AddonModelMixin, IdentifierMixi 'category', 'is_public', 'node_license', + 'addon_verified_resource_links', ] # Named constants @@ -387,6 +388,15 @@ class AbstractNode(DirtyFieldsMixin, TypedModel, AddonModelMixin, IdentifierMixi schema_responses = GenericRelation('osf.SchemaResponse', related_query_name='nodes') + # A dictionary of links and their respective resource types in the node's configured LINK add-ons + # Example: + # { + # '': '', + # '': '', + # ... + # } + addon_verified_resource_links = DateTimeAwareJSONField(default=dict, blank=True) + class Meta: base_manager_name = 'objects' index_together = (('is_public', 'is_deleted', 'type'))