Example #1
0
def cadastrar(request, slug):
    estab = get_object_or_404(Estabelecimento, slug=slug)
    album = AlbumDeFotos(estabelecimento=estab)

    # Pode acessar?
    cliente_pode_editar_or_404(estab, request)

    # Pode add?
    if not estab.plano.n_albuns > estab.albumdefotos_set.count():
        messages.error(request, 'Estabelecimento atingiu o limite de albuns de fotos.')
        return HttpResponseRedirect(reverse('central:estabelecimentos:albuns:home', args=(estab.slug,)))

    # Editando.
    form = AlbumCadastrar(request.POST or None, instance=album)
    if request.method == 'POST':
        if form.is_valid():
            obj = form.save()
            messages.success(request, 'Album %s criado com sucesso.' % (form.cleaned_data['titulo']))
            Log.new('create', request, obj, estab)
            return HttpResponseRedirect(reverse('central:estabelecimentos:albuns:home', args=(estab.slug,)))
        else:
            messages.error(request, 'Erros de preenchimento impediram que o album fosse criado.')

    return render(request, 'central/estabelecimentos/albuns/cadastrar.html', {
        'request' : request,
        'estabelecimento' : estab,
        'form' : form,
        })
Example #2
0
def informacoes(request, slug, id_album):
    estab = get_object_or_404(Estabelecimento, slug=slug)
    album = get_object_or_404(AlbumDeFotos, pk=id_album)

    # Pode acessar?
    cliente_pode_editar_or_404(estab, request)

    # Editando.
    form = AlbumEditar(request.POST or None, instance=album)
    if request.method == 'POST':
        if form.is_valid():
            obj = form.save()
            messages.success(request, 'Informações do album salvas com sucesso.')
            Log.new('update', request, obj, estab)
            return HttpResponseRedirect(request.path)
        else:
            messages.error(request, 'Erros de preenchimento impediram que as informações fossem salvas.')
            return HttpResponseRedirect(request.path)

    return render(request, 'central/estabelecimentos/albuns/informacoes.html', {
        'request' : request,
        'estabelecimento' : estab,
        'album' : album,
        'form' : form,
        })
Example #3
0
def gerenciar(request, slug, id_album):
    estab = get_object_or_404(Estabelecimento, slug=slug)
    album = get_object_or_404(AlbumDeFotos, pk=id_album)

    # Pode acessar?
    cliente_pode_editar_or_404(estab, request)

    # Adicionando / Editando / Apagando
    pode_add = estab.plano.n_fotos_album > album.foto_set.count()
    if request.method == 'POST':
        # Adicionar
        if request.POST['action'] == 'adicionar':
            nova = Foto(album=album, uploader=Cliente.objects.get(pk=request.user.pk))
            form = FotoUploadForm(request.POST, request.FILES, instance=nova)
            if form.is_valid() and pode_add:
                form.save()
                messages.success(request, 'Foto %s adicionada com sucesso.' % (form.cleaned_data['titulo']))
                Log.new('update', request, album, estab)
                return HttpResponseRedirect(reverse('central:estabelecimentos:albuns:gerenciar', args=(estab.slug, album.pk)))
            else:
                if not pode_add:
                    messages.error(request, 'O album alcançou o limite de fotos permitidas.')
                else:
                    messages.error(request, 'Erros de preenchimento impediram que fosse salva a nova imagem.')

        # Apagando
        elif request.POST['action'] == 'apagar':
            #try:
            album.foto_set.get(pk=request.POST['foto_pk']).delete()
            messages.success(request, 'Foto removida com sucesso.')
            Log.new('update', request, album, estab)
            #except:
            #    raise Http404

            return HttpResponseRedirect(reverse('central:estabelecimentos:albuns:gerenciar', args=(estab.slug, album.pk)))

        # Editando
        elif request.POST['action'] == 'editar':
            try:
                foto = album.foto_set.get(pk=request.POST['foto_pk'])
                foto.titulo = request.POST['titulo']
                foto.legenda = request.POST['legenda']
                foto.save()
                messages.success(request, 'Foto %s atualizada com sucesso.' % (foto.titulo))
                Log.new('update', request, album, estab)
            except:
                raise Http404

            return HttpResponseRedirect(reverse('central:estabelecimentos:albuns:gerenciar', args=(estab.slug, album.pk)))
    else:
        form = FotoUploadForm()

    return render(request, 'central/estabelecimentos/albuns/gerenciar.html', {
        'request' : request,
        'estabelecimento' : estab,
        'album' : album,
        'fotos' : album.foto_set.all(),
        'form' : form,
        'pode_add' : pode_add,
        })
