larhud / timeline

Sistema para gerenciamento de timelines
2 stars 1 forks source link

Inline dos veículos na tela de edição dos Termos #34

Closed josircg closed 1 year ago

josircg commented 1 year ago

Criar um inline readonly mostrando os dados em Assunto.objects.fontes()

O inline deve ter 3 colunas: Fonte, Total de Notícias, URLs Inválidas

Você já tinha criado um json paginado em lista_de_fontes(), não sei se isso ajuda na montagem do inline

josircg commented 1 year ago

Fábio, o inline não é para as noticias e sim para as fontes das notícias. O Assunto.objects.fontes() traz as fontes e não as notícias.

O Globo, 500 notícias, URLs inválidas: 200 Estadão, 200 notícias.

Confere o JSON para entender melhor.

fabiofsilva commented 1 year ago

Fonte não é fk, é um campo texto que tem em notícia. https://github.com/larhud/timeline/blob/main/base/models.py#L72 https://github.com/larhud/timeline/blob/main/base/managers.py#L164 https://github.com/larhud/timeline/blob/feature/base/views.py#L466

fabiofsilva commented 1 year ago

Pelo que entendi, você quer listar o distinct das fontes no admin. Para usar o changelist do admin, seria legal você criar uma view no banco de dados que retorna o distinct das fontes e eu crio um model com o parâmetro managed = False que vai fazer o mapeamento dessa view e cadastro uma classe de admin para ele. Deste jeito não precisa criar uma rota para renderizar um template com paginação desta consulta.

josircg commented 1 year ago

Eu sei que não é fk. E não é só distinct. Tem que ser group by pois ele mostra totais.

Como eu disse, a view já retorna um json paginado. O que vc precisa fazer é montar uma view que liste os itens do json.

A ideia é que essa mesma view, no futuro, seja genérica. ou seja, eu posso utilizá-la para uma API que retorne um JSON e usar esse tipo de view para mostrar o resultado para o usuário.

fabiofsilva commented 1 year ago

Entendi. A view lista_de_fontes, já faz o trabalho de retornar o JSON, mas se você quiser apresentar no admin como inline ou uma página no estilo changelist, o ideal seria ter uma view no banco de dados e um model com managed = False para cadastrar no admin.

josircg commented 1 year ago

A ideia é que nem sempre o JSON virá do banco de dados. Ele pode vir de uma API externa que vai me retornar os dados. Por isso que vale a pena investir na construção da view.

fabiofsilva commented 1 year ago

A view já tem, o que vou ter que fazer é um código em JavaScript para poder renderizar isso via ajax no template do change_form da página de edição de termos...

josircg commented 1 year ago

Mas esquece o inline. Se vc criar uma tela nova que mostra o resultado do json paginado já é o suficiente.