예제 #1
0
def delete_buzz(bid):
    """Delete Buzz"""
    buzz = Buzz.query.get(bid)
    if buzz is not None:
        buzz.delete()
        session.commit()
    return msg.ok('Buzz deleted successfuly')
예제 #2
0
def newlink():
    try:
        link = LinkColaborativo()
        link.nome = request.form['nome']
        link.email = request.form['email']
        link.link = request.form['link']
        link.site = request.form['nomedosite']
        link.imagem = request.form['linkimagem']
        link.clicks = 0

        dbsession.add(link)
        dbsession.commit()

        r = jsonify({'status': 0, 'msg': 'Obrigado pela sua contribuição!'})
        r.set_cookie('cobertura_nome', request.form['nome'])
        r.set_cookie('cobertura_email', request.form['email'])
        return r

    except IntegrityError as i:
        print "TENTOU SALVAR UM LINK QUE JÁ EXISTE"
        return jsonify({
            'status': 1,
            'msg': 'Este link já foi divulgado em nosso site'
        })
    except Exception as e:
        print "ERRO AO SALVAR NOVO LINK COLABORATIVO"
        print e
        return jsonify({
            'status':
            -1,
            'msg':
            'Ocorreu um erro ao processar o seu envio. Tente novamente ou avise os administradores.'
        })
예제 #3
0
파일: __init__.py 프로젝트: calcwb/gd
def delete_buzz(bid):
    """Delete Buzz"""
    buzz = Buzz.query.get(bid)
    if buzz is not None:
        buzz.delete()
        session.commit()
    return msg.ok('Buzz deleted successfuly')
예제 #4
0
def seguir(obraid):

	emailto = ""
	obra = fromcache("obra-" + obraid) or tocache("obra-" + obraid, _get_obras(obraid=obraid)[0])

	if not obra:
		print "Não achou a obra!"
		return abort(404)

	slug = obra['slug']

	if request.form:

		if request.form.has_key('faceid'):
			has = UserFollow.query.filter_by(obra_id=obraid, facebook_id=request.form['faceid'])
			if has.count() <= 0:
				# return dumps({'status':'error','msg':'Você já é seguidor desta obra pelo Facebook'})
				follow = _make_follow(obraid)
				follow.facebook_id = request.form['faceid']
				emailto = "*****@*****.**" % follow.facebook_id

		if request.form.has_key('twitterid'):
			has = UserFollow.query.filter_by(obra_id=obraid, twitter_id=request.form['twitterid'])
			if has.count() <= 0:
				# return dumps({'status':'error','msg':'Você já é seguidor desta obra pelo Twitter'})
				follow = _make_follow(obraid)
				follow.twitter_id = request.form['twitterid']
				msg = u"A partir de agora você segue a obra %s!" % obra['title']
				_send_twitter_dm(follow.twitter_id, msg)

		if request.form.has_key('email'):
			has = UserFollow.query.filter_by(obra_id=obraid, email=request.form['email'])
			if has.count() <= 0:
				# return dumps({'status':'error','msg':'Você já é seguidor desta obra pelo Email'})
				follow = _make_follow(obraid)
				follow.email = request.form['email']
				emailto = follow.email

		dbsession.commit()

		if emailto:
			base_url = current_app.config['BASE_URL']
			base_url = base_url if base_url[-1:] != '/' else base_url[:-1] #corta a barra final
			_dados_email = {
				'titulo': obra['title'],
				'link'  : base_url + url_for('.obra',slug=slug),
				'descricao' : Markup(obra['content']).striptags(),
				'monitore_url': base_url + url_for('.index'),
				'siteurl': base_url,
			}
			sendmail(
			    current_app.config['SEGUIROBRA_SUBJECT'] % _dados_email,
			    emailto,
			    current_app.config['SEGUIROBRA_MSG'] % _dados_email
			)


		return dumps({'status':'ok'})
	else:
		return dumps({'status':'error'})
예제 #5
0
def newlink():
    try:
        link = LinkColaborativo()
        link.nome = request.form["nome"]
        link.email = request.form["email"]
        link.link = request.form["link"]
        link.site = request.form["nomedosite"]
        link.imagem = request.form["linkimagem"]
        link.clicks = 0

        dbsession.add(link)
        dbsession.commit()

        r = jsonify({"status": 0, "msg": "Obrigado pela sua contribuição!"})
        r.set_cookie("cobertura_nome", request.form["nome"])
        r.set_cookie("cobertura_email", request.form["email"])
        return r

    except IntegrityError as i:
        print "TENTOU SALVAR UM LINK QUE JÁ EXISTE"
        return jsonify({"status": 1, "msg": "Este link já foi divulgado em nosso site"})
    except Exception as e:
        print "ERRO AO SALVAR NOVO LINK COLABORATIVO"
        print e
        return jsonify(
            {
                "status": -1,
                "msg": "Ocorreu um erro ao processar o seu envio. Tente novamente ou avise os administradores.",
            }
        )
예제 #6
0
파일: webapp.py 프로젝트: calcwb/gd
def profile_passwd_json():
    """Update the user password"""
    form = ChangePasswordForm()
    if form.validate_on_submit():
        user = authapi.authenticated_user()
        user.set_password(form.password.data)
        dbsession.commit()
        # return msg.ok({
        #     'data': _('Password updated successful'),
        #     'csrf': form.csrf.data,
        # })
        flash(_(u'Password updated successful'), 'alert-success')
        return redirect(url_for('.profile'))
    else:
        # This field is special, it must be validated before anything. If it
        # doesn't work, the action must be aborted.
        # if not form.csrf_is_valid:
        #     flash(_(u'Invalid csrf token'), 'alert-error')
            # return msg.error(_('Invalid csrf token'), 'InvalidCsrfToken')

        # Usual validation error
        # return utils.format_csrf_error(form, form.errors, 'ValidationError')
        for fd in form:
            if fd.errors:
                for er in fd.errors:
                    flash(er, 'alert-error')
        return redirect(url_for('.profile'))
