Repaired function update_wrsledruncache.
authorphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Sun, 29 Jan 2017 22:18:46 +0000 (22:18 +0000)
committerphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Sun, 29 Jan 2017 22:18:46 +0000 (22:18 +0000)
git-svn-id: http://www.winterrodeln.org/svn/wrpylib/trunk@2619 7aebc617-e5e2-0310-91dc-80fb5f6d2477

wrpylib/wrmwcache.py

index 10bd0ed300016f6f695ce1e7d6b33b13c72f7b06..5b13719b670bf1af439264a3112bd374b8c82203 100644 (file)
@@ -6,7 +6,6 @@ from sqlalchemy import schema
 from sqlalchemy.sql import select
 from sqlalchemy.sql.expression import func as sqlfunc
 from osgeo import ogr
-import formencode
 from wrpylib import mwdb, wrmwdb, mwmarkup, wrmwmarkup, wrvalidators
 
 
@@ -28,6 +27,8 @@ def update_wrsledruncache(connection):
     categorylinks = mwdb.categorylinks_table(metadata)
     revision = mwdb.revision_table(metadata)
     text = mwdb.text_table(metadata)
+    class Sledrun:
+        pass
 
     transaction = connection.begin()
 
@@ -43,14 +44,15 @@ def update_wrsledruncache(connection):
     
     # Refill wrsledruncache table
     for sledrun_page in sledrun_pages:
-        try: 
-            start, end, sledrun = wrmwmarkup.rodelbahnbox_to_sledrun(sledrun_page.old_text)
+        try:
+            rodelbahnbox = wrvalidators.rodelbahnbox_from_str(sledrun_page.old_text)
+            sledrun = wrmwmarkup.sledrun_from_rodelbahnbox(rodelbahnbox, Sledrun())
             sledrun.page_id = sledrun_page.page_id
             sledrun.page_title = sledrun_page.page_title
             sledrun.name_url = wrvalidators.sledrun_page_title_to_pretty_url(sledrun_page.page_title)
-            sledrun.under_construction = connection.execute(select([categorylinks], (categorylinks.c.cl_from==sledrun_page.page_id) & (categorylinks.c.cl_to == 'In_Arbeit')).alias('x').count()).fetchone()[0] > 0 # It would be better to do this in the query above
+            sledrun.under_construction = connection.execute(select([categorylinks], (categorylinks.c.cl_from==sledrun_page.page_id) & (categorylinks.c.cl_to == 'In_Arbeit')).alias('x').count()).fetchone()[0] > 0
             connection.execute(wrsledruncache.insert(sledrun.__dict__))
-        except (RuntimeError, formencode.Invalid) as e:
+        except ValueError as e:
             transaction.rollback()
             error_msg = "Error at sled run '{0}': {1}".format(sledrun_page.page_title, str(e))
             raise UpdateCacheError(error_msg, sledrun_page.page_title, e)