Beispiel #1
0
def alterar_publicacao(request, slug: str):
    publicacao = get_object_or_404(Post, slug=slug)
    proximo = definir_url_anterior(request)

    if publicacao.usuario != request.user:
        messages.error(
            request,
            'Você não pode alterar essa publicação. Não foi você quem a escreveu.'
        )

        return redirect(proximo)

    foto = publicacao.foto.url
    form = incluir_feedback(request)
    form_post = PostForm(instance=publicacao)
    url_salvar = reverse('salvar-publicacao', args={publicacao.slug})

    return render(
        request, 'professores/alterar.html', {
            'form': form,
            'form_post': form_post,
            'foto': foto,
            'proximo': proximo,
            'url_salvar': url_salvar
        })
def publicacao(request, slug: str):
    form = incluir_feedback(request)
    post = get_object_or_404(Post, slug=slug)
    comentarios = post.comentarios.prefetch_related('usuario').filter(
        aprovado=True)
    form_comentario = ComentarioForm()

    if not request.user.is_authenticated:
        comentarios = post.comentarios.prefetch_related('usuario').filter(
            aprovado=True)
    elif request.user.is_authenticated:
        try:
            professor = request.user.is_professor
        except ObjectDoesNotExist:
            professor = False

        if professor:
            comentarios = post.comentarios.prefetch_related('usuario')
        else:
            comentarios = comentarios | post.comentarios.prefetch_related(
                'usuario').filter(usuario=request.user).filter(aprovado=False)

    # Adiciona um ao contador de visualizações
    post.acessos += 1
    post.save()

    contexto = {
        'post': post,
        'comentarios': comentarios,
        'form_comentario': form_comentario,
        'form': form
    }

    return render(request, 'inicio/publicacao.html', contexto)
Beispiel #3
0
def escrever(request):
    form = incluir_feedback(request)
    form_post = PostForm()
    proximo = definir_url_anterior(request)

    return render(request, 'professores/escrever.html', {
        'form': form,
        'form_post': form_post,
        'proximo': proximo
    })
def perfil(request):
    pagina_anterior = definir_url_anterior(request)

    form = incluir_feedback(request)
    form_foto = TrocarImagemDePerfilForm()

    return render(request, 'usuarios/perfil.html', {
        'form': form,
        'form_foto': form_foto,
        'proximo': pagina_anterior
    })
def index(request):
    form = incluir_feedback(request)

    # Retorna as 5 publicações com mais acessos
    populares = Post.objects.prefetch_related('categoria').order_by(
        '-acessos')[:5]

    posts = Post.objects.prefetch_related('categoria').all().order_by('-id')

    return render(request, 'inicio/index.html', {
        'form': form,
        'posts': posts,
        'populares': populares
    })
Beispiel #6
0
def buscar(request):
    form = incluir_feedback(request)
    termo = request.GET.get('t')
    categoria = request.GET.get('categoria')
    pagina = request.GET.get('p', 1)

    contexto = {'form': form, 'termo': termo}

    if categoria:
        categoria = Categoria.objects.get(nome=categoria)
        publicacoes = Post.objects.all().filter(
            categoria=categoria.id).order_by('-data')

        paginator = Paginator(publicacoes, 10)

        try:
            publicacoes = paginator.page(pagina)
        except PageNotAnInteger:
            publicacoes = paginator.page(1)
        except EmptyPage:
            publicacoes = paginator.page(paginator.num_pages)

        contexto['categoria_url'] = categoria.nome
    else:
        publicacoes = Post.objects.all().order_by('-data')

        paginator = Paginator(publicacoes, 5)

        try:
            publicacoes = paginator.page(pagina)
        except PageNotAnInteger:
            publicacoes = paginator.page(1)
        except EmptyPage:
            publicacoes = paginator.page(paginator.num_pages)

        contexto['categoria_url'] = None

    categorias = Categoria.objects.all()

    contexto['categorias'], contexto['publicacoes'] = categorias, publicacoes

    return render(request, 'inicio/busca.html', contexto)
def buscar(request):
    form = incluir_feedback(request)
    termo = request.GET.get("p")
    categoria = request.GET.get("categoria")

    contexto = {'form': form, 'termo': termo}

    if categoria:
        categoria = Categoria.objects.get(nome=categoria)
        publicacoes = Post.objects.all().filter(categoria=categoria.id)

        contexto['categoria_url'] = categoria.nome
    else:
        publicacoes = Post.objects.all()

        contexto['categoria_url'] = None

    categorias = Categoria.objects.all()

    contexto['categorias'], contexto['publicacoes'] = categorias, publicacoes

    return render(request, 'inicio/busca.html', contexto)
Beispiel #8
0
def geral(request):
    form = incluir_feedback(request)
    publicacoes = Post.objects.all().filter(
        usuario=request.user).order_by('-id')
    qnt_acessos = 0
    qnt_comentarios = 0
    qnt_analise = 0
    qnt_curtidas = 0

    for publicacao in publicacoes:
        qnt_acessos += publicacao.acessos
        qnt_comentarios += publicacao.comentarios.count()
        qnt_analise += publicacao.comentarios.filter(aprovado=False).count()
        qnt_curtidas += publicacao.curtidas.count()

    return render(
        request, 'professores/geral.html', {
            'form': form,
            'publicacoes': publicacoes,
            'qnt_acessos': qnt_acessos,
            'qnt_comentarios': qnt_comentarios,
            'qnt_analise': qnt_analise,
            'qnt_curtidas': qnt_curtidas,
        })