Skip to content

feat: acesso rápido ao Prefect 3 nos Flow Schedules - #1075

Merged
Winzen merged 1 commit into
mainfrom
feat/disabled-flow-schedule-prefect-link
Aug 22, 2026
Merged

feat: acesso rápido ao Prefect 3 nos Flow Schedules#1075
Winzen merged 1 commit into
mainfrom
feat/disabled-flow-schedule-prefect-link

Conversation

@Winzen

@Winzen Winzen commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Nova funcionalidade: acesso rápido ao Prefect 3 nos Flow Schedules

Contexto

Pra abrir um flow no Prefect 3 a partir do admin de "Disabled Flow Schedules", era preciso copiar o deployment_id da linha e montar a URL na mão. Registro completo em #1074.

O que tem nesse PR

backend/apps/admin_data_tools/
├── models.py       # verbose_name/verbose_name_plural: "Flow Schedule(s)"
├── admin.py        # flow_name_display: nome do flow + link Django + botão Prefect
└── migrations/0004_alter_disabledflowschedule_options.py

Renomeado pra "Flow Schedules"

DisabledFlowSchedule continua sendo o nome da classe/tabela — só o texto exibido no admin mudou:

class Meta:
    ordering = ["-disabled_at"]
    verbose_name = "Flow Schedule"
    verbose_name_plural = "Flow Schedules"

Botão "Prefect ↗" ao lado do nome do flow

def flow_name_display(self, obj):
    change_url = reverse(
        f"admin:{obj._meta.app_label}_{obj._meta.model_name}_change", args=[obj.pk]
    )
    prefect_ui_url = settings.PREFECT3_API_URL.removesuffix("/api")
    deployment_url = f"{prefect_ui_url}/v2/deployments/deployment/{obj.deployment_id}?tab=Runs"
    return format_html(
        '<a href="{}">{}</a> <a href="{}" target="_blank" rel="noopener" '
        'class="btn btn-secondary btn-sm" style="padding: 1px 6px;">Prefect ↗</a>',
        change_url, obj.flow_name, deployment_url,
    )

Usado tanto em list_display (lista) quanto em fields/readonly_fields (página de detalhe) — mesmo método, mesmo resultado nos dois lugares.

Por que o link do Django é montado à mão

O jeito "padrão" no Django admin seria usar list_display_links pra deixar a primeira coluna clicável automaticamente. Não funciona aqui: o Django envolveria minha célula — que já tem o <a> do Prefect — em outro <a>, gerando link aninhado (HTML inválido, clique imprevisível). Por isso o link do Django é construído com reverse() dentro do próprio método, e list_display_links fica None — não []: o Django trata lista vazia como "não configurado" e volta a linkar a primeira coluna sozinho, reproduzindo o mesmo problema.

Benefícios

  • Um clique pra ver o flow no Django, outro pra abrir o deployment no Prefect — sem copiar/colar deployment_id
  • Nome mais claro no menu (a maioria dos registros nem está desativada no momento, "Disabled" confundia)

Acompanhamento

Registro e test plan em #1074.

Cada linha de Flow Schedule (renomeado de "Disabled Flow Schedules")
agora mostra o nome do flow com dois links lado a lado: um pra abrir o
registro no Django, outro ("Prefect ↗") pra abrir o deployment direto
no Prefect 3 (/v2/deployments/deployment/<id>?tab=Runs) — sem precisar
copiar o deployment_id e montar a URL manualmente.

flow_name_display monta os dois links à mão em vez de usar
list_display_links, porque o mecanismo automático do Django envolveria
a célula (que já tem um <a> pro Prefect) em outro <a>, gerando link
aninhado. list_display_links precisa ficar None, não [] — o Django
trata lista vazia como "não configurado" e volta a linkar a primeira
coluna sozinho.
@Winzen Winzen self-assigned this Aug 22, 2026
@Winzen Winzen linked an issue Aug 22, 2026 that may be closed by this pull request
4 tasks
@Winzen Winzen added the prod Indica que o Pull Request está com a branch de destino (base) apontando para main label Aug 22, 2026
@Winzen
Winzen merged commit 6aecc02 into main Aug 22, 2026
8 checks passed
@Winzen
Winzen deleted the feat/disabled-flow-schedule-prefect-link branch August 22, 2026 09:19
github-actions Bot added a commit that referenced this pull request Aug 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

prod Indica que o Pull Request está com a branch de destino (base) apontando para main

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Acesso rápido ao Prefect 3 nos Flow Schedules

1 participant