Documentation + various fixes.

This commit is contained in:
Antoine Nguyen
2013-10-08 21:12:20 +02:00
parent 74c82e7c8d
commit fca83ba439
6 changed files with 78 additions and 38 deletions
+40
View File
@@ -33,6 +33,11 @@ install it.
$ pip install --upgrade modoboa
.. warning::
If you migrate to **1.1.0**, please follow the :ref:`dedicated migration
procedure <1.1.0>` and skip the usual one.
Then, refer to this page to check if the version you're installing
requires specific operations. If the version you're looking for is not
present, it means nothing special is required.
@@ -43,6 +48,41 @@ Finally, follow the common procedure::
$ python manage.py syncdb --migrate
$ python manage.py collectstatic
.. _1.1.0:
1.1.0: FIXME
============
Due to code refactoring, some modifications need to be done into
:file:`settings.py`:
#. ``MODOBOA_APPS`` must contain the following applications::
MODOBOA_APPS = (
'modoboa',
'modoboa.core',
'modoboa.lib',
'modoboa.extensions.admin',
'modoboa.extensions.limits',
'modoboa.extensions.postfix_autoreply',
'modoboa.extensions.webmail',
'modoboa.extensions.stats',
'modoboa.extensions.amavis',
'modoboa.extensions.sievefilters',
)
#. ``AUTH_USER_MODEL`` must be set to ``core.User``
#. Into ``LOGGING``, replace ``modoboa.lib.logutils.SQLHandler`` by
``modoboa.core.loggers.SQLHandler``
Then, run the following commands to migrate your installation::
$ python manage.py migrate core 0001 --fake
$ python manage.py migrate
$ python manage.py collectstatic
1.0.1: operations on mailboxes
==============================
+16 -9
View File
@@ -2,13 +2,20 @@ from django.conf.urls import patterns, url
urlpatterns = patterns(
'modoboa.core.views',
(r'^settings/$', 'viewsettings'),
(r'^settings/parameters/$', 'viewparameters'),
(r'^settings/parameters/save/$', 'saveparameters'),
(r'^settings/extensions/$', 'viewextensions'),
(r'^settings/extensions/save/$', 'saveextensions'),
(r'^settings/info/$', 'information'),
(r'^settings/logs/$', 'logs'),
'',
(r'^accounts/login/$', 'modoboa.core.views.auth.dologin'),
(r'^accounts/logout/$', 'modoboa.core.views.auth.dologout'),
(r'^core/$', 'modoboa.core.views.admin.viewsettings'),
(r'^core/parameters/$', 'modoboa.core.views.admin.viewparameters'),
(r'^core/parameters/save/$', 'modoboa.core.views.admin.saveparameters'),
(r'^core/extensions/$', 'modoboa.core.views.admin.viewextensions'),
(r'^core/extensions/save/$', 'modoboa.core.views.admin.saveextensions'),
(r'^core/info/$', 'modoboa.core.views.admin.information'),
(r'^core/logs/$', 'modoboa.core.views.admin.logs'),
(r'^user/$', 'modoboa.core.views.user.index'),
(r'^user/preferences/$', 'modoboa.core.views.user.preferences'),
(r'^user/profile/$', 'modoboa.core.views.user.profile'),
)
-1
View File
@@ -133,7 +133,6 @@ def can_create_new_object(user, objtype):
@events.observe("AccountCreated")
def create_pool(user):
print "pouet"
owner = get_object_owner(user)
if not owner.is_superuser and \
not owner.belongs_to_group("Resellers"):
+7 -5
View File
@@ -1,7 +1,8 @@
from django.core.urlresolvers import reverse
from modoboa.lib.tests import ExtTestCase
from modoboa.core.factories import UserFactory
from modoboa.extensions.admin.factories import DomainFactory, MailboxFactory
from modoboa.core.models import User
from modoboa.admin import factories
class PermissionsTestCase(ExtTestCase):
@@ -10,10 +11,11 @@ class PermissionsTestCase(ExtTestCase):
def setUp(self):
super(PermissionsTestCase, self).setUp()
dom = factories.DomainFactory(name='test.com')
self.admin = factories.UserFactory(
username='admin@test.com', groups=('DomainAdmins',), mailbox__domain=dom
dom = DomainFactory(name='test.com')
self.admin = UserFactory(
username='admin@test.com', groups=('DomainAdmins',)
)
MailboxFactory(address='admin', domain=dom, user=self.admin)
dom.add_admin(self.admin)
def test_domainadmin_deletes_reseller(self):
@@ -26,7 +28,7 @@ class PermissionsTestCase(ExtTestCase):
password1="toto", password2="toto", role="Resellers",
is_active=True, email="reseller@test.com", stepid=2
)
self.check_ajax_post(reverse("modoboa.admin.views.newaccount"), values)
self.check_ajax_post(reverse("modoboa.extensions.admin.views.identity.newaccount"), values)
account = User.objects.get(username="reseller@test.com")
self.clt.logout()
self.clt.login(username="admin@test.com", password="toto")
+3 -3
View File
@@ -35,8 +35,8 @@ class ExtTestCase(ModoTestCase):
def setUp(self, *args, **kwargs):
super(ExtTestCase, self).setUp(*args, **kwargs)
self.clt.get(reverse("modoboa.admin.views.viewextensions"))
self.clt.post(reverse("modoboa.admin.views.saveextensions"),
self.clt.get(reverse("modoboa.core.views.admin.viewextensions"))
self.clt.post(reverse("modoboa.core.views.admin.saveextensions"),
{"select_%s" % self.name : "1"})
@@ -65,7 +65,7 @@ class ParameterTestCase(TestCase):
"""
def setUp(self):
from modoboa.admin.models import User
from modoboa.core.models import User
parameters.register(TestParams, "Test")
parameters.register(TestUserParams, "TestUser")
self.user = User.objects.create(username="tester")
+12 -20
View File
@@ -6,39 +6,29 @@ from modoboa.core import load_settings
load_settings()
urlpatterns = patterns('',
urlpatterns = patterns(
'',
(r'^$', 'modoboa.lib.webutils.topredirection'),
(r'^jsi18n/$', 'django.views.i18n.javascript_catalog',
{'packages': ('modoboa', ), }),
(r'^accounts/login/$', 'modoboa.core.views.auth.dologin'),
(r'^accounts/logout/$', 'modoboa.core.views.auth.dologout'),
(r'^core/$', 'modoboa.core.views.admin.viewsettings'),
(r'^core/parameters/$', 'modoboa.core.views.admin.viewparameters'),
(r'^core/parameters/save/$', 'modoboa.core.views.admin.saveparameters'),
(r'^core/extensions/$', 'modoboa.core.views.admin.viewextensions'),
(r'^core/extensions/save/$', 'modoboa.core.views.admin.saveextensions'),
(r'^core/info/$', 'modoboa.core.views.admin.information'),
(r'^core/logs/$', 'modoboa.core.views.admin.logs'),
(r'^user/$', 'modoboa.core.views.user.index'),
(r'^user/preferences/$', 'modoboa.core.views.user.preferences'),
(r'^user/profile/$', 'modoboa.core.views.user.profile'),
('', include('modoboa.core.urls')),
)
urlpatterns += patterns('',
urlpatterns += patterns(
'',
*events.raiseQueryEvent("ExtraUprefsRoutes")
)
urlpatterns += patterns('',
urlpatterns += patterns(
'',
*exts_pool.load_all()
)
parameters.apply_to_django_settings()
if 'modoboa.demo' in settings.INSTALLED_APPS:
urlpatterns += patterns('',
urlpatterns += patterns(
'',
(r'^demo/', include('modoboa.demo.urls'))
)
@@ -46,4 +36,6 @@ if settings.DEBUG:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.conf.urls.static import static
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(
settings.MEDIA_URL, document_root=settings.MEDIA_ROOT
)