예제 #7
0
def deseguir(obraid):
	obra = fromcache("obra-" + obraid) or tocache("obra-" + obraid, _get_obras(obraid=obraid)[0])

	if not obra:
		print "Não achou a obra!"
		return abort(404)

	slug = obra['slug']

	if request.form:

		if request.form.has_key('faceid'):
			has = UserFollow.query.filter_by(obra_id=obraid, facebook_id=request.form['faceid'])
			if has.count() > 0:
				for f in has:
					has.delete()

		if request.form.has_key('twitterid'):
			has = UserFollow.query.filter_by(obra_id=obraid, twitter_id=request.form['twitterid'])
			if has.count() > 0:
				for f in has:
					has.delete()

		if request.form.has_key('email'):
			has = UserFollow.query.filter_by(obra_id=obraid, email=request.form['email'])
			if has.count() > 0:
				for f in has:
					has.delete()

		dbsession.commit()

		return dumps({'status':'ok', 'msg':u'Suas opções foram removidas. Obrigado por participar!'})
	else:
		return dumps({'status':'error'})
예제 #8
0
def create_user(name, username, password, email, meta=None, receive_sms=False, receive_email=False):
    """Create a new user in the database"""
    # There will be one and only one user with a given username
    if User.query.filter_by(username=username, user_activation_key="").count():
        raise UserExists()
    if User.query.filter_by(username=username).count():
        raise UserExistsUnconfirmed()
    if User.query.filter_by(email=email).count():
        raise EmailAddressExists()

    # Creating an user instance and getting its id by commiting the
    # chage to the database
    print "CREATING USER", username, password
    activation_key = md5(username + password).hexdigest()
    user = User(
        name=name, username=username, password=password, email=email,
        receive_sms=receive_sms, receive_email=receive_email,
        user_activation_key=activation_key)
    dbsession.commit()

    # Time to save all meta attributes that we received
    for key, value in (meta or {}).items():
        user.set_meta(key, value)
    dbsession.commit()

    return user
예제 #9
0
def contrib_json():
    """Receives a user contribution and saves to the database

    This function will return a JSON format with the result of the
    operation. That can be successful or an error, if it finds any
    problem in data received or the lack of the authentication.
    """
    if not auth.is_authenticated():
        return msg.error(_(u'User not authenticated'))

    raise Exception('Not funny')

    form = ContribForm(csrf_enabled=False)
    if form.validate_on_submit():
        Contrib(title=form.data['title'].encode('utf-8'),
                content=form.data['content'].encode('utf-8'),
                theme=form.data['theme'],
                user=auth.authenticated_user())
        session.commit()

        # Returning the csrf
        data = {'data': _('Contribution received successful')}
        data.update({'csrf': form.csrf.data})
        return msg.ok(data)
    else:
        return format_csrf_error(form, form.errors, 'ValidationError')
예제 #10
0
def cadastrar_comite():
    if request.method == 'POST':
        nome = request.form['nome']
        email = request.form['email']
        telefone = request.form['telefone']
        cidade = request.form['cidade']
        cn = CadastroComite()
        cn.nome = unicode(nome)
        cn.email = unicode(email)
        cn.telefone = unicode(telefone)
        cn.cidade = unicode(cidade)
        dbsession.commit()

        # #Envia o email avisando que chegou uma nova contribuição
        # sendmail(
        #     conf.COMITE_SUBJECT, conf.COMITE_TO_EMAIL,
        #     conf.COMITE_MSG % {
        #         'titulo': titulo,
        #         'noticia': noticia,
        #     }
        # )

        return msg.ok(_(u'Thank you. Your contribution was successfuly sent.'))
    else:
        return msg.error(_(u'Method not allowed'))
예제 #11
0
def profile_passwd_json():
    """Update the user password"""
    form = ChangePasswordForm()
    if form.validate_on_submit():
        user = authapi.authenticated_user()
        user.set_password(form.password.data)
        dbsession.commit()
        # return msg.ok({
        #     'data': _('Password updated successful'),
        #     'csrf': form.csrf.data,
        # })
        flash(_(u'Password updated successful'), 'alert-success')
        return redirect(url_for('.profile'))
    else:
        # This field is special, it must be validated before anything. If it
        # doesn't work, the action must be aborted.
        # if not form.csrf_is_valid:
        #     flash(_(u'Invalid csrf token'), 'alert-error')
            # return msg.error(_('Invalid csrf token'), 'InvalidCsrfToken')

        # Usual validation error
        # return utils.format_csrf_error(form, form.errors, 'ValidationError')
        for fd in form:
            if fd.errors:
                for er in fd.errors:
                    flash(er, 'alert-error')
        return redirect(url_for('.profile'))
예제 #12
0
def cadastrar_comite():
    if request.method == 'POST':
        nome = request.form['nome']
        email = request.form['email']
        telefone = request.form['telefone']
        cidade = request.form['cidade']
        cn = CadastroComite()
        cn.nome = unicode(nome)
        cn.email = unicode(email)
        cn.telefone = unicode(telefone)
        cn.cidade = unicode(cidade)
        dbsession.commit()

        # #Envia o email avisando que chegou uma nova contribuição
        # sendmail(
        #     conf.COMITE_SUBJECT, conf.COMITE_TO_EMAIL,
        #     conf.COMITE_MSG % {
        #         'titulo': titulo,
        #         'noticia': noticia,
        #     }
        # )

        return msg.ok(_(u'Thank you. Your contribution was successfuly sent.'))
    else:
        return msg.error(_(u'Method not allowed'))
