changeset 386:2987a4ef997a

action InstallLanguage: The superuser gets a table of language packs dependent on the selected language for installation.
author Reimar Bauer <rb.proj AT googlemail DOT com>
date Fri, 24 Jul 2009 12:32:19 +0200
parents cbc739f4e5eb
children 9b68e1090065
files data/plugin/action/InstallLanguage.py
diffstat 1 files changed, 76 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/plugin/action/InstallLanguage.py	Fri Jul 24 12:32:19 2009 +0200
@@ -0,0 +1,76 @@
+# -*- coding: iso-8859-1 -*-
+"""
+    MoinMoin - InstallLanguage
+
+    The superuser gets a table of language packs dependent on the selected language
+    for installation.
+
+    @copyright: 2009 MoinMoin:ReimarBauer,
+                     MoinMoin:ThomasWaldmnann
+
+    @license: GNU GPL, see COPYING for details.
+"""
+
+from MoinMoin import i18n
+from MoinMoin.i18n import strings
+i18n.strings = strings
+
+from MoinMoin.action import AttachFile
+
+from MoinMoin.Page import Page
+from MoinMoin.util.dataset import TupleDataset, Column
+from MoinMoin.widget.browser import DataBrowserWidget
+
+def execute(pagename, request):
+    if not request.user or not request.user.isSuperUser():
+        return ''
+    _ = request.getText
+    fmt = request.html_formatter
+    language_setup_page = 'LanguageSetup'
+    not_translated_system_pages = 'not_translated_system_pages.zip'
+    files = AttachFile._get_files(request, language_setup_page)
+    wiki_languages = list(set([lang_file.split('_')[0] for lang_file in files]) - set(['00']))
+    wiki_languages.sort()
+    lang_default = 'English'
+    lang = request.values.get('language') or lang_default
+
+    data = TupleDataset()
+    data.columns = [
+           Column('page package', label=_('page package')),
+           Column('action', label=_('install')),
+        ]
+
+    label_install = _("install")
+    for pageset_name in i18n.strings.pagesets:
+        attachment = "%s_%s.zip" % (lang, pageset_name)
+        if attachment.endswith(not_translated_system_pages):
+            attachment = 'English_not_translated_system_pages.zip'
+        install_link = ''
+        if AttachFile.exists(request, language_setup_page, attachment):
+            install_link = (fmt.url(1, AttachFile.getAttachUrl(language_setup_page, attachment, request, do='install')) + 
+                            fmt.text(label_install) +
+                            fmt.url(0))
+        data.addRow((pageset_name, install_link))
+
+    table = DataBrowserWidget(request)
+    table.setData(data)
+    page_table = ''.join(table.format(method='GET'))
+
+    fmt = request.formatter
+    this_page = Page(request, pagename)
+    lang_links = [this_page.link_to_raw(request, _lang,
+                                        querystr={'action': 'InstallLanguage',
+                                                  'language': _lang,
+                                                  'pageset': pageset_name, })
+                  for _lang in wiki_languages]
+
+    lang_selector = u''.join([fmt.paragraph(1), _("Choose:"), ' ', ' '.join(lang_links), fmt.paragraph(0)])
+    title = _("Install language packs for '%s'") % (lang)
+
+    request.theme.send_title(title, page=request.page, pagename=pagename)
+    request.write(request.formatter.startContent("content"))
+    request.write(lang_selector)
+    request.write(page_table)
+    request.write(request.formatter.endContent())
+    request.theme.send_footer(pagename)
+    request.theme.send_closing_html()