diff --git a/INSTALL b/INSTALL index fb13191a1..a913f2faf 100644 --- a/INSTALL +++ b/INSTALL @@ -13,10 +13,10 @@ How to install Download Mailng's tarball and extract it:: - # tar xzf mailng-.tar.gz - # mv mailng- mailng + # tar xzf modoboa-.tar.gz + # mv modoboa- modoboa -Then, enter the mailng directory, create a settings.py file (you can +Then, enter the modoboa directory, create a settings.py file (you can use settings-sample.py as a model). Specify database relative informations. You must choose between mysql and postgresql, other types are not supported by major email projects like postfix or @@ -55,13 +55,13 @@ INSTALLED_APPS variable and that it contains at least:: # Django's stuff before 'south', - 'mailng', - 'mailng.lib', - 'mailng.admin', - 'mailng.userprefs', + 'modoboa', + 'modoboa.lib', + 'modoboa.admin', + 'modoboa.userprefs', ) -Starting with 0.8, mailng.main doesn't exist anymore. You need to +Starting with 0.8, modoboa.main doesn't exist anymore. You need to remove it from your INSTALLED_APPS. NB: Before doing this migration, I recommend that you make a copy of your @@ -111,11 +111,11 @@ Then create a vmail user:: # useradd -g vmail -d /var/vmail -m vmail -At last, the system user used to run mailng will need permissions to +At last, the system user used to run modoboa will need permissions to manipulate directories in vmail's homedir. To do so, edit your /etc/sudoers file and add the following inside:: - ALL=(vmail) NOPASSWD: ALL + ALL=(vmail) NOPASSWD: ALL Testing installation -------------------- @@ -126,7 +126,7 @@ server. Just run this command to start it:: # python manage.py runserver You will be able to play with MailNG by looking at -http://:8000/mailng/admin/. +http://:8000/modoboa/admin/. Tips to link Mailng with postfix -------------------------------- @@ -185,20 +185,20 @@ Since version 0.6, mail users can define an auto-reply message with MailNG. To activate the extension, edit your settings.py and add the following line inside the INSTALLED_APPS variable:: - 'mailng.extensions.postfix_autoreply', + 'modoboa.extensions.postfix_autoreply', Run the following command to activate the component:: - # export PYTHONPATH=/.. - # DJANGO_SETTINGS_MODULE=mailng.settings \ - /scripts/extension.py postfix-autoreply on + # export PYTHONPATH=/.. + # DJANGO_SETTINGS_MODULE=modoboa.settings \ + /scripts/extension.py postfix-autoreply on Then run the following commands to update MailNG SQL schema and content:: # python manage.py syncdb # python manage.py migrate postfix-autoreply # export PYTHONPATH=$PWD/.. - # DJANGO_SETTINGS_MODULE=mailng.settings ./scripts/postfix_autoreply/upgrade_autoreply.py + # DJANGO_SETTINGS_MODULE=modoboa.settings ./scripts/postfix_autoreply/upgrade_autoreply.py The user that executes the autoreply script needs to access settings.py. You must apply proper permissions on this file. For @@ -216,7 +216,7 @@ files as follow:: # /etc/postfix/master.cf autoreply unix - n n - - pipe - flags= user=vmail: argv=/scripts/postfix_autoreply/autoreply $sender $mailbox + flags= user=vmail: argv=/scripts/postfix_autoreply/autoreply $sender $mailbox Then, create new map files with the following content:: @@ -236,7 +236,7 @@ Then, create new map files with the following content:: Finally, edit the shell script 'autoreply' located inside the 'scripts' directory and change the value of BASEDIR. (just put absolute path -of the directory where mailng is installed) +of the directory where modoboa is installed) NB: auto-reply messages are just sent one time per sender for a pre-defined time period. By default, this period is equal to 1 day @@ -344,10 +344,10 @@ following inside:: SetHandler mod_python PythonHandler django.core.handlers.modpython - PythonPath "[''] + sys.path" - SetEnv DJANGO_SETTINGS_MODULE mailng.settings + PythonPath "[''] + sys.path" + SetEnv DJANGO_SETTINGS_MODULE modoboa.settings - Alias "/static" "/static" + Alias "/static" "/static" SetHandler None @@ -371,13 +371,13 @@ installed on your server:: To activate the extension, edit your settings.py and add the following line inside the INSTALLED_APPS variable:: - 'mailng.extensions.amavis_quarantine', + 'modoboa.extensions.amavis_quarantine', Then run the following command to activate the component:: - # export PYTHONPATH=/.. - # DJANGO_SETTINGS_MODULE=mailng.settings \ - /scripts/extension.py amavis-quarantine on + # export PYTHONPATH=/.. + # DJANGO_SETTINGS_MODULE=modoboa.settings \ + /scripts/extension.py amavis-quarantine on Then, you need to specify where is the database that contains the quarantine. Inside settings.py, add a new connection to the @@ -398,7 +398,7 @@ When viewing messages, you can choose to display links (addresses, images). In order to display images correctly, you need to create a tmp directory under static/ for storing them. For example:: - # mkdir /static/tmp + # mkdir /static/tmp To be able to release messages, first take a look at this page:: @@ -441,11 +441,11 @@ Last point, MailNG provides a simple script that periodically purge the amavisd-new quarantine database. If you plan to use it, you can add the following line inside root's crontab:: - 0 0 * * * PYTHONPATH= \ - DJANGO_SETTINGS_MODULE=mailng.settings \ - /extensions/amavis_quarantine/cleanup.py + 0 0 * * * PYTHONPATH= \ + DJANGO_SETTINGS_MODULE=modoboa.settings \ + /extensions/amavis_quarantine/cleanup.py -Replace mailng_dir with the installation path of MailNG. +Replace modoboa_dir with the installation path of MailNG. By default, messages older than 14 days are automatically purged. You can modify this value by changing the MAX_MESSAGES_AGE parameter in the admin panel. @@ -465,13 +465,13 @@ installed on your server:: To activate the extension, edit your settings.py and add the following line inside the INSTALLED_APPS variable:: - 'mailng.extensions.stats', + 'modoboa.extensions.stats', Then run the following command to activate the component:: - # export PYTHONPATH=/.. - # DJANGO_SETTINGS_MODULE=mailng.settings \ - /scripts/extension.py stats on + # export PYTHONPATH=/.. + # DJANGO_SETTINGS_MODULE=modoboa.settings \ + /scripts/extension.py stats on Then, adapt the following parameters to your environnement:: @@ -479,25 +479,25 @@ Then, adapt the following parameters to your environnement:: LOGFILE = "/var/log/mail.log" # Path to directory where rrd files are stored - RRD_ROOTDIR = "/tmp/mailng" + RRD_ROOTDIR = "/tmp/modoboa" # Path to directory where png files are stored - IMG_ROOTDIR = "/static/graphs" + IMG_ROOTDIR = "/static/graphs" Make sure the directories that will contain those files exist. If not, create them before going further. For example (according to previous parameters):: - $ mkdir /tmp/mailng - $ mkdir /static/graphs + $ mkdir /tmp/modoboa + $ mkdir /static/graphs To finish, you need to collect information periodically in order to feed rrd files. To do so, just add the following lines into root's crontab:: - */5 * * * * PYTHONPATH= DJANGO_SETTINGS_MODULE=mailng.settings /scripts/stats/logparser.py + */5 * * * * PYTHONPATH= DJANGO_SETTINGS_MODULE=modoboa.settings /scripts/stats/logparser.py -Replace mailng_dir with the installation path of MailNG. +Replace modoboa_dir with the installation path of MailNG. Graphics are automatically created after each new parsing. @@ -515,15 +515,15 @@ The following requirements are needed before going further:: Just run the following command to activate the component:: - # export PYTHONPATH=/.. - # DJANGO_SETTINGS_MODULE=mailng.settings \ - /scripts/extension.py webmail on + # export PYTHONPATH=/.. + # DJANGO_SETTINGS_MODULE=modoboa.settings \ + /scripts/extension.py webmail on Sometimes, inline images are integrated inside emails. To display them, MailNG stores them inside a temporary folder. Make sure the following path exists, otherwise create it:: - # mkdir /static/tmp + # mkdir /static/tmp The user that is running MailNG will need the write permission inside this folder. diff --git a/admin/__init__.py b/admin/__init__.py index 0fa02140d..198800420 100644 --- a/admin/__init__.py +++ b/admin/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -from mailng.lib import parameters +from modoboa.lib import parameters from django.utils.translation import ugettext as _ parameters.register_admin("admin","STORAGE_PATH", type="string", deflt="/var/vmail", diff --git a/admin/forms.py b/admin/forms.py index 75e6b604d..9ad3fc305 100644 --- a/admin/forms.py +++ b/admin/forms.py @@ -1,7 +1,7 @@ from django import forms -from mailng.admin.models import Domain, Mailbox, Alias +from modoboa.admin.models import Domain, Mailbox, Alias from django.utils.translation import ugettext as _ -from mailng.admin.templatetags.admin_extras import gender +from modoboa.admin.templatetags.admin_extras import gender class DomainForm(forms.ModelForm): class Meta: diff --git a/admin/models.py b/admin/models.py index eee5cd2ad..9a80433ea 100644 --- a/admin/models.py +++ b/admin/models.py @@ -1,8 +1,8 @@ from django.db import models from django.contrib.auth.models import User from django.utils.translation import ugettext_lazy as _ -from mailng.lib import parameters -from mailng.lib import exec_cmd, exec_as_vuser +from modoboa.lib import parameters +from modoboa.lib import exec_cmd, exec_as_vuser import os class Domain(models.Model): diff --git a/admin/templatetags/admin_extras.py b/admin/templatetags/admin_extras.py index 7b78e65ea..fc5e2bcba 100644 --- a/admin/templatetags/admin_extras.py +++ b/admin/templatetags/admin_extras.py @@ -2,8 +2,8 @@ from django import template from django.template.loader import render_to_string from django.utils.translation import ugettext as _ from django.core.urlresolvers import reverse -from mailng import admin -from mailng.lib import events +from modoboa import admin +from modoboa.lib import events register = template.Library() diff --git a/admin/urls.py b/admin/urls.py index 6c8a9f53f..c0a362d26 100644 --- a/admin/urls.py +++ b/admin/urls.py @@ -1,6 +1,6 @@ from django.conf.urls.defaults import * -urlpatterns = patterns('mailng.admin.views', +urlpatterns = patterns('modoboa.admin.views', url(r'^$', 'domains', name="index"), url(r'^domains/$', 'domains', name="domains"), (r'^domains/new/', 'newdomain'), diff --git a/admin/views.py b/admin/views.py index b4128c234..1cc0e59cd 100644 --- a/admin/views.py +++ b/admin/views.py @@ -11,13 +11,13 @@ from django.core.urlresolvers import reverse from django.contrib.auth.decorators \ import login_required, permission_required, user_passes_test from django.contrib.auth.models import User, Group -from mailng import admin, userprefs -from mailng.admin.models import Domain, Mailbox, Alias +from modoboa import admin, userprefs +from modoboa.admin.models import Domain, Mailbox, Alias from forms import MailboxForm, DomainForm, AliasForm, PermissionForm -from mailng.lib.authbackends import crypt_password -from mailng.lib import _render, _ctx_ok, _ctx_ko -from mailng.lib import events, parameters -from mailng.lib.models import Parameter +from modoboa.lib.authbackends import crypt_password +from modoboa.lib import _render, _ctx_ok, _ctx_ko +from modoboa.lib import events, parameters +from modoboa.lib.models import Parameter import string import copy import pwd @@ -125,7 +125,7 @@ def deldomain(request, dom_id): events.raiseEvent("DeleteDomain", dom=domain) domain.delete_dir() domain.delete() - return HttpResponseRedirect('/mailng/admin/') + return HttpResponseRedirect('/modoboa/admin/') @login_required @good_domain diff --git a/auth/views.py b/auth/views.py index ba167ad68..92e2fbff3 100755 --- a/auth/views.py +++ b/auth/views.py @@ -4,8 +4,8 @@ from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import render_to_response from django.core.urlresolvers import reverse from django.utils.translation import ugettext as _ -from mailng.lib import events -import mailng.admin +from modoboa.lib import events +import modoboa.admin from forms import LoginForm def dologin(request): @@ -24,7 +24,7 @@ def dologin(request): next = request.POST["next"] if next == "None": - next = reverse(mailng.admin.views.domains) + next = reverse(modoboa.admin.views.domains) return HttpResponseRedirect(next) else: error = _("Account is disabled.") diff --git a/extensions/__init__.py b/extensions/__init__.py index d9d5b7ce9..3efccdbb7 100644 --- a/extensions/__init__.py +++ b/extensions/__init__.py @@ -20,4 +20,4 @@ def loadextensions(): return result def isenabled(ext): - return "mailng.extensions.%s" % ext in settings.INSTALLED_APPS + return "modoboa.extensions.%s" % ext in settings.INSTALLED_APPS diff --git a/extensions/amavis_quarantine/cleanup.py b/extensions/amavis_quarantine/cleanup.py index c06da7fc6..f1fe261b1 100755 --- a/extensions/amavis_quarantine/cleanup.py +++ b/extensions/amavis_quarantine/cleanup.py @@ -1,10 +1,10 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -from mailng.lib import db, parameters +from modoboa.lib import db, parameters if __name__ == "__main__": - from mailng.extensions.amavis_quarantine import main + from modoboa.extensions.amavis_quarantine import main main.init() conn = db.getconnection("amavis_quarantine") diff --git a/extensions/amavis_quarantine/lib.py b/extensions/amavis_quarantine/lib.py index a3ac66f45..96909f12f 100644 --- a/extensions/amavis_quarantine/lib.py +++ b/extensions/amavis_quarantine/lib.py @@ -2,7 +2,7 @@ import socket import re import struct import string -from mailng.lib import parameters +from modoboa.lib import parameters class AMrelease(object): def __init__(self): diff --git a/extensions/amavis_quarantine/main.py b/extensions/amavis_quarantine/main.py index b70f76a2d..79b5b1bd7 100644 --- a/extensions/amavis_quarantine/main.py +++ b/extensions/amavis_quarantine/main.py @@ -5,7 +5,7 @@ from django.conf.urls.defaults import * from django.utils.translation import ugettext as _, ungettext from django.core.urlresolvers import reverse -from mailng.lib import events, parameters +from modoboa.lib import events, parameters def infos(): return { @@ -38,8 +38,8 @@ def destroy(): parameters.unregister_app("amavis_quarantine") def urls(): - return (r'^mailng/quarantine/', - include('mailng.extensions.amavis_quarantine.urls')) + return (r'^modoboa/quarantine/', + include('modoboa.extensions.amavis_quarantine.urls')) def menu(**kwargs): import views diff --git a/extensions/amavis_quarantine/sql_listing.py b/extensions/amavis_quarantine/sql_listing.py index e19ecb760..1f75123f5 100644 --- a/extensions/amavis_quarantine/sql_listing.py +++ b/extensions/amavis_quarantine/sql_listing.py @@ -2,8 +2,8 @@ from datetime import datetime from django.utils.translation import ugettext as _ -from mailng.lib import tables, db -from mailng.lib.email_listing import MBconnector, EmailListing, Email +from modoboa.lib import tables, db +from modoboa.lib.email_listing import MBconnector, EmailListing, Email class Qtable(tables.Table): tableid = "emails" diff --git a/extensions/amavis_quarantine/templatetags/amextras.py b/extensions/amavis_quarantine/templatetags/amextras.py index d16e0c7bb..1591d4e8a 100644 --- a/extensions/amavis_quarantine/templatetags/amextras.py +++ b/extensions/amavis_quarantine/templatetags/amextras.py @@ -2,7 +2,7 @@ from django import template from django.template.loader import render_to_string from django.utils.translation import ugettext as _ from django.core.urlresolvers import reverse -from mailng.extensions import amavis_quarantine +from modoboa.extensions import amavis_quarantine register = template.Library() diff --git a/extensions/amavis_quarantine/urls.py b/extensions/amavis_quarantine/urls.py index 936e2d9cf..a8c72de88 100644 --- a/extensions/amavis_quarantine/urls.py +++ b/extensions/amavis_quarantine/urls.py @@ -11,6 +11,6 @@ extpatterns = [ (r'^(?P[\w\-\+]+)/$', 'viewmail') ] -urlpatterns = patterns('mailng.extensions.amavis_quarantine.views', +urlpatterns = patterns('modoboa.extensions.amavis_quarantine.views', *extpatterns ) diff --git a/extensions/amavis_quarantine/views.py b/extensions/amavis_quarantine/views.py index 25cc7dd78..9305287aa 100644 --- a/extensions/amavis_quarantine/views.py +++ b/extensions/amavis_quarantine/views.py @@ -12,12 +12,12 @@ from django.utils.translation import ugettext as _, ungettext from django.core.urlresolvers import reverse from django.contrib.auth.decorators \ import login_required -from mailng.lib import _render, _ctx_ok, _ctx_ko, decode, getctx -from mailng.lib import db -from mailng.admin.models import Mailbox +from modoboa.lib import _render, _ctx_ok, _ctx_ko, decode, getctx +from modoboa.lib import db +from modoboa.admin.models import Mailbox from lib import AMrelease from templatetags.amextras import * -from mailng.lib.email_listing import parse_search_parameters +from modoboa.lib.email_listing import parse_search_parameters from sql_listing import * def __get_current_url(request): diff --git a/extensions/postfix_autoreply/main.py b/extensions/postfix_autoreply/main.py index 6f4d6cb26..feb1bb850 100644 --- a/extensions/postfix_autoreply/main.py +++ b/extensions/postfix_autoreply/main.py @@ -10,7 +10,7 @@ functionality into Postfix. from django.conf.urls.defaults import include from django.core.urlresolvers import reverse from django.utils.translation import ugettext as _ -from mailng.lib import events, parameters +from modoboa.lib import events, parameters from models import * def infos(): @@ -42,8 +42,8 @@ def destroy(): parameters.unregister_app("postfix_autoreply") def urls(): - return (r'^mailng/postfix_autoreply/', - include('mailng.extensions.postfix_autoreply.urls')) + return (r'^modoboa/postfix_autoreply/', + include('modoboa.extensions.postfix_autoreply.urls')) def menu(**kwargs): import views diff --git a/extensions/postfix_autoreply/models.py b/extensions/postfix_autoreply/models.py index f7b99ce60..b64e6f16b 100644 --- a/extensions/postfix_autoreply/models.py +++ b/extensions/postfix_autoreply/models.py @@ -1,6 +1,6 @@ from django.db import models from django.utils.translation import ugettext_lazy as _ -from mailng.admin.models import Domain, Mailbox +from modoboa.admin.models import Domain, Mailbox class Transport(models.Model): domain = models.CharField(max_length=300) diff --git a/extensions/postfix_autoreply/scripts/autoreply b/extensions/postfix_autoreply/scripts/autoreply index e865ddf74..ec9dd00ac 100755 --- a/extensions/postfix_autoreply/scripts/autoreply +++ b/extensions/postfix_autoreply/scripts/autoreply @@ -7,5 +7,5 @@ BASEDIR=/var/www EGG_CACHE="" PYTHON_EGG_CACHE=$EGG_CACHE PYTHONPATH=$BASEDIR \ - DJANGO_SETTINGS_MODULE=mailng.settings $PYTHON \ - $BASEDIR/mailng/scripts/postfix_autoreply/autoreply.py $1 $2 + DJANGO_SETTINGS_MODULE=modoboa.settings $PYTHON \ + $BASEDIR/modoboa/scripts/postfix_autoreply/autoreply.py $1 $2 diff --git a/extensions/postfix_autoreply/scripts/autoreply.py b/extensions/postfix_autoreply/scripts/autoreply.py index 64f8b70d6..506ab3a6e 100755 --- a/extensions/postfix_autoreply/scripts/autoreply.py +++ b/extensions/postfix_autoreply/scripts/autoreply.py @@ -5,10 +5,10 @@ import sys import smtplib from email.mime.text import MIMEText import datetime -from mailng.lib import parameters -from mailng.admin.models import Mailbox -from mailng.extensions.postfix_autoreply import main -from mailng.extensions.postfix_autoreply.models import ARmessage, ARhistoric +from modoboa.lib import parameters +from modoboa.admin.models import Mailbox +from modoboa.extensions.postfix_autoreply import main +from modoboa.extensions.postfix_autoreply.models import ARmessage, ARhistoric if __name__ == "__main__": if len(sys.argv) != 3: diff --git a/extensions/postfix_autoreply/scripts/upgrade_autoreply.py b/extensions/postfix_autoreply/scripts/upgrade_autoreply.py index e7ac4d64d..856c1408b 100755 --- a/extensions/postfix_autoreply/scripts/upgrade_autoreply.py +++ b/extensions/postfix_autoreply/scripts/upgrade_autoreply.py @@ -3,15 +3,15 @@ import sys from django.conf import settings -from mailng.admin.models import Domain, Mailbox +from modoboa.admin.models import Domain, Mailbox if __name__ == "__main__": - if not "mailng.extensions.postfix_autoreply" in settings.INSTALLED_APPS: + if not "modoboa.extensions.postfix_autoreply" in settings.INSTALLED_APPS: print "Postfix autoreply extension is not activated" sys.exit(1) - import mailng.extensions.postfix_autoreply.main as par - from mailng.extensions.postfix_autoreply.models import Transport, Alias + import modoboa.extensions.postfix_autoreply.main as par + from modoboa.extensions.postfix_autoreply.models import Transport, Alias par.init() doms = Domain.objects.all() diff --git a/extensions/postfix_autoreply/urls.py b/extensions/postfix_autoreply/urls.py index 641969efb..4d71b3019 100644 --- a/extensions/postfix_autoreply/urls.py +++ b/extensions/postfix_autoreply/urls.py @@ -1,5 +1,5 @@ from django.conf.urls.defaults import * -urlpatterns = patterns('mailng.extensions.postfix_autoreply.views', +urlpatterns = patterns('modoboa.extensions.postfix_autoreply.views', url(r'^$', 'autoreply'), ) diff --git a/extensions/postfix_autoreply/views.py b/extensions/postfix_autoreply/views.py index 56e821059..716ac7343 100644 --- a/extensions/postfix_autoreply/views.py +++ b/extensions/postfix_autoreply/views.py @@ -6,7 +6,7 @@ from django.contrib.auth.decorators \ import login_required from django.core.urlresolvers import reverse from django.utils.translation import ugettext as _ -from mailng.lib import _render, _ctx_ok, _ctx_ko, is_not_localadmin +from modoboa.lib import _render, _ctx_ok, _ctx_ko, is_not_localadmin from forms import * from models import * @@ -25,7 +25,7 @@ def autoreply(request): form = ARmessageForm(request.POST) error = None if form.is_valid(): - from mailng import userprefs + from modoboa import userprefs arm = form.save(commit=False) arm.mbox = mb diff --git a/extensions/stats/grapher.py b/extensions/stats/grapher.py index db4520638..56b13032a 100644 --- a/extensions/stats/grapher.py +++ b/extensions/stats/grapher.py @@ -5,7 +5,7 @@ import time import datetime import rrdtool from django.utils.translation import ugettext as _ -from mailng.lib import parameters +from modoboa.lib import parameters traffic_avg_template = { 'name' : 'traffic', diff --git a/extensions/stats/main.py b/extensions/stats/main.py index 67eb45b0f..b5001c923 100644 --- a/extensions/stats/main.py +++ b/extensions/stats/main.py @@ -10,7 +10,7 @@ sent, received, bounced, rejected from django.core.urlresolvers import reverse from django.utils.translation import ugettext as _ from django.conf.urls.defaults import * -from mailng.lib import events, parameters +from modoboa.lib import events, parameters def infos(): return { @@ -25,18 +25,18 @@ def init(): deflt="/var/log/mail.log", help=_("Path to log file used to collect statistics")) parameters.register_admin("stats", "RRD_ROOTDIR", type="string", - deflt="/tmp/mailng", + deflt="/tmp/modoboa", help=_("Path to directory where RRD files are stored")) parameters.register_admin("stats", "IMG_ROOTDIR", type="string", - deflt="/tmp/mailng", + deflt="/tmp/modoboa", help=_("Path to directory where PNG files are stored")) def destroy(): events.unregister("AdminMenuDisplay", menu) def urls(): - return (r'^mailng/stats/', - include('mailng.extensions.stats.urls')) + return (r'^modoboa/stats/', + include('modoboa.extensions.stats.urls')) def menu(**kwargs): if kwargs["target"] == "admin_menu_bar": diff --git a/extensions/stats/scripts/logparser.py b/extensions/stats/scripts/logparser.py index 0894f9762..ab581922e 100755 --- a/extensions/stats/scripts/logparser.py +++ b/extensions/stats/scripts/logparser.py @@ -7,9 +7,9 @@ import re import rrdtool import string, pdb from optparse import OptionParser -from mailng.lib import parameters -from mailng.admin.models import Domain -import mailng.extensions.stats.grapher as grapher +from modoboa.lib import parameters +from modoboa.admin.models import Domain +import modoboa.extensions.stats.grapher as grapher """ Postfix log parser. @@ -257,7 +257,7 @@ class LogParser(object): G.make_defaults(dom, tpl=grapher.size_avg_template) if __name__ == "__main__": - from mailng.extensions.stats import main + from modoboa.extensions.stats import main main.init() diff --git a/extensions/stats/urls.py b/extensions/stats/urls.py index 11fabce95..912640dc5 100644 --- a/extensions/stats/urls.py +++ b/extensions/stats/urls.py @@ -1,6 +1,6 @@ from django.conf.urls.defaults import * -urlpatterns = patterns('mailng.extensions.stats.views', +urlpatterns = patterns('modoboa.extensions.stats.views', url(r'^$', 'adminindex', name='fullindex'), url(r'^(?P\d+)/$', 'index', name='domindex'), url(r'^graph/$', "getgraph", name="getgraph_root"), diff --git a/extensions/stats/views.py b/extensions/stats/views.py index 77c95215c..2453f15e5 100644 --- a/extensions/stats/views.py +++ b/extensions/stats/views.py @@ -5,9 +5,9 @@ from django.core.urlresolvers import reverse from django.utils.translation import ugettext as _ from django.utils import simplejson from django.template.loader import render_to_string -from mailng.lib import parameters, _render, getctx -from mailng.admin.views import good_domain -from mailng.admin.models import Domain, Mailbox +from modoboa.lib import parameters, _render, getctx +from modoboa.admin.views import good_domain +from modoboa.admin.models import Domain, Mailbox from django.contrib.auth.decorators \ import login_required, user_passes_test, permission_required from extensions.stats.grapher import * diff --git a/extensions/webmail/lib.py b/extensions/webmail/lib.py index 1fe8902c5..d6fabe75d 100644 --- a/extensions/webmail/lib.py +++ b/extensions/webmail/lib.py @@ -12,9 +12,9 @@ from datetime import datetime, timedelta from email.header import decode_header import email.utils from django.utils.translation import ugettext as _ -from mailng.lib import decode, tables, imap_utf7, Singleton -from mailng.lib.email_listing import MBconnector, EmailListing, Email -from mailng.lib import tables, imap_utf7, parameters +from modoboa.lib import decode, tables, imap_utf7, Singleton +from modoboa.lib.email_listing import MBconnector, EmailListing, Email +from modoboa.lib import tables, imap_utf7, parameters class WMtable(tables.Table): diff --git a/extensions/webmail/main.py b/extensions/webmail/main.py index d6b3a0dc6..112946673 100644 --- a/extensions/webmail/main.py +++ b/extensions/webmail/main.py @@ -2,7 +2,7 @@ from django.utils.translation import ugettext as _ from django.core.urlresolvers import reverse from django.conf.urls.defaults import include -from mailng.lib import events, parameters +from modoboa.lib import events, parameters def init(): events.register("UserMenuDisplay", menu) @@ -50,8 +50,8 @@ def infos(): } def urls(): - return (r'^mailng/webmail/', - include('mailng.extensions.webmail.urls')) + return (r'^modoboa/webmail/', + include('modoboa.extensions.webmail.urls')) def menu(**kwargs): import views diff --git a/extensions/webmail/templatetags/webextras.py b/extensions/webmail/templatetags/webextras.py index 412c7fbd0..ddf411515 100644 --- a/extensions/webmail/templatetags/webextras.py +++ b/extensions/webmail/templatetags/webextras.py @@ -2,9 +2,9 @@ from django import template from django.template.loader import render_to_string from django.utils.translation import ugettext as _ from django.core.urlresolvers import reverse -from mailng.extensions import webmail -from mailng.extensions.webmail.lib import IMAPheader -from mailng.lib import parameters +from modoboa.extensions import webmail +from modoboa.extensions.webmail.lib import IMAPheader +from modoboa.lib import parameters register = template.Library() diff --git a/extensions/webmail/urls.py b/extensions/webmail/urls.py index ae0fce429..1799bac60 100644 --- a/extensions/webmail/urls.py +++ b/extensions/webmail/urls.py @@ -1,6 +1,6 @@ from django.conf.urls.defaults import * -urlpatterns = patterns('mailng.extensions.webmail.views', +urlpatterns = patterns('modoboa.extensions.webmail.views', (r'^$', "index"), (r'^compose/$', "compose"), (r'^move/$', "move"), diff --git a/extensions/webmail/views.py b/extensions/webmail/views.py index b24efad9b..bc5bfa74f 100644 --- a/extensions/webmail/views.py +++ b/extensions/webmail/views.py @@ -8,9 +8,9 @@ from django.utils import simplejson from django.utils.translation import ugettext as _ from django.core.urlresolvers import reverse from django.contrib.auth.decorators import login_required -from mailng.admin.models import Mailbox -from mailng.lib import parameters, _render, _render_error, getctx, is_not_localadmin -from mailng.lib.email_listing import parse_search_parameters +from modoboa.admin.models import Mailbox +from modoboa.lib import parameters, _render, _render_error, getctx, is_not_localadmin +from modoboa.lib.email_listing import parse_search_parameters from lib import * from forms import * from templatetags.webextras import * diff --git a/lib/__init__.py b/lib/__init__.py index 1db957d45..01bd03888 100644 --- a/lib/__init__.py +++ b/lib/__init__.py @@ -6,7 +6,7 @@ from django.template import RequestContext from django.shortcuts import render_to_response from django.template.loader import render_to_string from django.utils.translation import ugettext as _ -from mailng.lib import parameters +from modoboa.lib import parameters def exec_cmd(cmd, **kwargs): import subprocess diff --git a/lib/authbackends.py b/lib/authbackends.py index 5a468692f..4505d563b 100644 --- a/lib/authbackends.py +++ b/lib/authbackends.py @@ -1,10 +1,10 @@ from django.contrib.auth.models import User -from mailng.admin.models import Mailbox +from modoboa.admin.models import Mailbox import hashlib import crypt import string from random import Random -from mailng.lib import parameters +from modoboa.lib import parameters class SimpleBackend: def authenticate(self, username=None, password=None): diff --git a/lib/email_listing.py b/lib/email_listing.py index 06473cbe6..a89ded9f5 100644 --- a/lib/email_listing.py +++ b/lib/email_listing.py @@ -10,7 +10,7 @@ from lxml import etree from django.template.loader import render_to_string from django.template import Template, Context from django.utils.translation import ugettext as _ -from mailng.lib import _render, decode +from modoboa.lib import _render, decode attached_map = {} diff --git a/lib/parameters.py b/lib/parameters.py index d914c6ed4..6fa8f20e1 100644 --- a/lib/parameters.py +++ b/lib/parameters.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import string -from mailng.lib.models import * +from modoboa.lib.models import * """ This interface provides a simple way to declare and store parameters diff --git a/lib/templatetags/libextras.py b/lib/templatetags/libextras.py index f8a99ee77..e1fc1f630 100644 --- a/lib/templatetags/libextras.py +++ b/lib/templatetags/libextras.py @@ -1,7 +1,7 @@ import os from django.conf import settings from django import template -from mailng.lib import exec_cmd +from modoboa.lib import exec_cmd register = template.Library() diff --git a/scripts/extension.py b/scripts/extension.py index 3ff4078c6..ec113c84b 100755 --- a/scripts/extension.py +++ b/scripts/extension.py @@ -36,7 +36,7 @@ if __name__ == "__main__": if not os.path.isdir(extdir): print "Extension not found" sys.exit(1) - extname = "mailng.extensions.%s" % sys.argv[1] + extname = "modoboa.extensions.%s" % sys.argv[1] update_extension(sys.argv[1], extdir, sys.argv[2]) if sys.argv[2] == "on": print "Make sure you have added '%s' to INSTALLED_APPS (inside settings.py)" % extname diff --git a/settings_sample.py b/settings_sample.py index 7d6aa3fa9..bd1067a1a 100644 --- a/settings_sample.py +++ b/settings_sample.py @@ -1,4 +1,4 @@ -# Django settings for mailng project. +# Django settings for modoboa project. import os.path DEBUG = False @@ -11,7 +11,7 @@ ADMINS = ( MANAGERS = ADMINS DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. -DATABASE_NAME = 'mailng' # Or path to database file if using sqlite3. +DATABASE_NAME = 'modoboa' # Or path to database file if using sqlite3. DATABASE_USER = '' # Not used with sqlite3. DATABASE_PASSWORD = '' # Not used with sqlite3. DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3. @@ -34,7 +34,7 @@ SITE_ID = 1 # to load the internationalization machinery. USE_I18N = True -LOGIN_REDIRECT_URL = '/mailng/admin/' +LOGIN_REDIRECT_URL = '/modoboa/admin/' # Absolute path to the directory that holds media. # Example: "/home/media/media.lawrence.com/" @@ -66,7 +66,7 @@ MIDDLEWARE_CLASSES = ( 'django.contrib.auth.middleware.AuthenticationMiddleware', ) -ROOT_URLCONF = 'mailng.urls' +ROOT_URLCONF = 'modoboa.urls' MAILNG_DIR = os.path.dirname(__file__) STATIC_ROOTDIR = os.path.join(MAILNG_DIR, 'static') @@ -83,18 +83,18 @@ INSTALLED_APPS = ( 'django.contrib.sessions', 'django.contrib.sites', 'south', - 'mailng', - 'mailng.lib', - 'mailng.admin', - 'mailng.userprefs', + 'modoboa', + 'modoboa.lib', + 'modoboa.admin', + 'modoboa.userprefs', # MailNG extensions here. - # 'mailng.extensions.postfix_autoreply' + # 'modoboa.extensions.postfix_autoreply' ) AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', - 'mailng.lib.authbackends.SimpleBackend' + 'modoboa.lib.authbackends.SimpleBackend' ) # Amavis quarantine diff --git a/static/css/mailng.png b/static/css/modoboa.png similarity index 100% rename from static/css/mailng.png rename to static/css/modoboa.png diff --git a/static/js/common.js b/static/js/common.js index 4730380f5..a19ae3a8c 100644 --- a/static/js/common.js +++ b/static/js/common.js @@ -250,7 +250,7 @@ confirmation = function(question, action, callback) { } } }); - SqueezeBox.open("/mailng/userprefs/confirm/?question=" + question); + SqueezeBox.open("/modoboa/userprefs/confirm/?question=" + question); } setDivHeight = function(id, extrah, modulo) { @@ -331,4 +331,4 @@ gethref = function(obj) { var baseurl = "http://" + location.host + location.pathname; return url.replace(baseurl, ""); -} \ No newline at end of file +} diff --git a/templates/nlayout.html b/templates/nlayout.html index 8fbc2acf2..c9d9196f5 100644 --- a/templates/nlayout.html +++ b/templates/nlayout.html @@ -62,7 +62,7 @@
  • - {% url mailng.auth.views.dologout as logout_url %} + {% url modoboa.auth.views.dologout as logout_url %} {% trans "Logout" %}
  • @@ -71,7 +71,7 @@