Beispiel #1
0
def uploads(filename):
    dir, filename = filename.rsplit("/", 1)
    dir = dir.replace(" ", "")
    filename = secure_filename(filename)
    caminho = os.path.join(current_app.config["UPLOAD_FOLDER"], dir)
    if current_user.is_authenticated:
        participante = (
            db.session.query(Participante)
            .filter(Participante.id_usuario == current_user.id, Participante.id_evento == get_id_evento_atual())
            .first()
        )
        if (
            "CONTEUDO" in current_user.getPermissoes()
            or "PATROCINIO" in current_user.getPermissoes()
            or "ADMIN" in current_user.getPermissoes()
            or "GERENCIAR_COMPROVANTES" in current_user.getPermissoes()
            or get_permissao_comprovante(participante, filename)
            or diretorio_publico(dir)
        ):
            if os.path.exists(caminho):
                return send_from_directory(caminho, filename)
            abort(404)
    elif diretorio_publico(dir):
        if os.path.exists(caminho):
            return send_from_directory(caminho, filename)
        abort(404)
    abort(403)
Beispiel #2
0
def protected(filename):
    if "CONTEUDO" in current_user.getPermissoes(
    ) or "PATROCINIO" in current_user.getPermissoes(
    ) or "MINISTRANTE" in current_user.getPermissoes(
    ) or "ADMIN" in current_user.getPermissoes():
        return send_from_directory(
            os.path.join(current_app.root_path, 'protected'), filename)
    abort(404)
Beispiel #3
0
def protected(filename):
    if (
        "CONTEUDO" in current_user.getPermissoes()
        or "PATROCINIO" in current_user.getPermissoes()
        or "MINISTRANTE" in current_user.getPermissoes()
        or "ADMIN" in current_user.getPermissoes()
    ):
        dir, filename = filename.rsplit("/", 1)
        filename = secure_filename(filename)
        caminho = os.path.join(current_app.root_path, "protected", dir)
        if os.path.exists(caminho):
            return send_from_directory(caminho, filename)
        abort(404)
    abort(403)
Beispiel #4
0
def listas():
    permissoes = current_user.getPermissoes()
    if ("GERAR_LISTAS" in permissoes or current_user.is_admin()):
        form = ListasParticipantes(request.form)
        if (form.validate_on_submit()):
            if (form.tipo.data == 0):
                lista = db.session.query(Atividade).filter_by(
                    titulo=form.atividades.data).first().participantes
                return render_template('management/listas_participante.html',
                                       atividade=form.atividades.data,
                                       tipo='inscritos',
                                       lista=lista,
                                       form=form)
            elif (form.tipo.data == 1):
                lista = db.session.query(Atividade).filter_by(
                    titulo=form.atividades.data).first().presencas
                return render_template('management/listas_participante.html',
                                       atividade=form.atividades.data,
                                       tipo='presentes',
                                       lista=lista,
                                       form=form)
        else:
            return render_template('management/listas_participante.html',
                                   form=form)
    else:
        abort(403)
Beispiel #5
0
def sorteia_usuario():
    permissoes = current_user.getPermissoes()
    if ("SORTEAR" in permissoes or current_user.is_admin()):
        return render_template('management/sortear_usuario.html',
                               sorteando=False)
    else:
        abort(403)
Beispiel #6
0
def cadastro_flags():
    permissoes = current_user.getPermissoes()
    if "CONTEUDO" in permissoes or current_user.is_admin():
        form_login = LoginForm(request.form)
        form = CadastrarFlagForm(request.form)
        if form.validate_on_submit():
            flag = Flag(codigo=form.flag.data, pontos=form.pontos.data)
            db.session.add(flag)
            db.session.flush()
            db.session.commit()
            flags = db.session.query(Flag).filter_by(ativa=True).all()
            return render_template(
                "gerenciar/crd_flags.html",
                form_login=form_login,
                form=form,
                cadastrado=True,
                desativada=False,
                flags=flags,
                usuario=current_user,
            )
        else:
            flags = db.session.query(Flag).filter_by(ativa=True).all()
            return render_template(
                "gerenciar/crd_flags.html",
                form_login=form_login,
                form=form,
                cadastrado=False,
                desativada=False,
                flags=flags,
                usuario=current_user,
            )
    else:
        abort(403)
