Skip to content

Commit a1f088a

Browse files
Merge pull request #95 from pitangainnovare/optimize-artjou-metadata
Optimiza obtenção de metadados de article e journal
2 parents ba551bc + 4878456 commit a1f088a

3 files changed

Lines changed: 35 additions & 13 deletions

File tree

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.9.0
1+
1.9.1

article/models.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,24 @@ def __str__(self):
9595

9696
@classmethod
9797
def metadata(cls, collection=None):
98-
objs = cls.objects.all() if not collection else cls.objects.filter(collection=collection)
99-
for a in objs:
98+
qs = cls.objects.select_related('collection').only(
99+
'collection__acron3',
100+
'default_lang',
101+
'files',
102+
'pid_v2',
103+
'pid_v3',
104+
'pid_generic',
105+
'processing_date',
106+
'publication_date',
107+
'publication_year',
108+
'scielo_issn',
109+
'text_langs',
110+
)
111+
112+
if collection:
113+
qs = qs.filter(collection=collection)
114+
115+
for a in qs.iterator():
100116
yield {
101117
'collection': a.collection.acron3,
102118
'default_lang': a.default_lang,

journal/models.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -69,17 +69,23 @@ def __str__(self):
6969

7070
@classmethod
7171
def metadata(cls, collection=None):
72-
objs = cls.objects.all() if not collection else cls.objects.filter(collection=collection)
73-
for j in objs:
72+
queryset = cls.objects.all()
73+
if collection:
74+
queryset = queryset.filter(collection=collection)
75+
76+
for journal in queryset.only(
77+
'acronym', 'collection__acron3', 'issns', 'publisher_name',
78+
'scielo_issn', 'subject_areas', 'title', 'wos_subject_areas'
79+
):
7480
yield {
75-
'acronym': j.acronym,
76-
'collection': j.collection.acron3,
77-
'issns': j.issns,
78-
'publisher_name': j.publisher_name,
79-
'scielo_issn': j.scielo_issn,
80-
'subject_areas': j.subject_areas,
81-
'title': j.title,
82-
'wos_subject_areas': j.wos_subject_areas,
81+
'acronym': journal.acronym,
82+
'collection': journal.collection.acron3,
83+
'issns': set([v for v in journal.issns.values() if v]),
84+
'publisher_name': journal.publisher_name,
85+
'scielo_issn': journal.scielo_issn,
86+
'subject_areas': journal.subject_areas,
87+
'title': journal.title,
88+
'wos_subject_areas': journal.wos_subject_areas,
8389
}
8490

8591
class Meta:

0 commit comments

Comments
 (0)