Skip to content

Commit

Permalink
Merge pull request #918 from samuelveigarangel/issue-908
Browse files Browse the repository at this point in the history
Fix: function _items_to_load_article
  • Loading branch information
samuelveigarangel authored Jan 29, 2025
2 parents af0ec33 + a0ab231 commit 5aa3206
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 28 deletions.
17 changes: 17 additions & 0 deletions article/migrations/0016_remove_article_article_license.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Generated by Django 5.0.8 on 2025-01-29 18:47

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
("article", "0015_article_article_art_id_49c380_idx"),
]

operations = [
migrations.RemoveField(
model_name="article",
name="article_license",
),
]
8 changes: 1 addition & 7 deletions article/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ class Article(ExportModelOperationsMixin('article'), CommonControlField, Cluster
license = models.ForeignKey(
License, on_delete=models.SET_NULL, null=True, blank=True
)
article_license = models.CharField(max_length=255, null=True, blank=True)
issue = models.ForeignKey(Issue, on_delete=models.SET_NULL, null=True, blank=True)
first_page = models.CharField(max_length=20, null=True, blank=True)
last_page = models.CharField(max_length=20, null=True, blank=True)
Expand All @@ -112,7 +111,6 @@ class Article(ExportModelOperationsMixin('article'), CommonControlField, Cluster
FieldPanel("first_page"),
FieldPanel("last_page"),
FieldPanel("elocation_id"),
FieldPanel("article_license"),
]
panels_languages = [
FieldPanel("article_type"),
Expand All @@ -122,6 +120,7 @@ class Article(ExportModelOperationsMixin('article'), CommonControlField, Cluster
InlinePanel("abstracts", label=_("Abstract")),
AutocompletePanel("keywords"),
AutocompletePanel("license"),
AutocompletePanel("license_statements"),
]
panels_researchers = [
AutocompletePanel("researchers"),
Expand All @@ -132,11 +131,6 @@ class Article(ExportModelOperationsMixin('article'), CommonControlField, Cluster
AutocompletePanel("fundings"),
]

panels_formats = [
AutocompletePanel("publisher"),
AutocompletePanel("fundings"),
]

edit_handler = TabbedInterface(
[
ObjectList(panels_ids, heading=_("Identification")),
Expand Down
8 changes: 6 additions & 2 deletions article/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,16 @@ def _items_to_load_article(from_date):
from_date = datetime.strptime(from_date, "%Y-%m-%d")
except Exception:
from_date = None

if not from_date:
now = datetime.utcnow().isoformat()[:10]
# Obtém os PidProvider que não estão em Article
# E os PidProvider em que a diferença entre created e updated é maior/igual 1 day (Atualizações de artigos)
articles = Article.objects.values_list("pid_v3", flat=True)
return PidProviderXML.objects.filter(Q(available_since__isnull=True) | Q(available_since__lte=now)).filter(~Q(v3__in=articles) | Q(updated__gte=F("created") + timedelta(days=1))).iterator()
articles_v3 = Article.objects.values_list("pid_v3", flat=True)
pid_provider_v3 = PidProviderXML.objects.values_list("v3", flat=True)
# obtém os v3 que não estão em articles_v3
missing_pid_provider_v3 = set(pid_provider_v3) - set(articles_v3)
return PidProviderXML.objects.filter(Q(available_since__isnull=True) | Q(available_since__lte=now)).filter(Q(v3__in=missing_pid_provider_v3) | Q(updated__gte=F("created") + timedelta(days=1))).iterator()
return PidProviderXML.public_items(from_date)


Expand Down
19 changes: 0 additions & 19 deletions article/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,25 +9,6 @@
from researcher.models import ResearcherIdentifier


class TestArticleMigration(TestCase):
def test_migration_0013_article_article_license(self):
migrator = Migrator(database='default')
old_state = migrator.apply_initial_migration(('article', '0012_alter_article_publisher'))
Article = old_state.apps.get_model('article', 'Article')
LicenseStatement = old_state.apps.get_model('core', 'LicenseStatement')
article = Article.objects.create()
license_statement = LicenseStatement.objects.create(url="https://www.teste.com.br")
article.license_statements.add(license_statement)

new_state = migrator.apply_tested_migration(('article', '0013_article_article_license'))

Article = new_state.apps.get_model('article', 'Article')

article = Article.objects.first()
self.assertEqual(article.article_license, 'https://www.teste.com.br')
migrator.reset()


class RemoveDuplicateArticlesTest(TestCase):
def create_article_at_time(self, dt, v3):
@freeze_time(dt)
Expand Down

0 comments on commit 5aa3206

Please sign in to comment.