def uploadPhoto(): if request.method == 'POST': # check if the post request has the file part if 'file' not in request.files: flash('No file part') return redirect(request.url) file = request.files['file'] print('requests: ', request.files['file']) # if user does not select file, browser also # submit a empty part without filename if file.filename == '': flash('No selected file') return redirect(request.url) if file and allowed_file(file.filename): filename = secure_filename(file.filename) print('path: ', os.path.join(app.config['UPLOAD_FOLDER'], filename)) file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) session['photo'] = filename session['path'] = '../uploads/' + filename return redirect('/colorpicker') # return redirect(url_for('uploadPhoto', # filename=filename)) images = os.listdir(os.path.join(app.static_folder, "images")) return render_template('pickFile.html', images=images)
def eleicoes_para_votar_comum(): ''' Método responsável por mostrar as eleições as quais o usuário pode votar a fim de serem exibidas para que o mesmo escolha uma. :return: ''' if not session.get('autenticado'): flash("Você precisa estar autenticado para acessar essa página!") return redirect(url_for('autenticar')) form = EscolherEleicaoForm() session.pop('id_eleicao', None) session.pop('id_pergunta', None) # Eleicões abertas no geral eleicoes_abetas = Eleicao.query.filter_by(estadoEleicao=True, fimEleicao=None, apuradaEleicao=False).all() if not eleicoes_abetas: flash("Nenhuma eleição aberta no momento!") return redirect(url_for('autenticado_comum')) else: for eleicao in eleicoes_abetas: form.eleicao.choices.append( (eleicao.idEleicao, eleicao.nomeEleicao)) if request.method == 'GET': return render_template('eleicoes_para_votar_comum.html', form=form) if form.validate_on_submit(): session['id_eleicao'] = form.eleicao.data return redirect(url_for('votar_em_eleicao_comum'))
def upload_file(): basedir = os.path.abspath(os.path.dirname(__file__)) if request.method == 'POST': # check if the post request has the file part if 'file' not in request.files: flash('No file part') return redirect(request.url) file = request.files['file'] # if user does not select file, browser also # submit a empty part without filename if file.filename == '': flash('No selected file') return redirect(request.url) if file and allowed_file(file.filename): filename = secure_filename(file.filename) file.save( os.path.join(basedir, app.config['UPLOAD_FOLDER'], filename)) var = myImageVision(file.filename) ##return redirect(url_for('static', ## filename=filename,message=(jsonify(message=var), 200))) return jsonify(Anger=var[0], Joy=var[1], Surprise=var[2]), 200 return '''
def apurar_eleicao(): ''' Apurar uma eleição encerrada :return: ''' if not session.get('autenticado'): flash("Você precisa estar autenticado para acessar essa página!") return redirect(url_for('autenticar')) else: if not session.get('admin'): flash( "Você precisa estar logado como administrador para acessar essa página!" ) return redirect(url_for('autenticar')) else: form = ApurarEleicaoForm() session['id_eleicao'] = None eleicoes = Eleicao.query.filter_by( loginPessoa=session.get('login_pessoa'), estadoEleicao=False, apuradaEleicao=False).all() if not eleicoes: flash('Não há eleicões para serem apuradas!') return redirect(url_for('autenticado_admin')) eleicoes_a_serem_apuradas = [] for eleicao in eleicoes: if eleicao.fimEleicao is not None: eleicoes_a_serem_apuradas.append(eleicao) if not eleicoes_a_serem_apuradas: flash("Não há eleições para apurar!") return redirect(url_for('autenticado_admin')) else: for eleicao in eleicoes_a_serem_apuradas: form.eleicao.choices.append( (eleicao.idEleicao, eleicao.nomeEleicao)) if request.method == 'GET': return render_template('apurar_eleicao.html', form=form) if form.validate_on_submit(): eleicao = Eleicao.query.filter_by( idEleicao=form.eleicao.data).first() eleicao.apuradaEleicao = True db.session.commit() flash("Eleição apurada!") session.pop('id_eleicao', None) session.pop('id_pergunta', None) session.pop('id_resposta', None) return redirect(url_for('autenticado_admin'))
def wrapper(*args, **kwargs): # 判断session对象中是否有seesion['user']等于root, # 如果包含信息, 则登录成功, 可以访问主页; # 如果不包含信息, 则未登录成功, 跳转到登录界面;; if session.get('user', None) == 'root': return f(*args, **kwargs) else: flash("只有管理员root才能访问%s" % (f.__name__)) return redirect(url_for('login'))
def run_application(app_name): app = application.get_by_name(app_name) if app.is_running(): flash(app_name +" is running already", "info") return False port = get_free_port() os.system('source ./scripts/startApp.sh '+app_name+ " "+ str(port)+" "+ app.get_run_file_name()) app.set_port(port) app.save()
def autenticado_comum(): ''' Página inicial do usuário comum. :return: ''' if not session.get('autenticado'): flash("Você precisa estar autenticado para acessar essa página!") return redirect(url_for('autenticar')) return render_template('autenticado_comum.html')
def save_to_wish(isbn): if current_user.can_save_to_list(isbn): with db.auto_commit(): wish = Wish() wish.isbn = isbn wish.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(wish) else: flash('这本书已经添加至你的赠送清单或已存在于你的心愿清单,请不要重复添加') return redirect(url_for('web.book_detail', isbn=isbn))
def mostrar_resultado(): ''' Método responsável por mostrar os resultados de uma eleição :return: ''' # Verifica se tem um id_eleicao if not session.get('id_eleicao'): return redirect(url_for('autenticado_admin')) if not session.get('autenticado'): flash("Você precisa estar autenticado para acessar essa página!") return redirect(url_for('autenticar')) else: if not session.get('admin'): flash( "Você precisa estar logado como administrador para acessar essa página!" ) return redirect(url_for('autenticar')) else: eleicao = Eleicao.query.filter_by( idEleicao=session.get('id_eleicao'), loginPessoa=session.get('login_pessoa')).first() nome_eleicao = eleicao.nomeEleicao perguntas = Pergunta.query.filter_by( idEleicao=session.get('id_eleicao')).all() lista_questoes = [] for pergunta in perguntas: id_pergunta = pergunta.idPergunta lista_respostas = [] respostas = Resposta.query.filter_by( idPergunta=id_pergunta, idEleicao=session.get('id_eleicao')).all() for resposta in respostas: lista_respostas.append(resposta) lista_questao_respostas = [pergunta, lista_respostas] lista_questoes.append(lista_questao_respostas) session.pop('id_eleicao', None) session.pop('id_pergunta', None) session.pop('id_resposta', None) if request.method == 'GET': return render_template('mostrar_resultado.html', lista_questoes=lista_questoes, tituloEleicao=nome_eleicao)
def autenticado_admin(): ''' Página inicial do adminsitrador. :return: ''' if not session.get('autenticado'): flash("Você precisa estar autenticado para acessar essa página!") return redirect(url_for('autenticar')) else: if not session.get('admin'): flash( "Você precisa estar logado como administrador para acessar essa página!" ) return redirect(url_for('autenticar')) return render_template('autenticado_admin.html')
def demo1(): if request.method == "POST": # 取到表单中提交上来的三个参数 username = request.form.get("username") password = request.form.get("password") password2 = request.form.get("password2") if not all([username, password, password2]): # 向前端界面弹出一条提示(闪现消息) flash("参数不足") elif password != password2: flash("两次密码不一致") else: # 假装做注册操作 print(username, password, password2) return "success" return render_template('login.html')
def submit_link(): import urllib.request import base64 import uuid from recognize import recognize if request.method == 'GET': userID = request.args.get('q', '') return render_template("submit_link.html", userID=userID) elif request.method == 'POST': url = request.form.get('url') userID = request.form.get('userID') # check if the post request has the file part if 'file' in request.files: file = request.files['file'] # if user does not select file, browser also # submit an empty part without filename if file.filename == '': flash('No selected file') return redirect(request.url) if file and allowed_file(file.filename): filename = file.filename file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) full_path = '{0}{1}'.format(UPLOAD_FOLDER, filename) path = 'img/{0}'.format(filename) elif url: uuid = uuid.uuid4() uuid = str(uuid) path = 'img/{0}.{1}'.format(uuid, 'png') full_path = '{0}/src/templates/{1}'.format(os.getcwd(), path) resource = urllib.request.urlopen(url) output = open(full_path, "wb") output.write(resource.read()) output.close() else: flash('Please enter valid data') return redirect(request.url) with open(full_path, 'rb') as image: response = recognize(image.read(), path, userID) return render_template("result.html", score=response['score'], detected_labels=response['detected_labels'], imagePath=path, userID=userID)
def create(): if request.method == 'POST': title = request.form['title'] body = request.form['body'] error = None if not title: error = 'Title is required.' if error is not None: flash(error) else: db = get_db() db.execute( 'INSERT INTO post (title, body, author_id)' ' VALUES (?, ?, ?)', (title, body, g.user['id'])) db.commit() return redirect(url_for('blog.index')) return render_template('blog/create.html')
def send_drift(gid): """ 交易 :param gid: :return: """ current_gift = Gift.query.get_or_404(gid) if current_gift.is_you_self_gift(current_user.id): flash("这本书是你自己的,你不能索要自己的书籍") return redirect(url_for('web.book_detail', isbn=current_gift.isbn)) can = current_user.can_send_drift() if not can: return render_template('not_enough_beans.html', beans=current_user.beans) form = DriftForm(request.form) if request.method == 'POST' and form.validate(): save_drift(drift_form=form, current_gift=current_gift) send_email(current_gift.user.email, '有人想要一本书', 'email/get_gift.html', wisher=current_user, gift=current_gift) return redirect(url_for('web.pending')) gifter = current_gift.user.summary return render_template('drift.html', gifter=gifter, user_beans=current_user.beans, form=form)
def update(id): post = get_post(id) if request.method == 'POST': title = request.form['title'] body = request.form['body'] error = None if not title: error = 'Title is required.' if error is not None: flash(error) else: db = get_db() db.execute('UPDATE post SET title = ?, body = ?' ' WHERE id = ?', (title, body, id)) db.commit() return redirect(url_for('blog.index')) return render_template('blog/update.html', post=post)
def encerrar_eleicao(): ''' Método que encerra uma eleição :return: ''' if not session.get('autenticado'): flash("Você precisa estar autenticado para acessar essa página!") return redirect(url_for('autenticar')) else: if not session.get('admin'): flash( "Você precisa estar logado como administrador para acessar essa página!" ) return redirect(url_for('autenticar')) form = EncerrarEleicaoForm() session['id_eleicao'] = None eleicoes = Eleicao.query.filter_by(loginPessoa=session.get('login_pessoa'), estadoEleicao=True, fimEleicao=None, apuradaEleicao=False).all() if not eleicoes: flash('Não há eleicões para serem ecerradas!') return redirect(url_for('autenticado_admin')) for eleicao in eleicoes: form.eleicao.choices.append((eleicao.idEleicao, eleicao.nomeEleicao)) if request.method == 'GET': return render_template('encerrar_eleicao.html', form=form) if form.validate_on_submit(): now = datetime.now() data = now.strftime("%m/%d/%Y, %H:%M:%S") eleicao = Eleicao.query.filter_by(idEleicao=form.eleicao.data).first() eleicao.fimEleicao = data eleicao.estadoEleicao = False db.session.commit() flash("Eleição encerrada!") session.pop('id_eleicao', None) session.pop('id_pergunta', None) session.pop('id_resposta', None) return redirect(url_for('autenticado_admin'))
def criar_eleicao(): ''' Método responsável pela criação de uma eleição. :return: ''' if not session.get('autenticado'): flash("Você precisa estar autenticado para acessar essa página!") return redirect(url_for('autenticar')) else: if not session.get('admin'): flash( "Você precisa estar logado como administrador para acessar essa página!" ) return redirect(url_for('autenticar')) else: form = CriarEleicaoFrom() if request.method == 'GET': return render_template('criar_eleicao.html', form=form) if form.validate_on_submit(): nome_eleicao = form.nomeEleicao.data verifica_nome_eleicao = Eleicao.query.filter_by( nomeEleicao=nome_eleicao).first() if verifica_nome_eleicao is not None: flash("Já existe uma eleição com esse nome!") return redirect(url_for('criar_eleicao')) else: now = datetime.now() data = now.strftime("%m/%d/%Y, %H:%M:%S") eleicao = Eleicao(loginPessoa=session.get('login_pessoa'), nomeEleicao=nome_eleicao, inicioEleicao=data, estadoEleicao=False, apuradaEleicao=False) db.session.add(eleicao) db.session.commit() flash("Eleição criada!") eleicao_info = Eleicao.query.filter_by( nomeEleicao=nome_eleicao).first() session['id_eleicao'] = eleicao_info.idEleicao session['nome_eleicao'] = eleicao_info.nomeEleicao return redirect(url_for('add_pergunta'))
def add_resposta_1(): ''' Método que adiciona uma resposta a uma questão/pergunta. Seleciona a eleição a qual deseja inserir uma resposta a uma pergunta. :return: ''' # Verifica se está autenticado if not session.get('autenticado'): flash("Você precisa estar autenticado para acessar essa página!") return redirect(url_for('autenticar')) else: # Verifica se é admin if not session.get('admin'): flash( "Você precisa estar logado como administrador para acessar essa página!" ) return redirect(url_for('autenticar')) else: form = EscolherEleicaoForm() session['id_eleicao'] = None # Filtra as eleições do usuário autenticado eleicoes = Eleicao.query.filter_by( loginPessoa=session.get('login_pessoa'), estadoEleicao=False, fimEleicao=None, apuradaEleicao=False).all() # Só mostrar as eleicoes que tem perguntas eleicoes_com_perguntas = [] for eleicao in eleicoes: perguntas = Pergunta.query.filter_by( idEleicao=eleicao.idEleicao).first() if perguntas is not None: eleicoes_com_perguntas.append(eleicao) if not eleicoes_com_perguntas: flash( "Não há eleições com perguntas para adicionar respostas!") return redirect(url_for('autenticado_admin')) else: for eleicao in eleicoes_com_perguntas: form.eleicao.choices.append( (eleicao.idEleicao, eleicao.nomeEleicao)) if request.method == 'GET': return render_template('add_resposta_1.html', form=form) if form.validate_on_submit(): session['id_eleicao'] = form.eleicao.data return redirect(url_for('add_resposta_2'))
def eleicao_para_resultado(): ''' Método responsável pela escolha da eleição para apresentar o resultado :return: ''' if not session.get('autenticado'): flash("Você precisa estar autenticado para acessar essa página!") return redirect(url_for('autenticar')) else: if not session.get('admin'): flash( "Você precisa estar logado como administrador para acessar essa página!" ) return redirect(url_for('autenticar')) else: form = EscolherEleicaoForm() session['id_eleicao'] = None eleicoes = Eleicao.query.filter_by( loginPessoa=session.get('login_pessoa'), estadoEleicao=False, apuradaEleicao=True).all() if not eleicoes: flash('Não há eleicões para apresentar o resultado!') return redirect(url_for('autenticado_admin')) eleicoes_encerradas_apuradas = [] for eleicao in eleicoes: if eleicao.fimEleicao is not None: eleicoes_encerradas_apuradas.append(eleicao) for eleicao in eleicoes_encerradas_apuradas: form.eleicao.choices.append( (eleicao.idEleicao, eleicao.nomeEleicao)) if request.method == 'GET': return render_template('eleicao_para_resultado.html', form=form) if form.validate_on_submit(): session['id_eleicao'] = form.eleicao.data return redirect(url_for('mostrar_resultado'))
def add_eleitores(): ''' Método responsável pela escolha da eleição para adicionar eleitores. :return: ''' if not session.get('autenticado'): flash("Você precisa estar autenticado para acessar essa página!") return redirect(url_for('autenticar')) else: if not session.get('admin'): flash( "Você precisa estar logado como administrador para acessar essa página!" ) return redirect(url_for('autenticar')) else: form = EscolherEleicaoForm() session['id_eleicao'] = None eleicoes = Eleicao.query.filter_by( loginPessoa=session.get('login_pessoa'), estadoEleicao=False, fimEleicao=None, apuradaEleicao=False).all() if not eleicoes: flash('Não há eleicões para inserir eleitores!') return redirect(url_for('autenticado_admin')) for eleicao in eleicoes: form.eleicao.choices.append( (eleicao.idEleicao, eleicao.nomeEleicao)) if request.method == 'GET': return render_template('add_eleitores.html', form=form) if form.validate_on_submit(): session['id_eleicao'] = form.eleicao.data return redirect(url_for('escolher_eleitores'))
def do_admin_login(): if request.form['password'] == 'password' and request.form['username'] == '*****@*****.**': session['logged_in'] = True else: flash('wrong password!') return home()
def wrap(*args, **kwargs): if 'logged_in' in session: return f(*args, **kwargs) else: flash('You need to login first.') return redirect(url_for('/login'))
def add_pergunta(): ''' Método que adiciona uma pergunta/questão a uma eleição. :return: ''' if not session.get('autenticado'): flash("Você precisa estar autenticado para acessar essa página!") return redirect(url_for('autenticar')) else: if not session.get('admin'): flash( "Você precisa estar logado como administrador para acessar essa página!" ) return redirect(url_for('autenticar')) else: form = AdicionarPerguntaForm() eleicoes = Eleicao.query.filter_by( loginPessoa=session.get('login_pessoa'), estadoEleicao=False, apuradaEleicao=False).all() if len(eleicoes) == 0: flash("Você não possui eleições para cadastrar perguntas!") return redirect(url_for('autenticado_admin')) # Se não criou nenhuma eleicao durante a sessão, session.get('id_eleicao') vazio if session.get('id_eleicao') is None: eleicoes = Eleicao.query.filter_by( loginPessoa=session.get('login_pessoa'), estadoEleicao=False, apuradaEleicao=False).all() if eleicoes is None: return redirect(url_for('autenticado_admin')) for eleicao in eleicoes: form.eleicao.choices.append( (eleicao.idEleicao, eleicao.nomeEleicao)) # Se possui algo em session.get('id_eleicao') else: form.eleicao.choices = [(session.get('id_eleicao'), session.get('nome_eleicao'))] eleicoes = Eleicao.query.filter_by( loginPessoa=session.get('login_pessoa'), estadoEleicao=False, apuradaEleicao=False).all() if eleicoes is None: return redirect(url_for('autenticado_admin')) eleicoes_sem_id_eleicao = [] for eleicao in eleicoes: if eleicao.idEleicao != session.get('id_eleicao'): eleicoes_sem_id_eleicao.append(eleicao) for eleicao in eleicoes_sem_id_eleicao: form.eleicao.choices.append( (eleicao.idEleicao, eleicao.nomeEleicao)) if request.method == 'GET': return render_template('add_pergunta.html', form=form) if form.validate_on_submit(): nome_pergunta = form.nomePergunta.data min_respostas = form.minRespostas.data max_respostas = form.maxRespostas.data session['id_eleicao'] = form.eleicao.data if min_respostas == 0 or max_respostas == 0: flash("") return render_template('add_pergunta.html', form=form) if min_respostas > max_respostas: flash( "O número mínimo de respostas deve ser menor que o número máximo!" ) return render_template('add_pergunta.html', form=form) verifica_pergunta_eleicao = Pergunta.query.filter_by( idEleicao=session.get('id_eleicao'), pergunta=nome_pergunta).first() if verifica_pergunta_eleicao is not None: flash("Essa questão já está inserida nessa eleição!") return render_template('add_pergunta.html', form=form) else: pergunta = Pergunta(idEleicao=session.get('id_eleicao'), pergunta=nome_pergunta, minRespostas=min_respostas, maxRespostas=max_respostas) db.session.add(pergunta) db.session.commit() flash("Pergunta adicionada!") pergunta_info = Pergunta.query.filter_by( pergunta=nome_pergunta).first() session['id_pergunta'] = pergunta_info.idPergunta session['nome_pergunta'] = pergunta_info.pergunta session.pop('id_eleicao', None) return render_template('add_pergunta.html', form=form) else: flash("Números de respostas inconsistentes!") session.pop('id_eleicao', None) return render_template('add_pergunta.html', form=form)
def abrir_eleicao(): ''' Abrir uma eleição, liberar votação :return: ''' if not session.get('autenticado'): flash("Você precisa estar autenticado para acessar essa página!") return redirect(url_for('autenticar')) else: if not session.get('admin'): flash( "Você precisa estar logado como administrador para acessar essa página!" ) return redirect(url_for('autenticar')) form = AbrirEleicaoForm() session['id_eleicao'] = None eleicoes = Eleicao.query.filter_by(loginPessoa=session.get('login_pessoa'), estadoEleicao=False, fimEleicao=None, apuradaEleicao=False).all() if not eleicoes: flash("Não há eleições para abrir!") return redirect(url_for('autenticado_admin')) for eleicao in eleicoes: form.eleicao.choices.append((eleicao.idEleicao, eleicao.nomeEleicao)) if request.method == 'GET': return render_template('abrir_eleicao.html', form=form) if form.validate_on_submit(): eleitores = Eleitor.query.filter_by(idEleicao=form.eleicao.data).all() if not eleitores: flash('Essa eleição não possui eleitores cadastrados!') return redirect(url_for('abrir_eleicao')) perguntas = Pergunta.query.filter_by(idEleicao=form.eleicao.data).all() if not perguntas: flash('A leição não possui perguntas cadastradas!') return redirect(url_for('abrir_eleicao')) for pergunta in perguntas: id_pergunta = pergunta.idPergunta nome_pergunta = pergunta.pergunta max_respostas_teoria = pergunta.maxRespostas respostas = Resposta.query.filter_by(idPergunta=id_pergunta).all() # Remove pois 1 resposta vai ser sempre "Branco" max_respostas_pratica = (len(respostas) - 1) if max_respostas_pratica < max_respostas_teoria: respostas_faltando = max_respostas_teoria - max_respostas_pratica flash("Você deve cadastrar " + str(respostas_faltando) + " respostas para a pergunta: " + nome_pergunta) session['id_pergunta'] = id_pergunta return redirect(url_for('abrir_eleicao')) now = datetime.now() data = now.strftime("%m/%d/%Y, %H:%M:%S") eleicao = Eleicao.query.filter_by(idEleicao=form.eleicao.data).first() eleicao.inicioEleicao = data eleicao.estadoEleicao = True db.session.add(eleicao) db.session.commit() session.pop('id_eleicao', None) session.pop('id_pergunta', None) session.pop('id_resposta', None) flash("Eleição aberta!") return redirect(url_for('autenticado_admin'))
def escolher_eleitores(): ''' Método responsável pela escolha dos eleitores a serem inseridos em uma eleição. :return: ''' # Verifica se tem um id_eleicao if not session.get('id_eleicao'): return redirect(url_for('autenticado_admin')) if not session.get('autenticado'): flash("Você precisa estar autenticado para acessar essa página!") return redirect(url_for('autenticar')) else: if not session.get('admin'): flash( "Você precisa estar logado como administrador para acessar essa página!" ) return redirect(url_for('autenticar')) else: form = EscolherEleitoresForm() if request.method == 'GET': return render_template('escolher_eleitores.html', form=form) if form.validate_on_submit(): eleitores_1 = form.eleitores1.data eleitores_2 = form.eleitores2.data eleitores_3 = form.eleitores3.data print(eleitores_1) print(eleitores_2) print(eleitores_3) if eleitores_1: path = 'eleitores1.txt' file = open(path, 'r') for login in file: # Verificar se esse login ja está na eleição login = login.strip('\n') eleitor_verifica = Eleitor.query.filter_by( loginPessoa=login, idEleicao=session.get('id_eleicao')).first() print(eleitor_verifica) if not eleitor_verifica: eleitor = Eleitor( loginPessoa=login, idEleicao=session.get('id_eleicao'), statusEleitor=False) db.session.add(eleitor) db.session.commit() file.close() if eleitores_2: path = 'eleitores2.txt' file = open(path, 'r') for login in file: login = login.strip('\n') # Verificar se esse login ja está na eleição eleitor_verifica = Eleitor.query.filter_by( loginPessoa=login, idEleicao=session.get('id_eleicao')).first() if not eleitor_verifica: eleitor = Eleitor( loginPessoa=login, idEleicao=session.get('id_eleicao'), statusEleitor=False) db.session.add(eleitor) db.session.commit() file.close() if eleitores_3: path = 'eleitores3.txt' file = open(path, 'r') for login in file: login = login.strip('\n') # Verificar se esse login ja está na eleição eleitor_verifica = Eleitor.query.filter_by( loginPessoa=login, idEleicao=session.get('id_eleicao')).first() if not eleitor_verifica: eleitor = Eleitor( loginPessoa=login, idEleicao=session.get('id_eleicao'), statusEleitor=False) db.session.add(eleitor) db.session.commit() file.close() session.pop('id_eleicao', None) flash("Eleitores adicionados!") return redirect(url_for('autenticado_admin'))
def votar_em_eleicao_comum(): ''' Método responsável por realizar o voto de um usuário comum. :return: ''' # Verifica se tem um id_eleicao if not session.get('id_eleicao'): return redirect(url_for('eleicoes_para_votar_comum')) if not session.get('autenticado'): flash("Você precisa estar autenticado para acessar essa página!") return redirect(url_for('autenticar')) pessoa_nome = session.get('login_pessoa') eleicao_id = session.get('id_eleicao') eleitor = Eleitor.query.filter_by(loginPessoa=pessoa_nome, idEleicao=eleicao_id).first() if eleitor is None: flash("Você não pode votar nessa eleição!") return redirect(url_for('eleicoes_para_votar_comum')) else: #Verifica se o status é False status_eleitor = eleitor.statusEleitor if status_eleitor: flash("Você já votou nessa eleição!") return redirect(url_for('eleicoes_para_votar_comum')) else: eleicao = Eleicao.query.filter_by( idEleicao=session.get('id_eleicao')).first() nome_eleicao = eleicao.nomeEleicao perguntas = Pergunta.query.filter_by( idEleicao=session.get('id_eleicao')).all() lista_questoes_respostas = [] for pergunta in perguntas: id_pergunta = pergunta.idPergunta lista_respostas = [] respostas = Resposta.query.filter_by( idPergunta=id_pergunta, idEleicao=session.get('id_eleicao')).all() for resposta in respostas: lista_respostas.append(resposta) tupla_questao_respostas = (pergunta, lista_respostas) lista_questoes_respostas.append(tupla_questao_respostas) form = MostraResultadosForm() if request.method == 'GET': return render_template('votar_em_eleicao_comum.html', lista_questoes=lista_questoes_respostas, tituloEleicao=nome_eleicao, form=form) else: qtd_perguntas_respondidas = [] resultado = list(request.form.items()) resultado.pop() # Removendo o ultimo item if not resultado: flash( "Você deve votar em todas as questões e respeitar os limites de mínimo e máximo de respostas!" ) return redirect(url_for('eleicoes_para_votar_comum')) for itens in resultado: n_questao = itens[0].split('-')[0] qtd_perguntas_respondidas.append(n_questao) c = Counter(qtd_perguntas_respondidas) # Verificar se deixou de resposnder a alguma pergunta if len(c.values()) != len(perguntas): print( "Você deve votar em todas as questões e respeitar os limites de mínimo e máximo de respostas!" ) return redirect(url_for('eleicoes_para_votar_comum')) else: # Verificar a quantidade de respostas para cada uma das perguntas indice = 0 for pergunta in perguntas: min = pergunta.minRespostas max = pergunta.maxRespostas qtd_respostas = list(c.values())[indice] indice = indice + 1 # print("----------------------") # print("Pergunta: " + pergunta.pergunta) # print("----------------------") # print("Mínimo: " + str(min)) # print("Máximo: " + str(max)) # print("----------------------") # print("Qtd de respostas: " + str(qtd_respostas)) # print("----------------------") if qtd_respostas > max or qtd_respostas < min: flash( "Voceê deve respeitar os limites de mínimo e máximo de respostas!" ) session.pop('id_eleicao', None) session.pop('id_pergunta', None) return redirect(url_for('eleicoes_para_votar_comum')) for itens in resultado: num_resposta = itens[0].split('-')[1] num = int(num_resposta) resposta = Resposta.query.filter_by( idEleicao=session.get('id_eleicao'), idResposta=num).first() resposta.votoResposta = resposta.votoResposta + 1 db.session.add(resposta) db.session.commit() # return redirect(url_for('atualiza_status')) pessoa_nome = session.get('login_pessoa') eleicao_id = session.get('id_eleicao') # eleitor = Eleitor.query.filter_by(idEleicao=eleicao_id, loginPessoa=pessoa_nome).first() # print(eleitor.loginPessoa) Eleitor.query.filter_by( idEleicao=eleicao_id, loginPessoa=pessoa_nome).delete(synchronize_session=False) db.session.commit() flash("Votou!") session.pop('id_eleicao', None) session.pop('id_pergunta', None) session.pop('id_resposta', None) return redirect(url_for('autenticado_comum'))
def add_resposta_2(): ''' Método que adiciona uma resposta a uma questão/pergunta. Seleciona a pergunta a qual deseja adicionar uma resposta. :return: ''' # Verifica se tem um id_eleicao if not session.get('id_eleicao'): return redirect(url_for('autenticado_admin')) # Verifica se está autenticado if not session.get('autenticado'): flash("Você precisa estar autenticado para acessar essa página!") return redirect(url_for('autenticar')) else: # Verifica se é admin if not session.get('admin'): flash( "Você precisa estar logado como administrador para acessar essa página!" ) return redirect(url_for('autenticar')) else: form = EscolherPerguntaAddRespostaForm() # Filtra as perguntas da eleição escolhida perguntas = Pergunta.query.filter_by( idEleicao=session.get('id_eleicao')).all() for pergunta in perguntas: form.pergunta.choices.append( (pergunta.idPergunta, pergunta.pergunta)) if request.method == 'GET': return render_template('add_resposta_2.html', form=form) if form.validate_on_submit(): nome_resposta = form.resposta.data id_pergunta = form.pergunta.data # Verificar se essa resposta já existe para essa pergunta na eleicao eleicao verifica_resposta_pergunta = Resposta.query.filter_by( resposta=nome_resposta, idEleicao=session.get('id_eleicao'), idPergunta=id_pergunta).first() if verifica_resposta_pergunta is not None: flash( "Essa resposta já foi cadastrada para essa pergunta!") return render_template('add_resposta_1.html', form=form) else: #Verifica se ja tem a resposta "ranco" verifica_resposta_branco = Resposta.query.filter_by( idPergunta=id_pergunta, idEleicao=session.get('id_eleicao'), resposta="Branco").first() if not verifica_resposta_branco: resposta = Resposta( idPergunta=id_pergunta, idEleicao=session.get('id_eleicao'), resposta="Branco", votoResposta=0) db.session.add(resposta) db.session.commit() resposta = Resposta(idPergunta=id_pergunta, idEleicao=session.get('id_eleicao'), resposta=nome_resposta, votoResposta=0) db.session.add(resposta) db.session.commit() flash("Resposta adicionada") session.pop('id_eleicao', None) session.pop('pergunta', None) return redirect(url_for('autenticado_admin'))
def autenticar(): ''' Autenticação do usuario e redirecionamento de página :return: ''' # Verifica se está autenticado if session.get('autenticado'): if session.get('admin'): return redirect(url_for('autenticado_admin')) else: return redirect(url_for('autenticado_comum')) # Não está autenticado else: form = LoginForm() if request.method == 'GET': return render_template('login.html', form=form) if form.validate_on_submit(): login_pessoa = form.login_pessoa.data password = form.password.data admin_button = form.admin_button.data verifica_pessoa = Pessoa.query.filter_by( loginPessoa=login_pessoa).first() # Verifica username if verifica_pessoa is not None: # Verifica senha if password == verifica_pessoa.senhaPessoa: # Verificar se informou que é admin if admin_button: pessoa_admin = Pessoa.query.filter_by( loginPessoa=login_pessoa, admin=True).first() if pessoa_admin is not None: session['admin'] = True session[ 'login_pessoa'] = verifica_pessoa.loginPessoa session['name'] = verifica_pessoa.nomePessoa session['autenticado'] = True return redirect(url_for('autenticado_admin')) else: flash("O usuário não é administrador!") return redirect(url_for('autenticar')) else: # Logando como usuário comum session['admin'] = False session['login_pessoa'] = verifica_pessoa.loginPessoa session['name'] = verifica_pessoa.nomePessoa session['autenticado'] = True return redirect(url_for('autenticado_comum')) else: flash("Senha incorreta!") return redirect(url_for('autenticar')) else: flash("Usuário não encontrado!") return redirect(url_for('autenticar'))
access_token, user_id, url_state = get_dropbox_auth_flow(request.session).finish(request.GET) user_profile = UserProfile.objects.get(user=request.user) user_profile.dropbox_token = access_token user_profile.save() messages.add_message(request, messages.SUCCESS, 'Successfully connected with Dropbox') return redirect('/dashboard') except DropboxOAuth2Flow.BadRequestException, e: return HttpResponseBadRequest() except DropboxOAuth2Flow.BadStateException, e: # Start the auth flow again. return redirect("/service_manager/dropbox/auth_start") except DropboxOAuth2Flow.CsrfException, e: return HttpResponseForbidden() except DropboxOAuth2Flow.NotApprovedException, e: flash('Not approved? Why not, bro?') return redirect("/dashboard") except DropboxOAuth2Flow.ProviderException, e: print "Auth error: %s" % (e,) return HttpResponseForbidden() @login_required def dropbox_file_view(request): """ The view for files/folders in a dropbox account """ try: token = UserProfile.objects.get(user=request.user).dropbox_token if not token: # Checks for existence of token messages.add_message(request, messages.ERROR, 'You have not connected with a Dropbox account yet.') return render(request, 'website/dashboard.html')