Fixed typo in docstring.
[philipp/winterrodeln/wrpylib.git] / wrpylib / wrmwdb.py
1 #!/usr/bin/python3.4
2 # $Id$
3 # $HeadURL$
4 """This module contains code to make tha access of winterrodeln
5 tables in MediaWiki easy. The module uses sqlalchemy to access the database.
6 """
7 from sqlalchemy import Table, Column, types, schema
8
9
10 def wrreport_table(metadata):
11     """Returns the sqlalchemy Table representing the "wrreport" Winterrodeln table in MediaWiki.
12     Current table definition.
13     * version 1.2
14     * version 1.3 (no changes)
15     * version 1.4 (no changes)
16     * version 1.5 added time_report
17     :param metadata: metadata = sqlalchemy.MetaData()
18     """
19     return Table("wrreport", metadata,
20     Column("id", types.Integer, primary_key=True),
21     Column("page_id", types.Integer, schema.ForeignKey('wrsledruncache.page_id')),
22     Column("page_title", types.Unicode(255), nullable=False),
23     Column("date_report", types.Date),
24     Column("time_report", types.Time),
25     Column("date_entry", types.DateTime, nullable=False),
26     Column("date_invalid", types.DateTime),
27     Column("condition", types.Integer),
28     Column("description", types.Unicode),
29     Column("author_name", types.Unicode(30)),
30     Column("author_ip", types.Unicode(15)),
31     Column("author_userid", types.Integer),
32     Column("author_username", types.Unicode(30)),
33     Column("delete_date", types.DateTime),
34     Column("delete_person_name", types.Unicode(30)),
35     Column("delete_person_ip", types.Unicode(15)),
36     Column("delete_person_userid", types.Integer),
37     Column("delete_person_username", types.Unicode(30)),
38     Column("delete_reason_public", types.Unicode),
39     Column("delete_invisible", types.Boolean),
40     )
41
42
43 def wrsledruncache_table(metadata):
44     """Returns the sqlalchemy Table representing the "wrsledruncache" Winterrodeln table in MediaWiki.
45     Current table definition
46     * version 1.4 (renamed table and added column walkup_possible)
47     :param metadata: metadata = sqlalchemy.MetaData()
48     """
49     return Table("wrsledruncache", metadata,
50     Column("page_id", types.Integer, schema.ForeignKey('wrreportcache.page_id'), primary_key=True),
51     Column("page_title", types.Unicode(255)),
52     Column("name_url", types.Unicode(255)),
53     Column("position_latitude", types.Float),
54     Column("position_longitude", types.Float),
55     Column("top_latitude", types.Float),
56     Column("top_longitude", types.Float),
57     Column("top_elevation", types.Integer),
58     Column("bottom_latitude", types.Float),
59     Column("bottom_longitude", types.Float),
60     Column("bottom_elevation", types.Integer),
61     Column("length", types.Integer),
62     Column("difficulty", types.Integer),
63     Column("avalanches", types.Integer),
64     Column("operator", types.Unicode(255)),
65     Column("public_transport", types.Integer),
66     Column("walkup_possible", types.Boolean),
67     Column("walkup_time", types.Integer),
68     Column("walkup_separate", types.Float),
69     Column("walkup_separate_comment", types.Unicode(255)),
70     Column("lift", types.Boolean),
71     Column("lift_details", types.Unicode(255)),
72     Column("night_light", types.Float),
73     Column("night_light_comment", types.Unicode(255)),
74     Column("night_light_days", types.Integer),
75     Column("night_light_days_comment", types.Unicode(255)),
76     Column("sled_rental", types.Boolean),
77     Column("sled_rental_comment", types.Unicode(255)),
78     Column("cachet", types.Unicode(255)),
79     Column("information_web", types.Unicode(255)),
80     Column("information_phone", types.Unicode(255)),
81     Column("image", types.Unicode(255)),
82     Column("show_in_overview", types.Boolean),
83     Column("forum_id", types.Integer),
84     Column("under_construction", types.Boolean),
85     )
86
87
88 def wrinncache_table(metadata):
89     """Returns the sqlalchemy Table representing the "wrinncache" Winterrodeln table in MediaWiki.
90     Current table definition
91     * version 1.3 (changes made from version 1.2)
92     * version 1.4 (no changes)
93     :param metadata: metadata = sqlalchemy.MetaData()
94     """
95     return Table("wrinncache", metadata,
96     Column("page_id", types.Integer, primary_key=True),
97     Column("page_title", types.Unicode(255)),
98     Column("position_latitude", types.Float),
99     Column("position_longitude", types.Float),
100     Column("position_elevation", types.Integer),
101     Column("operator", types.Unicode(255)),
102     Column("seats", types.Integer),
103     Column("overnight", types.Boolean),
104     Column("overnight_comment", types.Unicode(255)),
105     Column("smoker_area", types.Boolean),
106     Column("nonsmoker_area", types.Boolean),
107     Column("sled_rental", types.Boolean),
108     Column("sled_rental_comment", types.Unicode(255)),
109     Column("mobile_provider", types.Unicode),
110     Column("homepage", types.Unicode(255)),
111     Column("email_list", types.Unicode),
112     Column("phone_list", types.Unicode),
113     Column("image", types.Unicode(255)),
114     Column("sledding_list", types.Unicode),
115     Column("under_construction", types.Boolean),
116     )
117
118
119 def wrreportcache_table(metadata):
120     """Returns the sqlalchemy Table representing the "wrreportcache" Winterrodeln table in MediaWiki.
121     Current table definition.
122     * version 1.5 (introduction)
123     :param metadata: metadata = sqlalchemy.MetaData()
124     """
125     return Table("wrreportcache", metadata,
126     Column("page_id", types.Integer, primary_key=True),
127     Column("page_title", types.Unicode(255), nullable=False),
128     Column("report_id", types.Integer, schema.ForeignKey('wrreport.id')),
129     Column("date_report", types.Date),
130     Column("condition", types.Integer),
131     Column("description", types.Unicode),
132     Column("author_name", types.Unicode(30)),
133     Column("author_username", types.Unicode(30))
134     )
135
136
137 def wrregion_table(metadata):
138     """Returns the sqlalchemy Table representing the "wrregion" Winterrodeln table in MediaWiki.
139     Current table definition.
140     * version 1.5 (introduction)
141     :param metadata: metadata = sqlalchemy.MetaData()
142     """
143     return Table("wrregion", metadata,
144     Column("id", types.Integer, primary_key=True),
145     Column("name", types.Unicode(50)),
146     Column("page_id", types.Integer),
147     Column("border", types.Binary) # MultiPolygon(2, 4326)
148     )
149
150
151 def wrregioncache_table(metadata):
152     """Returns the sqlalchemy Table representing the "wrregioncache" Winterrodeln table in MediaWiki.
153     Current table definition.
154     * version 1.5 (introduction)
155     :param metadata: metadata = sqlalchemy.MetaData()
156     """
157     return Table("wrregioncache", metadata,
158     Column("id", types.Integer, primary_key=True),
159     Column("region_id", types.Integer, schema.ForeignKey('wrregin.id')),
160     Column("page_id", types.Integer)
161     )