예제 #13
0
파일: __init__.py 프로젝트: calcwb/gd
def contrib_json():
    """Receives a user contribution and saves to the database

    This function will return a JSON format with the result of the
    operation. That can be successful or an error, if it finds any
    problem in data received or the lack of the authentication.
    """
    if not auth.is_authenticated():
        return msg.error(_(u'User not authenticated'))

    raise Exception('Not funny')

    form = ContribForm(csrf_enabled=False)
    if form.validate_on_submit():
        Contrib(
            title=form.data['title'].encode('utf-8'),
            content=form.data['content'].encode('utf-8'),
            theme=form.data['theme'],
            user=auth.authenticated_user())
        session.commit()

        # Returning the csrf
        data = { 'data': _('Contribution received successful') }
        data.update({ 'csrf': form.csrf.data })
        return msg.ok(data)
    else:
        return format_csrf_error(form, form.errors, 'ValidationError')
예제 #14
0
def av():
    """Metodo que conta os clicks em cada link colaborativo"""
    id = request.form['i']
    link = LinkColaborativo.get(id)
    link.clicks = link.clicks + 1
    dbsession.add(link)
    dbsession.commit()
    return ""
예제 #15
0
def av():
    """Metodo que conta os clicks em cada link colaborativo"""
    id = request.form["i"]
    link = LinkColaborativo.get(id)
    link.clicks = link.clicks + 1
    dbsession.add(link)
    dbsession.commit()
    return ""
예제 #16
0
def inscrever():

    resp = {'status': 0, 'msg': 'Obrigado pela sua inscrição'}
    try:

        if not request.form['nome'] or not request.form['email']:
            resp['status'] = 2
            resp['msg'] = 'É necessário preencher o Nome e o Email'
        else:
            insc = InscricaoSeminario()
            insc.nome = request.form['nome']
            insc.email = request.form['email']
            insc.telefone = request.form['telefone']
            insc.twitter = request.form['twitter']
            insc.facebook = request.form['facebook']
            insc.site = request.form['site']
            if 'colaborativa' in request.form:
                insc.colaborativa = True
                modo = []
                if 'foto' in request.form:
                    modo.append("foto")
                if 'video' in request.form:
                    modo.append("video")
                if 'texto' in request.form:
                    modo.append("texto")
                insc.colaborativa_modo = ",".join(modo)

            print "adding..."
            try:
                dbsession.add(insc)
            except Exception as d:
                print d
                pass
            print "commititng..."
            dbsession.commit()

            try:
                sendmail(
                    conf.SEMINARIO_SUBJECT % {'nome': request.form['nome']},
                    request.form['email'], conf.SEMINARIO_MSG)
            except Exception as e:
                print e
                print "Erro ao enviar email para", request.form['email']
                pass

    except IntegrityError as i:
        resp[
            'msg'] = "Este email informado já está cadastrado em nossa base de dados."
        resp['status'] = 1
        dbsession.rollback()
    except Exception as e:
        print e
        resp[
            'msg'] = "Ocorreu algum problema ao efetuar sua insrição. Tente novamente logo mais ou fale com os organizadores."
        resp['status'] = -1
        dbsession.rollback()

    return jsonify(resp)
예제 #17
0
def inscrever():

    resp = {"status": 0, "msg": "Obrigado pela sua inscrição"}
    try:

        if not request.form["nome"] or not request.form["email"]:
            resp["status"] = 2
            resp["msg"] = "É necessário preencher o Nome e o Email"
        else:
            insc = InscricaoSeminario()
            insc.nome = request.form["nome"]
            insc.email = request.form["email"]
            insc.telefone = request.form["telefone"]
            insc.twitter = request.form["twitter"]
            insc.facebook = request.form["facebook"]
            insc.site = request.form["site"]
            if "colaborativa" in request.form:
                insc.colaborativa = True
                modo = []
                if "foto" in request.form:
                    modo.append("foto")
                if "video" in request.form:
                    modo.append("video")
                if "texto" in request.form:
                    modo.append("texto")
                insc.colaborativa_modo = ",".join(modo)

            print "adding..."
            try:
                dbsession.add(insc)
            except Exception as d:
                print d
                pass
            print "commititng..."
            dbsession.commit()

            try:
                sendmail(
                    conf.SEMINARIO_SUBJECT % {"nome": request.form["nome"]}, request.form["email"], conf.SEMINARIO_MSG
                )
            except Exception as e:
                print e
                print "Erro ao enviar email para", request.form["email"]
                pass

    except IntegrityError as i:
        resp["msg"] = "Este email informado já está cadastrado em nossa base de dados."
        resp["status"] = 1
        dbsession.rollback()
    except Exception as e:
        print e
        resp[
            "msg"
        ] = "Ocorreu algum problema ao efetuar sua insrição. Tente novamente logo mais ou fale com os organizadores."
        resp["status"] = -1
        dbsession.rollback()

    return jsonify(resp)
예제 #18
0
def id():
    resp = {'status': 0}
    # try:
    id_link = int(request.form['idd'])
    link = LinkColaborativo.get(id_link)
    dbsession.delete(link)
    dbsession.commit()
    # except:
    #     resp['status'] = -1

    return jsonify(resp)
예제 #19
0
def id():
    resp = {"status": 0}
    # try:
    id_link = int(request.form["idd"])
    link = LinkColaborativo.get(id_link)
    dbsession.delete(link)
    dbsession.commit()
    # except:
    #     resp['status'] = -1

    return jsonify(resp)
