regiov / voluntarios

Website voluntarios.com.br
GNU General Public License v3.0
14 stars 12 forks source link

Incluir paginação no blog #51

Closed regiov closed 3 weeks ago

rebecaaras commented 7 months ago

Vou trabalhar nesta aqui!

regiov commented 7 months ago

boa!

regiov commented 5 months ago

Caso ajude, segue um código para gerar postagens aleatórias. Só precisa antes instalar uma lib chamada Faker:

import random
from datetime import timedelta

from faker import Faker

from django.utils import timezone

from vol.models import Usuario, PostagemBlog

fake = Faker()

# Qtde de posts a serem gerados
qtde = 30

# Usuários aleatórios no banco, na mesma qtde de posts
usuarios = random.sample( list(Usuario.objects.all()), qtde )

# Data / hora de agora
tz = timezone.get_current_timezone()
agora = timezone.now().astimezone(tz)

# Loop para geração de postagens
for i in range(0, qtde):
    # Primeiras n palavras de texto aleatório, evitando ponto para não dar problema com slug
    frase = fake.text().replace('.', '')
    palavras = frase.split(" ")
    if len(palavras) >= 5:
        palavras_titulo = palavras[:random.randint(3, 5)]
    else:
        palavras_titulo = palavras
    # Data aleatória de 1 a 300 dias atrás
    delta = timedelta(days = random.randint(1, 300))
    data = agora - delta
    # 15 trechos concatenados de texto aleatório
    texto = fake.text()
    for j in range(0, 15):
      texto += ' ' + fake.text()
    # Postagem aleatória
    postagem = PostagemBlog(titulo=" ".join(palavras_titulo),
                            slug="-".join(palavras_titulo).lower(),
                            autor=fake.name(),
                            texto=texto,
                            resp_criacao=usuarios[i],
                            data_publicacao=data,
                            resp_publicacao=usuarios[i],
                            status=1)
    postagem.save()
    # Sobrepõe data de criação automática
    postagem.data_criacao=data
    postagem.save(update_fields=['data_criacao'])
rebecaaras commented 5 months ago

Obrigada @regiov ! Vou usar.

regiov commented 5 months ago

Ok. Observe que já existem páginas no site que usam paginação: busca de entidades, busca de voluntários e busca de vagas. Sugiro inspecionar o código, tentar entender e replicar. Não lembro de todos os detalhes, mas se for possível, podemos inclusive pensar num template próprio com os links das páginas, a ser usado em todos esses lugares.

rebecaaras commented 2 months ago

A versão inicial da paginação do blog foi realizada. Estou agora na próxima etapa:

regiov commented 2 months ago

OK, mas sugiro primeiro definir o padrão final de código a ser usado antes de replicar nos outros lugares