-
Notifications
You must be signed in to change notification settings - Fork 0
/
views.py
106 lines (90 loc) · 2.6 KB
/
views.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
101
102
103
104
105
106
#Dependencias
from flask import Flask, flash, redirect, render_template, request, \
session, url_for
from forms import AddTaskForm
from functools import wraps
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_object('config')
db = SQLAlchemy(app)
#importamos el modelo
from models import Task
import sqlite3
def connect_db():
return sqlite3.connect(app.config['DATABASE'])
def login_required(test):
@wraps(test)
def wrap(*args, **kwargs):
if 'logged_in' in session:
return test(*args, **kwargs)
else:
flash('Necesitas iniciar sesion primero')
return redirect(url_for('login'))
return wrap
@app.route('/logout/')
def logout():
session.pop('logged_in', None)
flash('Cerraste sesion')
return redirect(url_for('login'))
@app.route('/', methods=['GET','POST'])
def login():
if request.method == 'POST':
if request.form['username'] != app.config['USERNAME'] or \
request.form['password'] != app.config['PASSWORD']:
error = 'Usuario o contrasenia incorrecta'
return render_template('login.html', error=error)
else:
session['logged_in'] = True
return redirect(url_for('tasks'))
if request.method == 'GET':
return render_template('login.html')
@app.route('/tasks/')
@login_required
def tasks():
open_tasks = db.session.query(Task) \
.filter_by(status='1').order_by(Task.due_date.asc())
closed_tasks = db.session.query(Task) \
.filter_by(status='0').order_by(Task.due_date.asc())
return render_template(
'tasks.html',
form = AddTaskForm(request.form),
open_tasks = open_tasks,
closed_tasks = closed_tasks
)
# Add new tasks:
@app.route('/add/', methods=['GET','POST'])
@login_required
def new_task():
form = AddTaskForm(request.form)
if request.method == 'POST':
if form.validate_on_submit():
new_task = Task(
form.name.data,
form.due_date.data,
form.priority.data,
'1'
)
db.session.add(new_task)
db.session.commit()
flash('Nueva tarea fue agragada con exito')
else:
flash('Por favor, agregue datos validos')
return redirect(url_for('tasks'))
# Mark tasks as complete:
@app.route('/complete/<int:task_id>/',)
@login_required
def complete(task_id):
new_id = task_id
db.session.query(Task).filter_by(task_id=new_id).update({'status':'0'})
db.session.commit()
flash("La tarea fue marcada como completa")
return redirect(url_for('tasks'))
# Delete Tasks:
@app.route('/delete/<int:task_id>/',)
@login_required
def delete_entry(task_id):
new_id = task_id
db.session.query(Task).filter_by(task_id=new_id).delete()
db.session.commit()
flash('La tarea fue eliminada exitosamente')
return redirect(url_for('tasks'))