import logging
from pylons import config, request, response, session, tmpl_context as c, url
-from pylons.controllers.util import abort, redirect_to
+from pylons.controllers.util import abort, redirect
from routes import request_config
from sqlalchemy.orm.exc import NoResultFound
times.append( int(source['frontpage-last-seen-time']) )
except (KeyError, ValueError):
pass
- last_seen_time = datetime.datetime.fromtimestamp(max(times))
- if last_seen_time:
+ if times:
+ last_seen_time = datetime.datetime.fromtimestamp(max(times))
for update in updates:
if update.time > last_seen_time:
c.last_seen_item = update
if c.user:
c.user.stash['frontpage-last-seen-time'] = now
meta.Session.add(c.user)
- meta.Session.commit()
else:
response.set_cookie('frontpage-last-seen-time', now)
# Done! Feed to template
c.updates = updates
- return render('/index.mako')
+ ret = render('/index.mako')
+
+ # Commit AFTER rendering the template! Committing invalidates
+ # everything in the session, undoing any eagerloading that may have
+ # been done by sources
+ meta.Session.commit()
+ return ret