roundcube: Use new setup mechanism

This commit is contained in:
Sunil Mohan Adapa 2016-02-12 17:47:25 +05:30
parent c2cb1f32b9
commit bdfd20d661
No known key found for this signature in database
GPG Key ID: 36C361440C9BC971
3 changed files with 40 additions and 52 deletions

View File

@ -21,18 +21,52 @@ Plinth module to configure Roundcube.
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from plinth import actions
from plinth import action_utils from plinth import action_utils
from plinth import cfg from plinth import cfg
version = 1
depends = ['apps'] depends = ['apps']
title = _('Email Client (Roundcube)')
description = [
_('Roundcube webmail is a browser-based multilingual IMAP '
'client with an application-like user interface. It provides '
'full functionality you expect from an email client, including '
'MIME support, address book, folder manipulation, message '
'searching and spell checking.'),
_('You can access Roundcube from <a href="/roundcube">'
'/roundcube</a>. Provide the username and password of the email '
'account you wish to access followed by the domain name of the '
'IMAP server for your email provider, like <code>imap.example.com'
'</code>. For IMAP over SSL (recommended), fill the server field '
'like <code>imaps://imap.example.com</code>.'),
_('For Gmail, username will be your Gmail address, password will be '
'your Google account password and server will be '
'<code>imaps://imap.gmail.com</code>. Note that you will also need '
'to enable "Less secure apps" in your Google account settings '
'(<a href="https://www.google.com/settings/security/lesssecureapps"'
'>https://www.google.com/settings/security/lesssecureapps</a>).'),
]
def init(): def init():
"""Intialize the module.""" """Intialize the module."""
menu = cfg.main_menu.get('apps:index') menu = cfg.main_menu.get('apps:index')
menu.add_urlname(_('Email Client (Roundcube)'), 'glyphicon-envelope', menu.add_urlname(title, 'glyphicon-envelope', 'roundcube:index', 600)
'roundcube:index', 600)
def setup(helper, old_version=None):
"""Install and configure the module."""
helper.call('pre', actions.superuser_run, 'roundcube', ['pre-install'])
helper.install(['sqlite3', 'roundcube', 'roundcube-sqlite3'])
helper.call('pre', actions.superuser_run, 'roundcube', ['setup'])
def is_enabled(): def is_enabled():
"""Return whether the module is enabled.""" """Return whether the module is enabled."""

View File

@ -1,4 +1,4 @@
{% extends "base.html" %} {% extends "app.html" %}
{% comment %} {% comment %}
# #
# This file is part of Plinth. # This file is part of Plinth.
@ -21,41 +21,7 @@
{% load bootstrap %} {% load bootstrap %}
{% load i18n %} {% load i18n %}
{% block content %} {% block configuration %}
<h2>{% trans "Email Client (Roundcube)" %}</h2>
<p>
{% blocktrans trimmed %}
Roundcube webmail is a browser-based multilingual IMAP client
with an application-like user interface. It provides full
functionality you expect from an email client, including MIME
support, address book, folder manipulation, message searching
and spell checking.
{% endblocktrans %}
</p>
<p>
{% blocktrans trimmed %}
You can access Roundcube from <a href="/roundcube">/roundcube</a>.
Provide the username and password of the email account you wish
to access followed by the domain name of the IMAP server for
your email provider, like <code>imap.example.com</code>. For
IMAP over SSL (recommended), fill the server field like
<code>imaps://imap.example.com</code>.
{% endblocktrans %}
</p>
<p>
{% blocktrans trimmed %}
For Gmail, username will be your Gmail address, password will be
your Google account password and server will be
<code>imaps://imap.gmail.com</code>. Note that you will also need
to enable "Less secure apps" in your Google account settings
(<a href="https://www.google.com/settings/security/lesssecureapps"
>https://www.google.com/settings/security/lesssecureapps</a>).
{% endblocktrans %}
</p>
{% include "diagnostics_button.html" with module="roundcube" %} {% include "diagnostics_button.html" with module="roundcube" %}

View File

@ -26,24 +26,11 @@ import logging
from .forms import RoundcubeForm from .forms import RoundcubeForm
from plinth import actions from plinth import actions
from plinth import package
from plinth.modules import roundcube from plinth.modules import roundcube
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def before_install():
"""Preseed debconf values before the packages are installed."""
actions.superuser_run('roundcube', ['pre-install'])
def on_install():
"""Setup Roundcube Apache configuration."""
actions.superuser_run('roundcube', ['setup'])
@package.required(['sqlite3', 'roundcube', 'roundcube-sqlite3'],
before_install=before_install, on_install=on_install)
def index(request): def index(request):
"""Serve configuration page.""" """Serve configuration page."""
status = get_status() status = get_status()
@ -61,7 +48,8 @@ def index(request):
form = RoundcubeForm(initial=status, prefix='roundcube') form = RoundcubeForm(initial=status, prefix='roundcube')
return TemplateResponse(request, 'roundcube.html', return TemplateResponse(request, 'roundcube.html',
{'title': _('Email Client (Roundcube)'), {'title': roundcube.title,
'description': roundcube.description,
'status': status, 'status': status,
'form': form}) 'form': form})