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