From ba713899cb93d94577d84d068bfb7b1249914664 Mon Sep 17 00:00:00 2001 From: GitInno <86991526+gitnnolabs@users.noreply.github.com> Date: Thu, 13 Jun 2024 10:44:47 -0300 Subject: [PATCH] Adiciona um propriedade no modelo de artigo para ter a origem do artigo ``source``. --- article/models.py | 32 ++++++++++++++++++++++++-------- article/search_indexes.py | 17 +---------------- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/article/models.py b/article/models.py index 1b7f4d65..82466a12 100755 --- a/article/models.py +++ b/article/models.py @@ -1,19 +1,18 @@ import os import sys - from datetime import datetime from django.core.files.base import ContentFile -from django.db import models, IntegrityError +from django.db import IntegrityError, models from django.db.utils import DataError from django.utils.translation import gettext as _ -from packtools.sps.formats import pubmed, pmc, crossref -from packtools.sps.pid_provider.xml_sps_lib import generate_finger_print +from legendarium.formatter import descriptive_format from modelcluster.fields import ParentalKey from modelcluster.models import ClusterableModel +from packtools.sps.formats import crossref, pmc, pubmed +from packtools.sps.pid_provider.xml_sps_lib import generate_finger_print from wagtail.admin.panels import FieldPanel, InlinePanel, ObjectList, TabbedInterface from wagtail.models import Orderable -from wagtail.admin.panels import FieldPanel from wagtailautocomplete.edit_handlers import AutocompletePanel from core.forms import CoreAdminModelForm @@ -27,13 +26,13 @@ ) from doi.models import DOI from doi_manager.models import CrossRefConfiguration -from institution.models import Sponsor, Publisher +from institution.models import Publisher, Sponsor from issue.models import Issue, TocSection from journal.models import Journal, SciELOJournal from pid_provider.provider import PidProvider -from researcher.models import Researcher, InstitutionalAuthor -from vocabulary.models import Keyword +from researcher.models import InstitutionalAuthor, Researcher from tracker.models import UnexpectedEvent +from vocabulary.models import Keyword class Article(CommonControlField, ClusterableModel): @@ -205,6 +204,23 @@ def data(self): return _data + @property + def source(self): + """ + Return the format: Acta Cirúrgica Brasileira, Volume: 37, Issue: 7, Article number: e370704, Published: 10 OCT 2022 + """ + leg_dict = { + "title": self.journal.title, + "pubdate": str(self.pub_date_year), + "volume": self.issue.volume, + "number": self.issue.number, + "fpage": self.first_page, + "lpage": self.last_page, + "elocation": self.elocation_id, + } + + return descriptive_format(**leg_dict) + @classmethod def get_or_create(cls, doi, pid_v2, fundings, user): try: diff --git a/article/search_indexes.py b/article/search_indexes.py index 3d0ed165..646451bf 100644 --- a/article/search_indexes.py +++ b/article/search_indexes.py @@ -452,22 +452,7 @@ def prepare_license(self, obj): def prepare_sources(self, obj): # property no article. # Acta Cirúrgica Brasileira, Volume: 37, Issue: 7, Article number: e370704, Published: 10 OCT 2022 - - titles = [title.plain_text for title in obj.titles.all()] - - leg_dict = { - "title": titles[0], - "pubdate": str(obj.pub_date_year), - "volume": obj.issue.volume, - "number": obj.issue.number, - "fpage": obj.first_page, - "lpage": obj.last_page, - "elocation": obj.elocation_id, - } - - leg = descriptive_format(**leg_dict) - - return [leg] + return obj.source def get_model(self): return Article