-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.py
More file actions
81 lines (55 loc) · 2.12 KB
/
main.py
File metadata and controls
81 lines (55 loc) · 2.12 KB
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
from flask import request, make_response, redirect, render_template, session, url_for, flash, request
from flask_bootstrap import Bootstrap
import unittest
from flask_login import login_required, current_user
from app.forms import TodosForm, DeleteTodo, UpdateTodo
from app.firestore_service import create_todo, get_user_id, read_todo, delete_todo, update_todo
from app import create_app
app = create_app()
@app.errorhandler(404)
def not_found(error):
return render_template('404.html', error=error)
@app.errorhandler(500)
def server_not_found(error):
return render_template('505.html', error=error)
@app.route('/')
def index():
print(request.remote_addr)
return redirect(url_for('home'))
@app.route('/home')
def home():
context = {
}
return render_template('index.html', **context)
@app.route('/main', methods=['GET', 'POST'])
@login_required
def main():
todo_form = TodosForm()
delete_todo = DeleteTodo()
update_todo = UpdateTodo()
current_uid = get_user_id(username=current_user.username)
context = {
'username': current_user.username,
'todo_form': todo_form,
'delete_form': delete_todo,
'todos': read_todo(user_id=current_uid),
'update_form': update_todo,
}
if todo_form.validate_on_submit():
create_todo(user_id=current_user.id,
description=todo_form.descripcion.data)
flash('La tarea ha sido creada con exito 🥳', 'success')
return redirect(url_for('main'))
return render_template('main.html', **context)
@app.route('/todo/delete/<todo_id>', methods=['POST'])
def delete(todo_id):
user_id = get_user_id(username=current_user.username)
delete_todo(user_id=user_id, todo_id=todo_id)
flash('La tarea ha sido eliminada 😁', 'success')
return redirect(url_for('main'))
@app.route('/todo/update/<todo_id>/<int:done>', methods=['POST'])
def update(todo_id, done):
user_id = get_user_id(username=current_user.username)
update_todo(user_id=user_id, todo_id=todo_id, done=done)
flash('La tarea ha sido actualizada 😎', 'success')
return redirect(url_for('main'))