예제 #20
0
파일: __init__.py 프로젝트: calcwb/gd
def batch():
    """Batch processing a list of buzz notices"""
    action = request.form['action']
    notices = Buzz.query.filter(Buzz.id.in_(request.form.getlist('notice')))
    { 'accept': lambda: [setattr(i, 'status', u'approved') for i in notices],
      'remove': lambda: [i.delete() for i in notices],
      'suggest': lambda: [setattr(i, 'status', u'selected') for i in notices],
      'publish': lambda: [setattr(i, 'status', u'published') for i in notices],
    }[action]()
    session.commit()
    return msg.ok('Notices processed: %s' % action)
예제 #21
0
def seguir(obraid):

	emailto = ""
	obra = fromcache("obra-" + obraid) or tocache("obra-" + obraid, _get_obras(obraid=obraid)[0])

	if not obra:
		print "Não achou a obra!"
		return abort(404)

	slug = obra['slug']

	if request.form:
		follow = UserFollow()

		if authapi.is_authenticated():
			follow.user = authapi.authenticated_user()
			emailto = follow.user.email

		follow.obra_id = int(obraid)

		if request.form.has_key('faceid'):
			follow.facebook_id = request.form['faceid']

		if request.form.has_key('twitterid'):
			follow.twitter_id = request.form['twitterid']

		if request.form.has_key('email'):
			follow.email = request.form['email']
			emailto = follow.email

		dbsession.commit()

		if emailto:
			base_url = current_app.config['BASE_URL']
			base_url = base_url if base_url[-1:] != '/' else base_url[:-1] #corta a barra final
			_dados_email = {
				'titulo': obra['title'],
				'link'  : base_url + url_for('.obra',slug=slug),
				'descricao' : Markup(obra['content']).striptags(),
				'monitore_url': base_url + url_for('.index'),
				'siteurl': base_url,
			}
			sendmail(
			    current_app.config['SEGUIROBRA_SUBJECT'] % _dados_email,
			    emailto,
			    current_app.config['SEGUIROBRA_MSG'] % _dados_email
			)


		return dumps({'status':'ok'})
	else:
		return dumps({'status':'error'})
예제 #22
0
def seguir(obraid):

    emailto = ""
    obra = fromcache("obra-" + obraid) or tocache("obra-" + obraid,
                                                  _get_obras(obraid=obraid)[0])

    if not obra:
        print "Não achou a obra!"
        return abort(404)

    slug = obra['slug']

    if request.form:
        follow = UserFollow()

        if authapi.is_authenticated():
            follow.user = authapi.authenticated_user()
            emailto = follow.user.email

        follow.obra_id = int(obraid)

        if request.form.has_key('faceid'):
            follow.facebook_id = request.form['faceid']

        if request.form.has_key('twitterid'):
            follow.twitter_id = request.form['twitterid']

        if request.form.has_key('email'):
            follow.email = request.form['email']
            emailto = follow.email

        dbsession.commit()

        if emailto:
            base_url = current_app.config['BASE_URL']
            base_url = base_url if base_url[
                -1:] != '/' else base_url[:-1]  #corta a barra final
            _dados_email = {
                'titulo': obra['title'],
                'link': base_url + url_for('.obra', slug=slug),
                'descricao': Markup(obra['content']).striptags(),
                'monitore_url': base_url + url_for('.index'),
                'siteurl': base_url,
            }
            sendmail(current_app.config['SEGUIROBRA_SUBJECT'] % _dados_email,
                     emailto,
                     current_app.config['SEGUIROBRA_MSG'] % _dados_email)

        return dumps({'status': 'ok'})
    else:
        return dumps({'status': 'error'})
예제 #23
0
def batch():
    """Batch processing a list of buzz notices"""
    action = request.form['action']
    notices = Buzz.query.filter(Buzz.id.in_(request.form.getlist('notice')))
    {
        'accept': lambda: [setattr(i, 'status', u'approved') for i in notices],
        'remove': lambda: [i.delete() for i in notices],
        'suggest':
        lambda: [setattr(i, 'status', u'selected') for i in notices],
        'publish':
        lambda: [setattr(i, 'status', u'published') for i in notices],
    }[action]()
    session.commit()
    return msg.ok('Notices processed: %s' % action)
예제 #24
0
파일: __init__.py 프로젝트: calcwb/gd
def publish_buzz(bid):
    """publish messages"""
    buzz = Buzz.query.get(bid)
    buzz.status = u'published'
    buzz.date_published = datetime.now()

    if(objurlConta > 1):
        avatar = buzz.owner_avatar or "/static/img/avatar.png"
        query = json.dumps({"type": "published", "id": str(bid), "author": str(buzz.owner_nick), "avatar": str(avatar), "content": str(buzz.content), "authortype": str(buzz.type_) }, ensure_ascii=False )
        url = objurl+"/buzz/pub?id="+str(buzz.audience_id)
        f = urllib.urlopen(url, query)
        f.close()

    session.commit()
    return msg.ok('Buzz published')
예제 #25
0
파일: __init__.py 프로젝트: calcwb/gd
def accept_buzz(bid):
    """Approve messages to appear in the main buzz area"""
    buzz = Buzz.query.get(bid)
    buzz.status = u'approved'

    if(objurlConta > 1):
        avatar = buzz.owner_avatar or "/static/img/avatar.png"
        query = json.dumps({"type": "moderated", "id": str(bid), "author": str(buzz.owner_nick), "avatar": str(avatar), "content": buzz.content.encode('utf8'), "authortype": str(buzz.type_) }, ensure_ascii=False )
        url = objurl+"/buzz/pub?id="+str(buzz.audience_id)
        f = urllib.urlopen(url, query)
        f.close()

    session.commit()

    return msg.ok('Buzz accepted')