Beispiel #7
0
def vender_kits():
    permissoes = current_user.getPermissoes()
    if("VENDA_PRESENCIAL" in permissoes or current_user.is_admin()):
        form_login = LoginForm(request.form)
        form = VendaKitForm(request.form)
        if form.validate_on_submit() and form.participante.data is not None:
            camiseta = db.session.query(Camiseta).filter_by(id=form.camiseta.data).first()
            participante = db.session.query(Participante).filter_by(id=form.participante.data).first()
            if participante.pagamento:
                return render_template('management/venda_de_kits.html', alerta="Kit já comprado!", form=form, form_login=form_login)
            elif camiseta.quantidade_restante > 0:
                participante.id_camiseta = form.camiseta.data
                participante.pacote = True
                participante.pagamento = True
                camiseta.quantidade_restante = camiseta.quantidade_restante - 1
                db.session.add(camiseta)
                db.session.add(participante)
                db.session.commit()
                return render_template('management/venda_de_kits.html', alerta="Compra realizada com sucesso!",
                                       form=form, form_login=form_login)
            elif camiseta.quantidade_restante == 0:
                return render_template('management/venda_de_kits.html', alerta="Sem estoque para " + camiseta.tamanho,
                                       form=form, form_login=form_login)
        return render_template('management/venda_de_kits.html', alerta="Preencha o formulário abaixo", form=form, form_login=form_login)
    else:
        abort(403)
Beispiel #8
0
def sorteia_usuario():
    permissoes = current_user.getPermissoes()
    if("SORTEAR" in permissoes or current_user.is_admin()):
        form_login = LoginForm(request.form)
        return render_template('management/sortear_usuario.html', sorteando=False, form_login=form_login)
    else:
        abort(403)
Beispiel #9
0
def sortear():
    permissoes = current_user.getPermissoes()
    if "SORTEAR" in permissoes or current_user.is_admin():
        form_login = LoginForm(request.form)
        form = SorteioForm(request.form)
        presencas = db.session.query(Atividade).filter_by(
            id=int(form.atividades.data)).first().presencas
        if len(presencas) > 0:
            participante = []
            for p in presencas:
                participante.append(p.participante)
            sorteado = participante
            sorteado = sorteado[SystemRandom().randint(1, len(sorteado)) - 1]
            return render_template(
                "gerenciar/sortear_usuario.html",
                usuario=current_user,
                form=form,
                participante=participante,
                sorteado=sorteado,
                sorteando=True,
                form_login=form_login,
            )
        else:
            return render_template(
                "gerenciar/sortear_usuario.html",
                usuario=current_user,
                form=form,
                vazio=True,
                sorteando=False,
                form_login=form_login,
            )
    else:
        abort(403)
Beispiel #10
0
def cadastro_patrocinador():
    permissoes = current_user.getPermissoes()
    if "CADASTRAR_PATROCINADOR" in permissoes or current_user.is_admin():
        participante = db.session.query(Participante).filter_by(
            usuario=current_user, id_evento=get_id_evento_atual()).first()
        form_login = LoginForm(request.form)
        form = PatrocinadorForm(request.form)
        if form.validate_on_submit():
            patrocinador = Patrocinador(
                nome_empresa=form.nome_empresa.data,
                logo=form.logo.data,
                ativo_site=form.ativo_site.data,
                id_cota=form.id_cota.data,
                link_website=form.link_website.data,
                form_login=form_login,
            )
            db.session.add(patrocinador)
            db.session.flush()
            db.session.commit()
            return redirect(url_for(".cadastro-patrocinador"))
        else:
            return render_template(
                "gerenciar/cadastro_patrocinador.html",
                usuario=current_user,
                participante=participante,
                form=form,
                form_login=form_login,
            )
    else:
        abort(403)
