From c8eb7145625a5cfdcb34ce2b5f1688ca7b81d779 Mon Sep 17 00:00:00 2001 From: Prachi Date: Thu, 10 Aug 2017 17:30:37 +0530 Subject: [PATCH] Separate out the short description and app name Signed-off-by: Prachi Reviewed-by: Joseph Nuthalapati --- plinth/frontpage.py | 4 +++- plinth/menu.py | 6 +++++- plinth/modules/avahi/__init__.py | 6 +++--- plinth/modules/bind/__init__.py | 10 ++++++---- plinth/modules/datetime/__init__.py | 8 ++++---- plinth/modules/deluge/__init__.py | 12 +++++++----- plinth/modules/diagnostics/__init__.py | 4 ++-- plinth/modules/diagnostics/diagnostics.py | 2 +- plinth/modules/diaspora/__init__.py | 13 +++++++------ plinth/modules/diaspora/views.py | 2 +- plinth/modules/disks/__init__.py | 4 ++-- plinth/modules/dynamicdns/__init__.py | 4 ++-- plinth/modules/dynamicdns/dynamicdns.py | 2 +- plinth/modules/ejabberd/__init__.py | 13 ++++++++----- plinth/modules/firewall/__init__.py | 4 ++-- plinth/modules/firewall/views.py | 4 ++-- plinth/modules/help/help.py | 6 +++--- plinth/modules/ikiwiki/__init__.py | 10 ++++++---- plinth/modules/infinoted/__init__.py | 12 +++++++----- plinth/modules/jsxc/__init__.py | 10 ++++++---- plinth/modules/letsencrypt/__init__.py | 8 +++++--- plinth/modules/letsencrypt/views.py | 2 +- plinth/modules/matrixsynapse/__init__.py | 13 ++++++++----- plinth/modules/matrixsynapse/views.py | 2 +- plinth/modules/minetest/__init__.py | 13 ++++++++----- plinth/modules/monkeysphere/__init__.py | 2 +- plinth/modules/monkeysphere/views.py | 4 ++-- plinth/modules/mumble/__init__.py | 13 ++++++++----- plinth/modules/names/__init__.py | 4 ++-- plinth/modules/names/views.py | 2 +- plinth/modules/networks/__init__.py | 4 ++-- plinth/modules/openvpn/__init__.py | 13 ++++++++----- plinth/modules/openvpn/views.py | 2 +- plinth/modules/pagekite/__init__.py | 6 ++++-- plinth/modules/pagekite/views.py | 2 +- plinth/modules/power/__init__.py | 2 +- plinth/modules/power/views.py | 2 +- plinth/modules/privoxy/__init__.py | 13 ++++++++----- plinth/modules/quassel/__init__.py | 13 ++++++++----- plinth/modules/radicale/__init__.py | 13 ++++++++----- plinth/modules/repro/__init__.py | 13 ++++++++----- plinth/modules/restore/__init__.py | 10 ++++++---- plinth/modules/roundcube/__init__.py | 12 +++++++----- plinth/modules/security/__init__.py | 4 ++-- plinth/modules/shaarli/__init__.py | 12 +++++++----- plinth/modules/snapshot/__init__.py | 4 ++-- plinth/modules/snapshot/views.py | 2 +- plinth/modules/sso/__init__.py | 2 +- plinth/modules/syncthing/__init__.py | 12 +++++++----- plinth/modules/tahoe/__init__.py | 12 +++++++----- plinth/modules/tahoe/views.py | 2 +- plinth/modules/tor/__init__.py | 6 ++++-- plinth/modules/tor/views.py | 2 +- plinth/modules/transmission/__init__.py | 12 +++++++----- plinth/modules/ttrss/__init__.py | 12 +++++++----- plinth/modules/upgrades/__init__.py | 6 +++--- plinth/modules/upgrades/views.py | 4 ++-- plinth/modules/users/__init__.py | 4 ++-- plinth/templates/setup.html | 2 +- plinth/tests/test_menu.py | 9 +++++---- 60 files changed, 238 insertions(+), 173 deletions(-) diff --git a/plinth/frontpage.py b/plinth/frontpage.py index d50a8a782..f3383a07f 100644 --- a/plinth/frontpage.py +++ b/plinth/frontpage.py @@ -27,7 +27,7 @@ def get_shortcuts(): return sorted(shortcuts.values(), key=lambda item: item['label']) -def add_shortcut(shortcut_id, label, login_required=False, +def add_shortcut(shortcut_id, name, short_description="", login_required=False, icon=None, url=None, details=None, configure_url=None): """Add shortcut to front page.""" @@ -38,6 +38,8 @@ def add_shortcut(shortcut_id, label, login_required=False, if not icon: icon = shortcut_id + label = '{0}\n({1})'.format(short_description, name) + shortcuts[shortcut_id] = { 'id': shortcut_id, 'label': label, diff --git a/plinth/menu.py b/plinth/menu.py index be4638b4e..b6c386624 100644 --- a/plinth/menu.py +++ b/plinth/menu.py @@ -60,13 +60,17 @@ class Menu(object): """Return menu items in sorted order according to current locale.""" return sorted(self.items, key=lambda x: (x.order, x.label)) - def add_urlname(self, label, icon, urlname, order=50, url_args=None, + def add_urlname(self, name, icon, urlname, short_description="", order=50, url_args=None, url_kwargs=None): """Add a named URL to the menu (via add_item). url_args and url_kwargs will be passed on to Django reverse(). """ + if short_description: + label = '{0} ({1})'.format(short_description, name) + else: + label = name url = reverse_lazy(urlname, args=url_args, kwargs=url_kwargs) return self.add_item(label, icon, url, order) diff --git a/plinth/modules/avahi/__init__.py b/plinth/modules/avahi/__init__.py index 27a4b52b0..6e4dd43ba 100644 --- a/plinth/modules/avahi/__init__.py +++ b/plinth/modules/avahi/__init__.py @@ -37,7 +37,7 @@ managed_services = ['avahi-daemon'] managed_packages = ['avahi-daemon'] -title = _('Service Discovery') +name = _('Service Discovery') description = [ format_lazy( @@ -56,11 +56,11 @@ service = None def init(): """Intialize the service discovery module.""" menu = main_menu.get('system') - menu.add_urlname(title, 'glyphicon-lamp', 'avahi:index') + menu.add_urlname(name, 'glyphicon-lamp', 'avahi:index') global service # pylint: disable=W0603 service = service_module.Service( - managed_services[0], title, ports=['mdns'], is_external=False) + managed_services[0], name, ports=['mdns'], is_external=False) def setup(helper, old_version=False): diff --git a/plinth/modules/bind/__init__.py b/plinth/modules/bind/__init__.py index 29ab61808..ed1ad5d91 100644 --- a/plinth/modules/bind/__init__.py +++ b/plinth/modules/bind/__init__.py @@ -31,7 +31,9 @@ from plinth.menu import main_menu version = 1 -title = _('Domain Name Server \n (BIND)') +name = _('BIND') + +short_description = _('Domain Name Server') service = None @@ -56,13 +58,13 @@ CONFIG_FILE = '/etc/bind/named.conf.options' def init(): """Intialize the BIND module.""" menu = main_menu.get('system') - menu.add_urlname(title, 'glyphicon-globe', 'bind:index') + menu.add_urlname(name, 'glyphicon-globe', 'bind:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - managed_services[0], title, ports=['dns'], + managed_services[0], name, ports=['dns'], is_external=False, ) @@ -73,7 +75,7 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - managed_services[0], title, ports=['dns'], + managed_services[0], name, ports=['dns'], is_external=True, enable=enable, disable=disable) helper.call('post', service.notify_enabled, None, True) diff --git a/plinth/modules/datetime/__init__.py b/plinth/modules/datetime/__init__.py index 92a750d4f..8c59d8a72 100644 --- a/plinth/modules/datetime/__init__.py +++ b/plinth/modules/datetime/__init__.py @@ -34,7 +34,7 @@ managed_services = ['ntp'] managed_packages = ['ntp'] -title = _('Date & Time') +name = _('Date & Time') description = [ _('Network time server is a program that maintains the system time ' @@ -47,13 +47,13 @@ service = None def init(): """Intialize the date/time module.""" menu = main_menu.get('system') - menu.add_urlname(title, 'glyphicon-time', 'datetime:index') + menu.add_urlname(name, 'glyphicon-time', 'datetime:index') global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - managed_services[0], title, ports=['ntp'], is_external=False) + managed_services[0], name, ports=['ntp'], is_external=False) def setup(helper, old_version=None): @@ -62,7 +62,7 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - managed_services[0], title, ports=['ntp'], is_external=False) + managed_services[0], name, ports=['ntp'], is_external=False) helper.call('post', service.notify_enabled, None, True) diff --git a/plinth/modules/deluge/__init__.py b/plinth/modules/deluge/__init__.py index 0db2f2ee1..ec62b4805 100644 --- a/plinth/modules/deluge/__init__.py +++ b/plinth/modules/deluge/__init__.py @@ -36,7 +36,9 @@ managed_services = ['deluge-web'] managed_packages = ['deluged', 'deluge-web'] -title = _('BitTorrent Web Client \n (Deluge)') +name = _('Deluge') + +short_description = _('BitTorrent Web Client') description = [ _('Deluge is a BitTorrent client that features a Web UI.'), @@ -52,13 +54,13 @@ reserved_usernames = ['debian-deluged'] def init(): """Initialize the Deluge module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-magnet', 'deluge:index') + menu.add_urlname(name, 'glyphicon-magnet', 'deluge:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - managed_services[0], title, ports=['http', 'https'], + managed_services[0], name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) @@ -73,7 +75,7 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - managed_services[0], title, ports=['http', 'https'], + managed_services[0], name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) helper.call('post', service.notify_enabled, None, True) @@ -81,7 +83,7 @@ def setup(helper, old_version=None): def add_shortcut(): - frontpage.add_shortcut('deluge', title, url='/deluge', + frontpage.add_shortcut('deluge', name, short_description, url='/deluge', login_required=True) diff --git a/plinth/modules/diagnostics/__init__.py b/plinth/modules/diagnostics/__init__.py index fd0f1b514..bc7f02207 100644 --- a/plinth/modules/diagnostics/__init__.py +++ b/plinth/modules/diagnostics/__init__.py @@ -29,7 +29,7 @@ version = 1 is_essential = True -title = _('Diagnostics') +name = _('Diagnostics') description = [ _('The system diagnostic test will run a number of checks on your ' @@ -41,7 +41,7 @@ description = [ def init(): """Initialize the module""" menu = main_menu.get('system') - menu.add_urlname(title, 'glyphicon-screenshot', 'diagnostics:index') + menu.add_urlname(name, 'glyphicon-screenshot', 'diagnostics:index') def diagnose(): diff --git a/plinth/modules/diagnostics/diagnostics.py b/plinth/modules/diagnostics/diagnostics.py index 58dd7a2ec..72c290d3c 100644 --- a/plinth/modules/diagnostics/diagnostics.py +++ b/plinth/modules/diagnostics/diagnostics.py @@ -44,7 +44,7 @@ def index(request): _start_task() return TemplateResponse(request, 'diagnostics.html', - {'title': diagnostics.title, + {'title': diagnostics.name, 'description': diagnostics.description, 'is_running': _running_task is not None, 'results': current_results}) diff --git a/plinth/modules/diaspora/__init__.py b/plinth/modules/diaspora/__init__.py index 05aa76fcc..6aed51458 100644 --- a/plinth/modules/diaspora/__init__.py +++ b/plinth/modules/diaspora/__init__.py @@ -48,9 +48,9 @@ def get_configured_domain_name(): version = 1 -title_en = 'Federated Social Network \n (diaspora*)' +name = _('diaspora*') -title = _(title_en) +short_description = _('Federated Social Network') service = None @@ -73,14 +73,14 @@ description = [ def init(): """Initialize the Diaspora module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-thumbs-up', 'diaspora:index') + menu.add_urlname(name, 'glyphicon-thumbs-up', 'diaspora:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( managed_services[0], - title, + name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, @@ -106,7 +106,7 @@ def setup_domain_name(domain_name): if service is None: service = service_module.Service( managed_services[0], - title, + name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, @@ -121,7 +121,8 @@ def add_shortcut(): if is_setup(): frontpage.add_shortcut( 'diaspora', - title, + name, + short_description, url='https://diaspora.{}'.format(get_configured_domain_name()), login_required=True) diff --git a/plinth/modules/diaspora/views.py b/plinth/modules/diaspora/views.py index 6bae74136..92aabf482 100644 --- a/plinth/modules/diaspora/views.py +++ b/plinth/modules/diaspora/views.py @@ -37,7 +37,7 @@ class DiasporaSetupView(FormView): template_name = 'diaspora-pre-setup.html' form_class = DomainSelectionForm description = diaspora.description - title = diaspora.title + title = diaspora.name success_url = reverse_lazy('diaspora:index') def form_valid(self, form): diff --git a/plinth/modules/disks/__init__.py b/plinth/modules/disks/__init__.py index 738495de6..6c46f86a0 100644 --- a/plinth/modules/disks/__init__.py +++ b/plinth/modules/disks/__init__.py @@ -30,7 +30,7 @@ from plinth.menu import main_menu version = 1 -title = _('Disks') +name = _('Disks') description = [] @@ -42,7 +42,7 @@ logger = logging.getLogger(__name__) def init(): """Intialize the module.""" menu = main_menu.get('system') - menu.add_urlname(title, 'glyphicon-hdd', 'disks:index') + menu.add_urlname(name, 'glyphicon-hdd', 'disks:index') def get_disks(): diff --git a/plinth/modules/dynamicdns/__init__.py b/plinth/modules/dynamicdns/__init__.py index b88af3a3a..a2ad4c74f 100644 --- a/plinth/modules/dynamicdns/__init__.py +++ b/plinth/modules/dynamicdns/__init__.py @@ -32,7 +32,7 @@ version = 1 managed_packages = ['ez-ipupdate'] -title = _('Dynamic DNS Client') +name = _('Dynamic DNS Client') description = [ format_lazy( @@ -57,7 +57,7 @@ reserved_usernames = ['ez-ipupd'] def init(): """Initialize the module.""" menu = main_menu.get('system') - menu.add_urlname(title, 'glyphicon-refresh', 'dynamicdns:index') + menu.add_urlname(name, 'glyphicon-refresh', 'dynamicdns:index') current_status = dynamicdns.get_status() if current_status['enabled']: services = dynamicdns.get_enabled_services(current_status['dynamicdns_domain']) diff --git a/plinth/modules/dynamicdns/dynamicdns.py b/plinth/modules/dynamicdns/dynamicdns.py index 4585d6abc..cfc686a0a 100644 --- a/plinth/modules/dynamicdns/dynamicdns.py +++ b/plinth/modules/dynamicdns/dynamicdns.py @@ -50,7 +50,7 @@ subsubmenu = [{'url': reverse_lazy('dynamicdns:index'), def index(request): """Serve Dynamic DNS page.""" return TemplateResponse(request, 'dynamicdns.html', - {'title': dynamicdns.title, + {'title': dynamicdns.name, 'description': dynamicdns.description, 'subsubmenu': subsubmenu}) diff --git a/plinth/modules/ejabberd/__init__.py b/plinth/modules/ejabberd/__init__.py index 64aeb559e..eea07fc28 100644 --- a/plinth/modules/ejabberd/__init__.py +++ b/plinth/modules/ejabberd/__init__.py @@ -42,7 +42,9 @@ managed_services = ['ejabberd'] managed_packages = ['ejabberd'] -title = _('Chat Server \n (ejabberd)') +name = _('ejabberd') + +short_description = _('Chat Server') description = [ _('XMPP is an open and standardized communication protocol. Here ' @@ -67,13 +69,13 @@ logger = logging.getLogger(__name__) def init(): """Initialize the ejabberd module""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-comment', 'ejabberd:index') + menu.add_urlname(name, 'glyphicon-comment', 'ejabberd:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - 'ejabberd', title, + 'ejabberd', name, ports=['xmpp-client', 'xmpp-server', 'xmpp-bosh'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) @@ -96,7 +98,7 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - 'ejabberd', title, + 'ejabberd', name, ports=['xmpp-client', 'xmpp-server', 'xmpp-bosh'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) @@ -105,7 +107,8 @@ def setup(helper, old_version=None): def add_shortcut(): - frontpage.add_shortcut('ejabberd', title, + frontpage.add_shortcut('ejabberd', name=name, + short_description=short_description, details=description, configure_url=reverse_lazy('ejabberd:index'), login_required=True) diff --git a/plinth/modules/firewall/__init__.py b/plinth/modules/firewall/__init__.py index b4340e836..ab42cec23 100644 --- a/plinth/modules/firewall/__init__.py +++ b/plinth/modules/firewall/__init__.py @@ -36,7 +36,7 @@ is_essential = True managed_packages = ['firewalld'] -title = _('Firewall') +name = _('Firewall') description = [ format_lazy( @@ -52,7 +52,7 @@ LOGGER = logging.getLogger(__name__) def init(): """Initailze firewall module""" menu = main_menu.get('system') - menu.add_urlname(title, 'glyphicon-fire', 'firewall:index') + menu.add_urlname(name, 'glyphicon-fire', 'firewall:index') service_enabled.connect(on_service_enabled) diff --git a/plinth/modules/firewall/views.py b/plinth/modules/firewall/views.py index 8ed984741..0044f0b56 100644 --- a/plinth/modules/firewall/views.py +++ b/plinth/modules/firewall/views.py @@ -29,7 +29,7 @@ def index(request): """Serve introduction page""" if not firewall.get_enabled_status(): return TemplateResponse(request, 'firewall.html', - {'title': firewall.title, + {'title': firewall.name, 'description': firewall.description, 'firewall_status': 'not_running'}) @@ -38,7 +38,7 @@ def index(request): return TemplateResponse( request, 'firewall.html', - {'title': firewall.title, + {'title': firewall.name, 'description': firewall.description, 'services': list(service_module.services.values()), 'internal_enabled_services': internal_enabled_services, diff --git a/plinth/modules/help/help.py b/plinth/modules/help/help.py index b37b7ba27..18caad4f1 100644 --- a/plinth/modules/help/help.py +++ b/plinth/modules/help/help.py @@ -34,11 +34,11 @@ def init(): menu = main_menu.add_urlname(ugettext_lazy('Documentation'), 'glyphicon-book', 'help:index') menu.add_urlname(ugettext_lazy('Where to Get Help'), 'glyphicon-search', - 'help:index_explicit', 5) + 'help:index_explicit', order=5) menu.add_urlname(ugettext_lazy('Manual'), 'glyphicon-info-sign', - 'help:manual', 10) + 'help:manual', order=10) menu.add_urlname(ugettext_lazy('About'), 'glyphicon-star', 'help:about', - 100) + order=100) def index(request): diff --git a/plinth/modules/ikiwiki/__init__.py b/plinth/modules/ikiwiki/__init__.py index b0bebb9ac..3bc806431 100644 --- a/plinth/modules/ikiwiki/__init__.py +++ b/plinth/modules/ikiwiki/__init__.py @@ -38,7 +38,9 @@ managed_packages = ['ikiwiki', 'libdigest-sha-perl', 'libxml-writer-perl', service = None -title = _('Wiki and Blog (ikiwiki)') +name = _('ikiwiki') + +short_description = _('Wiki and Blog') description = [ _('ikiwiki is a simple wiki and blog application. It supports ' @@ -59,13 +61,13 @@ description = [ def init(): """Initialize the ikiwiki module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-edit', 'ikiwiki:index') + menu.add_urlname(name, 'glyphicon-edit', 'ikiwiki:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - 'ikiwiki', title, ports=['http', 'https'], is_external=True, + 'ikiwiki', name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) if is_enabled(): @@ -79,7 +81,7 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - 'ikiwiki', title, ports=['http', 'https'], is_external=True, + 'ikiwiki', name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) helper.call('post', service.notify_enabled, None, True) helper.call('post', add_shortcuts) diff --git a/plinth/modules/infinoted/__init__.py b/plinth/modules/infinoted/__init__.py index 61588704c..15ba20576 100644 --- a/plinth/modules/infinoted/__init__.py +++ b/plinth/modules/infinoted/__init__.py @@ -40,7 +40,9 @@ managed_services = ['infinoted'] managed_packages = ['infinoted'] -title = _('Gobby Server \n (infinoted)') +name = _('infinoted') + +short_description = _('Gobby Server') description = [ _('infinoted is a server for Gobby, a collaborative text editor.'), @@ -56,13 +58,13 @@ description = [ def init(): """Initialize the infinoted module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-pencil', 'infinoted:index') + menu.add_urlname(name, 'glyphicon-pencil', 'infinoted:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - managed_services[0], title, ports=['infinoted-plinth'], + managed_services[0], name, ports=['infinoted-plinth'], is_external=True, enable=enable, disable=disable) if service.is_enabled(): @@ -82,7 +84,7 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - managed_services[0], title, ports=['infinoted-plinth'], + managed_services[0], name, ports=['infinoted-plinth'], is_external=True, enable=enable, disable=disable) helper.call('post', service.notify_enabled, None, True) @@ -90,7 +92,7 @@ def setup(helper, old_version=None): def add_shortcut(): - frontpage.add_shortcut('infinoted', title, url=None, + frontpage.add_shortcut('infinoted', name, url=None, details=description, configure_url=reverse_lazy('infinoted:index'), login_required=False) diff --git a/plinth/modules/jsxc/__init__.py b/plinth/modules/jsxc/__init__.py index c4e18685c..4ddb4ff1e 100644 --- a/plinth/modules/jsxc/__init__.py +++ b/plinth/modules/jsxc/__init__.py @@ -33,7 +33,9 @@ version = 1 managed_packages = ['libjs-jsxc'] -title = _('Chat Client \n (JSXC)') +name = _('JSXC') + +short_description = _('Chat Client') description = [ @@ -49,13 +51,13 @@ logger = logging.getLogger(__name__) def init(): """Initialize the JSXC module""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-comment', 'jsxc:index') + menu.add_urlname(name, 'glyphicon-comment', 'jsxc:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - 'jsxc', title, ports=['http', 'https'], is_external=True, + 'jsxc', name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) if is_enabled(): add_shortcut() @@ -68,7 +70,7 @@ def setup(helper, old_version=None): global service if not service: service = service_module.Service( - 'jsxc', title, ports=['http', 'https'], is_external=True, + 'jsxc', name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) helper.call('post', add_shortcut) diff --git a/plinth/modules/letsencrypt/__init__.py b/plinth/modules/letsencrypt/__init__.py index 5e1870165..88134b1ba 100644 --- a/plinth/modules/letsencrypt/__init__.py +++ b/plinth/modules/letsencrypt/__init__.py @@ -37,7 +37,9 @@ depends = ['names'] managed_packages = ['certbot'] -title = _('Certificates (Let\'s Encrypt)') +name = _('Let\'s Encrypt') + +short_description = _('Certificates') description = [ format_lazy( @@ -62,8 +64,8 @@ service = None def init(): """Intialize the module.""" menu = main_menu.get('system') - menu.add_urlname(_('Certificates (Let\'s Encrypt)'), - 'glyphicon-lock', 'letsencrypt:index') + menu.add_urlname(name, + 'glyphicon-lock', 'letsencrypt:index', short_description) domainname_change.connect(on_domainname_change) diff --git a/plinth/modules/letsencrypt/views.py b/plinth/modules/letsencrypt/views.py index 81a744526..8f2c4babd 100644 --- a/plinth/modules/letsencrypt/views.py +++ b/plinth/modules/letsencrypt/views.py @@ -43,7 +43,7 @@ def index(request): status = get_status() return TemplateResponse(request, 'letsencrypt.html', - {'title': letsencrypt.title, + {'title': letsencrypt.name, 'description': letsencrypt.description, 'status': status}) diff --git a/plinth/modules/matrixsynapse/__init__.py b/plinth/modules/matrixsynapse/__init__.py index 0b4b50d0b..c9425b763 100644 --- a/plinth/modules/matrixsynapse/__init__.py +++ b/plinth/modules/matrixsynapse/__init__.py @@ -38,7 +38,9 @@ managed_services = ['matrix-synapse'] managed_packages = ['matrix-synapse'] -title = _('Chat Server \n (Matrix Synapse)') +name = _('Matrix Synapse') + +short_description = _('Chat Server') description = [ _('Matrix is an new ' @@ -65,13 +67,13 @@ SERVER_NAME_PATH = "/etc/matrix-synapse/conf.d/server_name.yaml" def init(): """Initialize the matrix-synapse module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-comment', 'matrixsynapse:index') + menu.add_urlname(name, 'glyphicon-comment', 'matrixsynapse:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - 'matrix-synapse', title, + 'matrix-synapse', name, ports=['matrix-synapse-plinth'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) @@ -85,7 +87,7 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - 'matrix-synapse', title, + 'matrix-synapse', name, ports=['matrix-synapse-plinth'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) @@ -98,7 +100,8 @@ def setup(helper, old_version=None): def add_shortcut(): """Add a shortcut to the frontpage.""" - frontpage.add_shortcut('matrixsynapse', title, details=description, + frontpage.add_shortcut('matrixsynapse', name, details=description, + short_description=short_description, configure_url=reverse_lazy('matrixsynapse:index'), login_required=True) diff --git a/plinth/modules/matrixsynapse/views.py b/plinth/modules/matrixsynapse/views.py index 406086ebb..f3f3f3206 100644 --- a/plinth/modules/matrixsynapse/views.py +++ b/plinth/modules/matrixsynapse/views.py @@ -48,7 +48,7 @@ class SetupView(FormView): """Provide context data to the template.""" context = super().get_context_data(**kwargs) - context['title'] = matrixsynapse.title + context['title'] = matrixsynapse.name context['description'] = matrixsynapse.description context['domain_names'] = get_domain_names() diff --git a/plinth/modules/minetest/__init__.py b/plinth/modules/minetest/__init__.py index d91dd02b4..618361065 100644 --- a/plinth/modules/minetest/__init__.py +++ b/plinth/modules/minetest/__init__.py @@ -45,7 +45,9 @@ managed_packages = ['minetest-server', 'minetest-mod-advspawning', 'minetest-mod-mobf-trap', 'minetest-mod-moreblocks', 'minetest-mod-nether', 'minetest-mod-torches'] -title = _('Block Sandbox \n (Minetest)') +name = _('Minetest') + +short_description = _('Block Sandbox') description = [ format_lazy( @@ -65,13 +67,13 @@ AUG_PATH = '/files' + CONFIG_FILE + '/.anon' def init(): """Initialize the module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-th-large', 'minetest:index') + menu.add_urlname(name, 'glyphicon-th-large', 'minetest:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - managed_services[0], title, + managed_services[0], name, ports=['minetest-plinth'], is_external=True, enable=enable, disable=disable) @@ -85,7 +87,7 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - managed_services[0], title, + managed_services[0], name, ports=['minetest-plinth'], is_external=True, enable=enable, disable=disable) helper.call('post', service.notify_enabled, None, True) @@ -93,7 +95,8 @@ def setup(helper, old_version=None): def add_shortcut(): - frontpage.add_shortcut('minetest', title, url=None, + frontpage.add_shortcut('minetest', name, url=None, + short_description=short_description, details=description, configure_url=reverse_lazy('minetest:index'), login_required=False) diff --git a/plinth/modules/monkeysphere/__init__.py b/plinth/modules/monkeysphere/__init__.py index 726bffb61..3e4e975d7 100644 --- a/plinth/modules/monkeysphere/__init__.py +++ b/plinth/modules/monkeysphere/__init__.py @@ -28,7 +28,7 @@ version = 1 managed_packages = ['monkeysphere'] -title = _('Monkeysphere') +name = _('Monkeysphere') description = [ _('With Monkeysphere, an OpenPGP key can be generated for each configured ' diff --git a/plinth/modules/monkeysphere/views.py b/plinth/modules/monkeysphere/views.py index 673ab9dc2..5adaf1c5d 100644 --- a/plinth/modules/monkeysphere/views.py +++ b/plinth/modules/monkeysphere/views.py @@ -40,7 +40,7 @@ def index(request): status = get_status() return TemplateResponse( request, 'monkeysphere.html', - {'title': monkeysphere.title, + {'title': monkeysphere.name, 'description': monkeysphere.description, 'status': status, 'running': bool(publish_process)}) @@ -66,7 +66,7 @@ def import_key(request, ssh_fingerprint): def details(request, fingerprint): """Get details for an OpenPGP key.""" return TemplateResponse(request, 'monkeysphere_details.html', - {'title': monkeysphere.title, + {'title': monkeysphere.name, 'key': get_key(fingerprint)}) diff --git a/plinth/modules/mumble/__init__.py b/plinth/modules/mumble/__init__.py index aba1159ab..06ffe6fea 100644 --- a/plinth/modules/mumble/__init__.py +++ b/plinth/modules/mumble/__init__.py @@ -32,7 +32,9 @@ from plinth.views import ServiceView version = 1 -title = _('Voice Chat \n (Mumble)') +name = _('Mumble') + +short_description = _('Voice Chat') service = None @@ -55,13 +57,13 @@ reserved_usernames = ['mumble-server'] def init(): """Intialize the Mumble module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-headphones', 'mumble:index') + menu.add_urlname(name, 'glyphicon-headphones', 'mumble:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - managed_services[0], title, ports=['mumble-plinth'], + managed_services[0], name, ports=['mumble-plinth'], is_external=True, enable=enable, disable=disable) @@ -81,7 +83,7 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - managed_services[0], title, ports=['mumble-plinth'], + managed_services[0], name, ports=['mumble-plinth'], is_external=True, enable=enable, disable=disable) helper.call('post', service.notify_enabled, None, True) @@ -89,7 +91,8 @@ def setup(helper, old_version=None): def add_shortcut(): - frontpage.add_shortcut('mumble', title, + frontpage.add_shortcut('mumble', name, + short_description=short_description, details=description, configure_url=reverse_lazy('mumble:index'), login_required=False) diff --git a/plinth/modules/names/__init__.py b/plinth/modules/names/__init__.py index 83a48cd1d..39a97e4f4 100644 --- a/plinth/modules/names/__init__.py +++ b/plinth/modules/names/__init__.py @@ -36,7 +36,7 @@ version = 1 is_essential = True -title = _('Name Services') +name = _('Name Services') domain_types = {} domains = {} @@ -47,7 +47,7 @@ logger = logging.getLogger(__name__) def init(): """Initialize the names module.""" menu = main_menu.get('system') - menu.add_urlname(title, 'glyphicon-tag', 'names:index') + menu.add_urlname(name, 'glyphicon-tag', 'names:index') domain_added.connect(on_domain_added) domain_removed.connect(on_domain_removed) diff --git a/plinth/modules/names/views.py b/plinth/modules/names/views.py index d8daecd1f..bfce6f66e 100644 --- a/plinth/modules/names/views.py +++ b/plinth/modules/names/views.py @@ -32,7 +32,7 @@ def index(request): status = get_status() return TemplateResponse(request, 'names.html', - {'title': names.title, + {'title': names.name, 'status': status}) diff --git a/plinth/modules/networks/__init__.py b/plinth/modules/networks/__init__.py index 39a673b76..56b5274c8 100644 --- a/plinth/modules/networks/__init__.py +++ b/plinth/modules/networks/__init__.py @@ -34,7 +34,7 @@ is_essential = True managed_packages = ['network-manager', 'batctl'] -title = _('Networks') +name = _('Networks') logger = Logger(__name__) @@ -42,7 +42,7 @@ logger = Logger(__name__) def init(): """Initialize the Networks module.""" menu = main_menu.get('system') - menu.add_urlname(title, 'glyphicon-signal', 'networks:index') + menu.add_urlname(name, 'glyphicon-signal', 'networks:index') def setup(helper, old_version=None): diff --git a/plinth/modules/openvpn/__init__.py b/plinth/modules/openvpn/__init__.py index 000895d45..4044d7e7b 100644 --- a/plinth/modules/openvpn/__init__.py +++ b/plinth/modules/openvpn/__init__.py @@ -39,7 +39,9 @@ managed_services = ['openvpn@freedombox'] managed_packages = ['openvpn', 'easy-rsa'] -title = _('Virtual Private Network \n (OpenVPN)') +name = _('OpenVPN') + +short_description = _('Virtual Private Network') description = [ format_lazy( @@ -56,13 +58,13 @@ description = [ def init(): """Initialize the OpenVPN module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-lock', 'openvpn:index') + menu.add_urlname(name, 'glyphicon-lock', 'openvpn:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - managed_services[0], title, ports=['openvpn'], is_external=True) + managed_services[0], name, ports=['openvpn'], is_external=True) if service.is_enabled() and is_setup(): add_shortcut() @@ -74,7 +76,7 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - managed_services[0], title, ports=['openvpn'], is_external=True, + managed_services[0], name, ports=['openvpn'], is_external=True, enable=enable, disable=disable) @@ -84,7 +86,8 @@ def add_shortcut(): format_lazy(_('' 'Download Profile'), link=reverse_lazy('openvpn:profile')) - frontpage.add_shortcut('openvpn', title, + frontpage.add_shortcut('openvpn', name, + short_description=short_description, details=description + [download_profile], configure_url=reverse_lazy('openvpn:index'), login_required=True) diff --git a/plinth/modules/openvpn/views.py b/plinth/modules/openvpn/views.py index b3519c65b..be901cfc6 100644 --- a/plinth/modules/openvpn/views.py +++ b/plinth/modules/openvpn/views.py @@ -57,7 +57,7 @@ def index(request): form = OpenVpnForm(initial=status, prefix='openvpn') return TemplateResponse(request, 'openvpn.html', - {'title': openvpn.title, + {'title': openvpn.name, 'description': openvpn.description, 'status': status, 'form': form}) diff --git a/plinth/modules/pagekite/__init__.py b/plinth/modules/pagekite/__init__.py index 2deafd27c..31774623f 100644 --- a/plinth/modules/pagekite/__init__.py +++ b/plinth/modules/pagekite/__init__.py @@ -41,7 +41,9 @@ first_boot_steps = [ }, ] -title = _('Public Visibility (PageKite)') +name = _('PageKite') + +short_description = _('Public Visibility') description = [ format_lazy( @@ -80,7 +82,7 @@ description = [ def init(): """Intialize the PageKite module""" menu = main_menu.get('system') - menu.add_urlname(title, 'glyphicon-flag', 'pagekite:index') + menu.add_urlname(name, 'glyphicon-flag', 'pagekite:index', short_description) # Register kite name with Name Services module. utils.update_names_module(initial_registration=True) diff --git a/plinth/modules/pagekite/views.py b/plinth/modules/pagekite/views.py index 73b6da663..0f3ddc612 100644 --- a/plinth/modules/pagekite/views.py +++ b/plinth/modules/pagekite/views.py @@ -44,7 +44,7 @@ subsubmenu = [{'url': reverse_lazy('pagekite:index'), def index(request): """Serve introduction page""" return TemplateResponse(request, 'pagekite_introduction.html', - {'title': pagekite.title, + {'title': pagekite.name, 'description': pagekite.description, 'subsubmenu': subsubmenu}) diff --git a/plinth/modules/power/__init__.py b/plinth/modules/power/__init__.py index 21e654f07..2e8758c25 100644 --- a/plinth/modules/power/__init__.py +++ b/plinth/modules/power/__init__.py @@ -25,7 +25,7 @@ version = 1 is_essential = True -title = _('Power') +name = _('Power') description = [ _('Restart or shut down the system.') diff --git a/plinth/modules/power/views.py b/plinth/modules/power/views.py index e6518f8ee..947d53cda 100644 --- a/plinth/modules/power/views.py +++ b/plinth/modules/power/views.py @@ -32,7 +32,7 @@ from plinth.modules import power def index(request): """Serve power controls page.""" return TemplateResponse(request, 'power.html', - {'title': power.title, + {'title': power.name, 'description': power.description, 'pkg_manager_is_busy': _is_pkg_manager_busy()}) diff --git a/plinth/modules/privoxy/__init__.py b/plinth/modules/privoxy/__init__.py index b84058d99..7ed08756c 100644 --- a/plinth/modules/privoxy/__init__.py +++ b/plinth/modules/privoxy/__init__.py @@ -40,7 +40,9 @@ managed_services = ['privoxy'] managed_packages = ['privoxy'] -title = _('Web Proxy \n (Privoxy)') +name = _('Privoxy') + +short_description = _('Web Proxy') description = [ _('Privoxy is a non-caching web proxy with advanced filtering ' @@ -66,13 +68,13 @@ service = None def init(): """Intialize the module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-cloud-upload', 'privoxy:index') + menu.add_urlname(name, 'glyphicon-cloud-upload', 'privoxy:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - managed_services[0], title, ports=['privoxy'], + managed_services[0], name, ports=['privoxy'], is_external=False, enable=enable, disable=disable) @@ -87,7 +89,7 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - managed_services[0], title, ports=['privoxy'], + managed_services[0], name, ports=['privoxy'], is_external=False, enable=enable, disable=disable) helper.call('post', service.notify_enabled, None, True) @@ -95,7 +97,8 @@ def setup(helper, old_version=None): def add_shortcut(): - frontpage.add_shortcut('privoxy', title, + frontpage.add_shortcut('privoxy', name, + short_description=short_description, details=description, configure_url=reverse_lazy('privoxy:index'), login_required=True) diff --git a/plinth/modules/quassel/__init__.py b/plinth/modules/quassel/__init__.py index 63b7e3f05..5a4703b03 100644 --- a/plinth/modules/quassel/__init__.py +++ b/plinth/modules/quassel/__init__.py @@ -39,7 +39,9 @@ managed_services = ['quasselcore'] managed_packages = ['quassel-core'] -title = _('IRC Client \n (Quassel)') +name = _('Quassel') + +short_description = _('IRC Client') description = [ format_lazy( @@ -64,13 +66,13 @@ reserved_usernames = ['quasselcore'] def init(): """Initialize the quassel module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-retweet', 'quassel:index') + menu.add_urlname(name, 'glyphicon-retweet', 'quassel:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - managed_services[0], title, ports=['quassel-plinth'], + managed_services[0], name, ports=['quassel-plinth'], is_external=True, enable=enable, disable=disable) if service.is_enabled(): @@ -89,14 +91,15 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - managed_services[0], title, ports=['quassel-plinth'], + managed_services[0], name, ports=['quassel-plinth'], is_external=True, enable=enable, disable=disable) helper.call('post', service.notify_enabled, None, True) helper.call('post', add_shortcut) def add_shortcut(): - frontpage.add_shortcut('quassel', title, + frontpage.add_shortcut('quassel', name, + short_description=short_description, details=description, configure_url=reverse_lazy('quassel:index'), login_required=True) diff --git a/plinth/modules/radicale/__init__.py b/plinth/modules/radicale/__init__.py index 6aa86252d..8b0bbca0c 100644 --- a/plinth/modules/radicale/__init__.py +++ b/plinth/modules/radicale/__init__.py @@ -40,7 +40,9 @@ managed_services = ['radicale'] managed_packages = ['radicale'] -title = _('Calendar and Addressbook \n (Radicale)') +name = _('Radicale') + +short_description = _('Calendar and Addressbook') description = [ format_lazy( @@ -59,13 +61,13 @@ CONFIG_FILE = '/etc/radicale/config' def init(): """Initialize the radicale module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-calendar', 'radicale:index') + menu.add_urlname(name, 'glyphicon-calendar', 'radicale:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - managed_services[0], title, ports=['http', 'https'], + managed_services[0], name, ports=['http', 'https'], is_external=True, enable=enable, disable=disable) @@ -80,7 +82,7 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - managed_services[0], title, ports=['http', 'https'], + managed_services[0], name, ports=['http', 'https'], is_external=True, enable=enable, disable=disable) helper.call('post', service.notify_enabled, None, True) @@ -88,7 +90,8 @@ def setup(helper, old_version=None): def add_shortcut(): - frontpage.add_shortcut('radicale', title, + frontpage.add_shortcut('radicale', name, + short_description=short_description, details=description, configure_url=reverse_lazy('radicale:index'), login_required=True) diff --git a/plinth/modules/repro/__init__.py b/plinth/modules/repro/__init__.py index 5a454912f..5d13c7c0f 100644 --- a/plinth/modules/repro/__init__.py +++ b/plinth/modules/repro/__init__.py @@ -35,7 +35,9 @@ managed_services = ['repro'] managed_packages = ['repro'] -title = _('SIP Server \n (repro)') +name = _('repro') + +short_description = _('SIP Server') description = [ _('repro provides various SIP services that a SIP softphone can utilize ' @@ -66,13 +68,13 @@ service = None def init(): """Initialize the repro module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-phone-alt', 'repro:index') + menu.add_urlname(name, 'glyphicon-phone-alt', 'repro:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - managed_services[0], title, + managed_services[0], name, ports=['sip', 'sips', 'rtp-plinth'], is_external=True, enable=enable, disable=disable) @@ -93,7 +95,7 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - managed_services[0], title, + managed_services[0], name, ports=['sip', 'sips', 'rtp-plinth'], is_external=True, enable=enable, disable=disable) helper.call('post', service.notify_enabled, None, True) @@ -101,7 +103,8 @@ def setup(helper, old_version=None): def add_shortcut(): - frontpage.add_shortcut('repro', title, + frontpage.add_shortcut('repro', name, + short_description=short_description, details=description, configure_url=reverse_lazy('repro:index'), login_required=True) diff --git a/plinth/modules/restore/__init__.py b/plinth/modules/restore/__init__.py index dedbef702..94818b6df 100644 --- a/plinth/modules/restore/__init__.py +++ b/plinth/modules/restore/__init__.py @@ -33,7 +33,9 @@ managed_services = ['node-restore'] managed_packages = ['node-restore'] -title = _('Unhosted Storage \n (reStore)') +name = _('reStore') + +short_description = _('Unhosted Storage') description = [ format_lazy( @@ -56,13 +58,13 @@ service = None def init(): """Initialize the reStore module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-hdd', 'restore:index') + menu.add_urlname(name, 'glyphicon-hdd', 'restore:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - managed_services[0], title, ports=['http', 'https'], + managed_services[0], name, ports=['http', 'https'], is_external=False) @@ -72,5 +74,5 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - managed_services[0], title, ports=['http', 'https'], + managed_services[0], name, ports=['http', 'https'], is_external=False) diff --git a/plinth/modules/roundcube/__init__.py b/plinth/modules/roundcube/__init__.py index 501b0bdc6..8bd136d18 100644 --- a/plinth/modules/roundcube/__init__.py +++ b/plinth/modules/roundcube/__init__.py @@ -32,7 +32,9 @@ version = 1 managed_packages = ['sqlite3', 'roundcube', 'roundcube-sqlite3'] -title = _('Email Client \n (Roundcube)') +name = _('Roundcube') + +short_description = _('Email Client') description = [ _('Roundcube webmail is a browser-based multilingual IMAP ' @@ -62,13 +64,13 @@ service = None def init(): """Intialize the module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-envelope', 'roundcube:index') + menu.add_urlname(name, 'glyphicon-envelope', 'roundcube:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - 'roundcube', title, ports=['http', 'https'], is_external=True, + 'roundcube', name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) if is_enabled(): @@ -84,13 +86,13 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - 'roundcube', title, ports=['http', 'https'], is_external=True, + 'roundcube', name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) def add_shortcut(): frontpage.add_shortcut( - 'roundcube', title, url='/roundcube', + 'roundcube', name, short_description=short_description, url='/roundcube', login_required=True) diff --git a/plinth/modules/security/__init__.py b/plinth/modules/security/__init__.py index 420f1b6e0..fa4f6915f 100644 --- a/plinth/modules/security/__init__.py +++ b/plinth/modules/security/__init__.py @@ -29,7 +29,7 @@ version = 2 is_essential = True -title = _('Security') +name = _('Security') managed_packages = ['fail2ban'] @@ -42,7 +42,7 @@ ACCESS_CONF_SNIPPET = '-:ALL EXCEPT root fbx (admin) (sudo):ALL' def init(): """Initialize the module""" menu = main_menu.get('system') - menu.add_urlname(title, 'glyphicon-lock', 'security:index') + menu.add_urlname(name, 'glyphicon-lock', 'security:index') def setup(helper, old_version=None): diff --git a/plinth/modules/shaarli/__init__.py b/plinth/modules/shaarli/__init__.py index 6773fb740..13d7a5fcf 100644 --- a/plinth/modules/shaarli/__init__.py +++ b/plinth/modules/shaarli/__init__.py @@ -32,7 +32,9 @@ version = 1 managed_packages = ['shaarli'] -title = _('Bookmarks \n (Shaarli)') +name = _('Shaarli') + +short_description = _('Bookmarks') description = [ _('Shaarli allows you to save and share bookmarks.'), @@ -49,13 +51,13 @@ service = None def init(): """Initialize the module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-bookmark', 'shaarli:index') + menu.add_urlname(name, 'glyphicon-bookmark', 'shaarli:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - 'shaarli', title, ports=['http', 'https'], is_external=True, + 'shaarli', name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) if is_enabled(): @@ -68,14 +70,14 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - 'shaarli', title, ports=['http', 'https'], is_external=True, + 'shaarli', name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) helper.call('post', service.notify_enabled, None, True) helper.call('post', add_shortcut) def add_shortcut(): - frontpage.add_shortcut('shaarli', title, url='/shaarli', + frontpage.add_shortcut('shaarli', name, short_description=short_description, url='/shaarli', login_required=True) diff --git a/plinth/modules/snapshot/__init__.py b/plinth/modules/snapshot/__init__.py index caec951fd..6962b9b33 100644 --- a/plinth/modules/snapshot/__init__.py +++ b/plinth/modules/snapshot/__init__.py @@ -29,7 +29,7 @@ version = 1 managed_packages = ['snapper'] -title = _('Snapshots') +name = _('Snapshots') description = [ _('Snapshots allows creating and managing filesystem snapshots. These can ' @@ -51,7 +51,7 @@ service = None def init(): """Initialize the module.""" menu = main_menu.get('system') - menu.add_urlname(title, 'glyphicon-film', 'snapshot:index') + menu.add_urlname(name, 'glyphicon-film', 'snapshot:index') def setup(helper, old_version=None): diff --git a/plinth/modules/snapshot/views.py b/plinth/modules/snapshot/views.py index 1cdcbef0d..88a43df9a 100644 --- a/plinth/modules/snapshot/views.py +++ b/plinth/modules/snapshot/views.py @@ -40,7 +40,7 @@ def index(request): snapshots = json.loads(output) return TemplateResponse(request, 'snapshot.html', - {'title': snapshot_module.title, + {'title': snapshot_module.name, 'description': snapshot_module.description, 'snapshots': snapshots}) diff --git a/plinth/modules/sso/__init__.py b/plinth/modules/sso/__init__.py index bba74f53f..d301b5f6d 100644 --- a/plinth/modules/sso/__init__.py +++ b/plinth/modules/sso/__init__.py @@ -27,7 +27,7 @@ is_essential = True depends = ['security'] -title = _('Single Sign On') +name = _('Single Sign On') managed_packages = ['libapache2-mod-auth-pubtkt', 'openssl', 'python3-openssl'] diff --git a/plinth/modules/syncthing/__init__.py b/plinth/modules/syncthing/__init__.py index bf0b91d05..c2400d0e8 100644 --- a/plinth/modules/syncthing/__init__.py +++ b/plinth/modules/syncthing/__init__.py @@ -36,7 +36,9 @@ managed_services = ['syncthing'] managed_packages = ['syncthing'] -title = _('File Synchronization \n (Syncthing)') +name = _('Syncthing') + +short_description = _('File Synchronization') description = [ _('Syncthing is an application to synchronize files across multiple ' @@ -62,14 +64,14 @@ service = None def init(): """Intialize the module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-refresh', 'syncthing:index') + menu.add_urlname(name, 'glyphicon-refresh', 'syncthing:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( managed_services[0], - title, + name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, @@ -89,7 +91,7 @@ def setup(helper, old_version=None): if service is None: service = service_module.Service( managed_services[0], - title, + name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, @@ -103,7 +105,7 @@ def setup(helper, old_version=None): def add_shortcut(): """Helper method to add a shortcut to the frontpage.""" frontpage.add_shortcut( - 'syncthing', title, url='/syncthing/', login_required=True) + 'syncthing', name, short_description=short_description, url='/syncthing/', login_required=True) def is_running(): diff --git a/plinth/modules/tahoe/__init__.py b/plinth/modules/tahoe/__init__.py index c3f16bf5b..8b9106863 100644 --- a/plinth/modules/tahoe/__init__.py +++ b/plinth/modules/tahoe/__init__.py @@ -39,7 +39,9 @@ managed_services = ['tahoe-lafs'] managed_packages = ['tahoe-lafs'] -title = _('Distributed File Storage (Tahoe-LAFS)') +name = _('LAFS') + +short_description = _('Distributed File Storage') service = None @@ -85,14 +87,14 @@ description = [ def init(): """Intialize the module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-hdd', 'tahoe:index') + menu.add_urlname(name, 'glyphicon-hdd', 'tahoe:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup' and is_setup(): service = service_module.Service( managed_services[0], - title, + name, ports=['tahoe-plinth'], is_external=True, is_enabled=is_enabled, @@ -124,7 +126,7 @@ def post_setup(configured_domain_name): if service is None: service = service_module.Service( managed_services[0], - title, + name, ports=['tahoe-plinth'], is_external=True, is_enabled=is_enabled, @@ -139,7 +141,7 @@ def add_shortcut(): """Helper method to add a shortcut to the front page.""" # BUG: Current logo appears squashed on front page. frontpage.add_shortcut( - 'tahoe-lafs', title, + 'tahoe-lafs', name, short_description=short_description, url='https://{}:5678'.format(get_configured_domain_name()), login_required=True) diff --git a/plinth/modules/tahoe/views.py b/plinth/modules/tahoe/views.py index b0aba6ff5..05ad7dfa1 100644 --- a/plinth/modules/tahoe/views.py +++ b/plinth/modules/tahoe/views.py @@ -32,7 +32,7 @@ class TahoeSetupView(FormView): template_name = 'tahoe-pre-setup.html' form_class = DomainSelectionForm description = tahoe.description - title = tahoe.title + title = tahoe.name success_url = reverse_lazy('tahoe:index') def form_valid(self, form): diff --git a/plinth/modules/tor/__init__.py b/plinth/modules/tor/__init__.py index 7e3499ed3..684eff893 100644 --- a/plinth/modules/tor/__init__.py +++ b/plinth/modules/tor/__init__.py @@ -39,7 +39,9 @@ depends = ['names'] managed_packages = ['tor', 'tor-geoipdb', 'torsocks', 'obfs4proxy', 'apt-transport-tor'] -title = ('Anonymity Network \n (Tor)') +name = _('Tor') + +short_description = _('Anonymity Network') description = [ _('Tor is an anonymous communication system. You can learn more ' @@ -59,7 +61,7 @@ bridge_service = None def init(): """Initialize the module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-eye-close', 'tor:index') + menu.add_urlname(name, 'glyphicon-eye-close', 'tor:index', short_description) setup_helper = globals()['setup_helper'] needs_setup = setup_helper.get_state() == 'needs-setup' diff --git a/plinth/modules/tor/views.py b/plinth/modules/tor/views.py index f05c07530..d9374f1e1 100644 --- a/plinth/modules/tor/views.py +++ b/plinth/modules/tor/views.py @@ -51,7 +51,7 @@ def index(request): form = TorForm(initial=status, prefix='tor') return TemplateResponse(request, 'tor.html', - {'title': tor.title, + {'title': tor.name, 'description': tor.description, 'status': status, 'config_running': bool(config_process), diff --git a/plinth/modules/transmission/__init__.py b/plinth/modules/transmission/__init__.py index 2a7930a40..5d8f5cb7a 100644 --- a/plinth/modules/transmission/__init__.py +++ b/plinth/modules/transmission/__init__.py @@ -35,7 +35,9 @@ managed_services = ['transmission-daemon'] managed_packages = ['transmission-daemon'] -title = _('BitTorrent \n (Transmission)') +name = _('Transmission') + +short_description = _('BitTorrent') description = [ _('BitTorrent is a peer-to-peer file sharing protocol. ' @@ -52,13 +54,13 @@ service = None def init(): """Intialize the Transmission module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-save', 'transmission:index') + menu.add_urlname(name, 'glyphicon-save', 'transmission:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - managed_services[0], title, ports=['http', 'https'], + managed_services[0], name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) @@ -79,7 +81,7 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - managed_services[0], title, ports=['http', 'https'], + managed_services[0], name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) helper.call('post', service.notify_enabled, None, True) @@ -88,7 +90,7 @@ def setup(helper, old_version=None): def add_shortcut(): frontpage.add_shortcut( - 'transmission', title, url='/transmission', + 'transmission', name, short_description=short_description, url='/transmission', login_required=True) diff --git a/plinth/modules/ttrss/__init__.py b/plinth/modules/ttrss/__init__.py index 98eaf7f2c..96e589d48 100644 --- a/plinth/modules/ttrss/__init__.py +++ b/plinth/modules/ttrss/__init__.py @@ -36,7 +36,9 @@ managed_services = ['tt-rss'] managed_packages = ['tt-rss', 'postgresql', 'dbconfig-pgsql', 'php-pgsql'] -title = _('News Feed Reader \n (Tiny Tiny RSS)') +name = _('Tiny Tiny RSS') + +short_description = _('News Feed Reader') description = [ _('Tiny Tiny RSS is a news feed (RSS/Atom) reader and aggregator, ' @@ -56,13 +58,13 @@ service = None def init(): """Intialize the module.""" menu = main_menu.get('apps') - menu.add_urlname(title, 'glyphicon-envelope', 'ttrss:index') + menu.add_urlname(name, 'glyphicon-envelope', 'ttrss:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service( - managed_services[0], title, ports=['http', 'https'], + managed_services[0], name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) @@ -78,7 +80,7 @@ def setup(helper, old_version=None): global service if service is None: service = service_module.Service( - managed_services[0], title, ports=['http', 'https'], + managed_services[0], name, ports=['http', 'https'], is_external=True, is_enabled=is_enabled, enable=enable, disable=disable) helper.call('post', service.notify_enabled, None, True) @@ -86,7 +88,7 @@ def setup(helper, old_version=None): def add_shortcut(): - frontpage.add_shortcut('ttrss', title, url='/tt-rss', + frontpage.add_shortcut('ttrss', name, short_description=short_description, url='/tt-rss', login_required=True) diff --git a/plinth/modules/upgrades/__init__.py b/plinth/modules/upgrades/__init__.py index a13199f4e..00569bd0a 100644 --- a/plinth/modules/upgrades/__init__.py +++ b/plinth/modules/upgrades/__init__.py @@ -32,7 +32,7 @@ is_essential = True managed_packages = ['unattended-upgrades'] -title = _('Software Upgrades') +name = _('Software Upgrades') description = [ _('Upgrades install the latest software and security updates. When ' @@ -46,10 +46,10 @@ service = None def init(): """Initialize the module.""" menu = main_menu.get('system') - menu.add_urlname(title, 'glyphicon-refresh', 'upgrades:index') + menu.add_urlname(name, 'glyphicon-refresh', 'upgrades:index') global service service = service_module.Service( - 'auto-upgrades', title, is_external=False, is_enabled=is_enabled, + 'auto-upgrades', name, is_external=False, is_enabled=is_enabled, enable=enable, disable=disable) diff --git a/plinth/modules/upgrades/views.py b/plinth/modules/upgrades/views.py index 73fa764f3..4bffb3433 100644 --- a/plinth/modules/upgrades/views.py +++ b/plinth/modules/upgrades/views.py @@ -47,7 +47,7 @@ class UpgradesConfigurationView(FormView): """Return the context data for rendering the template view.""" context = super().get_context_data(*args, **kwargs) context['subsubmenu'] = subsubmenu - context['title'] = upgrades.title + context['title'] = upgrades.name context['description'] = upgrades.description return context @@ -111,7 +111,7 @@ def upgrade(request): messages.error(request, _('Starting upgrade failed.')) return TemplateResponse(request, 'upgrades.html', - {'title': upgrades.title, + {'title': upgrades.name, 'description': upgrades.description, 'subsubmenu': subsubmenu, 'is_busy': is_busy, diff --git a/plinth/modules/users/__init__.py b/plinth/modules/users/__init__.py index fc0f6861b..fc691c81f 100644 --- a/plinth/modules/users/__init__.py +++ b/plinth/modules/users/__init__.py @@ -42,13 +42,13 @@ first_boot_steps = [ }, ] -title = _('Users and Groups') +name = _('Users and Groups') def init(): """Intialize the user module.""" menu = main_menu.get('system') - menu.add_urlname(title, 'glyphicon-user', 'users:index') + menu.add_urlname(name, 'glyphicon-user', 'users:index') def setup(helper, old_version=None): diff --git a/plinth/templates/setup.html b/plinth/templates/setup.html index 0a7a4a8f4..d2613a34c 100644 --- a/plinth/templates/setup.html +++ b/plinth/templates/setup.html @@ -32,7 +32,7 @@ {% block content %} -

{% trans "Installation" %}: {{ setup_helper.module.title }}

+

{% trans "Installation" %}: {{ setup_helper.module.short_description }} ({{ setup_helper.module.name }})

{% for paragraph in setup_helper.module.description %}

{{ paragraph|safe }}

diff --git a/plinth/tests/test_menu.py b/plinth/tests/test_menu.py index aad4ed3be..190bcc0c0 100644 --- a/plinth/tests/test_menu.py +++ b/plinth/tests/test_menu.py @@ -154,19 +154,20 @@ class MenuTestCase(TestCase): def test_add_urlname(self): """Verify that a named URL can be added to a menu correctly.""" - expected_label = 'Label4' + expected_title = 'Label4' + expected_short_description = 'Description4' expected_icon = 'Icon4' expected_url = 'index' reversed_url = reverse(expected_url) expected_order = 4 menu = Menu() - actual_item = menu.add_urlname(expected_label, expected_icon, - expected_url, expected_order) + actual_item = menu.add_urlname(expected_title, expected_icon, + expected_url, expected_short_description, expected_order) self.assertEqual(1, len(menu.items)) self.assertIsNotNone(actual_item) self.assertEqual(actual_item, menu.items[0]) - self.assertEqual(expected_label, actual_item.label) + self.assertEqual('Description4 (Label4)', actual_item.label) self.assertEqual(expected_icon, actual_item.icon) self.assertEqual(reversed_url, actual_item.url) self.assertEqual(expected_order, actual_item.order)