예제 #26
0
def remember_password():
    """An HTTP view that answers requests for a new password"""
    try:
        user = User.query.filter_by(email=request.values['email']).one()
        new_pass = utils.generate_random_password()
        if utils.send_password(request.values['email'], new_pass):
            user.set_password(new_pass)
            dbsession.commit()
        else:
            dbsession.rollback()
            raise Exception('Unable to send the email')
    except NoResultFound:
        flash( _(u'E-mail not found in the database'), 'alert-error' )
    except Exception, exc:
        flash( _(u'There was an error sending the e-mail'), 'alert-error' )
예제 #27
0
def post():
    """When ready, this method will post contributions from users that
    choosen to use our internal message service instead of twitter,
    identica or whatever."""
    audience = request.values.get('aid')
    newbuzz = Buzz(owner_nick=auth.authenticated_user().display_name,
                   owner_avatar=u'',
                   user=auth.authenticated_user(),
                   content=request.values.get('message')[:300],
                   type_=get_or_create(BuzzType, name=u'site')[0])
    newbuzz.audience_id = audience
    session.commit()
    return msg.ok(
        _('Notice posted successfuly. Please wait a few while '
          'your message is approved.'))
예제 #28
0
파일: webapp.py 프로젝트: calcwb/gd
def remember_password():
    """An HTTP view that answers requests for a new password"""
    try:
        user = User.query.filter_by(email=request.values['email']).one()
        new_pass = utils.generate_random_password()
        if utils.send_password(request.values['email'], new_pass):
            user.set_password(new_pass)
            dbsession.commit()
        else:
            dbsession.rollback()
            raise Exception('Unable to send the email')
    except NoResultFound:
        flash( _(u'E-mail not found in the database'), 'alert-error' )
    except Exception, exc:
        flash( _(u'There was an error sending the e-mail'), 'alert-error' )
예제 #29
0
파일: webapp.py 프로젝트: calcwb/gd
def post():
    """When ready, this method will post contributions from users that
    choosen to use our internal message service instead of twitter,
    identica or whatever."""
    audience = request.values.get('aid')
    newbuzz = Buzz(
        owner_nick=auth.authenticated_user().display_name,
        owner_avatar=u'',
        user=auth.authenticated_user(),
        content=request.values.get('message')[:300],
        type_=get_or_create(BuzzType, name=u'site')[0])
    newbuzz.audience_id = audience
    session.commit()
    return msg.ok(_('Notice posted successfuly. Please wait a few while '
                    'your message is approved.'))
예제 #30
0
def opcaoRefPolitica():
    if request.form:
        reg = VotosReforma()
        if request.form['hdnquestao1'] == '1':
            reg.opcao1 = 1
        elif request.form['hdnquestao1'] == '2':
            reg.opcao2 = 1
        dbsession.add(reg)
        dbsession.commit()
        r = {'status':'ok'}
    else:
        r = {'status':'ok','msg':'Data not sent'}

    resp = make_response( jsonify(r), 200)
    resp.set_cookie('reforma_voted', request.form['hdnquestao1'])
    return resp
예제 #31
0
def opcaoRefPolitica():
    if request.form:
        reg = VotosReforma()
        if request.form['hdnquestao1'] == '1':
            reg.opcao1 = 1
        elif request.form['hdnquestao1'] == '2':
            reg.opcao2 = 1
        dbsession.add(reg)
        dbsession.commit()
        r = {'status': 'ok'}
    else:
        r = {'status': 'ok', 'msg': 'Data not sent'}

    resp = make_response(jsonify(r), 200)
    resp.set_cookie('reforma_voted', request.form['hdnquestao1'])
    return resp
예제 #32
0
def salvar_noticia_comite():
    if request.method == 'POST':
        titulo = request.form['titulo']
        noticia = request.form['noticia']
        cn = ComiteNews()
        cn.title = unicode(titulo)
        cn.content = unicode(noticia)
        cn.user = authenticated_user()
        dbsession.commit()

        #Envia o email avisando que chegou uma nova contribuição
        sendmail(conf.COMITE_SUBJECT, conf.COMITE_TO_EMAIL, conf.COMITE_MSG % {
            'titulo': titulo,
            'noticia': noticia,
        })
        return msg.ok(_(u'Thank you. Your contribution was successfuly sent.'))
    else:
        return msg.error(_(u'Method not allowed'))
예제 #33
0
 def run(self):
     """Starts a social network crawler
     """
     while self.alive:
         audience = Audience.query.get(self.aid)
         profiles, hashtags = [], []
         for i in audience.terms:
             term = str(i)
             if term.startswith('@'):
                 profiles.append(term)
             else:
                 hashtags.append(term)
         try:
             for buzz in self.job(profiles, hashtags).process():
                 buzz.audience = audience
                 audience.buzzes.append(buzz)
                 session.commit()
         except KeyboardInterrupt:
             self.alive = False
예제 #34
0
파일: worker.py 프로젝트: calcwb/gd
 def run(self):
     """Starts a social network crawler
     """
     while self.alive:
         audience = Audience.query.get(self.aid)
         profiles, hashtags = [], []
         for i in audience.terms:
             term = str(i)
             if term.startswith('@'):
                 profiles.append(term)
             else:
                 hashtags.append(term)
         try:
             for buzz in self.job(profiles, hashtags).process():
                 buzz.audience = audience
                 audience.buzzes.append(buzz)
                 session.commit()
         except KeyboardInterrupt:
             self.alive = False
예제 #35
0
def salvar_noticia_comite():
    if request.method == 'POST':
        titulo = request.form['titulo']
        noticia = request.form['noticia']
        cn = ComiteNews()
        cn.title = unicode(titulo)
        cn.content = unicode(noticia)
        cn.user = authenticated_user()
        dbsession.commit()

        #Envia o email avisando que chegou uma nova contribuição
        sendmail(
            conf.COMITE_SUBJECT, conf.COMITE_TO_EMAIL,
            conf.COMITE_MSG % {
                'titulo': titulo,
                'noticia': noticia,
            }
        )
        return msg.ok(_(u'Thank you. Your contribution was successfuly sent.'))
    else:
        return msg.error(_(u'Method not allowed'))