Beispiel #11
0
def alterar_camiseta():
    permissoes = current_user.getPermissoes()
    if("ALTERAR_CAMISETAS" in permissoes or current_user.is_admin()):
        form_login = LoginForm(request.form)
        form = AlteraCamisetaForm(request.form)
        if form.validate_on_submit() and form.participante.data is not None:
            participante = db.session.query(Participante).filter_by(id=form.participante.data).first()
            camiseta = db.session.query(Camiseta).filter_by(id=form.camiseta.data).first()
            if camiseta.quantidade_restante > 0:
                camiseta_antiga = db.session.query(Camiseta).filter_by(id=participante.id_camiseta).first()
                camiseta_antiga.quantidade_restante = camiseta_antiga.quantidade_restante + 1
                camiseta.quantidade_restante = camiseta.quantidade_restante - 1
                participante.id_camiseta = camiseta.id
                db.session.add(camiseta_antiga)
                db.session.add(camiseta)
                db.session.add(participante)
                db.session.commit()
                return render_template('management/alterar_camisetas.html', participante=participante, camiseta=camiseta,
                                       sucesso='s', form=form, form_login=form_login)
            else:
                return render_template('management/alterar_camisetas.html', participante=participante, camiseta=camiseta,
                                       sucesso='n', form=form, form_login=form_login)
        return render_template('management/alterar_camisetas.html', form=form, form_login=form_login)
    else:
        abort(403)
Beispiel #12
0
def add_pontuacao():
    permissoes = current_user.getPermissoes()
    if "CONTEUDO" in permissoes or current_user.is_admin():
        form_login = LoginForm(request.form)
        form = PontuacaoNaMaoForm(request.form)
        if form.validate_on_submit():
            nome_flag = "pontuacao_add_na_mao_" + str(
                len(db.session.query(Flag).all()))
            flag = Flag(codigo=nome_flag,
                        pontos=form.pontuacao.data,
                        ativa=False)
            db.session.add(flag)
            db.session.flush()
            db.session.commit()
            part = db.session.query(Participante).filter_by(
                id=int(form.participante.data)).first()
            part.pontuacao += flag.pontos
            part.flags_encontradas.append(flag)
            db.session.add(part)
            db.session.flush()
            db.session.commit()
            return render_template("gerenciar/add_pont.html",
                                   ult_day=True,
                                   form_login=form_login,
                                   form=form,
                                   sucesso=True,
                                   usuario=current_user)
        else:
            return render_template("gerenciar/add_pont.html",
                                   ult_day=True,
                                   form_login=form_login,
                                   form=form,
                                   usuario=current_user)
    else:
        abort(403)
Beispiel #13
0
def cadastro_presencial_participante():
    if "CREDENCIAMENTO" in current_user.getPermissoes(
    ) or "ADMIN" in current_user.getPermissoes() or current_user.is_admin():
        form_login = LoginForm(request.form)
        form = CadastroPresencialParticipanteForm(request.form)
        meu_participante = (db.session.query(Participante).filter_by(
            usuario=current_user, id_evento=get_id_evento_atual()).first())
        form.usuario.choices = get_usuarios_inscricao_pendente()
        if form.validate_on_submit():
            agora = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
            participante = Participante(
                id_usuario=form.usuario.data,
                id_evento=get_id_evento_atual(),
                data_inscricao=agora,
                credenciado=False,
                opcao_coffee=0,
                uuid=str(uuid.uuid1()),
            )
            db.session.add(participante)
            db.session.commit()
            if form.confirmar_email.data == 1:
                participante.usuario.email_verificado = True
                db.session.commit()
            alerta = ("Participante " +
                      str(participante.usuario.primeiro_nome) + " " +
                      str(participante.usuario.sobrenome) + " <" +
                      str(participante.usuario.email) +
                      "> inscrito com sucesso!")
            form.usuario.choices = get_usuarios_inscricao_pendente()
            return render_template(
                "gerenciar/cadastro_participante_presencial.html",
                alerta=alerta,
                form=form,
                form_login=form_login,
                usuario=current_user,
                participante=meu_participante,
            )
        return render_template(
            "gerenciar/cadastro_participante_presencial.html",
            form=form,
            form_login=form_login,
            usuario=current_user,
            participante=meu_participante,
            alerta=None,
        )
    abort(403)
