[Hejes-devel] [854] ekwiki: added data to rulestr columns, fixed bugs
hejes-devel at nytud.hu
hejes-devel at nytud.hu
Thu Jul 18 17:10:46 CEST 2013
Revision: 854
Author: mihaltz
Date: 2013-07-18 17:10:46 +0200 (Thu, 18 Jul 2013)
Log Message:
-----------
ekwiki: added data to rulestr columns, fixed bugs
Modified Paths:
--------------
trunk/misc/dbekwiki/create_grmrule_pages.py
trunk/web2py/applications/ekwiki/controllers/default.py
trunk/web2py/applications/ekwiki/databases/c8b669d15150d7109e5f7ab36744a5b7_wiki_page.table
trunk/web2py/applications/ekwiki/databases/sql.log
trunk/web2py/applications/ekwiki/databases/storage.sqlite
trunk/web2py/applications/ekwiki/progress.log
trunk/web2py/applications/ekwiki/views/default/toc.html
Modified: trunk/misc/dbekwiki/create_grmrule_pages.py
===================================================================
--- trunk/misc/dbekwiki/create_grmrule_pages.py 2013-07-18 11:01:22 UTC (rev 853)
+++ trunk/misc/dbekwiki/create_grmrule_pages.py 2013-07-18 15:10:46 UTC (rev 854)
@@ -9,6 +9,7 @@
sys.path.append('/opt/web2py')
from gluon import *
+from gluon.contrib.pymysql import escape_string
sys.path.append('../../web2py/applications/helyesiras_webdev/modules')
from egybekulon2_grammar import GrammarParser, GRM_FILE
@@ -41,13 +42,17 @@
for rule in rules:
print(rule.id)
rkey = ' + '.join([x[0] for x in rule.lhs])
+ rstr = str(rule).replace("'", "''")
# all columns: (id, rulestr, rulekey, slug, title, body, tags, can_read, can_edit, changelog, html, is_active, created_on, created_by, modified_on, modified_by)
- sql = """INSERT OR IGNORE INTO wiki_page
- (slug, title, body, tags, can_read, can_edit, html, is_active, created_on, created_by, rulekey)
- VALUES ('{0}', '#Rule# {1}', '#Rule {1}\n\nTODO', '||', '|everybody|', '|everybody|', '<h1>Rule {1}</h1><p>TODO</p><div class="w2p_wiki_tags"></div>', 'T', '{2}', 1, '{3}');
- """.format(rule.id.replace(':','-'), rule.id, '2013-07-17 12:00:00', rkey)
+ sql = '''INSERT OR IGNORE INTO wiki_page
+ (slug, title, body, tags, can_read, can_edit, html, is_active, created_on, created_by, rulekey, rulestr)
+ VALUES ('{0}', '#Rule# {1}', '#Rule {1}\n\nTODO', '||', '|everybody|', '|everybody|', '<h1>Rule {1}</h1><p>TODO</p>', 'T', '{2}', 1, '{3}', '{4}');
+ '''.format(rule.id.replace(':','-'), rule.id, '2013-07-18 16:46:00', rkey, rstr)
+ #escape_string(rstr).replace('{', '\\{').replace('}', '\\}'))
+ #print(sql)
r = db.executesql(sql)
if r != []:
print(r)
+
# commit
db.commit()
Modified: trunk/web2py/applications/ekwiki/controllers/default.py
===================================================================
--- trunk/web2py/applications/ekwiki/controllers/default.py 2013-07-18 11:01:22 UTC (rev 853)
+++ trunk/web2py/applications/ekwiki/controllers/default.py 2013-07-18 15:10:46 UTC (rev 854)
@@ -11,14 +11,12 @@
from gluon.tools import fetch
- at auth.requires_login()
def index():
"""
Redirect to wiki page
"""
redirect(URL('wiki'))
- at auth.requires_login()
def wiki():
"""
Use the built-in wiki
@@ -29,17 +27,17 @@
"""
Generate data for Table of Contents for the Wiki
Return following items in a dictionary:
- otherpages: array of tuples, records from table wiki_page, other pages
- termpages: array of tuples, records from table wiki_page, terminology pages (not rules or other)
- rulepages: array of tuples, records from table wiki_page, grammar rule pages
+ otherpages: array of dictionaries, records from table wiki_page, other pages
+ termpages: array of dictionaries, records from table wiki_page, terminology pages (not rules or other)
+ rulepages: array of dictionaries, records from table wiki_page, grammar rule pages
TODO: require authorization (adding @auth.requires_login() breaks it!!!)
"""
op, tp, rp = [], [], []
- pages = dbekwiki.executesql('SELECT * FROM wiki_page')
+ pages = dbekwiki.executesql('SELECT * FROM wiki_page', as_dict=True)
for row in pages:
- if row[1] in [u'index', u'toc', u'wiki-menu']:
+ if row['slug'] in [u'index', u'toc', u'wiki-menu']:
op.append(row)
- elif row[2].startswith(u'#Rule# '):
+ elif row['title'].startswith(u'#Rule# '):
rp.append(row)
else:
tp.append(row)
Modified: trunk/web2py/applications/ekwiki/databases/c8b669d15150d7109e5f7ab36744a5b7_wiki_page.table
===================================================================
--- trunk/web2py/applications/ekwiki/databases/c8b669d15150d7109e5f7ab36744a5b7_wiki_page.table 2013-07-18 11:01:22 UTC (rev 853)
+++ trunk/web2py/applications/ekwiki/databases/c8b669d15150d7109e5f7ab36744a5b7_wiki_page.table 2013-07-18 15:10:46 UTC (rev 854)
@@ -22,7 +22,7 @@
p10
S'text'
p11
-ssS'tags'
+ssS'can_edit'
p12
(dp13
g4
@@ -30,7 +30,7 @@
sg5
I00
sg6
-I7
+I9
sg7
S'TEXT'
p14
@@ -39,7 +39,7 @@
sg10
S'list:string'
p15
-ssS'is_active'
+ssS'modified_by'
p16
(dp17
g4
@@ -47,82 +47,82 @@
sg5
I00
sg6
-I12
+I16
sg7
-S'CHAR(1)'
+S'INTEGER REFERENCES auth_user (id) ON DELETE CASCADE'
p18
sg9
I00
sg10
-S'boolean'
+S'reference auth_user'
p19
-ssS'rulestr'
+ssS'title'
p20
(dp21
g4
-I32768
+I512
sg5
-I00
+I01
sg6
-I2
+I5
sg7
-S'TEXT'
+S'CHAR(512) UNIQUE'
p22
sg9
I00
sg10
-g11
-ssS'created_on'
+S'string'
p23
-(dp24
+ssS'is_active'
+p24
+(dp25
g4
I512
sg5
I00
sg6
-I13
+I12
sg7
-S'TIMESTAMP'
-p25
+S'CHAR(1)'
+p26
sg9
I00
sg10
-S'datetime'
-p26
-ssS'modified_on'
+S'boolean'
p27
-(dp28
+ssS'tags'
+p28
+(dp29
g4
I512
sg5
I00
sg6
-I15
+I7
sg7
-S'TIMESTAMP'
-p29
+S'TEXT'
+p30
sg9
I00
sg10
-g26
-ssS'id'
-p30
-(dp31
+g15
+ssS'rulestr'
+p31
+(dp32
g4
-I512
+I32768
sg5
I00
sg6
-I1
+I2
sg7
-S'INTEGER PRIMARY KEY AUTOINCREMENT'
-p32
+S'TEXT'
+p33
sg9
I00
sg10
-S'id'
-p33
-ssS'can_edit'
+g11
+ssS'changelog'
p34
(dp35
g4
@@ -130,15 +130,15 @@
sg5
I00
sg6
-I9
+I10
sg7
-S'TEXT'
+S'CHAR(512)'
p36
sg9
I00
sg10
-g15
-ssS'modified_by'
+g23
+ssS'created_by'
p37
(dp38
g4
@@ -146,126 +146,125 @@
sg5
I00
sg6
-I16
+I14
sg7
S'INTEGER REFERENCES auth_user (id) ON DELETE CASCADE'
p39
sg9
I00
sg10
-S'reference auth_user'
+g19
+ssS'slug'
p40
-ssS'title'
-p41
-(dp42
+(dp41
g4
I512
sg5
-I01
+I00
sg6
-I5
+I4
sg7
-S'CHAR(512) UNIQUE'
-p43
+S'CHAR(512)'
+p42
sg9
I00
sg10
-S'string'
-p44
-ssS'changelog'
-p45
-(dp46
+g23
+ssS'rulekey'
+p43
+(dp44
g4
I512
sg5
I00
sg6
-I10
+I3
sg7
S'CHAR(512)'
-p47
+p45
sg9
I00
sg10
-g44
-ssS'created_by'
-p48
-(dp49
+g23
+ssS'can_read'
+p46
+(dp47
g4
I512
sg5
I00
sg6
-I14
+I8
sg7
-S'INTEGER REFERENCES auth_user (id) ON DELETE CASCADE'
-p50
+S'TEXT'
+p48
sg9
I00
sg10
-g40
-ssS'slug'
-p51
-(dp52
+g15
+ssS'created_on'
+p49
+(dp50
g4
I512
sg5
I00
sg6
-I4
+I13
sg7
-S'CHAR(512)'
-p53
+S'TIMESTAMP'
+p51
sg9
I00
sg10
-g44
-ssS'rulekey'
-p54
-(dp55
+S'datetime'
+p52
+ssS'html'
+p53
+(dp54
g4
-I512
+I32768
sg5
I00
sg6
-I3
+I11
sg7
-S'CHAR(512)'
-p56
+S'TEXT'
+p55
sg9
I00
sg10
-g44
-ssS'can_read'
-p57
-(dp58
+g11
+ssS'modified_on'
+p56
+(dp57
g4
I512
sg5
I00
sg6
-I8
+I15
sg7
-S'TEXT'
-p59
+S'TIMESTAMP'
+p58
sg9
I00
sg10
-g15
-ssS'html'
-p60
-(dp61
+g52
+ssS'id'
+p59
+(dp60
g4
-I32768
+I512
sg5
I00
sg6
-I11
+I1
sg7
-S'TEXT'
-p62
+S'INTEGER PRIMARY KEY AUTOINCREMENT'
+p61
sg9
I00
sg10
-g11
+g59
ss.
\ No newline at end of file
Modified: trunk/web2py/applications/ekwiki/databases/sql.log
===================================================================
--- trunk/web2py/applications/ekwiki/databases/sql.log 2013-07-18 11:01:22 UTC (rev 853)
+++ trunk/web2py/applications/ekwiki/databases/sql.log 2013-07-18 15:10:46 UTC (rev 854)
@@ -1,4 +1,4 @@
-timestamp: 2013-07-11T16:48:30.213561
+timestamp: 2013-07-18T16:26:47.713956
CREATE TABLE auth_user(
id INTEGER PRIMARY KEY AUTOINCREMENT,
first_name CHAR(128),
@@ -10,21 +10,21 @@
registration_id CHAR(512)
);
success!
-timestamp: 2013-07-11T16:48:30.227191
+timestamp: 2013-07-18T16:26:47.770793
CREATE TABLE auth_group(
id INTEGER PRIMARY KEY AUTOINCREMENT,
role CHAR(512),
description TEXT
);
success!
-timestamp: 2013-07-11T16:48:30.265676
+timestamp: 2013-07-18T16:26:47.806746
CREATE TABLE auth_membership(
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER REFERENCES auth_user (id) ON DELETE CASCADE,
group_id INTEGER REFERENCES auth_group (id) ON DELETE CASCADE
);
success!
-timestamp: 2013-07-11T16:48:30.273753
+timestamp: 2013-07-18T16:26:47.814042
CREATE TABLE auth_permission(
id INTEGER PRIMARY KEY AUTOINCREMENT,
group_id INTEGER REFERENCES auth_group (id) ON DELETE CASCADE,
@@ -33,7 +33,7 @@
record_id INTEGER
);
success!
-timestamp: 2013-07-11T16:48:30.282379
+timestamp: 2013-07-18T16:26:47.819931
CREATE TABLE auth_event(
id INTEGER PRIMARY KEY AUTOINCREMENT,
time_stamp TIMESTAMP,
@@ -43,7 +43,7 @@
description TEXT
);
success!
-timestamp: 2013-07-11T16:48:30.320854
+timestamp: 2013-07-18T16:26:47.829455
CREATE TABLE auth_cas(
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER REFERENCES auth_user (id) ON DELETE CASCADE,
@@ -53,9 +53,11 @@
renew CHAR(1)
);
success!
-timestamp: 2013-07-11T16:48:30.336876
+timestamp: 2013-07-18T16:26:47.837956
CREATE TABLE wiki_page(
id INTEGER PRIMARY KEY AUTOINCREMENT,
+ rulestr TEXT,
+ rulekey CHAR(512),
slug CHAR(512),
title CHAR(512) UNIQUE,
body TEXT NOT NULL,
@@ -71,7 +73,7 @@
modified_by INTEGER REFERENCES auth_user (id) ON DELETE CASCADE
);
success!
-timestamp: 2013-07-11T16:48:30.365925
+timestamp: 2013-07-18T16:26:47.854176
CREATE TABLE wiki_tag(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name CHAR(512),
@@ -83,7 +85,7 @@
modified_by INTEGER REFERENCES auth_user (id) ON DELETE CASCADE
);
success!
-timestamp: 2013-07-11T16:48:30.379328
+timestamp: 2013-07-18T16:26:47.860595
CREATE TABLE wiki_media(
id INTEGER PRIMARY KEY AUTOINCREMENT,
wiki_page INTEGER REFERENCES wiki_page (id) ON DELETE CASCADE,
@@ -96,7 +98,3 @@
modified_by INTEGER REFERENCES auth_user (id) ON DELETE CASCADE
);
success!
-timestamp: 2013-07-17T15:44:37.540730
-ALTER TABLE wiki_page ADD rulestr TEXT;
-timestamp: 2013-07-17T15:44:37.618520
-ALTER TABLE wiki_page ADD rulekey TEXT;
Modified: trunk/web2py/applications/ekwiki/databases/storage.sqlite
===================================================================
(Binary files differ)
Modified: trunk/web2py/applications/ekwiki/progress.log
===================================================================
--- trunk/web2py/applications/ekwiki/progress.log 2013-07-18 11:01:22 UTC (rev 853)
+++ trunk/web2py/applications/ekwiki/progress.log 2013-07-18 15:10:46 UTC (rev 854)
@@ -83,3 +83,9 @@
[2013-07-17 15:23:01] EDIT ekwiki/controllers/default.py: 1
[2013-07-17 15:38:27] EDIT ekwiki/models/db.py: 1
[2013-07-17 15:44:08] EDIT ekwiki/models/db.py: 0
+[2013-07-18 16:58:31] EDIT ekwiki/views/default/toc.html: 0
+[2013-07-18 17:03:01] EDIT ekwiki/controllers/default.py: 0
+[2013-07-18 17:03:22] EDIT ekwiki/controllers/default.py: 0
+[2013-07-18 17:03:34] EDIT ekwiki/controllers/default.py: 0
+[2013-07-18 17:03:41] EDIT ekwiki/controllers/default.py: 0
+[2013-07-18 17:04:24] EDIT ekwiki/views/default/toc.html: 0
Modified: trunk/web2py/applications/ekwiki/views/default/toc.html
===================================================================
--- trunk/web2py/applications/ekwiki/views/default/toc.html 2013-07-18 11:01:22 UTC (rev 853)
+++ trunk/web2py/applications/ekwiki/views/default/toc.html 2013-07-18 15:10:46 UTC (rev 854)
@@ -3,21 +3,21 @@
<p>Szócikkek oldalai:</p>
<ul>
{{for row in termpages:}}
- <li>{{=A(row[2], _href=URL(f='wiki', args=row[1]))}}</li>
+ <li>{{=A(row['title'].encode('utf8'), _href=URL(f='wiki', args=row['slug'].encode('utf8')))}}</li>
{{pass}}
</ul>
<p>Szabályok oldalai (grm fájlbeli sorrendben):</p>
<ul>
{{for row in rulepages:}}
- <li>{{=A(row[2], _href=URL(f='wiki', args=row[1]))}}</li>
+ <li>{{=A(row['title'].encode('utf8'), _href=URL(f='wiki', args=row['slug'].encode('utf8')))}}</li>
{{pass}}
</ul>
<p>Egyéb oldalak:</p>
<ul>
{{for row in otherpages:}}
- <li>{{=A(row[2], _href=URL(f='wiki', args=row[1]))}}</li>
+ <li>{{=A(row['title'].encode('utf8'), _href=URL(f='wiki', args=row['slug'].encode('utf8')))}}</li>
{{pass}}
</ul>
More information about the Hejes-devel
mailing list