예제 #36
0
def confirm_signup(key):
    try:
        user = User.query.filter_by(user_activation_key=key).one()
        user.user_activation_key = ''
        dbsession.commit()

        #Efetua o login do camarada e manda para preencher o resto dos dados
        username = user.username
        print " ==== CONFIRMADO USUARIO:", username, "===="
        session['byconfirm'] = username
        # if username:
        #     try:
        #         authapi.login(username, None, bypass_pwverify=True)
        #     except authapi.UserNotFound:
        #         flash(_(u'Wrong user or password'), 'alert-error')
        #     except authapi.UserAndPasswordMissmatch:
        #         flash(_(u'Wrong user or password'), 'alert-error')

    except NoResultFound:
        return redirect(url_for('.index'))

    return redirect(url_for('auth.signup_continuation'))
예제 #37
0
def confirm_signup(key):
    try:
        user = User.query.filter_by(user_activation_key=key).one()
        user.user_activation_key = ''
        dbsession.commit()

        #Efetua o login do camarada e manda para preencher o resto dos dados
        username = user.username
        print " ==== CONFIRMADO USUARIO:", username, "===="
        session['byconfirm'] = username
        # if username:
        #     try:
        #         authapi.login(username, None, bypass_pwverify=True)
        #     except authapi.UserNotFound:
        #         flash(_(u'Wrong user or password'), 'alert-error')
        #     except authapi.UserAndPasswordMissmatch:
        #         flash(_(u'Wrong user or password'), 'alert-error')

    except NoResultFound:
        return redirect(url_for('.index'))

    return redirect( url_for('auth.signup_continuation') )
예제 #38
0
def accept_buzz(bid):
    """Approve messages to appear in the main buzz area"""
    buzz = Buzz.query.get(bid)
    buzz.status = u'approved'

    if (objurlConta > 1):
        avatar = buzz.owner_avatar or "/static/img/avatar.png"
        query = json.dumps(
            {
                "type": "moderated",
                "id": str(bid),
                "author": str(buzz.owner_nick),
                "avatar": str(avatar),
                "content": buzz.content.encode('utf8'),
                "authortype": str(buzz.type_)
            },
            ensure_ascii=False)
        url = objurl + "/buzz/pub?id=" + str(buzz.audience_id)
        f = urllib.urlopen(url, query)
        f.close()

    session.commit()

    return msg.ok('Buzz accepted')
예제 #39
0
def publish_buzz(bid):
    """publish messages"""
    buzz = Buzz.query.get(bid)
    buzz.status = u'published'
    buzz.date_published = datetime.now()

    if (objurlConta > 1):
        avatar = buzz.owner_avatar or "/static/img/avatar.png"
        query = json.dumps(
            {
                "type": "published",
                "id": str(bid),
                "author": str(buzz.owner_nick),
                "avatar": str(avatar),
                "content": str(buzz.content),
                "authortype": str(buzz.type_)
            },
            ensure_ascii=False)
        url = objurl + "/buzz/pub?id=" + str(buzz.audience_id)
        f = urllib.urlopen(url, query)
        f.close()

    session.commit()
    return msg.ok('Buzz published')
예제 #40
0
파일: __init__.py 프로젝트: calcwb/gd
def select_buzz(bid):
    """suggest messages to publish"""
    buzz = Buzz.query.get(bid)
    buzz.status = u'selected'
    session.commit()
    return msg.ok('Buzz selected')
예제 #41
0
def dont_publish_buzz(bid):
    """not publish messages"""
    buzz = Buzz.query.get(bid)
    buzz.status = u'approved'
    session.commit()
    return msg.ok('Buzz unpublished')
예제 #42
0
def select_buzz(bid):
    """suggest messages to publish"""
    buzz = Buzz.query.get(bid)
    buzz.status = u'selected'
    session.commit()
    return msg.ok('Buzz selected')
예제 #43
0
def contribui(slug):

    obra = fromcache("obra-" + slug) or tocache("obra-" + slug,
                                                _get_obras(slug)[0])
    if not obra:
        return abort(404)

    r = {'status': 'ok', 'message': 'Sua contibuição foi aceita com sucesso'}
    user_recent = False
    if not authapi.is_authenticated():
        # r = {'status':'not_logged'}
        """
		Se não está autenticado, tenta achar o usuário pelo email, e
		acessar com a senha inserida no formulario.
		Se não, cadastra o camarada, com o nome e email informados, gerando
		uma senha para ele e enviando o email de boas vindas.
		"""
        email = request.form['email']

        if request.form['senha']:
            #Informou a senha do cadastro já existente
            # username = email
            # senha = request.form['senha']
            #Efetua o login
            print "Usuario e senha informado... logando!"
            username = request.values.get('email')
            senha = request.values.get('senha')
            print "tentando logar com", username, senha
            try:
                user = authapi.login(username, senha)
                r = {
                    'status': 'ok',
                    'message': 'Sua contibuição foi aceita com sucesso',
                    'refresh': True
                }
            except authapi.UserNotFound:
                r = {'status': 'nok', 'message': _(u'Wrong user or password')}
                return dumps(r)
            except authapi.UserAndPasswordMissmatch:
                r = {'status': 'nok', 'message': _(u'Wrong user or password')}
                return dumps(r)
        elif request.form['nome']:
            print "Nome informado... cadastrando..."
            #Informou a senha para cadastro
            nome = request.form['nome']
            telefone = request.form[
                'telefone'] if 'telefone' in request.form else ""
            novasenha = request.form[
                'newPassword'] if 'newPassword' in request.form else ""

            if not novasenha:
                # novasenha = "gabinetedigital"
                novasenha = ''.join(
                    random.choice(string.printable) for x in range(8))

            # print nome, '-', email, '-', novasenha

            try:
                user = authapi.create_user(nome, email, unicode(novasenha),
                                           email)
                r = {
                    'status':
                    'ok',
                    'message':
                    'Sua contibuição foi aceita com sucesso. Verifique seu email para confirmar o cadastro.'
                }
                user_recent = True
                send_welcome_email(user)
                send_password(user.email, novasenha)
            except authapi.UserExistsUnconfirmed, e:
                r = {
                    'status':
                    'nok',
                    'message':
                    u'Seu usuário precisa ser confirmado, veja seu email!'
                }
                return dumps(r)

            if telefone:
                user.set_meta('phone', telefone)
                dbsession.commit()
        else:
            r = {
                'status':
                'nok',
                'message':
                u'É necessário informar uma senha ou dados para cadastro.'
            }
