mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-05-27 10:44:33 +00:00
Add basic front page with shortcuts to web apps
This commit is contained in:
parent
b69720e0d4
commit
3eb7dd914a
42
plinth/frontpage.py
Normal file
42
plinth/frontpage.py
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#
|
||||||
|
# This file is part of Plinth.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
"""
|
||||||
|
Manage application shortcuts on front page.
|
||||||
|
"""
|
||||||
|
|
||||||
|
shortcuts = {}
|
||||||
|
|
||||||
|
|
||||||
|
def get_shortcuts():
|
||||||
|
"""Return menu items in sorted order according to current locale."""
|
||||||
|
return sorted(shortcuts.values(), key=lambda x: x['label'])
|
||||||
|
|
||||||
|
|
||||||
|
def add_shortcut(app, label, url, icon):
|
||||||
|
"""Add shortcut to front page."""
|
||||||
|
shortcuts[app] = {
|
||||||
|
'label': label,
|
||||||
|
'url': url,
|
||||||
|
'icon': icon,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def remove_shortcut(app):
|
||||||
|
"""Remove shortcut from front page."""
|
||||||
|
if app in shortcuts:
|
||||||
|
del shortcuts[app]
|
||||||
@ -24,6 +24,7 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
from plinth import actions
|
from plinth import actions
|
||||||
from plinth import action_utils
|
from plinth import action_utils
|
||||||
from plinth import cfg
|
from plinth import cfg
|
||||||
|
from plinth import frontpage
|
||||||
from plinth import service as service_module
|
from plinth import service as service_module
|
||||||
|
|
||||||
|
|
||||||
@ -59,12 +60,20 @@ def init():
|
|||||||
managed_services[0], title, ports=['http', 'https'], is_external=True,
|
managed_services[0], title, ports=['http', 'https'], is_external=True,
|
||||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||||
|
|
||||||
|
if is_enabled():
|
||||||
|
add_shortcut()
|
||||||
|
|
||||||
|
|
||||||
def setup(helper, old_version=None):
|
def setup(helper, old_version=None):
|
||||||
"""Install and configure the module."""
|
"""Install and configure the module."""
|
||||||
helper.install(managed_packages)
|
helper.install(managed_packages)
|
||||||
helper.call('post', actions.superuser_run, 'deluge', ['enable'])
|
helper.call('post', actions.superuser_run, 'deluge', ['enable'])
|
||||||
helper.call('post', service.notify_enabled, None, True)
|
helper.call('post', service.notify_enabled, None, True)
|
||||||
|
helper.call('post', add_shortcut)
|
||||||
|
|
||||||
|
|
||||||
|
def add_shortcut():
|
||||||
|
frontpage.add_shortcut('deluge', title, '/deluge', 'glyphicon-magnet')
|
||||||
|
|
||||||
|
|
||||||
def is_enabled():
|
def is_enabled():
|
||||||
@ -76,11 +85,13 @@ def is_enabled():
|
|||||||
def enable():
|
def enable():
|
||||||
"""Enable the module."""
|
"""Enable the module."""
|
||||||
actions.superuser_run('deluge', ['enable'])
|
actions.superuser_run('deluge', ['enable'])
|
||||||
|
add_shortcut()
|
||||||
|
|
||||||
|
|
||||||
def disable():
|
def disable():
|
||||||
"""Disable the module."""
|
"""Disable the module."""
|
||||||
actions.superuser_run('deluge', ['disable'])
|
actions.superuser_run('deluge', ['disable'])
|
||||||
|
frontpage.remove_shortcut('deluge')
|
||||||
|
|
||||||
|
|
||||||
def diagnose():
|
def diagnose():
|
||||||
|
|||||||
@ -24,6 +24,7 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
from plinth import actions
|
from plinth import actions
|
||||||
from plinth import action_utils
|
from plinth import action_utils
|
||||||
from plinth import cfg
|
from plinth import cfg
|
||||||
|
from plinth import frontpage
|
||||||
from plinth import service as service_module
|
from plinth import service as service_module
|
||||||
|
|
||||||
|
|
||||||
@ -58,12 +59,20 @@ def init():
|
|||||||
'ikiwiki', title, ports=['http', 'https'], is_external=True,
|
'ikiwiki', title, ports=['http', 'https'], is_external=True,
|
||||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||||
|
|
||||||
|
if is_enabled():
|
||||||
|
add_shortcut()
|
||||||
|
|
||||||
|
|
||||||
def setup(helper, old_version=None):
|
def setup(helper, old_version=None):
|
||||||
"""Install and configure the module."""
|
"""Install and configure the module."""
|
||||||
helper.install(managed_packages)
|
helper.install(managed_packages)
|
||||||
helper.call('post', actions.superuser_run, 'ikiwiki', ['setup'])
|
helper.call('post', actions.superuser_run, 'ikiwiki', ['setup'])
|
||||||
helper.call('post', service.notify_enabled, None, True)
|
helper.call('post', service.notify_enabled, None, True)
|
||||||
|
helper.call('post', add_shortcut)
|
||||||
|
|
||||||
|
|
||||||
|
def add_shortcut():
|
||||||
|
frontpage.add_shortcut('ikiwiki', title, '/ikiwiki', 'glyphicon-edit')
|
||||||
|
|
||||||
|
|
||||||
def is_enabled():
|
def is_enabled():
|
||||||
@ -74,11 +83,13 @@ def is_enabled():
|
|||||||
def enable():
|
def enable():
|
||||||
"""Enable the module."""
|
"""Enable the module."""
|
||||||
actions.superuser_run('ikiwiki', ['enable'])
|
actions.superuser_run('ikiwiki', ['enable'])
|
||||||
|
add_shortcut()
|
||||||
|
|
||||||
|
|
||||||
def disable():
|
def disable():
|
||||||
"""Enable the module."""
|
"""Enable the module."""
|
||||||
actions.superuser_run('ikiwiki', ['disable'])
|
actions.superuser_run('ikiwiki', ['disable'])
|
||||||
|
frontpage.remove_shortcut('ikiwiki')
|
||||||
|
|
||||||
|
|
||||||
def diagnose():
|
def diagnose():
|
||||||
|
|||||||
@ -24,6 +24,7 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
from plinth import actions
|
from plinth import actions
|
||||||
from plinth import action_utils
|
from plinth import action_utils
|
||||||
from plinth import cfg
|
from plinth import cfg
|
||||||
|
from plinth import frontpage
|
||||||
from plinth import service as service_module
|
from plinth import service as service_module
|
||||||
|
|
||||||
|
|
||||||
@ -70,12 +71,21 @@ def init():
|
|||||||
'roundcube', title, ports=['http', 'https'], is_external=True,
|
'roundcube', title, ports=['http', 'https'], is_external=True,
|
||||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||||
|
|
||||||
|
if is_enabled():
|
||||||
|
add_shortcut()
|
||||||
|
|
||||||
|
|
||||||
def setup(helper, old_version=None):
|
def setup(helper, old_version=None):
|
||||||
"""Install and configure the module."""
|
"""Install and configure the module."""
|
||||||
helper.call('pre', actions.superuser_run, 'roundcube', ['pre-install'])
|
helper.call('pre', actions.superuser_run, 'roundcube', ['pre-install'])
|
||||||
helper.install(managed_packages)
|
helper.install(managed_packages)
|
||||||
helper.call('post', actions.superuser_run, 'roundcube', ['setup'])
|
helper.call('post', actions.superuser_run, 'roundcube', ['setup'])
|
||||||
|
helper.call('post', add_shortcut)
|
||||||
|
|
||||||
|
|
||||||
|
def add_shortcut():
|
||||||
|
frontpage.add_shortcut(
|
||||||
|
'roundcube', title, '/roundcube', 'glyphicon-envelope')
|
||||||
|
|
||||||
|
|
||||||
def is_enabled():
|
def is_enabled():
|
||||||
@ -86,11 +96,13 @@ def is_enabled():
|
|||||||
def enable():
|
def enable():
|
||||||
"""Enable the module."""
|
"""Enable the module."""
|
||||||
actions.superuser_run('roundcube', ['enable'])
|
actions.superuser_run('roundcube', ['enable'])
|
||||||
|
add_shortcut()
|
||||||
|
|
||||||
|
|
||||||
def disable():
|
def disable():
|
||||||
"""Enable the module."""
|
"""Enable the module."""
|
||||||
actions.superuser_run('roundcube', ['disable'])
|
actions.superuser_run('roundcube', ['disable'])
|
||||||
|
frontpage.remove_shortcut('roundcube')
|
||||||
|
|
||||||
|
|
||||||
def diagnose():
|
def diagnose():
|
||||||
|
|||||||
@ -24,6 +24,7 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
from plinth import actions
|
from plinth import actions
|
||||||
from plinth import action_utils
|
from plinth import action_utils
|
||||||
from plinth import cfg
|
from plinth import cfg
|
||||||
|
from plinth import frontpage
|
||||||
from plinth import service as service_module
|
from plinth import service as service_module
|
||||||
|
|
||||||
|
|
||||||
@ -57,11 +58,19 @@ def init():
|
|||||||
'shaarli', title, ports=['http', 'https'], is_external=True,
|
'shaarli', title, ports=['http', 'https'], is_external=True,
|
||||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||||
|
|
||||||
|
if is_enabled():
|
||||||
|
add_shortcut()
|
||||||
|
|
||||||
|
|
||||||
def setup(helper, old_version=None):
|
def setup(helper, old_version=None):
|
||||||
"""Install and configure the module."""
|
"""Install and configure the module."""
|
||||||
helper.install(managed_packages)
|
helper.install(managed_packages)
|
||||||
helper.call('post', service.notify_enabled, None, True)
|
helper.call('post', service.notify_enabled, None, True)
|
||||||
|
helper.call('post', add_shortcut)
|
||||||
|
|
||||||
|
|
||||||
|
def add_shortcut():
|
||||||
|
frontpage.add_shortcut('shaarli', title, '/shaarli', 'glyphicon-bookmark')
|
||||||
|
|
||||||
|
|
||||||
def is_enabled():
|
def is_enabled():
|
||||||
@ -72,8 +81,10 @@ def is_enabled():
|
|||||||
def enable():
|
def enable():
|
||||||
"""Enable the module."""
|
"""Enable the module."""
|
||||||
actions.superuser_run('shaarli', ['enable'])
|
actions.superuser_run('shaarli', ['enable'])
|
||||||
|
add_shortcut()
|
||||||
|
|
||||||
|
|
||||||
def disable():
|
def disable():
|
||||||
"""Enable the module."""
|
"""Enable the module."""
|
||||||
actions.superuser_run('shaarli', ['disable'])
|
actions.superuser_run('shaarli', ['disable'])
|
||||||
|
frontpage.remove_shortcut('shaarli')
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import json
|
|||||||
from plinth import actions
|
from plinth import actions
|
||||||
from plinth import action_utils
|
from plinth import action_utils
|
||||||
from plinth import cfg
|
from plinth import cfg
|
||||||
|
from plinth import frontpage
|
||||||
from plinth import service as service_module
|
from plinth import service as service_module
|
||||||
|
|
||||||
|
|
||||||
@ -58,6 +59,9 @@ def init():
|
|||||||
managed_services[0], title, ports=['http', 'https'], is_external=True,
|
managed_services[0], title, ports=['http', 'https'], is_external=True,
|
||||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||||
|
|
||||||
|
if is_enabled():
|
||||||
|
add_shortcut()
|
||||||
|
|
||||||
|
|
||||||
def setup(helper, old_version=None):
|
def setup(helper, old_version=None):
|
||||||
"""Install and configure the module."""
|
"""Install and configure the module."""
|
||||||
@ -70,6 +74,12 @@ def setup(helper, old_version=None):
|
|||||||
|
|
||||||
helper.call('post', actions.superuser_run, 'transmission', ['enable'])
|
helper.call('post', actions.superuser_run, 'transmission', ['enable'])
|
||||||
helper.call('post', service.notify_enabled, None, True)
|
helper.call('post', service.notify_enabled, None, True)
|
||||||
|
helper.call('post', add_shortcut)
|
||||||
|
|
||||||
|
|
||||||
|
def add_shortcut():
|
||||||
|
frontpage.add_shortcut(
|
||||||
|
'transmission', title, '/transmission', 'glyphicon-save')
|
||||||
|
|
||||||
|
|
||||||
def is_enabled():
|
def is_enabled():
|
||||||
@ -81,11 +91,13 @@ def is_enabled():
|
|||||||
def enable():
|
def enable():
|
||||||
"""Enable the module."""
|
"""Enable the module."""
|
||||||
actions.superuser_run('transmission', ['enable'])
|
actions.superuser_run('transmission', ['enable'])
|
||||||
|
add_shortcut()
|
||||||
|
|
||||||
|
|
||||||
def disable():
|
def disable():
|
||||||
"""Enable the module."""
|
"""Enable the module."""
|
||||||
actions.superuser_run('transmission', ['disable'])
|
actions.superuser_run('transmission', ['disable'])
|
||||||
|
frontpage.remove_shortcut('transmission')
|
||||||
|
|
||||||
|
|
||||||
def diagnose():
|
def diagnose():
|
||||||
|
|||||||
@ -24,6 +24,7 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
from plinth import actions
|
from plinth import actions
|
||||||
from plinth import action_utils
|
from plinth import action_utils
|
||||||
from plinth import cfg
|
from plinth import cfg
|
||||||
|
from plinth import frontpage
|
||||||
from plinth import service as service_module
|
from plinth import service as service_module
|
||||||
|
|
||||||
|
|
||||||
@ -59,6 +60,9 @@ def init():
|
|||||||
managed_services[0], title, ports=['http', 'https'], is_external=True,
|
managed_services[0], title, ports=['http', 'https'], is_external=True,
|
||||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||||
|
|
||||||
|
if is_enabled():
|
||||||
|
add_shortcut()
|
||||||
|
|
||||||
|
|
||||||
def setup(helper, old_version=None):
|
def setup(helper, old_version=None):
|
||||||
"""Install and configure the module."""
|
"""Install and configure the module."""
|
||||||
@ -66,6 +70,11 @@ def setup(helper, old_version=None):
|
|||||||
helper.install(managed_packages)
|
helper.install(managed_packages)
|
||||||
helper.call('post', actions.superuser_run, 'ttrss', ['setup'])
|
helper.call('post', actions.superuser_run, 'ttrss', ['setup'])
|
||||||
helper.call('post', service.notify_enabled, None, True)
|
helper.call('post', service.notify_enabled, None, True)
|
||||||
|
helper.call('post', add_shortcut)
|
||||||
|
|
||||||
|
|
||||||
|
def add_shortcut():
|
||||||
|
frontpage.add_shortcut('ttrss', title, '/tt-rss', 'glyphicon-envelope')
|
||||||
|
|
||||||
|
|
||||||
def is_enabled():
|
def is_enabled():
|
||||||
@ -77,11 +86,13 @@ def is_enabled():
|
|||||||
def enable():
|
def enable():
|
||||||
"""Enable the module."""
|
"""Enable the module."""
|
||||||
actions.superuser_run('ttrss', ['enable'])
|
actions.superuser_run('ttrss', ['enable'])
|
||||||
|
add_shortcut()
|
||||||
|
|
||||||
|
|
||||||
def disable():
|
def disable():
|
||||||
"""Enable the module."""
|
"""Enable the module."""
|
||||||
actions.superuser_run('ttrss', ['disable'])
|
actions.superuser_run('ttrss', ['disable'])
|
||||||
|
frontpage.remove_shortcut('ttrss')
|
||||||
|
|
||||||
|
|
||||||
def diagnose():
|
def diagnose():
|
||||||
|
|||||||
@ -26,6 +26,7 @@ import socket
|
|||||||
from plinth import actions
|
from plinth import actions
|
||||||
from plinth import action_utils
|
from plinth import action_utils
|
||||||
from plinth import cfg
|
from plinth import cfg
|
||||||
|
from plinth import frontpage
|
||||||
from plinth import service as service_module
|
from plinth import service as service_module
|
||||||
from plinth.views import ServiceView
|
from plinth.views import ServiceView
|
||||||
from plinth.signals import pre_hostname_change, post_hostname_change
|
from plinth.signals import pre_hostname_change, post_hostname_change
|
||||||
@ -72,6 +73,9 @@ def init():
|
|||||||
post_hostname_change.connect(on_post_hostname_change)
|
post_hostname_change.connect(on_post_hostname_change)
|
||||||
domainname_change.connect(on_domainname_change)
|
domainname_change.connect(on_domainname_change)
|
||||||
|
|
||||||
|
if is_enabled():
|
||||||
|
add_shortcut()
|
||||||
|
|
||||||
|
|
||||||
def setup(helper, old_version=None):
|
def setup(helper, old_version=None):
|
||||||
"""Install and configure the module."""
|
"""Install and configure the module."""
|
||||||
@ -83,6 +87,11 @@ def setup(helper, old_version=None):
|
|||||||
helper.install(managed_packages)
|
helper.install(managed_packages)
|
||||||
helper.call('post', actions.superuser_run, 'xmpp', ['setup'])
|
helper.call('post', actions.superuser_run, 'xmpp', ['setup'])
|
||||||
helper.call('post', service.notify_enabled, None, True)
|
helper.call('post', service.notify_enabled, None, True)
|
||||||
|
helper.call('post', add_shortcut)
|
||||||
|
|
||||||
|
|
||||||
|
def add_shortcut():
|
||||||
|
frontpage.add_shortcut('xmpp', title, '/jwchat', 'glyphicon-comment')
|
||||||
|
|
||||||
|
|
||||||
class EjabberdServiceView(ServiceView):
|
class EjabberdServiceView(ServiceView):
|
||||||
@ -112,11 +121,13 @@ def get_domainname():
|
|||||||
def enable():
|
def enable():
|
||||||
"""Enable the module."""
|
"""Enable the module."""
|
||||||
actions.superuser_run('xmpp', ['enable'])
|
actions.superuser_run('xmpp', ['enable'])
|
||||||
|
add_shortcut()
|
||||||
|
|
||||||
|
|
||||||
def disable():
|
def disable():
|
||||||
"""Enable the module."""
|
"""Enable the module."""
|
||||||
actions.superuser_run('xmpp', ['disable'])
|
actions.superuser_run('xmpp', ['disable'])
|
||||||
|
frontpage.remove_shortcut('xmpp')
|
||||||
|
|
||||||
|
|
||||||
def on_pre_hostname_change(sender, old_hostname, new_hostname, **kwargs):
|
def on_pre_hostname_change(sender, old_hostname, new_hostname, **kwargs):
|
||||||
|
|||||||
@ -86,11 +86,13 @@
|
|||||||
<span class="icon-bar"></span>
|
<span class="icon-bar"></span>
|
||||||
</button>
|
</button>
|
||||||
{% block mainmenu_left %}
|
{% block mainmenu_left %}
|
||||||
<span class="navbar-brand">
|
<a href="{% url 'index' %}" class="navbar-brand"
|
||||||
|
title="{{ box_name }}">
|
||||||
<img src="{% static 'theme/img/freedombox-logo-32px.png' %}"
|
<img src="{% static 'theme/img/freedombox-logo-32px.png' %}"
|
||||||
alt="{{ box_name }}" />
|
alt="{{ box_name }}" />
|
||||||
</span>
|
</a>
|
||||||
<a href="{% url 'index' %}" class="navbar-brand" title="{% trans "Applications" %}">
|
<a href="{% url 'apps:index' %}" class="navbar-brand"
|
||||||
|
title="{% trans "Applications" %}">
|
||||||
<span class="glyphicon glyphicon-th"></span>
|
<span class="glyphicon glyphicon-th"></span>
|
||||||
</a>
|
</a>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
96
plinth/templates/index.html
Normal file
96
plinth/templates/index.html
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
{% extends 'base.html' %}
|
||||||
|
{% comment %}
|
||||||
|
#
|
||||||
|
# This file is part of Plinth.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
{% endcomment %}
|
||||||
|
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
{% if shortcuts %}
|
||||||
|
|
||||||
|
{% for shortcut in shortcuts %}
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<ul class="nav nav-pills nav-stacked">
|
||||||
|
<li>
|
||||||
|
<a href="{{ shortcut.url }}">
|
||||||
|
<span class="{{ shortcut.icon }} glyphicon"></span>
|
||||||
|
{{ shortcut.label }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
{% url 'apps:index' as apps_url %}
|
||||||
|
{% blocktrans trimmed %}
|
||||||
|
|
||||||
|
Enable some <a href="{{ apps_url }}">applications</a> to add
|
||||||
|
shortcuts to this page.
|
||||||
|
|
||||||
|
{% endblocktrans %}
|
||||||
|
</h4>
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
{% block sidebar %}
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
{% blocktrans trimmed %}
|
||||||
|
Welcome to {{ box_name }}!
|
||||||
|
{% endblocktrans %}
|
||||||
|
</h4>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
{% blocktrans trimmed %}
|
||||||
|
|
||||||
|
{{ box_name }} is a 100% free software self-hosting web server
|
||||||
|
to deploy social applications on small machines. It provides
|
||||||
|
online communication tools respecting your privacy and data
|
||||||
|
ownership.
|
||||||
|
|
||||||
|
{% endblocktrans %}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
{% blocktrans trimmed %}
|
||||||
|
|
||||||
|
More info about {{ box_name }} is available on the
|
||||||
|
project <a href="https://freedombox.org">homepage</a>
|
||||||
|
and <a href="https://wiki.debian.org/FreedomBox">wiki</a>.
|
||||||
|
|
||||||
|
{% endblocktrans %}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
{% blocktrans trimmed %}
|
||||||
|
|
||||||
|
This portal is a part of Plinth, the {{ box_name }} web
|
||||||
|
interface. Plinth is free software, distributed under the GNU
|
||||||
|
Affero General Public License, Version 3 or later.
|
||||||
|
|
||||||
|
{% endblocktrans %}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@ -21,20 +21,23 @@ Main Plinth views
|
|||||||
|
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.core.exceptions import ImproperlyConfigured
|
from django.core.exceptions import ImproperlyConfigured
|
||||||
from django.http.response import HttpResponseRedirect
|
from django.template.response import TemplateResponse
|
||||||
from django.views.generic import TemplateView
|
from django.views.generic import TemplateView
|
||||||
from django.views.generic.edit import FormView
|
from django.views.generic.edit import FormView
|
||||||
from django.urls import reverse
|
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
from stronghold.decorators import public
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from . import forms
|
from . import forms, frontpage
|
||||||
import plinth
|
import plinth
|
||||||
|
|
||||||
|
|
||||||
|
@public
|
||||||
def index(request):
|
def index(request):
|
||||||
"""Serve the main index page."""
|
"""Serve the main index page."""
|
||||||
return HttpResponseRedirect(reverse('apps:index'))
|
return TemplateResponse(request, 'index.html',
|
||||||
|
{'title': _('FreedomBox'),
|
||||||
|
'shortcuts': frontpage.get_shortcuts()})
|
||||||
|
|
||||||
|
|
||||||
class ServiceView(FormView):
|
class ServiceView(FormView):
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user