Beispiel #14
0
def estoque_camisetas_por_tamanho(tamanho):
    permissoes = current_user.getPermissoes()
    if("ALTERAR_CAMISETAS" in permissoes or current_user.is_admin()):
        form_login = LoginForm(request.form)
        camisetas = db.session.query(Camiseta).filter_by(tamanho=tamanho)
        return render_template('management/controle_camisetas.html', camisetas=camisetas, usuario=current_user, form_login=form_login)
    else:
        abort(403)
Beispiel #15
0
def estoque_camisetas():
    permissoes = current_user.getPermissoes()
    if ("ALTERAR_CAMISETAS" in permissoes or current_user.is_admin()):
        camisetas = db.session.query(Camiseta)
        return render_template('management/controle_camisetas.html',
                               camisetas=camisetas,
                               usuario=current_user)
    else:
        abort(403)
Beispiel #16
0
def sortear():
    permissoes = current_user.getPermissoes()
    if("SORTEAR" in permissoes or current_user.is_admin()):
        form_login = LoginForm(request.form)
        sorteado = db.session.query(Participante)
        sorteado = sorteado[SystemRandom().randint(1, sorteado.count()) - 1]
        return render_template('management/sortear_usuario.html', sorteado=sorteado, sorteando=True, form_login=form_login)
    else:
        abort(403)
Beispiel #17
0
def gerar_url_conteudo():
    permissoes = current_user.getPermissoes()
    if "CONTEUDO" in permissoes or "PATROCINIO" in permissoes or current_user.is_admin(
    ):
        form_login = LoginForm(request.form)
        form = GerarUrlConteudoForm(request.form)
        emails = request.form.getlist("emails[]")
        if form.validate_on_submit():
            atividade_removida = request.form.getlist("removido")
            if len(atividade_removida) > 0:
                atividade_removida = db.session.query(Atividade).get(
                    atividade_removida[0])
                if atividade_removida is not None:
                    for ministrante in atividade_removida.ministrantes:
                        if ministrante.usuario.senha is None:
                            db.session.delete(ministrante.usuario)
                            db.session.delete(ministrante)
                        atividade_removida.ministrantes.clear()
                        db.session.delete(atividade_removida)
                        db.session.commit()
            if verifica_lista_emails(emails):
                codigo = token_urlsafe(150)
                tipo = db.session.query(TipoAtividade).filter_by(
                    id=form.tipo_atividade.data).first()
                atividade = Atividade(url_codigo=codigo,
                                      id_evento=get_id_evento_atual(),
                                      id_tipo=tipo.id)
                if atividade is not None and tipo is not None:
                    atividade.tipo = tipo
                    for email in emails:
                        usuario = db.session.query(Usuario).filter_by(
                            email=email).first()
                        if usuario is None:
                            usuario = Usuario(email=email)
                            ministrante = Ministrante(usuario=usuario)
                            usuario.ministrante = ministrante
                            db.session.add(usuario)
                            db.session.add(ministrante)
                        else:
                            ministrante = usuario.ministrante
                        db.session.commit()
                        atividade.ministrantes.append(ministrante)
                    db.session.add(atividade)
                    db.session.commit()
        return render_template(
            "gerenciar/gerar_url_conteudo.html",
            form=form,
            dict_urls=get_urls_conteudo(request.url_root),
            form_login=form_login,
            url_root=request.url_root,
            usuario=current_user,
        )
    else:
        abort(403)
Beispiel #18
0
def email_custom():
    '''
    Página para envio de email
    '''
    permissoes = current_user.getPermissoes()
    if("ENVIAR_EMAIL" in permissoes or current_user.is_admin()):
        form_login = LoginForm(request.form)
        form = EmailCuston(request.form)

        return render_template('management/email_custom.html', form=form, form_login=form_login)
    else:
        abort(403)
Beispiel #19
0
def email_custom():
    """
    Página para envio de email
    """
    permissoes = current_user.getPermissoes()
    if "ENVIAR_EMAIL" in permissoes or current_user.is_admin():
        form_login = LoginForm(request.form)
        form = EmailCustom(request.form)

        return render_template("gerenciar/email_custom.html",
                               form=form,
                               form_login=form_login)
    else:
        abort(403)