예제 #44
0
파일: webapp.py 프로젝트: calcwb/gd
def signup():
    """Renders the signup form"""

    if authapi.is_authenticated():
        return redirect(url_for('.profile'))

    # default_data=None
    ret_code = -1
    form = social(SignupForm)
    print "CADASTRANDO"
    #form = SignupForm()
    fromsocial = request.cookies.get('connect_type') in ('social_f','social_t')
    form.social = fromsocial

    print "VALIDANDO"
    if request.method == 'POST' and form.validate_on_submit():
        print "VALIDADO!"
        try:
            meta = form.meta
            dget = meta.pop
            if fromsocial:
                print "\nsenha fromsocial"
                password = ""
            else:
                password = dget('password')
                print "\nsenha", password

            # Finally, it's time to create the user
            email = dget('email')

            username = email
            if request.cookies.get('connect_type') == 'social_t':
                username = session['tmp_twitter_id']
            # if request.cookies.get('connect_type') == 'social_f':
            #     username = dget('fbid')
            #     print "FACEBOOK ID =", username

            user = authapi.create_user(
                dget('name'), username, password,
                email, form.meta,
                dget('receive_sms'), dget('receive_email') )

            if fromsocial:
                if request.cookies.get('connect_type') == 'social_t':
                    user.set_meta('twitter', session['tmp_twitter_id'])
                    user.set_meta('twitteruser', True)
                    dbsession.commit()
                if request.cookies.get('connect_type') == 'social_f':
                    user.set_meta('facebookuser', True)
                    dbsession.commit()

            utils.send_welcome_email(user)

            flash(_(u'Your user was registered with successful!'), 'alert-success')
            ret_code = 0
        except authapi.UserExists:
            flash( _(u'User already exists'), 'alert-error')
            ret_code = 1
        except authapi.UserExistsUnconfirmed:
            flash( _(u'User already exists, but need confirmation'), 'alert-error')
            ret_code = 4
        except authapi.EmailAddressExists:
            flash(_(u'The email address informed is being used by another person'), 'alert-error')
            ret_code = 2
    else:
        if request.method == 'POST' :
            print form.errors
            # for errorMessages, fieldName in enumerate(form.errors):
            #     print errorMessages, fieldName
            #     for err in errorMessages:
            #         # do something with your errorMessages for fieldName
            #         flash( "%s - %s" % (fieldName,err),'alert-error')
            flash(_(u'Correct the validation errors and resend'),'alert-error')
            ret_code = 3

    tos = fromcache('tossigin') or tocache('tossigin',wordpress.getPageByPath('tos'))
    rm = fromcache('moresigin') or tocache('moresigin',wordpress.getPageByPath('signup-read-more'))
    menus = fromcache('menuprincipal') or tocache('menuprincipal', wordpress.exapi.getMenuItens(menu_slug='menu-principal') )
    try:
        twitter_hash_cabecalho = utils.twitts()
    except KeyError:
        twitter_hash_cabecalho = ""

    return render_template(
        'signup.html', form=form,
        readmore=rm,tos=tos, menu=menus,
        twitter_hash_cabecalho=twitter_hash_cabecalho,
        ret_code=ret_code
    )
예제 #45
0
def contribui(slug):

	obra = fromcache("obra-" + slug) or tocache("obra-" + slug, _get_obras(slug)[0])
	if not obra:
		return abort(404)

	r = {'status':'ok', 'message':'Sua contibuição foi aceita com sucesso'}
	user_recent = False
	if not authapi.is_authenticated():
		# r = {'status':'not_logged'}
		"""
		Se não está autenticado, tenta achar o usuário pelo email, e
		acessar com a senha inserida no formulario.
		Se não, cadastra o camarada, com o nome e email informados, gerando
		uma senha para ele e enviando o email de boas vindas.
		"""
		email = request.form['email']

		if request.form['senha']:
			#Informou a senha do cadastro já existente
			# username = email
			# senha = request.form['senha']
			#Efetua o login
			print "Usuario e senha informado... logando!"
			username = request.values.get('email')
			senha = request.values.get('senha')
			print "tentando logar com", username, senha
			try:
				user = authapi.login(username, senha)
				r = {'status':'ok', 'message':'Sua contibuição foi aceita com sucesso', 'refresh': True}
			except authapi.UserNotFound:
				r = {'status':'nok', 'message':_(u'Wrong user or password')}
				return dumps(r)
			except authapi.UserAndPasswordMissmatch:
				r = {'status':'nok', 'message':_(u'Wrong user or password')}
				return dumps(r)
		elif request.form['nome']:
			print "Nome informado... cadastrando..."
			#Informou a senha para cadastro
			nome = request.form['nome']
			telefone = request.form['telefone'] if 'telefone' in request.form else ""
			novasenha = request.form['newPassword'] if 'newPassword' in request.form else ""

			if not novasenha:
				# novasenha = "gabinetedigital"
				novasenha = ''.join(random.choice(string.printable) for x in range(8))

			# print nome, '-', email, '-', novasenha

			try:
				user = authapi.create_user(nome, email, unicode(novasenha), email)
				r = {'status':'ok', 'message':'Sua contibuição foi aceita com sucesso. Verifique seu email para confirmar o cadastro.'}
				user_recent = True
				send_welcome_email(user)
				send_password(user.email, novasenha)
			except authapi.UserExistsUnconfirmed, e:
				r = {'status':'nok', 'message':u'Seu usuário precisa ser confirmado, veja seu email!'}
				return dumps(r)

			if telefone:
				user.set_meta('phone', telefone)
				dbsession.commit()
		else:
			r = {'status':'nok', 'message':u'É necessário informar uma senha ou dados para cadastro.'}
