|
5 | 5 | from baseframe.forms import render_redirect, render_form |
6 | 6 | from hacknight import app |
7 | 7 | from hacknight.models import db, Profile, User, Event |
8 | | -from hacknight.models.event import profile_types |
| 8 | +from hacknight.models.event import profile_types, Event |
9 | 9 | from hacknight.forms.profile import ProfileForm |
10 | 10 | from hacknight.views.login import lastuser |
11 | 11 | from hacknight.models.participant import Participant |
| 12 | +from datetime import datetime |
| 13 | +from pytz import utc |
12 | 14 |
|
13 | 15 |
|
14 | 16 | @app.route('/<profile>') |
15 | 17 | @load_model(Profile, {'name': 'profile'}, 'profile') |
16 | 18 | def profile_view(profile): |
17 | | - events = Event.query.filter_by(profile_id=profile.id).order_by(Event.start_datetime.desc()).all() |
| 19 | + events = Event.query.filter_by(profile_id=profile.id).all() |
| 20 | + upcoming_events = Event.query.filter_by(profile_id=profile.id).filter(Event.end_datetime > datetime.utcnow()).order_by(Event.start_datetime.asc()).all() |
| 21 | + past_events = Event.query.filter_by(profile_id=profile.id).filter(Event.end_datetime < datetime.utcnow()).order_by(Event.end_datetime.desc()).all() |
18 | 22 | user = User.query.filter_by(userid=profile.userid).first() |
19 | | - if user is not None: |
20 | | - # User profile. Show all events this user owns or is participating in. |
21 | | - events = list(set(events + [p.event for p in Participant.query.filter_by(user=user).all()])) |
22 | | - events.sort(key=lambda item: item.start_datetime, reverse=True) |
23 | | - return render_template('profile.html', profile=profile, events=events, is_user=True if user else False) |
24 | | - |
| 23 | + return render_template('profile.html', profile=profile, events=events, upcoming_events=upcoming_events, past_events=past_events, is_user=True if user else False) |
25 | 24 |
|
26 | 25 | @app.route('/<profile>/edit', methods=['GET', 'POST']) |
27 | 26 | @lastuser.requires_login |
|
0 commit comments