mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-06-17 11:10:23 +00:00
mediawiki: Add option to change the site name
[sunil: Update the form description for styling] [sunil: Show the default site name when nothing is set] Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org> Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
This commit is contained in:
parent
aa5b1cea12
commit
3ec086411b
@ -52,6 +52,10 @@ def parse_arguments():
|
||||
'set-server-url', help='Set the value of $wgServer for this server')
|
||||
server_url.add_argument('server_url', help='value of $wgServer')
|
||||
|
||||
site_name = subparsers.add_parser(
|
||||
'set-site-name', help='Set the value of $wgSitename for this Wiki')
|
||||
site_name.add_argument('site_name', help='value of $wgSitename')
|
||||
|
||||
subparsers.required = True
|
||||
return parser.parse_args()
|
||||
|
||||
@ -253,6 +257,11 @@ def subcommand_set_server_url(arguments):
|
||||
_update_setting('$wgServer', f'$wgServer = "{arguments.server_url}";\n')
|
||||
|
||||
|
||||
def subcommand_set_site_name(arguments):
|
||||
"""Set the value of $wgSitename for this MediaWiki server."""
|
||||
_update_setting('$wgSitename', f'$wgSitename = "{arguments.site_name}";\n')
|
||||
|
||||
|
||||
def main():
|
||||
"""Parse arguments and perform all duties."""
|
||||
arguments = parse_arguments()
|
||||
|
||||
@ -166,3 +166,13 @@ def set_server_url(domain):
|
||||
|
||||
actions.superuser_run('mediawiki',
|
||||
['set-server-url', f'{protocol}://{domain}'])
|
||||
|
||||
|
||||
def get_site_name():
|
||||
"""Return the value of MediaWiki's site name."""
|
||||
return _get_config_value('$wgSitename') or 'Wiki'
|
||||
|
||||
|
||||
def set_site_name(site_name):
|
||||
"""Set the value of $wgSitename."""
|
||||
actions.superuser_run('mediawiki', ['set-site-name', site_name])
|
||||
|
||||
@ -45,6 +45,9 @@ $wgDefaultSkin = "timeless";
|
||||
# Domain Name
|
||||
$wgServer = "https://freedombox.local";
|
||||
|
||||
# Site Name
|
||||
$wgSitename = "Wiki";
|
||||
|
||||
# Enable default extensions
|
||||
wfLoadExtension( 'Cite' );
|
||||
wfLoadExtension( 'Interwiki' );
|
||||
|
||||
@ -6,6 +6,7 @@ FreedomBox app for configuring MediaWiki.
|
||||
import pathlib
|
||||
|
||||
from django import forms
|
||||
from django.core import validators
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
@ -35,6 +36,11 @@ class MediaWikiForm(forms.Form): # pylint: disable=W0232
|
||||
'such as in footer, feeds and emails. Examples: '
|
||||
'"myfreedombox.example.org" or "example.onion".'))
|
||||
|
||||
site_name = forms.CharField(
|
||||
label=_('Site Name'), required=False,
|
||||
help_text=_('Name of the site as displayed throughout the wiki.'),
|
||||
validators=[validators.RegexValidator('[$"]', inverse_match=True)])
|
||||
|
||||
enable_public_registrations = forms.BooleanField(
|
||||
label=_('Enable public registrations'), required=False,
|
||||
help_text=_('If enabled, anyone on the internet will be able to '
|
||||
|
||||
@ -66,3 +66,11 @@ def test_server_url():
|
||||
new_domain = 'mydomain.freedombox.rocks'
|
||||
mediawiki.set_server_url(new_domain)
|
||||
assert mediawiki.get_server_url() == new_domain
|
||||
|
||||
|
||||
def test_site_name():
|
||||
"""Test getting and setting $wgSitename."""
|
||||
assert mediawiki.get_site_name() == 'Wiki'
|
||||
new_site_name = 'My MediaWiki'
|
||||
mediawiki.set_site_name(new_site_name)
|
||||
assert mediawiki.get_site_name() == new_site_name
|
||||
|
||||
@ -12,8 +12,8 @@ from plinth import actions, views
|
||||
from plinth.errors import ActionError
|
||||
from plinth.modules import mediawiki
|
||||
|
||||
from . import (get_default_skin, get_server_url, is_private_mode_enabled,
|
||||
is_public_registration_enabled)
|
||||
from . import (get_default_skin, get_server_url, get_site_name,
|
||||
is_private_mode_enabled, is_public_registration_enabled)
|
||||
from .forms import MediaWikiForm
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@ -32,7 +32,8 @@ class MediaWikiAppView(views.AppView):
|
||||
'enable_public_registrations': is_public_registration_enabled(),
|
||||
'enable_private_mode': is_private_mode_enabled(),
|
||||
'default_skin': get_default_skin(),
|
||||
'domain': get_server_url()
|
||||
'domain': get_server_url(),
|
||||
'site_name': get_site_name()
|
||||
})
|
||||
return initial
|
||||
|
||||
@ -97,4 +98,8 @@ class MediaWikiAppView(views.AppView):
|
||||
mediawiki.set_server_url(new_config['domain'])
|
||||
messages.success(self.request, _('Domain name updated'))
|
||||
|
||||
if is_changed('site_name'):
|
||||
mediawiki.set_site_name(new_config['site_name'])
|
||||
messages.success(self.request, _('Site name updated'))
|
||||
|
||||
return super().form_valid(form)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user