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, })
def cadastrar(request): if request.method == 'POST': novo = Estabelecimento(gerente=Cliente.objects.get(pk=request.user.pk)) form = EstabEditar(request.POST, instance=novo) nova_imagem = Imagem(uploader=Cliente.objects.get(pk=request.user.pk)) form_imagem = ImagemForm(request.POST, request.FILES, instance=nova_imagem) if form.is_valid(): estab = form.save() if form_imagem.is_valid(): estab.icone = form_imagem.save() estab.save() messages.success(request, '<h4>Cadastrado com sucesso!</h4> O ' + form.cleaned_data['nome'] + ' foi cadastrado com sucesso.') Log.new('create', request, estab, estab) return HttpResponseRedirect(reverse('central:estabelecimentos:home', args=())) else: messages.error(request, '<strong>Erro!</strong> O formulário não foi preenchido corretamente.') else: form = EstabEditar() form_imagem = ImagemForm() return render(request, 'central/estabelecimentos/cadastrar.html', { 'request' : request, 'form' : form, 'form_imagem' : form_imagem, })
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, })
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(), })
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, })
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, })
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, })
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, })
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, })
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, })
def informacoes(request, slug): estab = get_object_or_404(Estabelecimento, slug=slug) # Pode Editar? cliente_pode_editar_or_404(estab, request) # Processa a edição. form = EstabInformacoes(request.POST or None, instance=estab) 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(): estab = form.save() # Vai ter de apagar a imagem atual? if request.POST.get('remover_icone'): estab.icone.delete() # SE! tiver uma imagem, vamos upar e vincular E remover a antiga. if form_imagem.is_valid(): if estab.icone: estab.icone.delete() estab.icone = form_imagem.save() estab.save() messages.success(request, 'Informações atualizadas com sucesso.') Log.new('update', request, estab, estab) return HttpResponseRedirect(request.path) else: messages.error(request, '<strong>Erro!</strong> Não foi possivel salvar, pois existem erros de preenchimento.') return render(request, 'central/estabelecimentos/estabelecimento/informacoes.html', { 'request' : request, 'estabelecimento' : estab, 'form' : form, 'form_imagem' : form_imagem, })
def pagina_inicial(request, slug): estab = get_object_or_404(Estabelecimento, slug=slug) # Pode Editar? cliente_pode_editar_or_404(estab, request) # Processa edição form = EstabPagInicial(request.POST or None, instance=estab) 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(): estab = form.save() # SE! tiver uma imagem, vamos upar e vincular E remover a antiga. if form_imagem.is_valid(): if estab.icone: estab.icone.delete() estab.icone = form_imagem.save() estab.save() # Vai ter de apagar a imagem atual? elif request.POST.get('remover_icone'): estab.icone.delete() messages.success(request, 'Página inicial salva com sucesso.') Log.new('update', request, estab, estab) return HttpResponseRedirect(request.path) else: messages.error(request, 'Erros de preenchimento encontrados.') return render(request, 'central/estabelecimentos/estabelecimento/pagina-inicial.html', { 'request' : request, 'estabelecimento' : estab, 'form' : form, })
def administradores(request, slug): estab = get_object_or_404(Estabelecimento, slug=slug) # Pode Editar? # Tem de ser o gerente OU superuser gerente_or_404(request, estab) # Processa ações. if request.method == 'POST': if request.POST['action'] == 'adicionar' and estab.plano.administradores: try: cliente = Cliente.objects.get(email=request.POST['email']) novo = Administrador(cliente=cliente, estabelecimento=estab) novo.save() messages.success(request, '%s foi adicionado como administrador do estabelecimento.' % (cliente.nome,)) Log.new('create', request, novo, estab) except: messages.error(request, 'Não foi localizado usuário com o email informado') elif request.POST['action'] == 'remover': try: cliente = Cliente.objects.get(pk=request.POST['cliente_pk']) adm = Administrador.objects.get(cliente=cliente, estabelecimento=estab) Log.new('delete', request, adm, estab) adm.delete() messages.success(request, 'Administrador removido com sucesso.') except: messages.error(request, 'Não foi possivel localizar o vinculo.') return HttpResponseRedirect(request.path) return render(request, 'central/estabelecimentos/estabelecimento/administradores.html', { 'request' : request, 'estabelecimento' : estab, 'pode_add_administrador' : estab.plano.administradores, })
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, })