Beispiel #20
0
def desativar_flag(id):
    permissoes = current_user.getPermissoes()
    if("CONTEUDO" in permissoes or current_user.is_admin()):
        form_login = LoginForm(request.form)
        form = CadastrarFlagForm(request.form)
        flag = db.session.query(Flag).filter_by(id=id).first()
        flag.ativa = False
        db.session.flush()
        db.session.commit()
        flags = db.session.query(Flag).filter_by(ativa=True).all()
        return render_template("management/crd_flags.html", form_login=form_login, form=form, cadastrado=False,
                        desativada=True, flags=flags, usuario=current_user)
    else:
        abort(403)
Beispiel #21
0
def alterar_camiseta():
    permissoes = current_user.getPermissoes()
    if "ALTERAR_CAMISETAS" in permissoes or current_user.is_admin():
        form_login = LoginForm(request.form)
        form = AlteraCamisetaForm(request.form)
        if form.validate_on_submit() and form.participante.data is not None:
            participante = db.session.query(Participante).filter_by(
                id=form.participante.data).first()
            camiseta = db.session.query(Camiseta).filter_by(
                id=form.camiseta.data).first()
            if camiseta.quantidade_restante > 0:
                antiga = (db.session.query(Pagamento).filter_by(
                    efetuado=True,
                    cancelado=False,
                    rejeitado=False,
                    id_participante=participante.id).first())
                camiseta_antiga = db.session.query(Camiseta).filter_by(
                    id=antiga.id_camiseta).first()
                camiseta_antiga.quantidade_restante = camiseta_antiga.quantidade_restante + 1
                camiseta.quantidade_restante = camiseta.quantidade_restante - 1
                participante.id_camiseta = camiseta.id
                db.session.add(camiseta_antiga)
                db.session.add(camiseta)
                db.session.add(participante)
                db.session.commit()
                return render_template(
                    "gerenciar/alterar_camisetas.html",
                    participante=participante,
                    camiseta=camiseta,
                    sucesso="s",
                    form=form,
                    form_login=form_login,
                    usuario=current_user,
                )
            else:
                return render_template(
                    "gerenciar/alterar_camisetas.html",
                    participante=participante,
                    camiseta=camiseta,
                    sucesso="n",
                    form=form,
                    form_login=form_login,
                    usuario=current_user,
                )
        return render_template("gerenciar/alterar_camisetas.html",
                               form=form,
                               form_login=form_login,
                               usuario=current_user)
    else:
        abort(403)
Beispiel #22
0
def estoque_camisetas_por_tamanho(tamanho):
    permissoes = current_user.getPermissoes()
    if "ALTERAR_CAMISETAS" in permissoes or current_user.is_admin():
        participante = db.session.query(Participante).filter_by(
            usuario=current_user, id_evento=get_id_evento_atual()).first()
        form_login = LoginForm(request.form)
        camisetas = db.session.query(Camiseta).filter_by(tamanho=tamanho)
        return render_template(
            "gerenciar/controle_camisetas.html",
            camisetas=camisetas,
            usuario=current_user,
            participante=participante,
            form_login=form_login,
        )
    else:
        abort(403)
Beispiel #23
0
def cadastro_patrocinador():
    permissoes = current_user.getPermissoes()
    if("CADASTRAR_PATROCINADOR" in permissoes or current_user.is_admin()):
        form_login = LoginForm(request.form)
        form = PatrocinadorForm(request.form)
        if form.validate_on_submit():
            patrocinador = Patrocinador(nome_empresa=form.nome_empresa.data, logo=form.logo.data,
                                        ativo_site=form.ativo_site.data, id_cota=form.id_cota.data,
                                        link_website=form.link_website.data, form_login=form_login)
            db.session.add(patrocinador)
            db.session.flush()
            db.session.commit()
            return redirect(url_for('.cadastro-patrocinador'))
        else:
            return render_template('management/cadastro_patrocinador.html', form=form, form_login=form_login)
    else:
        abort(403)
