Skip to content

Commit

Permalink
Django 1.7 migrations + cleanup.
Browse files Browse the repository at this point in the history
  • Loading branch information
tonioo committed Jan 29, 2015
1 parent c534cdc commit 9b3d000
Show file tree
Hide file tree
Showing 66 changed files with 1,615 additions and 1,239 deletions.
22 changes: 0 additions & 22 deletions doc/extending/events.rst
Expand Up @@ -266,28 +266,6 @@ creator.
* ``owner`` is the original creator
* ``domain`` is the ``Domain`` instance being modified

ExtDisabled
===========

Raised just after an extension has been disabled.

*Callback prototype*::

def callback(extension): pass

* ``extension`` is an ``Extension`` instance

ExtEnabled
==========

Raised just after an extension has been activated.

*Callback prototype*::

def callback(extension): pass

* ``extension`` is an ``Extension`` instance

ExtraAccountActions
===================

Expand Down
14 changes: 0 additions & 14 deletions modoboa/core/__init__.py
Expand Up @@ -25,9 +25,6 @@
"AdminMenuDisplay",
"GetStaticContent",

"ExtEnabled",
"ExtDisabled",

"UserLogin",
"UserLogout",

Expand Down Expand Up @@ -58,17 +55,6 @@ def load_core_settings():
events.declare(BASE_EVENTS)


@events.observe("ExtDisabled")
def unset_default_topredirection(extension):
"""
Simple callback to change the default redirection if the
corresponding extension is being disabled.
"""
topredirection = parameters.get_admin("DEFAULT_TOP_REDIRECTION")
if topredirection == extension.name:
parameters.save_admin("DEFAULT_TOP_REDIRECTION", "core")


@events.observe("TopNotifications")
def check_for_new_version(request, include_all):
"""
Expand Down
14 changes: 3 additions & 11 deletions modoboa/core/app_settings.py
Expand Up @@ -9,27 +9,19 @@


def enabled_applications():
"""Return the list of currently enabled extensions
"""Return the list of installed extensions.
We check if the table exists before trying to fetch activated
extensions because the admin module is always imported by Django,
even before the database exists (example: the first ``syncdb``).
:return: a list
"""
from modoboa.core.models import Extension
from modoboa.core.extensions import exts_pool
from modoboa.lib.db_utils import db_table_exists

result = [("user", "user")]
if db_table_exists("core_extension"):
exts = Extension.objects.filter(enabled=True)
for ext in exts:
extclass = exts_pool.get_extension(ext.name)
if extclass is None:
continue
if extclass.available_for_topredirection:
result.append((ext.name, ext.name))
for extension in exts_pool.list_all():
result.append((extension["name"], extension["name"]))
return sorted(result, key=lambda e: e[0])


Expand Down
9 changes: 0 additions & 9 deletions modoboa/core/commands/deploy.py
Expand Up @@ -63,10 +63,6 @@ def __init__(self, *args, **kwargs):
self._parser.add_argument(
'--domain', type=str, default=None,
help='The domain under which you want to deploy modoboa')
self._parser.add_argument(
'--extensions', type=str, nargs='*',
help='Deploy with those extensions already enabled'
)
self._parser.add_argument(
'--lang', type=str, default="en-us",
help="Set the default language"
Expand Down Expand Up @@ -242,11 +238,6 @@ def handle(self, parsed_args):
"collectstatic", parsed_args.name, '--noinput'
)

if parsed_args.extensions:
self._exec_django_command(
"manage_extensions", parsed_args.name, *parsed_args.extensions
)

self._exec_django_command(
"set_default_site", parsed_args.name, allowed_host
)
1 change: 0 additions & 1 deletion modoboa/core/commands/templates/settings.py.tpl
Expand Up @@ -86,7 +86,6 @@ MIDDLEWARE_CLASSES = (
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'modoboa.lib.middleware.AjaxLoginRedirect',
'modoboa.lib.middleware.CommonExceptionCatcher',
'modoboa.lib.middleware.ExtControlMiddleware',
'modoboa.lib.middleware.RequestCatcherMiddleware',
)

Expand Down
49 changes: 16 additions & 33 deletions modoboa/core/extensions.py
Expand Up @@ -6,11 +6,13 @@

class ModoExtension(object):

"""Base extension class.
"""
Base extension class.
Each Modoboa extension must inherit from this class to be
considered as valid.
"""

name = None
label = None
version = "NA"
Expand All @@ -27,12 +29,6 @@ def infos(self):
always_active=self.always_active
)

def init(self):
pass

def destroy(self):
pass

def load(self):
pass

Expand All @@ -45,26 +41,24 @@ def __init__(self):
self.extensions = {}

def register_extension(self, ext, show=True):
"""Register an extension.
:param ext: a class inheriting from ``Extension``
:param show: list the extension or not
"""
self.extensions[ext.name] = dict(cls=ext, show=show)

def get_extension(self, name):
"""Retrieve the current instance of an extension."""
if name not in self.extensions:
return None
if "instance" not in self.extensions[name]:
self.extensions[name]["instance"] = self.extensions[name]["cls"]()
return self.extensions[name]["instance"]

def is_extension_enabled(self, name):
"""Check if an extension is enabled or not."""
from modoboa.core.models import Extension

if name not in self.extensions:
return False
try:
state = Extension.objects.get(name=name).enabled
except Extension.DoesNotExist:
state = False
return state
def is_extension_installed(self, name):
"""Check if an extension is installed ir not."""
return name in settings.MODOBOA_APPS

def get_extension_infos(self, name):
instance = self.get_extension(name)
Expand All @@ -73,7 +67,7 @@ def get_extension_infos(self, name):
return instance.infos()

def load_all(self):
"""Load all enabled extensions.
"""Load all defined extensions.
Each extension must be loaded in order to integrate with
Modoboa. Only enabled and special extensions are loaded but
Expand All @@ -83,11 +77,9 @@ def load_all(self):
:return: a list of url maps
"""
from modoboa.core.models import Extension

result = []
for ext in settings.MODOBOA_APPS:
__import__(ext)
__import__(ext, locals(), globals(), ["modo_extension"])
extname = ext.split('.')[-1]
extinstance = self.get_extension(extname)
if extinstance is None:
Expand All @@ -97,25 +89,16 @@ def load_all(self):
if extinstance.url is not None else extname
result += [
(r'^%s/' % (baseurl),
include("%s.urls" % extinstance.__module__,
namespace=extname))
include("{0}.urls".format(ext), namespace=extname))
]
except ImportError:
# No urls for this extension
pass
if not extinstance.always_active:
try:
ext = Extension.objects.get(name=extname)
if not ext.enabled:
continue
except Extension.DoesNotExist:
continue
extinstance.load()
return result

def list_all(self):
"""List all defined extensions.
"""
"""List all defined extensions."""
result = []
for extname, extdef in self.extensions.iteritems():
if not extdef["show"]:
Expand Down
26 changes: 0 additions & 26 deletions modoboa/core/management/commands/clean_unknown_extensions.py

This file was deleted.

58 changes: 0 additions & 58 deletions modoboa/core/management/commands/manage_extensions.py

This file was deleted.

0 comments on commit 9b3d000

Please sign in to comment.