refetched resource will stick to and update original linked item
This commit is contained in:
parent
4184b0468a
commit
bd114011f3
3 changed files with 9 additions and 11 deletions
|
@ -422,10 +422,13 @@ class Item(SoftDeleteMixin, PolymorphicModel):
|
|||
# return next((x[len(prefix):] for x in self.lookup_ids if x.startswith(prefix)), None)
|
||||
|
||||
def update_lookup_ids(self, lookup_ids):
|
||||
# TODO
|
||||
# ll = set(lookup_ids)
|
||||
# ll = list(filter(lambda a, b: b, ll))
|
||||
pass
|
||||
for t, v in lookup_ids:
|
||||
if t in IdealIdTypes and self.primary_lookup_id_type not in IdealIdTypes:
|
||||
self.primary_lookup_id_type = t
|
||||
self.primary_lookup_id_value = v
|
||||
return
|
||||
if t == self.primary_lookup_id_type:
|
||||
self.primary_lookup_id_value = v
|
||||
|
||||
METADATA_COPY_LIST = [
|
||||
"title",
|
||||
|
@ -464,7 +467,7 @@ class Item(SoftDeleteMixin, PolymorphicModel):
|
|||
setattr(self, k, p.metadata.get(k))
|
||||
if p.cover and (not self.has_cover() or ignore_existing_content):
|
||||
self.cover = p.cover
|
||||
self.update_lookup_ids(lookup_ids)
|
||||
self.update_lookup_ids(list(set(lookup_ids)))
|
||||
|
||||
def update_linked_items_from_external_resource(self, resource):
|
||||
"""Subclass should override this"""
|
||||
|
|
|
@ -142,7 +142,7 @@ class AbstractSite:
|
|||
@classmethod
|
||||
def match_or_create_item_for_resource(cls, resource):
|
||||
previous_item = resource.item
|
||||
resource.item = cls.match_existing_item_for_resource(resource)
|
||||
resource.item = cls.match_existing_item_for_resource(resource) or previous_item
|
||||
if resource.item is None:
|
||||
model = cls.get_model_for_resource(resource)
|
||||
if not model:
|
||||
|
|
|
@ -2,20 +2,15 @@ import logging
|
|||
from django.shortcuts import render, get_object_or_404, redirect
|
||||
from django.contrib.auth.decorators import login_required, permission_required
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.core.exceptions import BadRequest, PermissionDenied, ObjectDoesNotExist
|
||||
from django.db.models import Count
|
||||
from django.utils import timezone
|
||||
from django.core.paginator import Paginator
|
||||
from catalog.common.models import ExternalResource, IdType, IdealIdTypes
|
||||
from catalog.sites.imdb import IMDB
|
||||
from .models import *
|
||||
from django.views.decorators.clickjacking import xframe_options_exempt
|
||||
from journal.models import Mark, ShelfMember, Review, Comment, query_item_category
|
||||
from journal.models import (
|
||||
query_visible,
|
||||
query_following,
|
||||
update_journal_for_merged_item,
|
||||
)
|
||||
from common.utils import PageLinksGenerator, get_uuid_or_404
|
||||
from common.config import PAGE_LINK_NUMBER
|
||||
|
|
Loading…
Add table
Reference in a new issue