Fixed bug: Added column operator to table wrinncache.
[philipp/winterrodeln/wrpylib.git] / wrpylib / wrmwcache.py
index 431e005ac497f02adbb668d221636252347cdbbc..d8c2caec738ee33a5c254f61002a98b91b37aa35 100644 (file)
@@ -3,7 +3,6 @@
 # $Id$
 # $HeadURL$
 """Contains functions that maintain/update the cache tables."""
-from xml.etree import ElementTree
 from sqlalchemy import schema
 from sqlalchemy.sql import select
 import formencode
@@ -20,6 +19,7 @@ def update_wrsledruncache(connection):
     
     >>> from sqlalchemy.engine import create_engine
     >>> engine = create_engine('mysql://philipp@localhost:3306/philipp_winterrodeln_wiki?charset=utf8&use_unicode=0')
+    >>> # see: https://sourceforge.net/tracker/?func=detail&aid=2837134&group_id=22307&atid=374932
     >>> update_wrsledruncache(engine.connect())
     """
     metadata = schema.MetaData()
@@ -62,6 +62,7 @@ def update_wrinncache(connection):
     
     >>> from sqlalchemy.engine import create_engine
     >>> engine = create_engine('mysql://philipp@localhost:3306/philipp_winterrodeln_wiki?charset=utf8&use_unicode=0')
+    >>> # see: https://sourceforge.net/tracker/?func=detail&aid=2837134&group_id=22307&atid=374932
     >>> update_wrinncache(engine.connect())
     """
     metadata = schema.MetaData()
@@ -104,6 +105,7 @@ def update_wrreportcache(connection, page_id=None):
 
     >>> from sqlalchemy.engine import create_engine
     >>> engine = create_engine('mysql://philipp@localhost:3306/philipp_winterrodeln_wiki?charset=utf8&use_unicode=1')
+    >>> # see: https://sourceforge.net/tracker/?func=detail&aid=2837134&group_id=22307&atid=374932
     >>> update_wrreportcache(engine.connect())
     """
     metadata = schema.MetaData()
@@ -111,33 +113,19 @@ def update_wrreportcache(connection, page_id=None):
     wrreportcache = wrmwdb.wrreportcache_table(metadata)
     transaction = connection.begin()
 
-    # Delte the datasets we are going to update
+    # Delete the datasets we are going to update
     sql_del = wrreportcache.delete()
     if not page_id is None: sql_del = sql_del.where(wrreportcache.c.page_id == page_id)
     connection.execute(sql_del)
 
     def insert_row(connection, rowlist):
         if len(rowlist) == 0: return
-        # Build XML
-        reports_xml = ElementTree.Element('reports')
-        for row in rowlist:
-            report_xml = ElementTree.SubElement(reports_xml, 'report')
-            report_xml.set('report_id', unicode(row.report_id))
-            report_xml.set('date_report', unicode(row.report_date_report))
-            report_xml.set('condition', unicode(row.report_condition))
-            report_xml.set('author_name', unicode(row.report_author_name))
-            report_xml.set('author_username', unicode(row.report_author_username))
-            report_xml.text = unicode(row.report_description)
-        reports_xml.set('page_id', unicode(row.page_id))
-        reports_xml.set('page_title', row.page_title)
-        reports_xml = unicode(ElementTree.tostring(reports_xml, 'utf8'), 'utf8') # there is not ElementTree.tounicode())
-        # Insert the report(s)
+        # Insert the report
         row = dict(rowlist[0])
-        row['reports_xml'] = reports_xml
         connection.execute(wrreportcache.insert(values=row))
 
     # Select the rows to update
-    sql = 'select page_id, page_title, wrreport.id as report_id, date_report as report_date_report, `condition` as report_condition, description as report_description, author_name as report_author_name, if(author_userid is null, null, author_username) as report_author_username from wrreport where {0}`condition` is not null and date_invalid > now() and delete_date is null order by page_id, date_report desc, date_entry desc'.format('' if page_id is None else 'page_id={0} and '.format(page_id))
+    sql = 'select page_id, page_title, wrreport.id as report_id, date_report, `condition`, description, author_name, if(author_userid is null, null, author_username) as author_username from wrreport where {0}`condition` is not null and date_invalid > now() and delete_date is null order by page_id, date_report desc, date_entry desc'.format('' if page_id is None else 'page_id={0} and '.format(page_id))
     cursor = connection.execute(sql)
     page_id = None
     rowlist = []
@@ -157,7 +145,10 @@ def update_wrmapcache(connection):
     
     >>> from sqlalchemy.engine import create_engine
     >>> engine = create_engine('mysql://philipp@localhost:3306/philipp_winterrodeln_wiki?charset=utf8&use_unicode=0')
-    >>> update_wrmapcache(engine.connect())
+    >>> # or: engine = create_engine('mysql://philipp@localhost:3306/philipp_winterrodeln_wiki?charset=utf8&use_unicode=0&passwd=XXXXX')
+    >>> # see: https://sourceforge.net/tracker/?func=detail&aid=2837134&group_id=22307&atid=374932
+    >>> connection = engine.connect()
+    >>> update_wrmapcache(connection)
     """
     metadata = schema.MetaData()
     page = mwdb.page_table(metadata)