]> git.ipfire.org Git - ipfire.org.git/commitdiff
planet: Log view when rendering the post
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 1 Nov 2017 11:54:36 +0000 (12:54 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 1 Nov 2017 11:54:36 +0000 (12:54 +0100)
Doing it after could not always be performed when
HEAD was called.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
webapp/handlers_planet.py

index d1a4f7ffd700181e8503a4cc24bf3bd1ad9cb590..3eb15996b07ece9fe0daffb21843acb9cfa62bba 100644 (file)
@@ -62,24 +62,22 @@ class PlanetUserHandler(PlanetBaseHandler):
 
 class PlanetPostingHandler(PlanetBaseHandler):
        def get(self, slug):
-               self.entry = self.planet.get_entry_by_slug(slug)
-
-               if not self.entry:
+               entry = self.planet.get_entry_by_slug(slug)
+               if not entry:
                        raise tornado.web.HTTPError(404)
 
-               self.render("planet/posting.html",
-                       author=self.entry.author, entry=self.entry)
-
-       def on_finish(self):
-               assert self.entry
-
                # Get the referer and location for statistical purposes
                referer = self.request.headers.get("Referer", None)
                location = self.get_remote_location()
                if location:
                        location = location.country
 
-               self.entry.count_view(referer=referer, location=location)
+                # Log the request
+                with self.db.transaction():
+                        entry.count_view(referer=referer, location=location)
+
+               self.render("planet/posting.html",
+                       author=entry.author, entry=entry)
 
 
 class PlanetSearchHandler(PlanetBaseHandler):