Beispiel #24
0
def listas():
    permissoes = current_user.getPermissoes()
    if "GERAR_LISTAS" in permissoes or current_user.is_admin():
        participante = db.session.query(Participante).filter_by(
            usuario=current_user, id_evento=get_id_evento_atual()).first()
        form_login = LoginForm(request.form)
        form = ListasParticipantes(request.form)
        if form.validate_on_submit():
            if form.tipo.data == 0:
                atividade = db.session.query(Atividade).get(
                    form.atividades.data)
                lista = atividade.participantes
                return render_template(
                    "gerenciar/listas_participante.html",
                    atividade=atividade.titulo + " - " + atividade.tipo.nome,
                    tipo="inscritos",
                    lista=lista,
                    form=form,
                    form_login=form_login,
                    usuario=current_user,
                    participante=participante,
                )
            elif form.tipo.data == 1:
                atividade = db.session.query(Atividade).get(
                    form.atividades.data)
                lista = atividade.presencas
                return render_template(
                    "gerenciar/listas_participante.html",
                    atividade=atividade.titulo + " - " + atividade.tipo.nome,
                    tipo="presentes",
                    lista=lista,
                    form=form,
                    form_login=form_login,
                    usuario=current_user,
                    participante=participante,
                )
        else:
            return render_template(
                "gerenciar/listas_participante.html",
                form=form,
                form_login=form_login,
                usuario=current_user,
                participante=participante,
            )
    else:
        abort(403)
Beispiel #25
0
def sorteia_usuario():
    permissoes = current_user.getPermissoes()
    if "SORTEAR" in permissoes or current_user.is_admin():
        participante = db.session.query(Participante).filter_by(
            usuario=current_user, id_evento=get_id_evento_atual()).first()
        form_login = LoginForm(request.form)
        form = SorteioForm(request.form)
        return render_template(
            "gerenciar/sortear_usuario.html",
            form=form,
            usuario=current_user,
            participante=participante,
            sorteando=False,
            form_login=form_login,
        )
    else:
        abort(403)
Beispiel #26
0
def gerenciar_comprovantes():
    permissoes = current_user.getPermissoes()
    if "GERENCIAR_COMPROVANTES" in permissoes or current_user.is_admin():
        participante = db.session.query(Participante).filter_by(
            usuario=current_user, id_evento=get_id_evento_atual()).first()
        form_login = LoginForm(request.form)
        form = GerenciarComprovantesForm(request.form)
        if form.validate_on_submit():
            if (esta_preenchido(form.aprovar.data)
                    and not esta_preenchido(form.desaprovar.data)
                    and not esta_preenchido(form.rejeitar.data)):
                pagamento = db.session.query(Pagamento).get(
                    int(form.aprovar.data))
                if pagamento.efetuado is not True and pagamento.metodo_pagamento == "Comprovante":
                    if pagamento.rejeitado is not True:
                        if pagamento.camiseta.quantidade_restante > 0:
                            pagamento.camiseta.quantidade_restante = pagamento.camiseta.quantidade_restante - 1
                        pagamento.efetuado = True
                        db.session.add(pagamento)
                        db.session.commit()
                        enviar_email_aviso_pagamento_kit_aprovado(
                            pagamento.participante.usuario)

            elif (esta_preenchido(form.desaprovar.data)
                  and not esta_preenchido(form.aprovar.data)
                  and not esta_preenchido(form.rejeitar.data)
                  and not esta_preenchido(form.autorizar.data)):
                pagamento = db.session.query(Pagamento).get(
                    int(form.desaprovar.data))
                if pagamento.efetuado is not False and pagamento.metodo_pagamento == "Comprovante":
                    if pagamento.rejeitado is not True:
                        pagamento.camiseta.quantidade_restante = pagamento.camiseta.quantidade_restante + 1
                        pagamento.efetuado = False
                        db.session.add(pagamento)
                        db.session.commit()

            elif (esta_preenchido(form.rejeitar.data)
                  and not esta_preenchido(form.aprovar.data)
                  and not esta_preenchido(form.desaprovar.data)
                  and not esta_preenchido(form.autorizar.data)):
                pagamento = db.session.query(Pagamento).get(
                    int(form.rejeitar.data))
                if pagamento.rejeitado is not True and pagamento.metodo_pagamento == "Comprovante":
                    pagamento.camiseta.quantidade_restante = pagamento.camiseta.quantidade_restante + 1
                    pagamento.rejeitado = True
                    db.session.add(pagamento)
                    db.session.commit()
                    enviar_email_aviso_pagamento_kit_rejeitado(
                        pagamento.participante.usuario)

            elif (esta_preenchido(form.autorizar.data)
                  and not esta_preenchido(form.rejeitar.data)
                  and not esta_preenchido(form.aprovar.data)
                  and not esta_preenchido(form.desaprovar.data)):
                pagamento = db.session.query(Pagamento).get(
                    int(form.autorizar.data))
                if pagamento.rejeitado is not False and pagamento.metodo_pagamento == "Comprovante":
                    if pagamento.camiseta.quantidade_restante > 0:
                        pagamento.camiseta.quantidade_restante = pagamento.camiseta.quantidade_restante - 1
                    pagamento.rejeitado = False
                    db.session.add(pagamento)
                    db.session.commit()
        return render_template(
            "gerenciar/gerenciar_comprovantes.html",
            form=form,
            participante=participante,
            usuario=current_user,
            form_login=form_login,
            pagamentos=get_info_usuarios_envio_comprovante(),
        )
    else:
        abort(403)
