def cadastrar_publicidade(request): cliente = Cliente.objects.get(pk=request.user.pk) novo = Publicidade(cliente=cliente) nova_imagem = Imagem(uploader=cliente) form = PublicidadeForm(request.POST or None, instance=novo) form_imagem = ImagemForm(request.POST or None, request.FILES or None, instance=nova_imagem) if request.method == 'POST': if form.is_valid(): pub = form.save() # SE! tiver uma imagem, vamos upar e vincular. if form_imagem.is_valid(): pub.imagem = form_imagem.save() pub.save() messages.success(request, 'Publicidade %s criada com sucesso.' % (form.cleaned_data['titulo'])) Registro.new('create', request, pub) return HttpResponseRedirect(reverse('central:publicidades:home', args=())) else: messages.error(request, '<strong>Erro!</strong> Preencha corretamente o formulario.') return render(request, 'central/publicidades/cadastrar.html', { 'form' : form, 'form_imagem' : form_imagem })
def editar_publicidade(request, pk): pub = get_object_or_404(Publicidade, pk=pk) # Editando! nova_imagem = Imagem(uploader=request.user) form = PublicidadeEditarForm(request.POST or None, instance=pub) form_imagem = ImagemForm(request.POST or None, request.FILES or None, instance=nova_imagem) if request.method == 'POST': if form.is_valid(): pub = form.save() if form_imagem.is_valid(): if pub.imagem: pub.imagem.delete() pub.imagem = form_imagem.save() pub.save() messages.success(request, 'Informações atualizadas com sucesso.') Registro.new('update', request, pub) return HttpResponseRedirect(request.path) else: messages.error(request, '<strong>Erro!</strong> Preencha corretamente o formulario.') return render(request, 'central/publicidades/editar.html', { 'pub' : pub, 'form' : form, 'form_imagem' : form_imagem })
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 cadastrar(request): # Pode Acessar? # Regra de negocio permite a todos o acesso. # Cadastrando! cliente = Cliente.objects.get(pk=request.user.pk) novo_evento = Evento(promoter=cliente, status=Status.objects.all()[0]) novo_folder = Imagem(uploader=cliente) form = EventoForm(request.POST or None, instance=novo_evento) 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'])) Registro.new('create', request, evento) return HttpResponseRedirect(reverse('central:eventos:home', args=())) else: messages.error(request, '<strong>Erro!</strong> Preencha corretamente o formulario.') # Exibição return render(request, 'central/eventos/cadastrar.html', { 'request' : request, 'form' : form, 'form_imagem' : form_imagem, })
def editar(request, evento_pk): evento = get_object_or_404(Evento, pk=evento_pk) cliente = Cliente.objects.get(pk=request.user.pk) # Pode Acessar? # Para editar, deve ser o promoter do evento. if evento.promoter.pk != cliente.pk: messages.error(request, "Você não tem permissões papa editar o evento requisitado.") return HttpResponseRedirect(reverse('central:eventos:home', args=())) # Editando! novo_folder = Imagem(uploader=Cliente.objects.get(pk=request.user.pk)) form = EventoForm(request.POST or None, instance=evento) 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() # Vai ter de apagar a imagem atual? if request.POST.get('remover_folder'): evento.folder.delete() # Não precisa de 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() messages.success(request, 'Informações atualizadas com sucesso.') Registro.new('update', request, evento) return HttpResponseRedirect(request.path) else: messages.error(request, '<strong>Erro!</strong> Preencha corretamente o formulario.') # Exibição return render(request, 'central/eventos/informacoes.html', { 'request' : request, 'evento' : evento, 'form' : form, 'form_imagem' : form_imagem, })
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 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 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, })