Example #4
0
def home(request, slug):
    estab = get_object_or_404(Estabelecimento, slug=slug)

    # Pode acessar?
    cliente_pode_editar_or_404(estab, request)

    # Actions.
    if request.method == 'POST':
        # Apagar
        if request.POST['action'] == 'apagar':
            # FDPs! vao tentar fazer isso.
            try:
                pagina = estab.pagina_set.get(pk=request.POST['pagina_pk'])
                pagina.delete()
                messages.success(request, u'Página %s removida com sucesso.' % (pagina.titulo))
                Log.new('delete', request, pagina, estab)
            except:
                raise Http404

            return HttpResponseRedirect(request.path)

    # Retorna página.
    return render(request, 'central/estabelecimentos/paginas/home.html', {
        'request' : request,
        'estabelecimento' : estab,
        'paginas' : estab.pagina_set.all(),
        'pode_add_pagina' : estab.plano.n_paginas > estab.pagina_set.count(),
        })
Example #5
0
def home(request, slug):
    estab = get_object_or_404(Estabelecimento, slug=slug)

    # Pode acessar?
    cliente_pode_editar_or_404(estab, request)

    return render(request, 'central/estabelecimentos/albuns/home.html', {
        'request' : request,
        'estabelecimento' : estab,
        'albuns' : estab.albumdefotos_set.all(),
        'pode_add_album' : estab.plano.n_albuns > estab.albumdefotos_set.count(),
        })
Example #6
0
def home(request, slug):
    estab = get_object_or_404(Estabelecimento, slug=slug)

    # Pode acessar?
    cliente_pode_editar_or_404(estab, request)

    return render(request, 'central/estabelecimentos/eventos/home.html', {
        'request' : request,
        'estabelecimento' : estab,
        'eventos' : estab.evento_set.all(),
        'pode_add_evento' : estab.plano.eventos,
        })
Example #7
0
def editar(request, slug, pagina_pk):
    estab = get_object_or_404(Estabelecimento, slug=slug)
    pagina = get_object_or_404(Pagina, pk=pagina_pk, estabelecimento=estab)

    # Pode acessar?
    cliente_pode_editar_or_404(estab, request)

    # Editando!
    form = PaginaCadastrar(request.POST or None, instance=pagina)
    nova_imagem = Imagem(uploader=Cliente.objects.get(pk=request.user.pk))
    form_imagem = ImagemForm(request.POST or None, request.FILES or None, instance=nova_imagem)
    if request.method == 'POST':
        if form.is_valid():
            pagina = form.save()

            # SE! tiver uma imagem, vamos upar e vincular.
            if form_imagem.is_valid():
                if pagina.imagem:
                    pagina.imagem.delete()
                pagina.imagem = form_imagem.save()
                pagina.save()

            # Vai ter de apagar a imagem atual?
            elif request.POST.get('remover_imagem'):
                pagina.imagem.delete()

            messages.success(request, 'Página atualizada com sucesso..')
            Log.new('update', request, pagina, estab)
            return HttpResponseRedirect(request.path)
        else:
            messages.error(request, 'Erros de preenchimento impediram que a página fosse salva.')

    # Retorna
    return render(request, 'central/estabelecimentos/paginas/informacoes.html', {
        'request' : request,
        'estabelecimento' : estab,
        'pagina' : pagina,
        'form' : form,
        'form_imagem' : form_imagem,
        })
Example #8
0
def editar(request, slug, evento_pk):
    estab = get_object_or_404(Estabelecimento, slug=slug)
    evento = get_object_or_404(Evento, pk=evento_pk, estabelecimento=estab)

    # Pode Acessar?
    cliente_pode_editar_or_404(estab, request)

    # Editando!
    form = EventoForm(request.POST or None, instance=evento)
    novo_folder = Imagem(uploader=Cliente.objects.get(pk=request.user.pk))
    form_imagem = ImagemForm(request.POST or None, request.FILES or None, instance=novo_folder)
    if request.method == 'POST':
        if form.is_valid():
            evento = form.save()

            # SE! tiver uma imagem, vamos upar e vincular.
            if form_imagem.is_valid():
                if evento.folder:
                    evento.folder.delete()
                evento.folder = form_imagem.save()
                evento.save()

            # Vai ter de apagar a imagem atual?
            elif request.POST.get('remover_folder'):
                evento.folder.delete()

            messages.success(request, 'Informações atualizadas com sucesso.')
            Log.new('update', request, evento, estab)
            return HttpResponseRedirect(request.path)
        else:
            messages.error(request, '<strong>Erro!</strong> Preencha corretamente o formulario.')

    return render(request, 'central/estabelecimentos/eventos/informacoes.html', {
        'request' : request,
        'estabelecimento' : estab,
        'evento' : evento,
        'form' : form,
        })
