示例#1
0
def editar_doacao(ong, slug):
    user = g.user
    form = LoginForm()
    form_editar = DoacaoForm()
    if form.validate_on_submit():
        ong = Ong.query.filter_by(nickname=form.login.data,
                                  senha=md5(form.senha_login.data).hexdigest()
                                  ).first_or_404()
        login_user(ong)
        return redirect(request.args.get('next') or
                        url_for('ong_dashboard',
                                ong=ong.nickname))
    ong = Ong.query.filter_by(nickname=ong).first_or_404()
    if user != ong:
        abort(401)
    doacao = Doacao.query.filter_by(ong=ong, slug=slug).first_or_404()
    if form_editar.validate_on_submit():
        doacao.categoria = form_editar.categoria.data
        doacao.nome = form_editar.nome.data
        doacao.descricao = form_editar.descricao.data
        doacao.logradouro = form_editar.logradouro.data
        doacao.numero = form_editar.numero.data
        doacao.complemento = form_editar.complemento.data
        doacao.bairro = form_editar.bairro.data
        doacao.cidade = form_editar.cidade.data
        doacao.estado = form_editar.estado.data
        doacao.cep = form_editar.cep.data
        doacao.retirar = form_editar.retirar.data
        doacao.email = form_editar.email.data
        doacao.tags = form_editar.tags.data
        doacao.prioridade = form_editar.prioridade.data
        
        db.session.commit()

        return redirect(url_for('doacao', ong=ong.nickname, slug=doacao.slug))
    else:
        form_editar.categoria.data = doacao.categoria
        form_editar.nome.data = doacao.nome
        form_editar.descricao.data = doacao.descricao
        form_editar.logradouro.data = doacao.logradouro
        form_editar.numero.data = doacao.numero
        form_editar.complemento.data = doacao.complemento
        form_editar.bairro.data = doacao.bairro
        form_editar.cidade.data = doacao.cidade
        form_editar.estado.data = doacao.estado
        form_editar.cep.data = doacao.cep
        form_editar.retirar.data = doacao.retirar
        form_editar.email.data = doacao.email
        form_editar.tags.data = doacao.tags
        form_editar.prioridade.data = doacao.prioridade

        return render_template('cadastro-doacao.html',
                               form=form,
                               user=user,
                               form_cadastro=form_editar,
                               ong=ong)
示例#2
0
def cadastro_doacao(ong):
    user = g.user
    ong = Ong.query.filter_by(nickname=ong).first_or_404()
    form = LoginForm()
    form_cadastro = DoacaoForm()
    if form.validate_on_submit():
        ong = Ong.query.filter_by(nickname=form.login.data,
                                  senha=md5(form.senha_login.data).hexdigest()
                                  ).first_or_404()
        login_user(ong)
        return redirect(request.args.get('next') or
                        url_for('ong_dashboard',
                            ong=ong.nickname))
    if form_cadastro.validate_on_submit():
        doacao = Doacao(categoria=form_cadastro.categoria.data,
                        nome=form_cadastro.nome.data,
                        descricao=form_cadastro.descricao.data,
                        logradouro=form_cadastro.logradouro.data,
                        numero=form_cadastro.numero.data,
                        complemento=form_cadastro.complemento.data,
                        bairro=form_cadastro.bairro.data,
                        cidade=form_cadastro.cidade.data,
                        estado=form_cadastro.estado.data,
                        cep=form_cadastro.cep.data,
                        retirar=form_cadastro.retirar.data,
                        email=form_cadastro.email.data,
                        tags=form_cadastro.tags.data,
                        ong_id=ong.id,
                        slug=slugfy(form_cadastro.nome.data),
                        status_id=1,
                        data_cadastro=datetime.now(),
                        prioridade=form_cadastro.prioridade.data
                        )
        db.session.add(doacao)
        db.session.commit()
        api = TwitterAPI(TWITTER_API_KEY, TWITTER_API_SECRET,
                           TWITTER_ACCESS_TOKEN, TWITTER_ACCESS_SECRET)
        tweet = api.request('statuses/update', {'status': '#Preciso ' + doacao.nome + ' ' + doacao.get_url() + ' #' + doacao.ong.nickname })
        return redirect(url_for('doacao', ong=ong.nickname, slug=doacao.slug))
    return render_template('cadastro-doacao.html',
                           form=form,
                           user=user,
                           form_cadastro=form_cadastro,
                           ong=ong)