From 7e558620e0b6bc67eab4421a33f17e3a15ea3fd3 Mon Sep 17 00:00:00 2001
From: david <>
Date: Mon, 20 May 2002 19:50:54 +0000
Subject: [PATCH] lots of testing and bugfixing from database conversion right
up to unit tests, conversion, and HTML generation, all due to i18n changes
that have accumulated.
---
LDP/lampadas/database/defaults.sql | 428 ++++++++++++++++-------
LDP/lampadas/database/document.sql | 2 +-
LDP/lampadas/database/document_file.sql | 2 +-
LDP/lampadas/database/format.sql | 4 +-
LDP/lampadas/database/format_i18n.sql | 5 +-
LDP/lampadas/database/indexes.sql | 10 +-
LDP/lampadas/database/string.sql | 4 +-
LDP/lampadas/database/string_i18n.sql | 4 +-
LDP/lampadas/database/topic_i18n.sql | 2 +-
LDP/lampadas/database/updates/update-0.2 | 52 ++-
LDP/lampadas/pylib/Converter.py | 10 +-
LDP/lampadas/pylib/DataLayer.py | 49 +--
LDP/lampadas/pylib/HTML.py | 80 ++++-
LDP/lampadas/pylib/UnitTest.py | 15 +-
14 files changed, 446 insertions(+), 221 deletions(-)
diff --git a/LDP/lampadas/database/defaults.sql b/LDP/lampadas/database/defaults.sql
index c0659be6..6f042c8e 100644
--- a/LDP/lampadas/database/defaults.sql
+++ b/LDP/lampadas/database/defaults.sql
@@ -1,137 +1,293 @@
-INSERT INTO language(isocode, language_name) values ('AA', 'Afar');
-INSERT INTO language(isocode, language_name) values ('AB', 'Abkhazian');
-INSERT INTO language(isocode, language_name) values ('AF', 'Afrikaans');
-INSERT INTO language(isocode, language_name) values ('AM', 'Amharic');
-INSERT INTO language(isocode, language_name) values ('AR', 'Arabic');
-INSERT INTO language(isocode, language_name) values ('AS', 'Assamese');
-INSERT INTO language(isocode, language_name) values ('AY', 'Aymara');
-INSERT INTO language(isocode, language_name) values ('AZ', 'Azerbaijani');
-INSERT INTO language(isocode, language_name) values ('BA', 'Bashkir');
-INSERT INTO language(isocode, language_name) values ('BE', 'Byelorussian');
-INSERT INTO language(isocode, language_name) values ('BG', 'Bulgarian');
-INSERT INTO language(isocode, language_name) values ('BH', 'Bihari');
-INSERT INTO language(isocode, language_name) values ('BI', 'Bislama');
-INSERT INTO language(isocode, language_name) values ('BN', 'Bengali');
-INSERT INTO language(isocode, language_name) values ('BO', 'Tibetan');
-INSERT INTO language(isocode, language_name) values ('BR', 'Breton');
-INSERT INTO language(isocode, language_name) values ('CA', 'Catalan');
-INSERT INTO language(isocode, language_name) values ('CO', 'Corsican');
-INSERT INTO language(isocode, language_name) values ('CS', 'Czech');
-INSERT INTO language(isocode, language_name) values ('CY', 'Welsh');
-INSERT INTO language(isocode, language_name) values ('DA', 'Danish');
-INSERT INTO language(isocode, language_name) values ('DE', 'German');
-INSERT INTO language(isocode, language_name) values ('DZ', 'Bhutani');
-INSERT INTO language(isocode, language_name) values ('EL', 'Greek');
-INSERT INTO language(isocode, language_name) values ('EN', 'English');
-INSERT INTO language(isocode, language_name) values ('EO', 'Esperanto');
-INSERT INTO language(isocode, language_name) values ('ES', 'Spanish');
-INSERT INTO language(isocode, language_name) values ('ET', 'Estonian');
-INSERT INTO language(isocode, language_name) values ('EU', 'Basque');
-INSERT INTO language(isocode, language_name) values ('FA', 'Persian');
-INSERT INTO language(isocode, language_name) values ('FI', 'Finnish');
-INSERT INTO language(isocode, language_name) values ('FJ', 'Fiji');
-INSERT INTO language(isocode, language_name) values ('FO', 'Faeroese');
-INSERT INTO language(isocode, language_name) values ('FR', 'French');
-INSERT INTO language(isocode, language_name) values ('FY', 'Frisian');
-INSERT INTO language(isocode, language_name) values ('GA', 'Irish');
-INSERT INTO language(isocode, language_name) values ('GD', 'Gaelic (Scots Gaelic)');
-INSERT INTO language(isocode, language_name) values ('GL', 'Galician');
-INSERT INTO language(isocode, language_name) values ('GN', 'Guarani');
-INSERT INTO language(isocode, language_name) values ('GU', 'Gujarati');
-INSERT INTO language(isocode, language_name) values ('HA', 'Hausa');
-INSERT INTO language(isocode, language_name) values ('HI', 'Hindi');
-INSERT INTO language(isocode, language_name) values ('HR', 'Croatian');
-INSERT INTO language(isocode, language_name) values ('HU', 'Hungarian');
-INSERT INTO language(isocode, language_name) values ('HY', 'Armenian');
-INSERT INTO language(isocode, language_name) values ('IA', 'Interlingua');
-INSERT INTO language(isocode, language_name) values ('IE', 'Interlingue');
-INSERT INTO language(isocode, language_name) values ('IK', 'Inupiak');
-INSERT INTO language(isocode, language_name) values ('IN', 'Indonesian');
-INSERT INTO language(isocode, language_name) values ('IS', 'Icelandic');
-INSERT INTO language(isocode, language_name) values ('IT', 'Italian');
-INSERT INTO language(isocode, language_name) values ('IW', 'Hebrew');
-INSERT INTO language(isocode, language_name) values ('JA', 'Japanese');
-INSERT INTO language(isocode, language_name) values ('JI', 'Yiddish');
-INSERT INTO language(isocode, language_name) values ('JW', 'Javanese');
-INSERT INTO language(isocode, language_name) values ('KA', 'Georgian');
-INSERT INTO language(isocode, language_name) values ('KK', 'Kazakh');
-INSERT INTO language(isocode, language_name) values ('KL', 'Greenlandic');
-INSERT INTO language(isocode, language_name) values ('KM', 'Cambodian');
-INSERT INTO language(isocode, language_name) values ('KN', 'Kannada');
-INSERT INTO language(isocode, language_name) values ('KO', 'Korean');
-INSERT INTO language(isocode, language_name) values ('KS', 'Kashmiri');
-INSERT INTO language(isocode, language_name) values ('KU', 'Kurdish');
-INSERT INTO language(isocode, language_name) values ('KY', 'Kirghiz');
-INSERT INTO language(isocode, language_name) values ('LA', 'Latin');
-INSERT INTO language(isocode, language_name) values ('LN', 'Lingala');
-INSERT INTO language(isocode, language_name) values ('LO', 'Laothian');
-INSERT INTO language(isocode, language_name) values ('LT', 'Lithuanian');
-INSERT INTO language(isocode, language_name) values ('LV', 'Latvian (Lettish)');
-INSERT INTO language(isocode, language_name) values ('MG', 'Malagasy');
-INSERT INTO language(isocode, language_name) values ('MI', 'Maori');
-INSERT INTO language(isocode, language_name) values ('MK', 'Macedonian');
-INSERT INTO language(isocode, language_name) values ('ML', 'Malayalam');
-INSERT INTO language(isocode, language_name) values ('MN', 'Mongolian');
-INSERT INTO language(isocode, language_name) values ('MO', 'Moldavian');
-INSERT INTO language(isocode, language_name) values ('MR', 'Marathi');
-INSERT INTO language(isocode, language_name) values ('MS', 'Malay');
-INSERT INTO language(isocode, language_name) values ('MT', 'Maltese');
-INSERT INTO language(isocode, language_name) values ('MY', 'Burmese');
-INSERT INTO language(isocode, language_name) values ('NA', 'Nauru');
-INSERT INTO language(isocode, language_name) values ('NE', 'Nepali');
-INSERT INTO language(isocode, language_name) values ('NL', 'Dutch');
-INSERT INTO language(isocode, language_name) values ('NO', 'Norwegian');
-INSERT INTO language(isocode, language_name) values ('OC', 'Occitan');
-INSERT INTO language(isocode, language_name) values ('OM', 'Oromo (Afan)');
-INSERT INTO language(isocode, language_name) values ('OR', 'Oriya');
-INSERT INTO language(isocode, language_name) values ('PA', 'Punjabi');
-INSERT INTO language(isocode, language_name) values ('PL', 'Polish');
-INSERT INTO language(isocode, language_name) values ('PS', 'Pashto (Pushto)');
-INSERT INTO language(isocode, language_name) values ('PT', 'Portuguese');
-INSERT INTO language(isocode, language_name) values ('QU', 'Quechua');
-INSERT INTO language(isocode, language_name) values ('RM', 'Rhaeto-Romance');
-INSERT INTO language(isocode, language_name) values ('RN', 'Kirundi');
-INSERT INTO language(isocode, language_name) values ('RO', 'Romanian');
-INSERT INTO language(isocode, language_name) values ('RU', 'Russian');
-INSERT INTO language(isocode, language_name) values ('RW', 'Kinyarwanda');
-INSERT INTO language(isocode, language_name) values ('SA', 'Sanskrit');
-INSERT INTO language(isocode, language_name) values ('SD', 'Sindhi');
-INSERT INTO language(isocode, language_name) values ('SG', 'Sangro');
-INSERT INTO language(isocode, language_name) values ('SH', 'Serbo-Croatian');
-INSERT INTO language(isocode, language_name) values ('SI', 'Singhalese');
-INSERT INTO language(isocode, language_name) values ('SK', 'Slovak');
-INSERT INTO language(isocode, language_name) values ('SL', 'Slovenian');
-INSERT INTO language(isocode, language_name) values ('SM', 'Samoan');
-INSERT INTO language(isocode, language_name) values ('SN', 'Shona');
-INSERT INTO language(isocode, language_name) values ('SO', 'Somali');
-INSERT INTO language(isocode, language_name) values ('SQ', 'Albanian');
-INSERT INTO language(isocode, language_name) values ('SR', 'Serbian');
-INSERT INTO language(isocode, language_name) values ('SS', 'Siswati');
-INSERT INTO language(isocode, language_name) values ('ST', 'Sesotho');
-INSERT INTO language(isocode, language_name) values ('SU', 'Sudanese');
-INSERT INTO language(isocode, language_name) values ('SV', 'Swedish');
-INSERT INTO language(isocode, language_name) values ('SW', 'Swahili');
-INSERT INTO language(isocode, language_name) values ('TA', 'Tamil');
-INSERT INTO language(isocode, language_name) values ('TE', 'Tegulu');
-INSERT INTO language(isocode, language_name) values ('TG', 'Tajik');
-INSERT INTO language(isocode, language_name) values ('TH', 'Thai');
-INSERT INTO language(isocode, language_name) values ('TI', 'Tigrinya');
-INSERT INTO language(isocode, language_name) values ('TK', 'Turkmen');
-INSERT INTO language(isocode, language_name) values ('TL', 'Tagalog');
-INSERT INTO language(isocode, language_name) values ('TN', 'Setswana');
-INSERT INTO language(isocode, language_name) values ('TO', 'Tonga');
-INSERT INTO language(isocode, language_name) values ('TR', 'Turkish');
-INSERT INTO language(isocode, language_name) values ('TS', 'Tsonga');
-INSERT INTO language(isocode, language_name) values ('TT', 'Tatar');
-INSERT INTO language(isocode, language_name) values ('TW', 'Twi');
-INSERT INTO language(isocode, language_name) values ('UK', 'Ukrainian');
-INSERT INTO language(isocode, language_name) values ('UR', 'Urdu');
-INSERT INTO language(isocode, language_name) values ('UZ', 'Uzbek');
-INSERT INTO language(isocode, language_name) values ('VI', 'Vietnamese');
-INSERT INTO language(isocode, language_name) values ('VO', 'Volapuk');
-INSERT INTO language(isocode, language_name) values ('WO', 'Wolof');
-INSERT INTO language(isocode, language_name) values ('XH', 'Xhosa');
-INSERT INTO language(isocode, language_name) values ('YO', 'Yoruba');
-INSERT INTO language(isocode, language_name) values ('ZH', 'Chinese');
-INSERT INTO language(isocode, language_name) values ('ZU', 'Zulu');
+DELETE FROM language_i18n;
+DELETE FROM language;
+DELETE FROM string_i18n;
+DELETE FROM string;
+INSERT INTO language(isocode) values ('AA');
+INSERT INTO language(isocode) values ('AB');
+INSERT INTO language(isocode) values ('AF');
+INSERT INTO language(isocode) values ('AM');
+INSERT INTO language(isocode) values ('AR');
+INSERT INTO language(isocode) values ('AS');
+INSERT INTO language(isocode) values ('AY');
+INSERT INTO language(isocode) values ('AZ');
+INSERT INTO language(isocode) values ('BA');
+INSERT INTO language(isocode) values ('BE');
+INSERT INTO language(isocode) values ('BG');
+INSERT INTO language(isocode) values ('BH');
+INSERT INTO language(isocode) values ('BI');
+INSERT INTO language(isocode) values ('BN');
+INSERT INTO language(isocode) values ('BO');
+INSERT INTO language(isocode) values ('BR');
+INSERT INTO language(isocode) values ('CA');
+INSERT INTO language(isocode) values ('CO');
+INSERT INTO language(isocode) values ('CS');
+INSERT INTO language(isocode) values ('CY');
+INSERT INTO language(isocode) values ('DA');
+INSERT INTO language(isocode) values ('DE');
+INSERT INTO language(isocode) values ('DZ');
+INSERT INTO language(isocode) values ('EL');
+INSERT INTO language(isocode) values ('EN');
+INSERT INTO language(isocode) values ('EO');
+INSERT INTO language(isocode) values ('ES');
+INSERT INTO language(isocode) values ('ET');
+INSERT INTO language(isocode) values ('EU');
+INSERT INTO language(isocode) values ('FA');
+INSERT INTO language(isocode) values ('FI');
+INSERT INTO language(isocode) values ('FJ');
+INSERT INTO language(isocode) values ('FO');
+INSERT INTO language(isocode) values ('FR');
+INSERT INTO language(isocode) values ('FY');
+INSERT INTO language(isocode) values ('GA');
+INSERT INTO language(isocode) values ('GD');
+INSERT INTO language(isocode) values ('GL');
+INSERT INTO language(isocode) values ('GN');
+INSERT INTO language(isocode) values ('GU');
+INSERT INTO language(isocode) values ('HA');
+INSERT INTO language(isocode) values ('HI');
+INSERT INTO language(isocode) values ('HR');
+INSERT INTO language(isocode) values ('HU');
+INSERT INTO language(isocode) values ('HY');
+INSERT INTO language(isocode) values ('IA');
+INSERT INTO language(isocode) values ('IE');
+INSERT INTO language(isocode) values ('IK');
+INSERT INTO language(isocode) values ('IN');
+INSERT INTO language(isocode) values ('IS');
+INSERT INTO language(isocode) values ('IT');
+INSERT INTO language(isocode) values ('IW');
+INSERT INTO language(isocode) values ('JA');
+INSERT INTO language(isocode) values ('JI');
+INSERT INTO language(isocode) values ('JW');
+INSERT INTO language(isocode) values ('KA');
+INSERT INTO language(isocode) values ('KK');
+INSERT INTO language(isocode) values ('KL');
+INSERT INTO language(isocode) values ('KM');
+INSERT INTO language(isocode) values ('KN');
+INSERT INTO language(isocode) values ('KO');
+INSERT INTO language(isocode) values ('KS');
+INSERT INTO language(isocode) values ('KU');
+INSERT INTO language(isocode) values ('KY');
+INSERT INTO language(isocode) values ('LA');
+INSERT INTO language(isocode) values ('LN');
+INSERT INTO language(isocode) values ('LO');
+INSERT INTO language(isocode) values ('LT');
+INSERT INTO language(isocode) values ('LV');
+INSERT INTO language(isocode) values ('MG');
+INSERT INTO language(isocode) values ('MI');
+INSERT INTO language(isocode) values ('MK');
+INSERT INTO language(isocode) values ('ML');
+INSERT INTO language(isocode) values ('MN');
+INSERT INTO language(isocode) values ('MO');
+INSERT INTO language(isocode) values ('MR');
+INSERT INTO language(isocode) values ('MS');
+INSERT INTO language(isocode) values ('MT');
+INSERT INTO language(isocode) values ('MY');
+INSERT INTO language(isocode) values ('NA');
+INSERT INTO language(isocode) values ('NE');
+INSERT INTO language(isocode) values ('NL');
+INSERT INTO language(isocode) values ('NO');
+INSERT INTO language(isocode) values ('OC');
+INSERT INTO language(isocode) values ('OM');
+INSERT INTO language(isocode) values ('OR');
+INSERT INTO language(isocode) values ('PA');
+INSERT INTO language(isocode) values ('PL');
+INSERT INTO language(isocode) values ('PS');
+INSERT INTO language(isocode) values ('PT');
+INSERT INTO language(isocode) values ('QU');
+INSERT INTO language(isocode) values ('RM');
+INSERT INTO language(isocode) values ('RN');
+INSERT INTO language(isocode) values ('RO');
+INSERT INTO language(isocode) values ('RU');
+INSERT INTO language(isocode) values ('RW');
+INSERT INTO language(isocode) values ('SA');
+INSERT INTO language(isocode) values ('SD');
+INSERT INTO language(isocode) values ('SG');
+INSERT INTO language(isocode) values ('SH');
+INSERT INTO language(isocode) values ('SI');
+INSERT INTO language(isocode) values ('SK');
+INSERT INTO language(isocode) values ('SL');
+INSERT INTO language(isocode) values ('SM');
+INSERT INTO language(isocode) values ('SN');
+INSERT INTO language(isocode) values ('SO');
+INSERT INTO language(isocode) values ('SQ');
+INSERT INTO language(isocode) values ('SR');
+INSERT INTO language(isocode) values ('SS');
+INSERT INTO language(isocode) values ('ST');
+INSERT INTO language(isocode) values ('SU');
+INSERT INTO language(isocode) values ('SV');
+INSERT INTO language(isocode) values ('SW');
+INSERT INTO language(isocode) values ('TA');
+INSERT INTO language(isocode) values ('TE');
+INSERT INTO language(isocode) values ('TG');
+INSERT INTO language(isocode) values ('TH');
+INSERT INTO language(isocode) values ('TI');
+INSERT INTO language(isocode) values ('TK');
+INSERT INTO language(isocode) values ('TL');
+INSERT INTO language(isocode) values ('TN');
+INSERT INTO language(isocode) values ('TO');
+INSERT INTO language(isocode) values ('TR');
+INSERT INTO language(isocode) values ('TS');
+INSERT INTO language(isocode) values ('TT');
+INSERT INTO language(isocode) values ('TW');
+INSERT INTO language(isocode) values ('UK');
+INSERT INTO language(isocode) values ('UR');
+INSERT INTO language(isocode) values ('UZ');
+INSERT INTO language(isocode) values ('VI');
+INSERT INTO language(isocode) values ('VO');
+INSERT INTO language(isocode) values ('WO');
+INSERT INTO language(isocode) values ('XH');
+INSERT INTO language(isocode) values ('YO');
+INSERT INTO language(isocode) values ('ZH');
+INSERT INTO language(isocode) values ('ZU');
+
+INSERT INTO language_i18n(isocode, lang, language_name) values ('AA', 'EN', 'Afar');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('AB', 'EN', 'Abkhazian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('AF', 'EN', 'Afrikaans');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('AM', 'EN', 'Amharic');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('AR', 'EN', 'Arabic');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('AS', 'EN', 'Assamese');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('AY', 'EN', 'Aymara');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('AZ', 'EN', 'Azerbaijani');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('BA', 'EN', 'Bashkir');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('BE', 'EN', 'Byelorussian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('BG', 'EN', 'Bulgarian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('BH', 'EN', 'Bihari');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('BI', 'EN', 'Bislama');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('BN', 'EN', 'Bengali');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('BO', 'EN', 'Tibetan');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('BR', 'EN', 'Breton');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('CA', 'EN', 'Catalan');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('CO', 'EN', 'Corsican');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('CS', 'EN', 'Czech');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('CY', 'EN', 'Welsh');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('DA', 'EN', 'Danish');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('DE', 'EN', 'German');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('DZ', 'EN', 'Bhutani');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('EL', 'EN', 'Greek');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('EN', 'EN', 'English');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('EO', 'EN', 'Esperanto');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('ES', 'EN', 'Spanish');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('ET', 'EN', 'Estonian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('EU', 'EN', 'Basque');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('FA', 'EN', 'Persian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('FI', 'EN', 'Finnish');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('FJ', 'EN', 'Fiji');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('FO', 'EN', 'Faeroese');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('FR', 'EN', 'French');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('FY', 'EN', 'Frisian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('GA', 'EN', 'Irish');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('GD', 'EN', 'Gaelic (Scots Gaelic)');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('GL', 'EN', 'Galician');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('GN', 'EN', 'Guarani');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('GU', 'EN', 'Gujarati');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('HA', 'EN', 'Hausa');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('HI', 'EN', 'Hindi');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('HR', 'EN', 'Croatian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('HU', 'EN', 'Hungarian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('HY', 'EN', 'Armenian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('IA', 'EN', 'Interlingua');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('IE', 'EN', 'Interlingue');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('IK', 'EN', 'Inupiak');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('IN', 'EN', 'Indonesian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('IS', 'EN', 'Icelandic');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('IT', 'EN', 'Italian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('IW', 'EN', 'Hebrew');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('JA', 'EN', 'Japanese');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('JI', 'EN', 'Yiddish');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('JW', 'EN', 'Javanese');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('KA', 'EN', 'Georgian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('KK', 'EN', 'Kazakh');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('KL', 'EN', 'Greenlandic');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('KM', 'EN', 'Cambodian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('KN', 'EN', 'Kannada');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('KO', 'EN', 'Korean');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('KS', 'EN', 'Kashmiri');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('KU', 'EN', 'Kurdish');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('KY', 'EN', 'Kirghiz');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('LA', 'EN', 'Latin');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('LN', 'EN', 'Lingala');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('LO', 'EN', 'Laothian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('LT', 'EN', 'Lithuanian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('LV', 'EN', 'Latvian (Lettish)');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('MG', 'EN', 'Malagasy');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('MI', 'EN', 'Maori');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('MK', 'EN', 'Macedonian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('ML', 'EN', 'Malayalam');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('MN', 'EN', 'Mongolian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('MO', 'EN', 'Moldavian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('MR', 'EN', 'Marathi');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('MS', 'EN', 'Malay');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('MT', 'EN', 'Maltese');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('MY', 'EN', 'Burmese');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('NA', 'EN', 'Nauru');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('NE', 'EN', 'Nepali');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('NL', 'EN', 'Dutch');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('NO', 'EN', 'Norwegian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('OC', 'EN', 'Occitan');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('OM', 'EN', 'Oromo (Afan)');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('OR', 'EN', 'Oriya');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('PA', 'EN', 'Punjabi');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('PL', 'EN', 'Polish');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('PS', 'EN', 'Pashto (Pushto)');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('PT', 'EN', 'Portuguese');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('QU', 'EN', 'Quechua');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('RM', 'EN', 'Rhaeto-Romance');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('RN', 'EN', 'Kirundi');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('RO', 'EN', 'Romanian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('RU', 'EN', 'Russian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('RW', 'EN', 'Kinyarwanda');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SA', 'EN', 'Sanskrit');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SD', 'EN', 'Sindhi');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SG', 'EN', 'Sangro');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SH', 'EN', 'Serbo-Croatian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SI', 'EN', 'Singhalese');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SK', 'EN', 'Slovak');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SL', 'EN', 'Slovenian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SM', 'EN', 'Samoan');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SN', 'EN', 'Shona');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SO', 'EN', 'Somali');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SQ', 'EN', 'Albanian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SR', 'EN', 'Serbian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SS', 'EN', 'Siswati');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('ST', 'EN', 'Sesotho');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SU', 'EN', 'Sudanese');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SV', 'EN', 'Swedish');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('SW', 'EN', 'Swahili');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('TA', 'EN', 'Tamil');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('TE', 'EN', 'Tegulu');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('TG', 'EN', 'Tajik');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('TH', 'EN', 'Thai');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('TI', 'EN', 'Tigrinya');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('TK', 'EN', 'Turkmen');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('TL', 'EN', 'Tagalog');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('TN', 'EN', 'Setswana');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('TO', 'EN', 'Tonga');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('TR', 'EN', 'Turkish');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('TS', 'EN', 'Tsonga');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('TT', 'EN', 'Tatar');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('TW', 'EN', 'Twi');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('UK', 'EN', 'Ukrainian');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('UR', 'EN', 'Urdu');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('UZ', 'EN', 'Uzbek');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('VI', 'EN', 'Vietnamese');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('VO', 'EN', 'Volapuk');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('WO', 'EN', 'Wolof');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('XH', 'EN', 'Xhosa');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('YO', 'EN', 'Yoruba');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('ZH', 'EN', 'Chinese');
+INSERT INTO language_i18n(isocode, lang, language_name) values ('ZU', 'EN', 'Zulu');
+
+INSERT INTO string(string_id) VALUES (1);
+INSERT INTO string(string_id) VALUES (2);
+INSERT INTO string(string_id) VALUES (3);
+
+INSERT INTO string(string_id) VALUES (1000);
+INSERT INTO string(string_id) VALUES (2000);
+
+INSERT INTO string_i18n(string_id, lang, string) VALUES (1, 'EN', 'Test Text');
+INSERT INTO string_i18n(string_id, lang, string) VALUES (2, 'EN', '
Lampadas Header
');
+INSERT INTO string_i18n(string_id, lang, string) VALUES (3, 'EN', 'Lampadas Footer
');
+
+INSERT INTO string_i18n(string_id, lang, string) VALUES (1000, 'EN', '|header| |body| |footer|');
+
+INSERT INTO string_i18n(string_id, lang, string) VALUES (2000, 'EN', 'Hi, this page will be about Lampadas.');
diff --git a/LDP/lampadas/database/document.sql b/LDP/lampadas/database/document.sql
index a09dcbd3..1cb335f1 100644
--- a/LDP/lampadas/database/document.sql
+++ b/LDP/lampadas/database/document.sql
@@ -5,7 +5,7 @@ CREATE TABLE document
doc_id INT4 NOT NULL,
title TEXT NOT NULL,
class_id INT4,
- format CHAR(12),
+ format_id INT4,
dtd CHAR(12),
dtd_version CHAR(12),
version CHAR(12),
diff --git a/LDP/lampadas/database/document_file.sql b/LDP/lampadas/database/document_file.sql
index c85b6c8e..628b33ee 100644
--- a/LDP/lampadas/database/document_file.sql
+++ b/LDP/lampadas/database/document_file.sql
@@ -4,7 +4,7 @@ CREATE TABLE document_file
(
doc_id INT4 NOT NULL,
filename TEXT NOT NULL,
- format CHAR(12),
+ format_id INT4,
PRIMARY KEY (doc_id, filename)
);
diff --git a/LDP/lampadas/database/format.sql b/LDP/lampadas/database/format.sql
index 97c3b71f..31e03ee0 100644
--- a/LDP/lampadas/database/format.sql
+++ b/LDP/lampadas/database/format.sql
@@ -2,7 +2,7 @@ DROP TABLE format;
CREATE TABLE format
(
- format CHAR(12) NOT NULL,
+ format_id INT4 NOT NULL,
- PRIMARY KEY (format)
+ PRIMARY KEY (format_id)
);
diff --git a/LDP/lampadas/database/format_i18n.sql b/LDP/lampadas/database/format_i18n.sql
index def71de0..4d24472f 100644
--- a/LDP/lampadas/database/format_i18n.sql
+++ b/LDP/lampadas/database/format_i18n.sql
@@ -2,9 +2,10 @@ DROP TABLE format_i18n;
CREATE TABLE format_i18n
(
- format CHAR(12) NOT NULL,
+ format_id INT4 NOT NULL,
lang CHAR(2) NOT NULL,
format_name TEXT NOT NULL,
+ format_desc TEXT,
- PRIMARY KEY (format, lang)
+ PRIMARY KEY (format_id, lang)
);
diff --git a/LDP/lampadas/database/indexes.sql b/LDP/lampadas/database/indexes.sql
index ea72e14e..4d922762 100644
--- a/LDP/lampadas/database/indexes.sql
+++ b/LDP/lampadas/database/indexes.sql
@@ -1,7 +1,7 @@
ALTER TABLE class_i18n ADD CONSTRAINT class_id_fk FOREIGN KEY (class_id) REFERENCES class(class_id);
ALTER TABLE class_i18n ADD CONSTRAINT class_lang_fk FOREIGN KEY (lang) REFERENCES language(isocode);
ALTER TABLE document ADD CONSTRAINT class_id_fk FOREIGN KEY (class_id) REFERENCES class(class_id);
-ALTER TABLE document ADD CONSTRAINT format_fk FOREIGN KEY (format) REFERENCES format(format);
+ALTER TABLE document ADD CONSTRAINT format_id_fk FOREIGN KEY (format_id) REFERENCES format(format_id);
ALTER TABLE document ADD CONSTRAINT dtd_fk FOREIGN KEY (dtd) REFERENCES dtd(dtd);
ALTER TABLE document ADD CONSTRAINT pub_status_fk FOREIGN KEY (pub_status) REFERENCES pub_status(pub_status);
ALTER TABLE document ADD CONSTRAINT review_status_fk FOREIGN KEY (review_status) REFERENCES review_status(review_status);
@@ -10,7 +10,7 @@ ALTER TABLE document ADD CONSTRAINT license_fk FOREIGN KEY (license) REFEREN
ALTER TABLE document ADD CONSTRAINT language_fk FOREIGN KEY (lang) REFERENCES language(isocode);
ALTER TABLE document_error ADD CONSTRAINT doc_id_fk FOREIGN KEY (doc_id) REFERENCES document(doc_id);
ALTER TABLE document_file ADD CONSTRAINT doc_id_fk FOREIGN KEY (doc_id) REFERENCES document(doc_id);
-ALTER TABLE document_file ADD CONSTRAINT format_fk FOREIGN KEY (format) REFERENCES format(format);
+ALTER TABLE document_file ADD CONSTRAINT format_id_fk FOREIGN KEY (format_id) REFERENCES format(format_id);
ALTER TABLE document_rev ADD CONSTRAINT doc_id_fk FOREIGN KEY (doc_id) REFERENCES document(doc_id);
ALTER TABLE document_topic ADD CONSTRAINT doc_id_fk FOREIGN KEY (doc_id) REFERENCES document(doc_id);
ALTER TABLE document_topic ADD CONSTRAINT topic_num_fk FOREIGN KEY (topic_num) REFERENCES topic(topic_num);
@@ -23,15 +23,15 @@ ALTER TABLE doc_vote ADD CONSTRAINT doc_id_fk FOREIGN KEY (doc_id) REFERENCE
ALTER TABLE doc_vote ADD CONSTRAINT user_id_fk FOREIGN KEY (user_id) REFERENCES username(user_id);
ALTER TABLE error_i18n ADD CONSTRAINT err_id_fk FOREIGN KEY (err_id) REFERENCES error(err_id);
ALTER TABLE error_i18n ADD CONSTRAINT lang_fk FOREIGN KEY (lang) REFERENCES language(isocode);
-ALTER TABLE format_i18n ADD CONSTRAINT format_fk FOREIGN KEY (format) REFERENCES format(format);
+ALTER TABLE format_i18n ADD CONSTRAINT format_id_fk FOREIGN KEY (format_id) REFERENCES format(format_id);
ALTER TABLE format_i18n ADD CONSTRAINT format_lang_fk FOREIGN KEY (lang) REFERENCES language(isocode);
-ALTER TABLE language_i18n ADD CONSTRAINT language_fk FOREIGN KEY (language) REFERENCES language(isocode);
+ALTER TABLE language_i18n ADD CONSTRAINT language_fk FOREIGN KEY (isocode) REFERENCES language(isocode);
ALTER TABLE language_i18n ADD CONSTRAINT language_lang_fk FOREIGN KEY (lang) REFERENCES language(isocode);
ALTER TABLE notes ADD CONSTRAINT doc_id_fk FOREIGN KEY (doc_id) REFERENCES document(doc_id);
ALTER TABLE notes ADD CONSTRAINT creator_id_fk FOREIGN KEY (creator_id) REFERENCES username(user_id);
ALTER TABLE pub_status_i18n ADD CONSTRAINT pub_status_fk FOREIGN KEY (pub_status) REFERENCES pub_status(pub_status);
ALTER TABLE pub_status_i18n ADD CONSTRAINT pub_status_lang_fk FOREIGN KEY (lang) REFERENCES language(isocode);
-ALTER TABLE string_i18n ADD CONSTRAINT string_code_fk FOREIGN KEY (string_code) REFERENCES string(string_code);
+ALTER TABLE string_i18n ADD CONSTRAINT string_id_fk FOREIGN KEY (string_id) REFERENCES string(string_id);
ALTER TABLE string_i18n ADD CONSTRAINT string_lang_fk FOREIGN KEY (lang) REFERENCES language(isocode);
ALTER TABLE subtopic ADD CONSTRAINT topic_num_fk FOREIGN KEY (topic_num) REFERENCES topic(topic_num);
ALTER TABLE topic_i18n ADD CONSTRAINT topic_num_fk FOREIGN KEY (topic_num) REFERENCES topic(topic_num);
diff --git a/LDP/lampadas/database/string.sql b/LDP/lampadas/database/string.sql
index af725162..d49dec8e 100644
--- a/LDP/lampadas/database/string.sql
+++ b/LDP/lampadas/database/string.sql
@@ -2,7 +2,7 @@ DROP TABLE string;
CREATE TABLE string
(
- string_code CHAR(20) NOT NULL,
+ string_id INT4 NOT NULL,
- PRIMARY KEY (string_code)
+ PRIMARY KEY (string_id)
);
diff --git a/LDP/lampadas/database/string_i18n.sql b/LDP/lampadas/database/string_i18n.sql
index 9b80d92b..40e3812a 100644
--- a/LDP/lampadas/database/string_i18n.sql
+++ b/LDP/lampadas/database/string_i18n.sql
@@ -2,9 +2,9 @@ DROP TABLE string_i18n;
CREATE TABLE string_i18n
(
- string_code CHAR(20) NOT NULL,
+ string_id INT4 NOT NULL,
lang CHAR(2) NOT NULL,
string TEXT NOT NULL,
- PRIMARY KEY (string_code, lang)
+ PRIMARY KEY (string_id, lang)
);
diff --git a/LDP/lampadas/database/topic_i18n.sql b/LDP/lampadas/database/topic_i18n.sql
index bd28f71e..176db486 100644
--- a/LDP/lampadas/database/topic_i18n.sql
+++ b/LDP/lampadas/database/topic_i18n.sql
@@ -3,7 +3,7 @@ DROP TABLE topic_i18n;
CREATE TABLE topic_i18n
(
topic_num INT4 NOT NULL,
- lang CHAR(2) NOT NULL
+ lang CHAR(2) NOT NULL,
topic_name TEXT NOT NULL,
topic_description TEXT,
diff --git a/LDP/lampadas/database/updates/update-0.2 b/LDP/lampadas/database/updates/update-0.2
index ece871ef..7721b65e 100755
--- a/LDP/lampadas/database/updates/update-0.2
+++ b/LDP/lampadas/database/updates/update-0.2
@@ -294,30 +294,38 @@ while (@row = $result->fetchrow) {
$class = $row[0];
$class_name = $row[1];
$class_id++;
- $sql = "INSERT INTO class_new (class_id) VALUES ($class_id)";
- $conn->exec($sql);
- $sql = "INSERT INTO class_i18n(class_id, lang, class_name, class_description) VALUES ($class_id, 'EN', " . wsq($class) . ", " . wsq($class_name) . ")";
- $conn->exec($sql);
+ $conn->exec("INSERT INTO class_new (class_id) VALUES ($class_id)");
+ $conn->exec("INSERT INTO class_i18n(class_id, lang, class_name, class_description) VALUES ($class_id, 'EN', " . wsq($class) . ", " . wsq($class_name) . ")");
}
# i18n support in format table
#
-$conn->exec("CREATE TABLE format_new (format CHAR(12) NOT NULL, PRIMARY KEY (format))");
-$conn->exec("CREATE TABLE format_i18n (format CHAR(12) NOT NULL, lang CHAR(2) NOT NULL, format_name CHAR(20) NOT NULL, PRIMARY KEY (format, lang))");
-$conn->exec("INSERT INTO format_i18n SELECT format, 'EN' as lang, format_name FROM format");
-$conn->exec("INSERT INTO format_new SELECT format FROM format");
+$conn->exec("CREATE TABLE format_new (format_id INT4 NOT NULL, PRIMARY KEY (format_id))");
+$conn->exec("DROP TABLE format_i18n");
+$conn->exec("CREATE TABLE format_i18n (format_id INT4 NOT NULL, lang CHAR(2) NOT NULL, format_name CHAR(20) NOT NULL, format_desc TEXT, PRIMARY KEY (format_id, lang))");
+$result = $conn->exec("SELECT format, format_name FROM format");
+$format_id = 0;
+while (@row = $result->fetchrow) {
+ $format_id++;
+ $format_name = $row[0];
+ $format_desc = $row[1];
+ $conn->exec("INSERT INTO format_new (format_id) VALUES ($format_id)");
+ $conn->exec("INSERT INTO format_i18n (format_id, lang, format_name, format_desc) VALUES ($format_id, 'EN' as lang, " . wsq($format_name) . ", " . wsq($format_desc) . ")");
+}
# i18n support in pub_status table
#
+$conn->exec("DROP TABLE pub_status_new");
$conn->exec("CREATE TABLE pub_status_new (pub_status CHAR(1) NOT NULL, PRIMARY KEY (pub_status))");
-$conn->exec("CREATE TABLE pub_status_i18n (pub_status CHAR(1) NOT NULL, lang CHAR(2) NOT NULL, pub_status_name TEXT NOT NULL, pub_status_description TEXT NOT NULL, PRIMARY KEY (pub_status, lang))");
-$conn->exec("INSERT INTO pub_status_i18n SELECT pub_status, 'EN' as lang, pub_status_name, pub_status_description FROM pub_status");
+$conn->exec("DROP TABLE pub_status_i18n");
+$conn->exec("CREATE TABLE pub_status_i18n (pub_status CHAR(1) NOT NULL, lang CHAR(2) NOT NULL, pub_status_name TEXT NOT NULL, pub_status_desc TEXT NOT NULL, PRIMARY KEY (pub_status, lang))");
+$conn->exec("INSERT INTO pub_status_i18n SELECT pub_status, 'EN' as lang, pub_status_name, pub_status_desc FROM pub_status");
$conn->exec("INSERT INTO pub_status_new SELECT pub_status FROM pub_status");
# i18n support in topic table
#
-$conn->exec("CREATE TABLE topic_new (topic_num INT4 NOT NULL, PRIMARY KEY (topic_num)");
-$conn->exec("CREATE TABLE topic_i18n (topic_num INT4 NOT NULL, lang CHAR(2) NOT NULL, topic_name TEXT NOT NULL, topic_description TEXT, PRIMARY KEY(topic_num, lang)");
+$conn->exec("CREATE TABLE topic_new (topic_num INT4 NOT NULL, PRIMARY KEY (topic_num))");
+$conn->exec("CREATE TABLE topic_i18n (topic_num INT4 NOT NULL, lang CHAR(2) NOT NULL, topic_name TEXT NOT NULL, topic_description TEXT, PRIMARY KEY(topic_num, lang))");
$conn->exec("INSERT INTO topic_new SELECT topic_num FROM topic");
$conn->exec("INSERT INTO topic_i18n SELECT topic_num, 'EN' as lang, topic_name, topic_description FROM topic");
@@ -325,8 +333,8 @@ $conn->exec("INSERT INTO topic_i18n SELECT topic_num, 'EN' as lang, topic_name,
# Convert class to class_id
#
$conn->exec("DROP TABLE document_new");
-$conn->exec("CREATE TABLE document_new (doc_id INT4 NOT NULL, title TEXT NOT NULL, class_id INT4, format CHAR(12), dtd CHAR(12), dtd_version CHAR(12), version CHAR(12), last_update DATE, URL TEXT, ISBN TEXT, pub_status CHAR, review_status CHAR, tickle_date DATE, pub_date DATE, ref_url TEXT, tech_review_status CHAR, maintained BOOLEAN DEFAULT False, license CHAR(12), abstract TEXT, rating REAL, lang CHAR(2), PRIMARY KEY (doc_id))");
-$conn->exec("INSERT INTO document_new SELECT doc_id, title, class_id, format, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, maintained, license, abstract, rating FROM document d, class_i18n c WHERE d.class=c.class_name");
+$conn->exec("CREATE TABLE document_new (doc_id INT4 NOT NULL, title TEXT NOT NULL, class_id INT4, format_id INT4, dtd CHAR(12), dtd_version CHAR(12), version CHAR(12), last_update DATE, URL TEXT, ISBN TEXT, pub_status CHAR, review_status CHAR, tickle_date DATE, pub_date DATE, ref_url TEXT, tech_review_status CHAR, maintained BOOLEAN DEFAULT False, license CHAR(12), abstract TEXT, rating REAL, lang CHAR(2), PRIMARY KEY (doc_id))");
+$conn->exec("INSERT INTO document_new SELECT doc_id, title, class_id, format_id, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, maintained, license, abstract, rating FROM document d, class_i18n c, format_i18n f WHERE d.class=c.class_name AND d.format=f.format_name");
$conn->exec("UPDATE document_new SET lang='EN'");
# Add document sk_seriesid values
@@ -377,7 +385,7 @@ $conn->exec("UPDATE document SET filename='howto/' || filename where class='TEMP
# Create document_file table
#
$conn->exec("DROP TABLE document_file");
-$conn->exec("CREATE TABLE document_file(doc_id INT4 NOT NULL, filename TEXT NOT NULL, format CHAR(12), PRIMARY KEY (doc_id, filename))");
+$conn->exec("CREATE TABLE document_file(doc_id INT4 NOT NULL, filename TEXT NOT NULL, format_id INT4, PRIMARY KEY (doc_id, filename))");
$conn->exec("INSERT INTO document_file(doc_id, filename) SELECT doc_id, filename FROM document WHERE filename<>''");
# Create document_error table
@@ -385,13 +393,17 @@ $conn->exec("INSERT INTO document_file(doc_id, filename) SELECT doc_id, filename
$conn->exec("DROP TABLE document_error");
$conn->exec("CREATE TABLE document_error(doc_id INT4 NOT NULL, err_id INT4 NOT NULL)");
+# Create language table
+#
+$conn->exec("DROP TABLE language");
+$conn->exec("CREATE TABLE language(isocode CHAR(2) NOT NULL, PRIMARY KEY (isocode))");
+$conn->exec("DROP TABLE language_i18n");
+$conn->exec("CREATE TABLE language_i18n(isocode CHAR(2) NOT NULL, lang CHAR(2), language_name TEXT NOT NULL, PRIMARY KEY (isocode, lang))");
+
# Create string table
#
$conn->exec("DROP TABLE string");
$conn->exec("CREATE TABLE string (string_id INT4 NOT NULL, PRIMARY KEY (string_id))");
-
-# Create string_i18n table
-#
$conn->exec("DROP TABLE string_i18n");
$conn->exec("CREATE TABLE string_i18n (string_id INT4 NOT NULL, lang CHAR(2) NOT NULL, string TEXT NOT NULL, PRIMARY KEY (string_id, lang))");
@@ -401,7 +413,7 @@ $conn->exec("DROP TABLE error");
$conn->exec("CREATE TABLE error (err_id INT4 NOT NULL, PRIMARY KEY (err_id))");
$conn->exec("DROP TABLE error_i18n");
-$conn->exec("CREATE TABLE error_i18n (err_id INT4 NOT NULL, err_name TEXT NOT NULL, err_desc TEXT PRIMARY KEY (err_id))");
+$conn->exec("CREATE TABLE error_i18n (err_id INT4 NOT NULL, err_name TEXT NOT NULL, err_desc TEXT, PRIMARY KEY (err_id))");
# Copy the new tables over to replace the old ones
@@ -418,6 +430,7 @@ $conn->exec("DROP TABLE format");
$conn->exec("DROP TABLE maintainer");
$conn->exec("DROP TABLE maintainer_notes");
$conn->exec("DROP TABLE notes");
+$conn->exec("DROP TABLE pub_status");
$conn->exec("DROP TABLE role");
$conn->exec("DROP TABLE topic");
$conn->exec("DROP TABLE username");
@@ -428,6 +441,7 @@ $conn->exec("ALTER TABLE document_wiki_new RENAME TO document_wiki");
$conn->exec("ALTER TABLE doc_vote_new RENAME TO doc_vote");
$conn->exec("ALTER TABLE format_new RENAME TO format");
$conn->exec("ALTER TABLE notes_new RENAME TO notes");
+$conn->exec("ALTER TABLE pub_status_new RENAME TO pub_status");
$conn->exec("ALTER TABLE role_new RENAME TO role");
$conn->exec("ALTER TABLE topic_new RENAME TO topic");
$conn->exec("ALTER TABLE username_new RENAME TO username");
diff --git a/LDP/lampadas/pylib/Converter.py b/LDP/lampadas/pylib/Converter.py
index e3edc968..f2986125 100755
--- a/LDP/lampadas/pylib/Converter.py
+++ b/LDP/lampadas/pylib/Converter.py
@@ -21,15 +21,15 @@ import commands
class Converter:
- def ConvertSGMLFile(self, filename, format):
- if format == 'XML' or format == 'SGML':
+ def ConvertSGMLFile(self, Filename, Format):
+ if Format == 'XML' or Format == 'SGML':
command = 'xsltproc '
- if format == 'SGML':
+ if Format == 'SGML':
command = command + '--docbook '
- command = command + '/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/docbook.xsl ' + filename
+ command = command + '/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/docbook.xsl ' + Filename
result = commands.getoutput(command)
else:
- return "FORMAT NOT YET SUPPORTED"
+ return 'FORMAT ' + Format + ' NOT YET SUPPORTED'
return result
diff --git a/LDP/lampadas/pylib/DataLayer.py b/LDP/lampadas/pylib/DataLayer.py
index a366d0e9..dba966d1 100755
--- a/LDP/lampadas/pylib/DataLayer.py
+++ b/LDP/lampadas/pylib/DataLayer.py
@@ -196,7 +196,7 @@ class Docs(LampadasCollection):
"""
def Load(self):
- self.sql = "SELECT doc_id, title, class_id, format, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, maintained, license, abstract, rating, lang, sk_seriesid FROM document"
+ self.sql = "SELECT doc_id, title, class_id, format_id, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, maintained, license, abstract, rating, lang, sk_seriesid FROM document"
self.cursor = DB.Select(self.sql)
while (1):
self.row = self.cursor.fetchone()
@@ -205,9 +205,9 @@ class Docs(LampadasCollection):
newDoc.Load(self.row)
self[newDoc.ID] = newDoc
- def Add(self, Title, ClassID, Format, DTD, DTDVersion, Version, LastUpdate, URL, ISBN, PubStatus, ReviewStatus, TickleDate, PubDate, HomeURL, TechReviewStatus, License, Abstract, LanguageCode, SeriesID):
+ def Add(self, Title, ClassID, FormatID, DTD, DTDVersion, Version, LastUpdate, URL, ISBN, PubStatus, ReviewStatus, TickleDate, PubDate, HomeURL, TechReviewStatus, License, Abstract, LanguageCode, SeriesID):
self.id = DB.Value('SELECT max(doc_id) from document') + 1
- self.sql = "INSERT INTO document(doc_id, title, class_id, format, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, license, abstract, lang, sk_seriesid) VALUES (" + str(self.id) + ", " + wsq(Title) + ", " + str(ClassID) + ", " + wsq(Format) + ", " + wsq(DTD) + ", " + wsq(DTDVersion) + ", " + wsq(Version) + ", " + wsq(LastUpdate) + ", " + wsq(URL) + ", " + wsq(ISBN) + ", " + wsq(PubStatus) + ", " + wsq(ReviewStatus) + ", " + wsq(TickleDate) + ", " + wsq(PubDate) + ", " + wsq(HomeURL) + ", " + wsq(TechReviewStatus) + ", " + wsq(License) + ", " + wsq(Abstract) + ", " + wsq(LanguageCode) + ", " + wsq(SeriesID) + ")"
+ self.sql = "INSERT INTO document(doc_id, title, class_id, format_id, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, license, abstract, lang, sk_seriesid) VALUES (" + str(self.id) + ", " + wsq(Title) + ", " + str(ClassID) + ", " + dbint(FormatID) + ", " + wsq(DTD) + ", " + wsq(DTDVersion) + ", " + wsq(Version) + ", " + wsq(LastUpdate) + ", " + wsq(URL) + ", " + wsq(ISBN) + ", " + wsq(PubStatus) + ", " + wsq(ReviewStatus) + ", " + wsq(TickleDate) + ", " + wsq(PubDate) + ", " + wsq(HomeURL) + ", " + wsq(TechReviewStatus) + ", " + wsq(License) + ", " + wsq(Abstract) + ", " + wsq(LanguageCode) + ", " + wsq(SeriesID) + ")"
assert DB.Exec(self.sql) == 1
DB.Commit()
self.NewID = DB.Value('SELECT MAX(doc_id) from document')
@@ -228,7 +228,7 @@ class Doc:
def __init__(self, id=None):
if id == None: return
- self.sql = "SELECT doc_id, title, class_id, format, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, maintained, license, abstract, rating, lang, sk_seriesid FROM document WHERE doc_id=" + str(id)
+ self.sql = "SELECT doc_id, title, class_id, format_id, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, maintained, license, abstract, rating, lang, sk_seriesid FROM document WHERE doc_id=" + str(id)
self.cursor = DB.Select(self.sql)
self.row = self.cursor.fetchone()
self.Load(self.row)
@@ -237,7 +237,7 @@ class Doc:
self.ID = row[0]
self.Title = trim(row[1])
self.ClassID = row[2]
- self.Format = trim(row[3])
+ self.FormatID = row[3]
self.DTD = trim(row[4])
self.DTDVersion = trim(row[5])
self.Version = trim(row[6])
@@ -264,7 +264,7 @@ class Doc:
self.Versions = DocVersions(self.ID)
def Save(self):
- self.sql = "UPDATE document SET title=" + wsq(self.Title) + ", class_id=" + str(self.ClassID) + ", format=" + wsq(self.Format) + ", dtd=" + wsq(self.DTD) + ", dtd_version=" + wsq(self.DTDVersion) + ", version=" + wsq(self.Version) + ", last_update=" + wsq(self.LastUpdate) + ", url=" + wsq(self.URL) + ", isbn=" + wsq(self.ISBN) + ", pub_status=" + wsq(self.PubStatus) + ", review_status=" + wsq(self.ReviewStatus) + ", tickle_date=" + wsq(self.TickleDate) + ", pub_date=" + wsq(self.PubDate) + ", ref_url=" + wsq(self.HomeURL) + ", tech_review_status=" + wsq(self.TechReviewStatus) + ", maintained=" + wsq(bool2tf(self.Maintained)) + ", license=" + wsq(self.License) + ", abstract=" + wsq(self.Abstract) + ", rating=" + dbint(self.Rating) + ", lang=" + wsq(self.LanguageCode) + ", sk_seriesid=" + wsq(self.SeriesID) + " WHERE doc_id=" + str(self.ID)
+ self.sql = "UPDATE document SET title=" + wsq(self.Title) + ", class_id=" + str(self.ClassID) + ", format_id=" + dbint(self.FormatID) + ", dtd=" + wsq(self.DTD) + ", dtd_version=" + wsq(self.DTDVersion) + ", version=" + wsq(self.Version) + ", last_update=" + wsq(self.LastUpdate) + ", url=" + wsq(self.URL) + ", isbn=" + wsq(self.ISBN) + ", pub_status=" + wsq(self.PubStatus) + ", review_status=" + wsq(self.ReviewStatus) + ", tickle_date=" + wsq(self.TickleDate) + ", pub_date=" + wsq(self.PubDate) + ", ref_url=" + wsq(self.HomeURL) + ", tech_review_status=" + wsq(self.TechReviewStatus) + ", maintained=" + wsq(bool2tf(self.Maintained)) + ", license=" + wsq(self.License) + ", abstract=" + wsq(self.Abstract) + ", rating=" + dbint(self.Rating) + ", lang=" + wsq(self.LanguageCode) + ", sk_seriesid=" + wsq(self.SeriesID) + " WHERE doc_id=" + str(self.ID)
DB.Exec(self.sql)
DB.Commit()
@@ -326,7 +326,7 @@ class DocFiles(LampadasCollection):
self.data = {}
assert not DocID == None
self.DocID = DocID
- self.sql = "SELECT filename, format FROM document_file WHERE doc_id=" + str(DocID)
+ self.sql = "SELECT filename, format_id FROM document_file WHERE doc_id=" + str(DocID)
self.cursor = DB.Select(self.sql)
while (1):
row = self.cursor.fetchone()
@@ -345,10 +345,10 @@ class DocFile:
assert not row == None
self.DocID = DocID
self.Filename = trim(row[0])
- self.Format = trim(row[1])
+ self.FormatID = row[1]
def Save(self):
- self.sql = "UPDATE document_file SET format=" + wsq(self.Format) + " WHERE doc_id=" + str(self.DocID) + " AND filename=" + wsq(self.Filename)
+ self.sql = "UPDATE document_file SET format_id=" + str(self.FormatID) + " WHERE doc_id=" + str(self.DocID) + " AND filename=" + wsq(self.Filename)
assert DB.Exec(self.sql) == 1
DB.Commit()
@@ -554,25 +554,25 @@ class Formats(LampadasCollection):
def __init__(self):
self.data = {}
- self.sql = "SELECT format FROM format"
+ self.sql = "SELECT format_id FROM format"
self.cursor = DB.Select(self.sql)
while (1):
row = self.cursor.fetchone()
if row == None: break
newFormat = Format()
newFormat.Load(row)
- self.data[newFormat.Format] = newFormat
+ self.data[newFormat.ID] = newFormat
class Format:
- def __init__(self, Format=None):
+ def __init__(self, FormatID=None):
self.I18n = {}
- if Format==None: return
- self.Code = Format
+ if FormatID==None: return
+ self.ID = FormatID
def Load(self, row):
- self.Format = trim(row[0])
- self.sql = "SELECT lang, format_name FROM format_i18n WHERE format=" + wsq(self.Format)
+ self.ID = row[0]
+ self.sql = "SELECT lang, format_name, format_desc FROM format_i18n WHERE format_id=" + str(self.ID)
self.cursor = DB.Select(self.sql)
while (1):
self.row = self.cursor.fetchone()
@@ -588,6 +588,7 @@ class FormatI18n:
def Load(self, row):
self.Lang = row[0]
self.Name = trim(row[1])
+ self.Description = trim(row[2])
# Languages
@@ -599,7 +600,7 @@ class Languages(LampadasCollection):
def __init__(self):
self.data = {}
- self.sql = "SELECT isocode, language_name FROM language"
+ self.sql = "SELECT isocode FROM language"
self.cursor = DB.Select(self.sql)
while (1):
row = self.cursor.fetchone()
@@ -693,25 +694,25 @@ class Strings(LampadasCollection):
def __init__(self):
self.data = {}
- self.sql = "SELECT string_code FROM string"
+ self.sql = "SELECT string_id FROM string"
self.cursor = DB.Select(self.sql)
while (1):
row = self.cursor.fetchone()
if row == None: break
newString = String()
newString.Load(row)
- self.data[newString.Code] = newString
+ self.data[newString.ID] = newString
class String:
- def __init__(self, StringCode=None):
+ def __init__(self, StringID=None):
self.I18n = {}
- if StringCode==None: return
- self.Code = StringCode
+ if StringID==None: return
+ self.ID = StringID
def Load(self, row):
- self.Code = trim(row[0])
- self.sql = "SELECT lang, string FROM string_i18n WHERE string_code=" + wsq(self.Code)
+ self.ID = row[0]
+ self.sql = "SELECT lang, string FROM string_i18n WHERE string_id=" + str(self.ID)
self.cursor = DB.Select(self.sql)
while (1):
self.row = self.cursor.fetchone()
diff --git a/LDP/lampadas/pylib/HTML.py b/LDP/lampadas/pylib/HTML.py
index f3eac3f4..bbaf0eba 100755
--- a/LDP/lampadas/pylib/HTML.py
+++ b/LDP/lampadas/pylib/HTML.py
@@ -12,10 +12,18 @@ to the Lampadas system.
import DataLayer
import Converter
import commands
-
+from types import *
# Constants
+# These are string_id values for looking up strings in the string table
+#
+PG_HEADER = 2
+PG_FOOTER = 3
+
+TPL_DEFAULT = 1000
+PG_ABOUT = 2000
+
# Globals
@@ -38,23 +46,24 @@ class HTMLFactory:
class PageFactory:
def __call__(self, key, lang):
- if key[:4] == 'doc/':
+ if type(key) is IntType:
+ return self.Page(key, lang)
+ elif key[:4] == 'doc/':
DocID = int(key[4:])
return self.DocPage(DocID, lang)
- else:
- return self.Page(key, lang)
def Page(self, key, lang):
- page = L.Strings['tpl-default'].I18n[lang].Text
- page = page.replace('|header|', L.Strings['header'].I18n[lang].Text)
- page = page.replace('|footer|', L.Strings['footer'].I18n[lang].Text)
+ page = L.Strings[TPL_DEFAULT].I18n[lang].Text
+ page = page.replace('|header|', L.Strings[PG_HEADER].I18n[lang].Text)
+ page = page.replace('|footer|', L.Strings[PG_FOOTER].I18n[lang].Text)
page = page.replace('|body|', L.Strings[key].I18n[lang].Text)
return page
def DocPage(self, DocID, lang):
Doc = L.Docs[DocID]
assert not Doc == None
- if Doc.Format=='SGML' or Doc.Format == 'XML':
+ docformat = L.Formats[Doc.FormatID].I18n['EN'].Name
+ if docformat=='SGML' or docformat=='XML':
Files = Doc.Files
if Files.Count() == 0:
page = 'No file to process'
@@ -64,9 +73,9 @@ class PageFactory:
keys = Files.keys()
for key in keys:
File = Files[key]
- page = C.ConvertSGMLFile(cvs_root + File.Filename, File.Format)
+ page = C.ConvertSGMLFile(cvs_root + File.Filename, docformat)
else:
- page = 'FORMAT NOT YET SUPPORTED'
+ page = 'FORMAT ' + docformat + ' NOT YET SUPPORTED'
return page
@@ -106,20 +115,59 @@ class ComboFactory:
self.combo = self.combo + ""
return self.combo
+ def DTDs(self, value, lang=None):
+ self.combo = ""
+ return self.combo
+
+ def Formats(self, value, lang=None):
+ self.combo = ""
+ return self.combo
+
Factory = HTMLFactory()
# Sample low-level ComboBox, Classes
-#output = Factory.Combo.Classes(2,'EN')
-#print output
+output = Factory.Combo.Classes(2, 'EN')
+print output
+
+# Sample low-level ComboBox, DTDs
+output = Factory.Combo.DTDs(1, 'EN')
+print output
+
+# Sample low-level ComboBox, Formats
+output = Factory.Combo.Formats(1, 'EN')
+print output
# Sample i18n page, About Lampadas
-#output = Factory.Page('pg-about', 'EN')
-#print output
+output = Factory.Page(PG_ABOUT, 'EN')
+print output
# Sample SGML processing, LDP Reviewer HOWTO
-#output = Factory.Page('doc/419', 'EN')
-#print output
+output = Factory.Page('doc/419', 'EN')
+print output
# Sample XML processing, Finnish HOWTO
output = Factory.Page('doc/68', 'EN')
diff --git a/LDP/lampadas/pylib/UnitTest.py b/LDP/lampadas/pylib/UnitTest.py
index 5126ea60..ebf274d4 100755
--- a/LDP/lampadas/pylib/UnitTest.py
+++ b/LDP/lampadas/pylib/UnitTest.py
@@ -65,7 +65,7 @@ class testDocs(unittest.TestCase):
DB.Commit()
self.OldID = DB.Value('SELECT max(doc_id) from document')
- self.NewID = L.Docs.Add('testharness', 1, 'XML', 'DocBook', '4.1.2', '1.0', '2002-04-04', 'http://www.example.com/HOWTO.html', 'ISBN', 'N', 'N', '2002-04-05', '2002-04-10', 'http://www.home.com', 'N', 'GFDL', 'This is a document.', 'EN', 'fooseries')
+ self.NewID = L.Docs.Add('testharness', 1, 1, 'DocBook', '4.1.2', '1.0', '2002-04-04', 'http://www.example.com/HOWTO.html', 'ISBN', 'N', 'N', '2002-04-05', '2002-04-10', 'http://www.home.com', 'N', 'GFDL', 'This is a document.', 'EN', 'fooseries')
assert self.NewID > 0
assert self.OldID + 1 == self.NewID
@@ -73,6 +73,7 @@ class testDocs(unittest.TestCase):
assert not self.Doc == None
assert self.Doc.ID == self.NewID
assert self.Doc.Title == 'testharness'
+ assert self.Doc.FormatID == 1
L.Docs.Del(self.NewID)
self.NewID = DB.Value('SELECT MAX(doc_id) from document')
@@ -198,7 +199,11 @@ class testFormats(unittest.TestCase):
def testFormats(self):
assert L.Formats.Count() > 0
- assert not L.Formats['XML'] == None
+ assert not L.Formats[1] == None
+ assert not L.Formats[1].I18n == None
+ assert not L.Formats[1].I18n['EN'] == None
+ assert L.Formats[1].I18n['EN'].Name > ''
+ assert L.Formats[1].I18n['EN'].Description > ''
class testLanguages(unittest.TestCase):
@@ -223,8 +228,8 @@ class testStrings(unittest.TestCase):
def testStrings(self):
assert not L.Strings == None
assert L.Strings.Count() > 0
- assert not L.Strings['header'] == None
- assert L.Strings['test'].I18n['EN'].Text == 'Test Text'
+ assert not L.Strings[1] == None
+ assert L.Strings[1].I18n['EN'].Text == 'Test Text'
class testTopics(unittest.TestCase):
@@ -264,7 +269,7 @@ class testUsers(unittest.TestCase):
class testUserDocs(unittest.TestCase):
def setUp(self):
- self.User = L.User(1)
+ self.User = L.User(11)
assert len(self.User.Docs) > 0
assert self.User.Docs.Count() > 0