Corrige filtro de items to check url and content#970
Merged
robertatakenaka merged 4 commits intoMay 27, 2026
Merged
Conversation
…cker - Adiciona clean_pdf_text para limpeza de texto extraído de PDF - Refatora check_content para tratar formatos html/xml e pdf separadamente - Renomeia found_count/not_found_count para total_found/total_not_found - Adiciona validação de texto em check_metadata - Adiciona logging para depuração - Remove decodificação prematura em check_url
…usão de registros - Adiciona função get_compiled_status extraída de ArticleCollection - Substitui panels por TabbedInterface com abas Article, Issue, Collections e Webpages - Corrige get_pid_status_from_webpage_status para usar or ao invés de .get com default - Simplifica _available_on_website consultando ArticleWebPage diretamente - Renomeia items_to_delete para response e melhora estrutura de retorno em exclude_invalid_records - Adiciona limpeza de artigos sem sps_pkg ou pp_xml ao final da exclusão - Refatora ArticleCollection.update_aggregate_status para usar get_compiled_status - Remove método get_compiled_status de ArticleCollection - Remove método propagate_status de ArticleWebPage - Refatora check_page para tratar formatos html/xml vs pdf e melhorar tratamento de erros - Renomeia detail para result e adiciona updated no retorno de data
- Remove chamada a exclude_events do create em Operation - Refatora exclude_events para manter apenas eventos a partir do último com mesmo nome - Adiciona truncamento de name e exclude_events no método start - Corrige lógica de force_update em items_to_check_url_and_content (inverte condição) - Remove PID_STATUS_UNKNOWN da exclude_list - Usa cls ao invés de ArticleProc em exclude_invalid_items - Adiciona filtro issue_proc__issue=issue no queryset de exclusão - Converte querysets para list no retorno
…o de artigos - Refatora task_sync_issue para usar event ao invés de TaskExecution - Refatora task_exclude_invalid_issue_articles para usar event e simplifica tratamento de erros - Refatora task_track_classic_website_article_pids_for_collection para iterar por WebSiteConfiguration - Simplifica task_check_article_webpages: usa article_proc.article, atualiza pid_status apenas se valid - Refatora task_check_articles_availability para consultar via ArticleProc ao invés de Article - Remove parâmetro article_id de task_check_articles_availability - Corrige task_check_migrated_article para atualizar pid_status apenas se valid
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refatora verificação de disponibilidade, exclusão de artigos e painel de edição
O que esse PR faz?
Refatora o fluxo de verificação de disponibilidade de artigos e a exclusão de registros inválidos, além de reorganizar o painel de edição do Article com TabbedInterface.
As principais mudanças são:
article/page_checker.py — Adiciona suporte a verificação de conteúdo PDF com
clean_pdf_text, refatoracheck_contentpara tratar formatos html/xml e pdf separadamente, renomeiafound_count/not_found_countparatotal_found/total_not_founde adiciona validação de texto emcheck_metadata.article/models.py — Extrai
get_compiled_statuscomo função de módulo, substituipanelsporTabbedInterfacecom abas (Article, Issue, Collections, Webpages), simplifica_available_on_websiteconsultandoArticleWebPagediretamente sem passar porArticleCollection, removepropagate_statuseget_compiled_statusdeArticleCollection/ArticleWebPage, e melhora a estrutura de retorno deexclude_invalid_records(renomeia chaves, adiciona limpeza final de artigos órfãos).proc/models.py — Refatora
Operation.exclude_eventspara manter apenas eventos a partir do último com mesmo nome, moveexclude_eventspara o métodostart, corrige a lógica invertida deforce_updateemitems_to_check_url_and_content, e adiciona filtro porissueno queryset deexclude_invalid_items.proc/tasks.py — Migra
task_sync_issueetask_exclude_invalid_issue_articlesdeTaskExecutionparaOperation(event), refatoratask_track_classic_website_article_pids_for_collectionpara iterar porWebSiteConfiguration, refatoratask_check_articles_availabilitypara consultar viaArticleProcao invés deArticle, e corrigetask_check_article_webpages/task_check_migrated_articlepara atualizarpid_statusapenas quandovalid=True.Onde a revisão poderia começar?
Por
article/page_checker.py(mudanças mais isoladas) e depoisarticle/models.py(funçãoget_compiled_statuse_available_on_website), que são a base para as mudanças emproc/.Como este poderia ser testado manualmente?
task_check_articles_availabilitypara uma coleção e verificar que os status são atualizados corretamente no admin (aba Webpages do Article).task_exclude_invalid_issue_articlespara um fascículo com artigos órfãos (semsps_pkgoupp_xml) e verificar que são removidos.Algum cenário de contexto que queira dar?
A consulta de status passava por
ArticleCollection.get_compiled_status, que era intermediária e desnecessária. Agora_available_on_websiteconsultaArticleWebPagediretamente. A funçãoget_compiled_statusfoi extraída para o nível do módulo para ser reutilizada tanto emArticle._available_on_websitequanto emArticleCollection.update_aggregate_status.A migração de
TaskExecutionparaOperation(event) nas tasks segue o padrão já adotado em outras tasks do projeto.A correção de
force_updateemitems_to_check_url_and_content(deif force_updateparaif not force_update) corrige um bug onde a condição estava invertida.Screenshots
Quais são tickets relevantes?
Referências