-
Notifications
You must be signed in to change notification settings - Fork 0
/
controllers.py
168 lines (144 loc) · 4.44 KB
/
controllers.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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
from flask import render_template, redirect, request, session, flash
from config import db, datetime
from models import User, Event
#### Controller Functions ####
## Render index page
def index():
#add location map with events
#Map intetgration not working
return render_template('index.html')
##User controllers
## Add new user
def new_user():
errors = User.validate(request.form)
if errors:
for error in errors:
flash(error)
return redirect('/')
user_id = User.add_user(request.form)
session['user_id'] = user_id
return redirect('/dashboard')
#Log in new user
def login():
valid, response = User.login_assist(request.form)
if not valid:
flash(response)
return redirect('/')
session['user_id'] = response
print(response)
return redirect('/dashboard')
####reset user password
#get user credentials page
def check_user():
return render_template('reset.html')
#check user credentials
def get_reset():
valid, response = User.verify_user(request.form)
if not valid:
flash(response)
return redirect('/check/user')
#TODO: Investigate using a token to validate user instead of session
session['user_id'] = response
#return redirect('/dashboard')
return redirect('/get/user/reset')
#return redirect(url_for('password_reset', id = session['user_id']))
#get password page
def get_password_page():
return render_template('password.html')
#reset password
def reset():
errors = User.validate_password(request.form)
if errors:
for error in errors:
flash(error)
return redirect('/get/user/reset')
change_password = User.reset_user_password(request.form)
return redirect('/dashboard')
##adding first name
def first():
user = User.query.get(session['user_id'])
return user.first_name
#rendering navigation on the dashboard
def nav():
user = User.query.get(session['user_id'])
return render_template('nav.html', user = user)
#render dashboard
##current date display not working.
def members():
if 'user_id' not in session:
return redirect('/')
today = datetime.now().strftime('%A, %B %d, %Y')
user = User.get_user(session['user_id'])
myevents = User.user_event(user.id)
print(myevents)
session['first_name'] = user.first_name
return render_template('dashboard.html', user=user, today=today, events = myevents)
### Render the account page ###
def account(id):
account = User.get_user(id)
#use a different query
#my_events = Event.my_event(id)
my_events = User.user_event(id)
print(my_events)
return render_template('account.html',
account = account,
events = my_events)
### update user profile ###
def update_user(id):
errors = User.validate(request.form)
if errors:
for error in errors:
flash(error)
return redirect(url_for('account',id = id))
profile = User.edit_user(request.form)
return redirect('/dashboard')
### Event Controllers ###
### Render events search page ###
def search():
all_events = Event.all_events()
return render_template('search.html',
name = session['first_name'],
fevents = all_events
)
### Search and filter for events ### Not working
def search_event():
events = Event.get_event(request.form)
return redirect('/search')
### Render New Event Page ###
def new_event():
return render_template('new.html', name = session['first_name'])
# Joining an event
def like_event(id):
like_event = User.join_event(id)
return redirect('/search')
### Add new event ###
def add_event():
errors = Event.validate(request.form)
if errors:
for error in errors:
flash(error)
return redirect('/new/event')
event = Event.add_event(request.form)
#like_event = User.join_event(id)
return redirect('/search')
### Render the events page ###
def show_event(id):
one_event = Event.event(id)
return render_template('event.html', event = one_event)
### update event ###
def update_event(id):
errors = Event.validate(request.form)
if errors:
for error in errors:
flash(error)
return redirect(url_for('show_event', id = id))
update = Event.edit_event(request.form, id )
return redirect('/search')
### Delete event ###
def cancel_event(id):
delete_event = Event.delete(id)
return redirect('/search')
#### Logout ####
def logout():
session.clear()
return redirect('/')