예제 #46
0
def signup():
    """Renders the signup form"""

    if authapi.is_authenticated():
        return redirect(url_for('.profile'))

    # default_data=None
    ret_code = -1
    form = social(SignupForm)
    print "CADASTRANDO"
    #form = SignupForm()
    fromsocial = request.cookies.get('connect_type') in ('social_f','social_t')
    form.social = fromsocial

    print "VALIDANDO"
    if request.method == 'POST' and form.validate_on_submit():
        print "VALIDADO!"
        try:
            meta = form.meta
            dget = meta.pop
            if fromsocial:
                print "\nsenha fromsocial"
                password = ""
            else:
                password = dget('password')
                print "\nsenha", password

            # Finally, it's time to create the user
            email = dget('email')

            username = email
            if request.cookies.get('connect_type') == 'social_t':
                username = session['tmp_twitter_id']
            # if request.cookies.get('connect_type') == 'social_f':
            #     username = dget('fbid')
            #     print "FACEBOOK ID =", username

            user = authapi.create_user(
                dget('name'), username, password,
                email, form.meta,
                dget('receive_sms'), dget('receive_email') )

            if fromsocial:
                if request.cookies.get('connect_type') == 'social_t':
                    user.set_meta('twitter', session['tmp_twitter_id'])
                    user.set_meta('twitteruser', True)
                    dbsession.commit()
                if request.cookies.get('connect_type') == 'social_f':
                    user.set_meta('facebookuser', True)
                    dbsession.commit()

            utils.send_welcome_email(user)

            flash(_(u'Your user was registered with successful!'), 'alert-success')
            ret_code = 0
        except authapi.UserExists:
            flash( _(u'User already exists'), 'alert-error')
            ret_code = 1
        except authapi.UserExistsUnconfirmed:
            flash( _(u'User already exists, but need confirmation'), 'alert-error')
            ret_code = 4
        except authapi.EmailAddressExists:
            flash(_(u'The email address informed is being used by another person'), 'alert-error')
            ret_code = 2
    else:
        if request.method == 'POST' :
            print form.errors
            # for errorMessages, fieldName in enumerate(form.errors):
            #     print errorMessages, fieldName
            #     for err in errorMessages:
            #         # do something with your errorMessages for fieldName
            #         flash( "%s - %s" % (fieldName,err),'alert-error')
            flash(_(u'Correct the validation errors and resend'),'alert-error')
            ret_code = 3

    tos = fromcache('tossigin') or tocache('tossigin',wordpress.getPageByPath('tos'))
    rm = fromcache('moresigin') or tocache('moresigin',wordpress.getPageByPath('signup-read-more'))
    menus = fromcache('menuprincipal') or tocache('menuprincipal', wordpress.exapi.getMenuItens(menu_slug='menu-principal') )
    try:
        twitter_hash_cabecalho = utils.twitts()
    except KeyError:
        twitter_hash_cabecalho = ""

    return render_template(
        'signup.html', form=form,
        readmore=rm,tos=tos, menu=menus,
        twitter_hash_cabecalho=twitter_hash_cabecalho,
        sidebar=wordpress.getSidebar,
        ret_code=ret_code
    )
예제 #47
0
파일: fixcharset.py 프로젝트: clarete/gd
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

from gd.model import Contrib, session

erros = 0
bugados = []
for i in range(1, 1000):
    try:
        contrib = Contrib.get(i)
        if contrib is not None:
            print contrib.id
            contrib.title = contrib.title.decode('utf-8')
            contrib.content = contrib.content.decode('utf-8')
            session.commit()
    except Exception, exc:
        session.rollback()
        erros += 1
        bugados.append({'id': i, 'exception': exc})

print(
    'Foram encontrados %d erros, provavelmente esses objetos '
    'já são unicode') % (erros)
print 'Seguem os erros: %s' % (', '.join([str(x['id']) for x in bugados]))
예제 #48
0
파일: fixcharset.py 프로젝트: calcwb/gd
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

from gd.model import Contrib, session

erros = 0
bugados = []
for i in range(1, 1000):
    try:
        contrib = Contrib.get(i)
        if contrib is not None:
            print contrib.id
            contrib.title = contrib.title.decode('utf-8')
            contrib.content = contrib.content.decode('utf-8')
            session.commit()
    except Exception, exc:
        session.rollback()
        erros += 1
        bugados.append({ 'id': i, 'exception': exc })

print ('Foram encontrados %d erros, provavelmente esses objetos '
       'já são unicode') % (erros)
print 'Seguem os erros: %s' % (', '.join([str(x['id']) for x in bugados]))
예제 #49
0
파일: __init__.py 프로젝트: calcwb/gd
def dont_publish_buzz(bid):
    """not publish messages"""
    buzz = Buzz.query.get(bid)
    buzz.status = u'approved'
    session.commit()
    return msg.ok('Buzz unpublished')