Beispiel #27
0
 def is_accessible(self):
     if "ADMIN" in current_user.getPermissoes():
         self.can_delete = True
     if "CONTEUDO" in current_user.getPermissoes():
         self.can_delete = False
     return current_user.is_authenticated and current_user.is_admin()
Beispiel #28
0
def vender_kits():
    permissoes = current_user.getPermissoes()
    meu_participante = db.session.query(Participante).filter_by(
        usuario=current_user, id_evento=get_id_evento_atual()).first()
    if "VENDA_PRESENCIAL" in permissoes or current_user.is_admin():
        form_login = LoginForm(request.form)
        form = VendaKitForm(request.form)
        form.participante.choices = get_participantes()
        form.camiseta.choices = get_opcoes_camisetas()
        if form.validate_on_submit() and form.participante.data is not None:
            camiseta = db.session.query(Camiseta).filter_by(
                id=form.camiseta.data).first()
            participante = db.session.query(Participante).filter_by(
                id=form.participante.data).first()
            if camiseta.quantidade_restante > 0:
                valor = form.valor.data
                pagamento = Pagamento(id_participante=participante.id,
                                      descricao="Kit",
                                      valor=valor,
                                      efetuado=True,
                                      metodo_pagamento="Presencial")
                pagamento.id_camiseta = form.camiseta.data
                participante.pagamentos.append(pagamento)
                if camiseta.quantidade_restante > 0:
                    camiseta.quantidade_restante = camiseta.quantidade_restante - 1
                participante.opcao_coffee = form.restricao_coffee.data
                alerta = ("Compra de " + participante.usuario.primeiro_nome +
                          " " + participante.usuario.sobrenome +
                          " realizada com sucesso! R$ " + str(valor) +
                          ". Camiseta: " + camiseta.tamanho +
                          " e restrição alimentar: " +
                          get_nome_restricao(participante.opcao_coffee))
                db.session.add(camiseta)
                db.session.add(participante)
                db.session.commit()
                return render_template(
                    "gerenciar/venda_de_kits.html",
                    alerta=alerta,
                    form=form,
                    form_login=form_login,
                    usuario=current_user,
                    participante=meu_participante,
                )
            elif camiseta.quantidade_restante == 0:
                return render_template(
                    "gerenciar/venda_de_kits.html",
                    alerta="Sem estoque para " + camiseta.tamanho,
                    form=form,
                    form_login=form_login,
                    usuario=current_user,
                    participante=meu_participante,
                )
        return render_template(
            "gerenciar/venda_de_kits.html",
            alerta="Preencha o formulário abaixo",
            form=form,
            form_login=form_login,
            usuario=current_user,
            participante=meu_participante,
        )
    else:
        abort(403)