Example #9
0
def cadastrar(request, slug):
    estab = get_object_or_404(Estabelecimento, slug=slug)

    # Pode acessar?
    cliente_pode_editar_or_404(estab, request)

    # Pode Cadastrar?
    if not estab.plano.n_paginas > estab.pagina_set.count():
        messages.error(request, 'Plano não permite addicionar novas páginas.')
        return HttpResponseRedirect(reverse('central:estabelecimentos:paginas:home', args=(estab.slug,)))

    # Cadastrando!
    nova = Pagina(estabelecimento=estab)
    form = PaginaCadastrar(request.POST or None, instance=nova)
    nova_imagem = Imagem(uploader=Cliente.objects.get(pk=request.user.pk))
    form_imagem = ImagemForm(request.POST or None, request.FILES or None, instance=nova_imagem)
    if request.method == 'POST':
        if form.is_valid():
            pagina = form.save()

            # SE! tiver uma imagem, vamos upar e vincular.
            if form_imagem.is_valid():
                pagina.imagem = form_imagem.save()
                pagina.save()

            messages.success(request, 'Página criada com sucesso.')
            Log.new('create', request, pagina, estab)
            return HttpResponseRedirect(reverse('central:estabelecimentos:paginas:home', args=(estab.slug,)))
        else:
            messages.error(request, 'Erros de preenchimento impediram que a página fosse salva.')

    # Retorna
    return render(request, 'central/estabelecimentos/paginas/cadastrar.html', {
        'request' : request,
        'estabelecimento' : estab,
        'form' : form,
        'form_imagem' : form_imagem,
        })
Example #10
0
def apagar(request, slug, id_album):
    estab = get_object_or_404(Estabelecimento, slug=slug)
    album = get_object_or_404(AlbumDeFotos, pk=id_album)

    # Pode acessar?
    cliente_pode_editar_or_404(estab, request)

    # Apagar.
    if request.method == 'POST':
        if request.POST['confirma'] == "1":
            album.delete()
            messages.success(request, 'O album ' + album.titulo + ' foi removido com sucesso.')
            Log.new('delete', request, album, estab)
            return HttpResponseRedirect(reverse('central:estabelecimentos:albuns:home', args=(estab.slug,)))
        else:
            messages.error(request, 'A confirmação para apagar não foi registrada.')


    return render(request, 'central/estabelecimentos/albuns/apagar.html', {
        'request' : request,
        'estabelecimento' : estab,
        'album' : album,
        })
Example #11
0
def apagar(request, slug, evento_pk):
    estab = get_object_or_404(Estabelecimento, slug=slug)
    evento = get_object_or_404(Evento, pk=evento_pk, estabelecimento=estab)

    # Pode Acessar?
    cliente_pode_editar_or_404(estab, request)

    # Apagar.
    if request.method == 'POST':
        if request.POST['confirma'] == "1":
            Log.new('delete', request, evento, estab)
            evento.delete()
            messages.success(request, 'O evento ' + evento.titulo + ' foi removido com sucesso.')
            return HttpResponseRedirect(reverse('central:estabelecimentos:eventos:home', args=(estab.slug,)))
        else:
            messages.error(request, 'A confirmação para apagar não foi registrada.')


    return render(request, 'central/estabelecimentos/eventos/apagar.html', {
        'request' : request,
        'estabelecimento' : estab,
        'evento' : evento,
        })
Example #12
0
def cadastrar(request, slug):
    estab = get_object_or_404(Estabelecimento, slug=slug)

    # Pode Acessar?
    cliente_pode_editar_or_404(estab, request)

    # Pode Adicionar/Relacionar?
    if not estab.plano.eventos:
        messages.error(request, 'Plano não suporta relacionamento de eventos.')
        return HttpResponseRedirect(reverse('central:estabelecimentos:eventos:home', args=(estab.slug,)))

    # Cadastrando!
    instance = Evento(estabelecimento=estab, status=Status.objects.get(pk=3))
    form = EventoForm(request.POST or None, instance=instance)
    novo_folder = Imagem(uploader=Cliente.objects.get(pk=request.user.pk))
    form_imagem = ImagemForm(request.POST or None, request.FILES or None, instance=novo_folder)
    if request.method == 'POST':
        if form.is_valid():
            evento = form.save()

            # SE! tiver uma imagem, vamos upar e vincular.
            if form_imagem.is_valid():
                evento.folder = form_imagem.save()
                evento.save()

            messages.success(request, 'Evento %s criado com sucesso.' % (form.cleaned_data['titulo']))
            Log.new('create', request, Evento.objects.get(pk=evento.pk), estab)
            return HttpResponseRedirect(reverse('central:estabelecimentos:eventos:home', args=(estab.slug,)))
        else:
            messages.error(request, '<strong>Erro!</strong> Preencha corretamente o formulario.')

    return render(request, 'central/estabelecimentos/eventos/cadastrar.html', {
        'request' : request,
        'estabelecimento' : estab,
        'form' : form,
        })