[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