Skip to content

Commit

Permalink
Revert "Admin API to dedupe concept/mapping latest-versions"
Browse files Browse the repository at this point in the history
This reverts commit 940b302.
  • Loading branch information
snyaggarwal committed Aug 5, 2023
1 parent a1d0184 commit bf53e6b
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 74 deletions.
45 changes: 1 addition & 44 deletions core/common/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,14 @@
from django.core.exceptions import ValidationError
from django.core.mail import EmailMessage
from django.core.management import call_command
from django.db.models import Count
from django.template.loader import render_to_string
from django.utils import timezone
from django_elasticsearch_dsl.registries import registry
from pydash import get

from core.celery import app
from core.common import ERRBIT_LOGGER
from core.common.constants import CONFIRM_EMAIL_ADDRESS_MAIL_SUBJECT, PASSWORD_RESET_MAIL_SUBJECT, HEAD
from core.common.constants import CONFIRM_EMAIL_ADDRESS_MAIL_SUBJECT, PASSWORD_RESET_MAIL_SUBJECT
from core.common.utils import write_export_file, web_url, get_resource_class_from_resource_name, get_export_service
from core.toggles.models import Toggle

Expand Down Expand Up @@ -729,45 +728,3 @@ def calculate_checksums(resource_type, resource_id):
instance.get_latest_version().set_checksums()
if not instance.is_versioned_object:
instance.versioned_object.set_checksums()


@app.task(ignore_result=True)
def fix_concept_latest_versions(): # pragma: no cover
from core.sources.models import Source
from core.concepts.models import Concept
index = []
for source in Source.objects.filter(version=HEAD):
for info in source.concepts_set.filter(
is_latest_version=True
).values(
'versioned_object_id'
).annotate(count=Count('versioned_object_id')).filter(count__gt=1).values('versioned_object_id'):
versioned_object_id = info['versioned_object_id']
concept = Concept.objects.get(id=versioned_object_id)
latest = concept.versions.filter(is_latest_version=True).order_by('-id').first()
concept.versions.exclude(id=latest.id).update(is_latest_version=False)
index.append(versioned_object_id)
print("Updated Concept Count: ", len(index))
from core.concepts.documents import ConceptDocument
Concept.batch_index(Concept.objects.filter(versioned_object_id__in=index), ConceptDocument)


@app.task(ignore_result=True)
def fix_mapping_latest_versions(): # pragma: no cover
from core.sources.models import Source
from core.mappings.models import Mapping
index = []
for source in Source.objects.filter(version=HEAD):
for info in source.mappings_set.filter(
is_latest_version=True
).values(
'versioned_object_id'
).annotate(count=Count('versioned_object_id')).filter(count__gt=1).values('versioned_object_id'):
versioned_object_id = info['versioned_object_id']
mapping = Mapping.objects.get(id=versioned_object_id)
latest = mapping.versions.filter(is_latest_version=True).order_by('-id').first()
mapping.versions.exclude(id=latest.id).update(is_latest_version=False)
index.append(versioned_object_id)
print("Updated Mapping Count: ", len(index))
from core.mappings.documents import MappingDocument
Mapping.batch_index(Mapping.objects.filter(versioned_object_id__in=index), MappingDocument)
26 changes: 1 addition & 25 deletions core/common/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from pydash import get, compact
from rest_framework import response, generics, status
from rest_framework.generics import ListAPIView, RetrieveUpdateDestroyAPIView
from rest_framework.permissions import AllowAny, IsAuthenticated, IsAdminUser
from rest_framework.permissions import AllowAny, IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView

Expand Down Expand Up @@ -1042,27 +1042,3 @@ def perform_task(self, task_func, task_args, queue='default'):
return self.task_response(task, queue)

return result


class ConceptMappingLatestVersionDeDupeView(APIView): # pragma: no cover
permission_classes = (IsAdminUser,)
swagger_schema = None

@staticmethod
def post(_):
from core.common.tasks import fix_concept_latest_versions, fix_mapping_latest_versions
concept_task = fix_concept_latest_versions.delay()
mapping_task = fix_mapping_latest_versions.delay()

return Response(
{
'concept': {
'task': concept_task.id,
'state': concept_task.state,
},
'mapping': {
'task': mapping_task.id,
'state': mapping_task.state,
}
}
)
6 changes: 1 addition & 5 deletions core/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@
from core.collections.views import ReferenceExpressionResolveView
from core.common.constants import NAMESPACE_PATTERN
from core.common.utils import get_api_base_url
from core.common.views import RootView, FeedbackView, APIVersionView, ChangeLogView, ChecksumView, \
ConceptMappingLatestVersionDeDupeView
from core.common.views import RootView, FeedbackView, APIVersionView, ChangeLogView, ChecksumView
from core.concepts.views import ConceptsHierarchyAmendAdminView
from core.importers.views import BulkImportView

Expand Down Expand Up @@ -70,9 +69,6 @@
path('collections/', include('core.collections.urls'), name='collections_urls'),
path('concepts/', concept_views.ConceptListView.as_view(), name='all_concepts_urls'),
path('mappings/', mapping_views.MappingListView.as_view(), name='all_mappings_urls'),
path(
'concepts-mappings-latest-version-dedupe/',
ConceptMappingLatestVersionDeDupeView.as_view(), name='concepts-mappings-latest-version-dedupe'),
path('importers/', include('core.importers.urls'), name='importer_urls'),
path('indexes/', include('core.indexes.urls'), name='indexes_urls'),
path('client-configs/', include('core.client_configs.urls'), name='client_config_urls'),
Expand Down

0 comments on commit bf53e6b

Please sign in to comment.