Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
199dde8
Adiciona constantes de status para verificação de páginas web de artigos
robertatakenaka May 12, 2026
d663107
Adiciona novos status de PID para rastreamento de publicação e verifi…
robertatakenaka May 12, 2026
13f1560
Adiciona campo url em Collection e método get_website_url em WebSiteC…
robertatakenaka May 12, 2026
ae10db4
Adiciona property url em ClassicWebsiteConfiguration
robertatakenaka May 12, 2026
50c7f31
Cria módulo page_checker para verificação de URLs e conteúdo de artigos
robertatakenaka May 12, 2026
0d1df03
Cria modelo ArticleWebPage e implementa verificação de disponibilidad…
robertatakenaka May 12, 2026
252f1e7
Remove código comentado de PreviewArticlePage em SPSPkg
robertatakenaka May 12, 2026
c19a902
Refatora ArticleAvailability para suportar retry e usar get_webpage_i…
robertatakenaka May 12, 2026
8724f72
Simplifica process_article_availability usando article.check_availabi…
robertatakenaka May 12, 2026
9ae5fc6
Remove proc/article_publication_controller.py
robertatakenaka May 12, 2026
69a397e
Remove função create_collection_procs_from_pid_list
robertatakenaka May 12, 2026
c778eb8
Remove import de create_collection_procs_from_pid_list do controller
robertatakenaka May 12, 2026
8043436
Refatora ClassicWebsiteArticlePidTracker para fluxo completo de verif…
robertatakenaka May 12, 2026
1fd20f7
Adiciona métodos de verificação de URL e conteúdo em ArticleProc
robertatakenaka May 12, 2026
95fd9f7
Refatora tasks de rastreamento de PIDs e publicação de artigos
robertatakenaka May 12, 2026
1776074
Adiciona painel de webpages ao modelo Article
robertatakenaka May 13, 2026
44fbf01
Adiciona migração para modelo ArticleWebpage
robertatakenaka May 13, 2026
ec0153d
Adiciona migração para campo url em Collection
robertatakenaka May 13, 2026
609a8d5
Aumenta max_length de pid_status de 10 para 14 em ArticleProc
robertatakenaka May 13, 2026
3d0fe63
Adiciona migração para alteração de pid_status em ArticleProc
robertatakenaka May 13, 2026
c54c687
Adiciona migração de renomeação de índice em Team
robertatakenaka May 13, 2026
64d59c1
Remove testes legados de ArticleAvailability
robertatakenaka May 17, 2026
d00e776
Remove imports não utilizados em publication/api/document.py
robertatakenaka May 17, 2026
c98b5ea
Adiciona fallback de truncamento no check_content
robertatakenaka May 17, 2026
470987f
Refatora Article e ArticleWebPage: website em vez de collection
robertatakenaka May 17, 2026
d80fba7
Atualiza comentário: callable_publish → api_publish_callable
robertatakenaka May 17, 2026
110c68b
Marca migrate_collection_articles como possivelmente sem uso
robertatakenaka May 17, 2026
284b81c
Refatora proc/models: website properties, docstrings, select_items
robertatakenaka May 17, 2026
8b07c65
Renomeia task agendada: task_check_article_availability → task_check_…
robertatakenaka May 17, 2026
b26f69b
Refatora pipeline de tasks: publish por website, verificação granular
robertatakenaka May 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions article/choices.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,17 @@
(AS_SCHEDULED_TO_PUBLISH, _("Scheduled to publish")),
(AS_PUBLISHED, _("Published")),
)


ARTICLE_WEBPAGE_STATUS_UNAVAILABLE = "unavailable"
ARTICLE_WEBPAGE_STATUS_AVAILABLE = "available"
ARTICLE_WEBPAGE_STATUS_VALID_CONTENT = "valid_content"
ARTICLE_WEBPAGE_STATUS_CONTENT_MISMATCH = "content_mismatch"
ARTICLE_WEBPAGE_STATUS_NOT_CHECKED = "not-checked"
ARTICLE_WEBPAGE_STATUS = (
(ARTICLE_WEBPAGE_STATUS_AVAILABLE, _("Available")),
(ARTICLE_WEBPAGE_STATUS_UNAVAILABLE, _("Unavailable")),
(ARTICLE_WEBPAGE_STATUS_VALID_CONTENT, _("Valid content")),
(ARTICLE_WEBPAGE_STATUS_CONTENT_MISMATCH, _("Content mismatch")),
(ARTICLE_WEBPAGE_STATUS_NOT_CHECKED, _("Not checked")),
)
138 changes: 138 additions & 0 deletions article/migrations/0009_articlewebpage.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# Generated by Django 5.2.3 on 2026-05-12 23:57

import django.db.models.deletion
import modelcluster.fields
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("article", "0008_add_unique_pid_v3"),
("collection", "0005_collection_url"),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]

operations = [
migrations.CreateModel(
name="ArticleWebPage",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"created",
models.DateTimeField(
auto_now_add=True, verbose_name="Creation date"
),
),
(
"updated",
models.DateTimeField(
auto_now=True, verbose_name="Last update date"
),
),
(
"fmt",
models.CharField(
blank=True, max_length=4, null=True, verbose_name="Format"
),
),
(
"url",
models.CharField(
blank=True, max_length=265, null=True, verbose_name="URL"
),
),
(
"status",
models.CharField(
blank=True,
choices=[
("available", "Available"),
("unavailable", "Unavailable"),
("valid_content", "Valid content"),
("content_mismatch", "Content mismatch"),
("not-checked", "Not checked"),
],
default="not-checked",
max_length=16,
null=True,
verbose_name="Status",
),
),
(
"detail",
models.JSONField(blank=True, null=True, verbose_name="Detail"),
),
(
"article",
modelcluster.fields.ParentalKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="article_webpages",
to="article.article",
),
),
(
"collection",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to="collection.collection",
verbose_name="Collection",
),
),
(
"creator",
models.ForeignKey(
editable=False,
on_delete=django.db.models.deletion.CASCADE,
related_name="%(class)s_creator",
to=settings.AUTH_USER_MODEL,
verbose_name="Creator",
),
),
(
"lang",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to="collection.language",
verbose_name="Language",
),
),
(
"updated_by",
models.ForeignKey(
blank=True,
editable=False,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="%(class)s_last_mod_user",
to=settings.AUTH_USER_MODEL,
verbose_name="Updater",
),
),
],
options={
"indexes": [
models.Index(fields=["url"], name="article_art_url_152ec8_idx"),
models.Index(
fields=["article", "collection", "fmt", "lang"],
name="article_art_article_b0d342_idx",
),
],
"unique_together": {("article", "collection", "url", "fmt", "lang")},
},
),
]
Loading