-
Notifications
You must be signed in to change notification settings - Fork 0
/
views_game.py
100 lines (73 loc) · 2.96 KB
/
views_game.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
from flask import render_template, request, redirect, session, flash, url_for, send_from_directory
from jogoteca import app, db
from models import Jogos
from helpers import recupera_imagem, deleta_arquivo, FormularioJogo
import time
@app.route('/')
def index():
lista = Jogos.query.order_by(Jogos.id)
return render_template('lista.html', titulo='Jogos', jogos=lista)
@app.route('/novo')
def novo():
if 'usuario_logado' not in session or session['usuario_logado'] == None:
return redirect(url_for('login', proxima=url_for('novo')))
form = FormularioJogo()
return render_template('novo.html', titulo='Novo Jogo', form=form)
@app.route('/criar', methods=['POST', ])
def criar():
form = FormularioJogo(request.form)
if not form.validate_on_submit():
return redirect(url_for('novo'))
nome = form.nome.data
categoria = form.categoria.data
console = form.console.data
jogo = Jogos.query.filter_by(nome=nome).first()
if jogo:
flash('Jogo já existente!')
return redirect(url_for('index'))
novo_jogo = Jogos(nome=nome, categoria=categoria, console=console)
db.session.add(novo_jogo)
db.session.commit()
arquivo = request.files['arquivo']
upload_path = app.config['UPLOAD_PATH']
timestamp = time.time()
arquivo.save(f'{upload_path}/capa{novo_jogo.id}-{timestamp}.jpg')
return redirect(url_for('index'))
@app.route('/editar/<int:id>')
def editar(id):
if 'usuario_logado' not in session or session['usuario_logado'] == None:
return redirect(url_for('login', proxima=url_for('editar', id=id)))
jogo = Jogos.query.filter_by(id=id).first()
form = FormularioJogo()
form.nome.data = jogo.nome
form.categoria.data = jogo.categoria
form.console.data = jogo.console
capa_jogo = recupera_imagem(id)
return render_template('editar.html', titulo='Editando Jogo', id=id, capa_jogo=capa_jogo, form=form)
@app.route('/atualizar', methods=['POST', ])
def atualizar():
form = FormularioJogo(request.form)
if form.validate_on_submit():
jogo = Jogos.query.filter_by(id=request.form['id']).first()
jogo.nome = form.nome.data
jogo.categoria = form.categoria.data
jogo.console = form.console.data
db.session.add(jogo)
db.session.commit()
arquivo = request.files['arquivo']
upload_path = app.config['UPLOAD_PATH']
timestamp = time.time()
deleta_arquivo(id)
arquivo.save(f'{upload_path}/capa{jogo.id}-{timestamp}.jpg')
return redirect(url_for('index'))
@app.route('/deletar/<int:id>')
def deletar(id):
if 'usuario_logado' not in session or session['usuario_logado'] == None:
return redirect(url_for('login'))
Jogos.query.filter_by(id=id).delete()
db.session.commit()
flash('Jogo deletado com sucesso!')
return redirect(url_for('index'))
@app.route('/uploads/<nome_arquivo>')
def imagem(nome_arquivo):
return send_from_directory('uploads', nome_arquivo)