Dynamic UTF offset.
[philipp/winterrodeln/wrpylib.git] / wrpylib / wrmwdb.py
index 198c3901c3e62a37e1c3e0baaed0c5bf5f752148..ca2bd1dbb574c80fc994f500fd3756c38fffdefa 100644 (file)
@@ -1,11 +1,15 @@
-#!/usr/bin/python2.6
-# -*- coding: iso-8859-15 -*-
+#!/usr/bin/python3.4
 # $Id$
 # $HeadURL$
 """This module contains code to make tha access of winterrodeln
 tables in MediaWiki easy. The module uses sqlalchemy to access the database.
 """
 from sqlalchemy import Table, Column, types, schema
+from sqlalchemy.dialects.mysql import ENUM
+
+
+intermaps_sledrun_id_type = types.Unicode(50)
+intermaps_sledrun_status_type = ENUM('open', 'closed', 'in_preparation', 'unknown')
 
 
 def wrreport_table(metadata):
@@ -37,6 +41,7 @@ def wrreport_table(metadata):
     Column("delete_person_userid", types.Integer),
     Column("delete_person_username", types.Unicode(30)),
     Column("delete_reason_public", types.Unicode),
+    Column("delete_invisible", types.Boolean),
     )
 
 
@@ -47,8 +52,9 @@ def wrsledruncache_table(metadata):
     :param metadata: metadata = sqlalchemy.MetaData()
     """
     return Table("wrsledruncache", metadata,
-    Column("page_id", types.Integer, primary_key=True),
+    Column("page_id", types.Integer, schema.ForeignKey('wrreportcache.page_id'), primary_key=True),
     Column("page_title", types.Unicode(255)),
+    Column("name_url", types.Unicode(255)),
     Column("position_latitude", types.Float),
     Column("position_longitude", types.Float),
     Column("top_latitude", types.Float),
@@ -124,7 +130,7 @@ def wrreportcache_table(metadata):
     return Table("wrreportcache", metadata,
     Column("page_id", types.Integer, primary_key=True),
     Column("page_title", types.Unicode(255), nullable=False),
-    Column("report_id", types.Integer),
+    Column("report_id", types.Integer, schema.ForeignKey('wrreport.id')),
     Column("date_report", types.Date),
     Column("condition", types.Integer),
     Column("description", types.Unicode),
@@ -133,3 +139,76 @@ def wrreportcache_table(metadata):
     )
 
 
+def wrregion_table(metadata):
+    """Returns the sqlalchemy Table representing the "wrregion" Winterrodeln table in MediaWiki.
+    Current table definition.
+    * version 1.5 (introduction)
+    :param metadata: metadata = sqlalchemy.MetaData()
+    """
+    return Table("wrregion", metadata,
+    Column("id", types.Integer, primary_key=True),
+    Column("name", types.Unicode(50)),
+    Column("page_id", types.Integer),
+    Column("border", types.LargeBinary) # MultiPolygon(2, 4326)
+    )
+
+
+def wrregioncache_table(metadata):
+    """Returns the sqlalchemy Table representing the "wrregioncache" Winterrodeln table in MediaWiki.
+    Current table definition.
+    * version 1.5 (introduction)
+    :param metadata: metadata = sqlalchemy.MetaData()
+    """
+    return Table("wrregioncache", metadata,
+    Column("id", types.Integer, primary_key=True),
+    Column("region_id", types.Integer, schema.ForeignKey('wrregin.id')),
+    Column("page_id", types.Integer)
+    )
+
+
+def wrintermapssledrun_table(metadata):
+    """Returns the sqlalchemy table representing the "wrintermapssledrun" Winterrodeln table in MediaWiki.
+    Current table definition.
+    * version 1.5 (introduction)
+    :param metadata: metadata = sqlalchemy.MetaData()
+    """
+    return Table("wrintermapssledrun", metadata,
+        Column("intermaps_sledrun_id", intermaps_sledrun_id_type, primary_key=True),
+        Column("intermaps_sledrun_name", types.Unicode(255)),
+        Column("intermaps_region_id", types.Integer),
+        Column("intermaps_region_name", types.Unicode(255)),
+        Column("intermaps_country", types.Unicode(10)),
+        Column("wr_page_id", types.Integer, schema.ForeignKey("page.page_id")),
+        Column("wr_page_title", types.Unicode(255)),
+        Column("show_status", types.Boolean, nullable=False)
+    )
+
+
+def wrintermapsreport_table(metadata):
+    """Returns the sqlalchemy table representing the "wrintermapsreport" Winterrodeln table in MediaWiki.
+    Current table definition.
+    * version 1.5 (introduction)
+    :param metadata: metadata = sqlalchemy.MetaData()
+    """
+    return Table("wrintermapsreport", metadata,
+        Column("intermaps_sledrun_id", intermaps_sledrun_id_type, primary_key=True),
+        Column("status", intermaps_sledrun_status_type, nullable=False),
+        Column("last_update", types.DateTime, nullable=False),
+        Column("last_check", types.DateTime, nullable=False),
+        Column("utc_offset", types.Integer, nullable=False)
+    )
+
+
+def wrintermapsreporthistory_table(metadata):
+    """Returns the sqlalchemy table representing the "wrintermapsreporthistory" Winterrodeln table in MediaWiki.
+    Current table definition.
+    * version 1.5 (introduction)
+    :param metadata: metadata = sqlalchemy.MetaData()
+    """
+    return Table("wrintermapsreporthistory", metadata,
+        Column("id", types.Integer, primary_key=True),
+        Column("intermaps_sledrun_id", intermaps_sledrun_id_type, nullable=False),
+        Column("status", intermaps_sledrun_status_type, nullable=False),
+        Column("last_update", types.DateTime, nullable=False),
+        Column("utc_offset", types.Integer, nullable=False)
+    )