From 9358a76d890b97d633fc8dc581498fffd6032a20 Mon Sep 17 00:00:00 2001 From: kaiyou Date: Sun, 17 Sep 2017 14:36:44 +0200 Subject: [PATCH] Start moving things out of the admin module --- admin/mailu/__init__.py | 33 ++++++++++++------ admin/mailu/{admin => }/access.py | 0 admin/mailu/admin/__init__.py | 33 ------------------ admin/mailu/{admin => }/dkim.py | 0 admin/mailu/{admin => }/forms.py | 0 admin/mailu/{admin => }/models.py | 0 .../static/adminlte/css/AdminLTE.min.css | 0 .../static/adminlte/css/skin-blue.min.css | 0 .../{admin => }/static/adminlte/js/app.min.js | 0 admin/mailu/{admin => }/static/app.css | 0 .../static/bootstrap/css/bootstrap.css.map | 0 .../static/bootstrap/css/bootstrap.min.css | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../static/bootstrap/js/bootstrap.min.js | 0 .../static/jquery/js/jquery-2.2.2.min.js | 0 .../static/select2/css/select2.min.css | 0 .../{admin => }/static/select2/js/i18n/ar.js | 0 .../{admin => }/static/select2/js/i18n/az.js | 0 .../{admin => }/static/select2/js/i18n/bg.js | 0 .../{admin => }/static/select2/js/i18n/ca.js | 0 .../{admin => }/static/select2/js/i18n/cs.js | 0 .../{admin => }/static/select2/js/i18n/da.js | 0 .../{admin => }/static/select2/js/i18n/de.js | 0 .../{admin => }/static/select2/js/i18n/el.js | 0 .../{admin => }/static/select2/js/i18n/en.js | 0 .../{admin => }/static/select2/js/i18n/es.js | 0 .../{admin => }/static/select2/js/i18n/et.js | 0 .../{admin => }/static/select2/js/i18n/eu.js | 0 .../{admin => }/static/select2/js/i18n/fa.js | 0 .../{admin => }/static/select2/js/i18n/fi.js | 0 .../{admin => }/static/select2/js/i18n/fr.js | 0 .../{admin => }/static/select2/js/i18n/gl.js | 0 .../{admin => }/static/select2/js/i18n/he.js | 0 .../{admin => }/static/select2/js/i18n/hi.js | 0 .../{admin => }/static/select2/js/i18n/hr.js | 0 .../{admin => }/static/select2/js/i18n/hu.js | 0 .../{admin => }/static/select2/js/i18n/id.js | 0 .../{admin => }/static/select2/js/i18n/is.js | 0 .../{admin => }/static/select2/js/i18n/it.js | 0 .../{admin => }/static/select2/js/i18n/ja.js | 0 .../{admin => }/static/select2/js/i18n/km.js | 0 .../{admin => }/static/select2/js/i18n/ko.js | 0 .../{admin => }/static/select2/js/i18n/lt.js | 0 .../{admin => }/static/select2/js/i18n/lv.js | 0 .../{admin => }/static/select2/js/i18n/mk.js | 0 .../{admin => }/static/select2/js/i18n/ms.js | 0 .../{admin => }/static/select2/js/i18n/nb.js | 0 .../{admin => }/static/select2/js/i18n/nl.js | 0 .../{admin => }/static/select2/js/i18n/pl.js | 0 .../static/select2/js/i18n/pt-BR.js | 0 .../{admin => }/static/select2/js/i18n/pt.js | 0 .../{admin => }/static/select2/js/i18n/ro.js | 0 .../{admin => }/static/select2/js/i18n/ru.js | 0 .../{admin => }/static/select2/js/i18n/sk.js | 0 .../static/select2/js/i18n/sr-Cyrl.js | 0 .../{admin => }/static/select2/js/i18n/sr.js | 0 .../{admin => }/static/select2/js/i18n/sv.js | 0 .../{admin => }/static/select2/js/i18n/th.js | 0 .../{admin => }/static/select2/js/i18n/tr.js | 0 .../{admin => }/static/select2/js/i18n/uk.js | 0 .../{admin => }/static/select2/js/i18n/vi.js | 0 .../static/select2/js/i18n/zh-CN.js | 0 .../static/select2/js/i18n/zh-TW.js | 0 .../static/select2/js/select2.full.min.js | 0 .../static/select2/js/select2.min.js | 0 .../{admin => }/templates/admin/create.html | 0 .../{admin => }/templates/admin/list.html | 0 .../{admin => }/templates/alias/create.html | 0 .../{admin => }/templates/alias/edit.html | 0 .../{admin => }/templates/alias/list.html | 0 .../templates/alternative/create.html | 0 .../templates/alternative/list.html | 0 .../{admin => }/templates/announcement.html | 0 admin/mailu/{admin => }/templates/base.html | 0 .../mailu/{admin => }/templates/confirm.html | 0 .../{admin => }/templates/docker-error.html | 0 .../{admin => }/templates/domain/create.html | 0 .../{admin => }/templates/domain/details.html | 0 .../{admin => }/templates/domain/edit.html | 0 .../{admin => }/templates/domain/list.html | 0 .../{admin => }/templates/fetch/create.html | 0 .../{admin => }/templates/fetch/edit.html | 0 .../{admin => }/templates/fetch/list.html | 0 admin/mailu/{admin => }/templates/form.html | 0 .../mailu/{admin => }/templates/helpers.html | 0 admin/mailu/{admin => }/templates/index.html | 0 admin/mailu/{admin => }/templates/login.html | 0 admin/mailu/{admin => }/templates/macros.html | 0 .../{admin => }/templates/manager/create.html | 0 .../{admin => }/templates/manager/list.html | 0 .../{admin => }/templates/relay/create.html | 0 .../{admin => }/templates/relay/edit.html | 0 .../{admin => }/templates/relay/list.html | 0 .../mailu/{admin => }/templates/services.html | 0 .../mailu/{admin => }/templates/sidebar.html | 0 .../{admin => }/templates/user/create.html | 0 .../{admin => }/templates/user/edit.html | 0 .../{admin => }/templates/user/forward.html | 0 .../{admin => }/templates/user/list.html | 0 .../{admin => }/templates/user/password.html | 0 .../{admin => }/templates/user/reply.html | 0 .../{admin => }/templates/user/settings.html | 0 .../mailu/{admin => }/templates/working.html | 0 admin/mailu/{admin => }/views/__init__.py | 0 admin/mailu/{admin => }/views/admins.py | 0 admin/mailu/{admin => }/views/aliases.py | 0 admin/mailu/{admin => }/views/alternatives.py | 0 admin/mailu/{admin => }/views/base.py | 0 admin/mailu/{admin => }/views/domains.py | 0 admin/mailu/{admin => }/views/fetches.py | 0 admin/mailu/{admin => }/views/managers.py | 0 admin/mailu/{admin => }/views/relays.py | 0 admin/mailu/{admin => }/views/users.py | 0 117 files changed, 22 insertions(+), 44 deletions(-) rename admin/mailu/{admin => }/access.py (100%) delete mode 100644 admin/mailu/admin/__init__.py rename admin/mailu/{admin => }/dkim.py (100%) rename admin/mailu/{admin => }/forms.py (100%) rename admin/mailu/{admin => }/models.py (100%) rename admin/mailu/{admin => }/static/adminlte/css/AdminLTE.min.css (100%) rename admin/mailu/{admin => }/static/adminlte/css/skin-blue.min.css (100%) rename admin/mailu/{admin => }/static/adminlte/js/app.min.js (100%) rename admin/mailu/{admin => }/static/app.css (100%) rename admin/mailu/{admin => }/static/bootstrap/css/bootstrap.css.map (100%) rename admin/mailu/{admin => }/static/bootstrap/css/bootstrap.min.css (100%) rename admin/mailu/{admin => }/static/bootstrap/fonts/glyphicons-halflings-regular.eot (100%) rename admin/mailu/{admin => }/static/bootstrap/fonts/glyphicons-halflings-regular.svg (100%) rename admin/mailu/{admin => }/static/bootstrap/fonts/glyphicons-halflings-regular.ttf (100%) rename admin/mailu/{admin => }/static/bootstrap/fonts/glyphicons-halflings-regular.woff (100%) rename admin/mailu/{admin => }/static/bootstrap/fonts/glyphicons-halflings-regular.woff2 (100%) rename admin/mailu/{admin => }/static/bootstrap/js/bootstrap.min.js (100%) rename admin/mailu/{admin => }/static/jquery/js/jquery-2.2.2.min.js (100%) rename admin/mailu/{admin => }/static/select2/css/select2.min.css (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/ar.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/az.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/bg.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/ca.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/cs.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/da.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/de.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/el.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/en.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/es.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/et.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/eu.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/fa.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/fi.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/fr.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/gl.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/he.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/hi.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/hr.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/hu.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/id.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/is.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/it.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/ja.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/km.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/ko.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/lt.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/lv.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/mk.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/ms.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/nb.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/nl.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/pl.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/pt-BR.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/pt.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/ro.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/ru.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/sk.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/sr-Cyrl.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/sr.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/sv.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/th.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/tr.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/uk.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/vi.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/zh-CN.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/zh-TW.js (100%) rename admin/mailu/{admin => }/static/select2/js/select2.full.min.js (100%) rename admin/mailu/{admin => }/static/select2/js/select2.min.js (100%) rename admin/mailu/{admin => }/templates/admin/create.html (100%) rename admin/mailu/{admin => }/templates/admin/list.html (100%) rename admin/mailu/{admin => }/templates/alias/create.html (100%) rename admin/mailu/{admin => }/templates/alias/edit.html (100%) rename admin/mailu/{admin => }/templates/alias/list.html (100%) rename admin/mailu/{admin => }/templates/alternative/create.html (100%) rename admin/mailu/{admin => }/templates/alternative/list.html (100%) rename admin/mailu/{admin => }/templates/announcement.html (100%) rename admin/mailu/{admin => }/templates/base.html (100%) rename admin/mailu/{admin => }/templates/confirm.html (100%) rename admin/mailu/{admin => }/templates/docker-error.html (100%) rename admin/mailu/{admin => }/templates/domain/create.html (100%) rename admin/mailu/{admin => }/templates/domain/details.html (100%) rename admin/mailu/{admin => }/templates/domain/edit.html (100%) rename admin/mailu/{admin => }/templates/domain/list.html (100%) rename admin/mailu/{admin => }/templates/fetch/create.html (100%) rename admin/mailu/{admin => }/templates/fetch/edit.html (100%) rename admin/mailu/{admin => }/templates/fetch/list.html (100%) rename admin/mailu/{admin => }/templates/form.html (100%) rename admin/mailu/{admin => }/templates/helpers.html (100%) rename admin/mailu/{admin => }/templates/index.html (100%) rename admin/mailu/{admin => }/templates/login.html (100%) rename admin/mailu/{admin => }/templates/macros.html (100%) rename admin/mailu/{admin => }/templates/manager/create.html (100%) rename admin/mailu/{admin => }/templates/manager/list.html (100%) rename admin/mailu/{admin => }/templates/relay/create.html (100%) rename admin/mailu/{admin => }/templates/relay/edit.html (100%) rename admin/mailu/{admin => }/templates/relay/list.html (100%) rename admin/mailu/{admin => }/templates/services.html (100%) rename admin/mailu/{admin => }/templates/sidebar.html (100%) rename admin/mailu/{admin => }/templates/user/create.html (100%) rename admin/mailu/{admin => }/templates/user/edit.html (100%) rename admin/mailu/{admin => }/templates/user/forward.html (100%) rename admin/mailu/{admin => }/templates/user/list.html (100%) rename admin/mailu/{admin => }/templates/user/password.html (100%) rename admin/mailu/{admin => }/templates/user/reply.html (100%) rename admin/mailu/{admin => }/templates/user/settings.html (100%) rename admin/mailu/{admin => }/templates/working.html (100%) rename admin/mailu/{admin => }/views/__init__.py (100%) rename admin/mailu/{admin => }/views/admins.py (100%) rename admin/mailu/{admin => }/views/aliases.py (100%) rename admin/mailu/{admin => }/views/alternatives.py (100%) rename admin/mailu/{admin => }/views/base.py (100%) rename admin/mailu/{admin => }/views/domains.py (100%) rename admin/mailu/{admin => }/views/fetches.py (100%) rename admin/mailu/{admin => }/views/managers.py (100%) rename admin/mailu/{admin => }/views/relays.py (100%) rename admin/mailu/{admin => }/views/users.py (100%) diff --git a/admin/mailu/__init__.py b/admin/mailu/__init__.py index d6f6a457..de282ac6 100644 --- a/admin/mailu/__init__.py +++ b/admin/mailu/__init__.py @@ -11,6 +11,8 @@ import docker from apscheduler.schedulers import background +from mailu import models + # Create application app = flask.Flask(__name__, static_url_path='/admin/app_static') @@ -41,36 +43,45 @@ default_config = { for key, value in default_config.items(): app.config[key] = os.environ.get(key, value) -# Setup components +# Base application flask_bootstrap.Bootstrap(app) db = flask_sqlalchemy.SQLAlchemy(app) migrate = flask_migrate.Migrate(app, db) -login_manager = flask_login.LoginManager() -login_manager.init_app(app) -babel = flask_babel.Babel(app) -translations = list(map(str, babel.list_translations())) -scheduler = background.BackgroundScheduler({ - 'apscheduler.timezone': 'UTC' -}) # Manager commnad manager = flask_script.Manager(app) manager.add_command('db', flask_migrate.MigrateCommand) # Task scheduling +scheduler = background.BackgroundScheduler({ + 'apscheduler.timezone': 'UTC' +}) if not app.debug or os.environ.get('WERKZEUG_RUN_MAIN') == 'true': scheduler.start() from mailu import tlstasks # Babel configuration +babel = flask_babel.Babel(app) +translations = list(map(str, babel.list_translations())) + @babel.localeselector def get_locale(): return flask.request.accept_languages.best_match(translations) -# Finally setup the blueprint and redirect / -from mailu import admin -app.register_blueprint(admin.app, url_prefix='/admin') +# Login configuration +login_manager = flask_login.LoginManager() +login_manager.init_app(app) +login_manager.login_view = "admin.login" +login_manager.user_loader(models.User.query.get) + +@app.context_processor +def inject_user(): + return dict(current_user=flask_login.current_user) @app.route("/") def index(): return flask.redirect("/webmail/") + + +# Import views +from mailu.views import * diff --git a/admin/mailu/admin/access.py b/admin/mailu/access.py similarity index 100% rename from admin/mailu/admin/access.py rename to admin/mailu/access.py diff --git a/admin/mailu/admin/__init__.py b/admin/mailu/admin/__init__.py deleted file mode 100644 index fc895134..00000000 --- a/admin/mailu/admin/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -from flask import Blueprint -from mailu import login_manager, db - -import flask_login - - -app = Blueprint( - 'admin', __name__, - template_folder='templates', - static_folder='static') - -# Import models -from mailu.admin import models - -# Register the login components -login_manager.login_view = "admin.login" -login_manager.user_loader(models.User.query.get) - -@app.context_processor -def inject_user(): - return dict(current_user=flask_login.current_user) - -# Import views -from mailu.admin.views import \ - admins, \ - managers, \ - base, \ - aliases, \ - users, \ - domains, \ - relays, \ - alternatives, \ - fetches diff --git a/admin/mailu/admin/dkim.py b/admin/mailu/dkim.py similarity index 100% rename from admin/mailu/admin/dkim.py rename to admin/mailu/dkim.py diff --git a/admin/mailu/admin/forms.py b/admin/mailu/forms.py similarity index 100% rename from admin/mailu/admin/forms.py rename to admin/mailu/forms.py diff --git a/admin/mailu/admin/models.py b/admin/mailu/models.py similarity index 100% rename from admin/mailu/admin/models.py rename to admin/mailu/models.py diff --git a/admin/mailu/admin/static/adminlte/css/AdminLTE.min.css b/admin/mailu/static/adminlte/css/AdminLTE.min.css similarity index 100% rename from admin/mailu/admin/static/adminlte/css/AdminLTE.min.css rename to admin/mailu/static/adminlte/css/AdminLTE.min.css diff --git a/admin/mailu/admin/static/adminlte/css/skin-blue.min.css b/admin/mailu/static/adminlte/css/skin-blue.min.css similarity index 100% rename from admin/mailu/admin/static/adminlte/css/skin-blue.min.css rename to admin/mailu/static/adminlte/css/skin-blue.min.css diff --git a/admin/mailu/admin/static/adminlte/js/app.min.js b/admin/mailu/static/adminlte/js/app.min.js similarity index 100% rename from admin/mailu/admin/static/adminlte/js/app.min.js rename to admin/mailu/static/adminlte/js/app.min.js diff --git a/admin/mailu/admin/static/app.css b/admin/mailu/static/app.css similarity index 100% rename from admin/mailu/admin/static/app.css rename to admin/mailu/static/app.css diff --git a/admin/mailu/admin/static/bootstrap/css/bootstrap.css.map b/admin/mailu/static/bootstrap/css/bootstrap.css.map similarity index 100% rename from admin/mailu/admin/static/bootstrap/css/bootstrap.css.map rename to admin/mailu/static/bootstrap/css/bootstrap.css.map diff --git a/admin/mailu/admin/static/bootstrap/css/bootstrap.min.css b/admin/mailu/static/bootstrap/css/bootstrap.min.css similarity index 100% rename from admin/mailu/admin/static/bootstrap/css/bootstrap.min.css rename to admin/mailu/static/bootstrap/css/bootstrap.min.css diff --git a/admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.eot b/admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.eot rename to admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.eot diff --git a/admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.svg b/admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.svg rename to admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.svg diff --git a/admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.ttf b/admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.ttf rename to admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.ttf diff --git a/admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.woff b/admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.woff rename to admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.woff diff --git a/admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.woff2 rename to admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.woff2 diff --git a/admin/mailu/admin/static/bootstrap/js/bootstrap.min.js b/admin/mailu/static/bootstrap/js/bootstrap.min.js similarity index 100% rename from admin/mailu/admin/static/bootstrap/js/bootstrap.min.js rename to admin/mailu/static/bootstrap/js/bootstrap.min.js diff --git a/admin/mailu/admin/static/jquery/js/jquery-2.2.2.min.js b/admin/mailu/static/jquery/js/jquery-2.2.2.min.js similarity index 100% rename from admin/mailu/admin/static/jquery/js/jquery-2.2.2.min.js rename to admin/mailu/static/jquery/js/jquery-2.2.2.min.js diff --git a/admin/mailu/admin/static/select2/css/select2.min.css b/admin/mailu/static/select2/css/select2.min.css similarity index 100% rename from admin/mailu/admin/static/select2/css/select2.min.css rename to admin/mailu/static/select2/css/select2.min.css diff --git a/admin/mailu/admin/static/select2/js/i18n/ar.js b/admin/mailu/static/select2/js/i18n/ar.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/ar.js rename to admin/mailu/static/select2/js/i18n/ar.js diff --git a/admin/mailu/admin/static/select2/js/i18n/az.js b/admin/mailu/static/select2/js/i18n/az.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/az.js rename to admin/mailu/static/select2/js/i18n/az.js diff --git a/admin/mailu/admin/static/select2/js/i18n/bg.js b/admin/mailu/static/select2/js/i18n/bg.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/bg.js rename to admin/mailu/static/select2/js/i18n/bg.js diff --git a/admin/mailu/admin/static/select2/js/i18n/ca.js b/admin/mailu/static/select2/js/i18n/ca.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/ca.js rename to admin/mailu/static/select2/js/i18n/ca.js diff --git a/admin/mailu/admin/static/select2/js/i18n/cs.js b/admin/mailu/static/select2/js/i18n/cs.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/cs.js rename to admin/mailu/static/select2/js/i18n/cs.js diff --git a/admin/mailu/admin/static/select2/js/i18n/da.js b/admin/mailu/static/select2/js/i18n/da.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/da.js rename to admin/mailu/static/select2/js/i18n/da.js diff --git a/admin/mailu/admin/static/select2/js/i18n/de.js b/admin/mailu/static/select2/js/i18n/de.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/de.js rename to admin/mailu/static/select2/js/i18n/de.js diff --git a/admin/mailu/admin/static/select2/js/i18n/el.js b/admin/mailu/static/select2/js/i18n/el.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/el.js rename to admin/mailu/static/select2/js/i18n/el.js diff --git a/admin/mailu/admin/static/select2/js/i18n/en.js b/admin/mailu/static/select2/js/i18n/en.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/en.js rename to admin/mailu/static/select2/js/i18n/en.js diff --git a/admin/mailu/admin/static/select2/js/i18n/es.js b/admin/mailu/static/select2/js/i18n/es.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/es.js rename to admin/mailu/static/select2/js/i18n/es.js diff --git a/admin/mailu/admin/static/select2/js/i18n/et.js b/admin/mailu/static/select2/js/i18n/et.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/et.js rename to admin/mailu/static/select2/js/i18n/et.js diff --git a/admin/mailu/admin/static/select2/js/i18n/eu.js b/admin/mailu/static/select2/js/i18n/eu.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/eu.js rename to admin/mailu/static/select2/js/i18n/eu.js diff --git a/admin/mailu/admin/static/select2/js/i18n/fa.js b/admin/mailu/static/select2/js/i18n/fa.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/fa.js rename to admin/mailu/static/select2/js/i18n/fa.js diff --git a/admin/mailu/admin/static/select2/js/i18n/fi.js b/admin/mailu/static/select2/js/i18n/fi.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/fi.js rename to admin/mailu/static/select2/js/i18n/fi.js diff --git a/admin/mailu/admin/static/select2/js/i18n/fr.js b/admin/mailu/static/select2/js/i18n/fr.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/fr.js rename to admin/mailu/static/select2/js/i18n/fr.js diff --git a/admin/mailu/admin/static/select2/js/i18n/gl.js b/admin/mailu/static/select2/js/i18n/gl.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/gl.js rename to admin/mailu/static/select2/js/i18n/gl.js diff --git a/admin/mailu/admin/static/select2/js/i18n/he.js b/admin/mailu/static/select2/js/i18n/he.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/he.js rename to admin/mailu/static/select2/js/i18n/he.js diff --git a/admin/mailu/admin/static/select2/js/i18n/hi.js b/admin/mailu/static/select2/js/i18n/hi.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/hi.js rename to admin/mailu/static/select2/js/i18n/hi.js diff --git a/admin/mailu/admin/static/select2/js/i18n/hr.js b/admin/mailu/static/select2/js/i18n/hr.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/hr.js rename to admin/mailu/static/select2/js/i18n/hr.js diff --git a/admin/mailu/admin/static/select2/js/i18n/hu.js b/admin/mailu/static/select2/js/i18n/hu.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/hu.js rename to admin/mailu/static/select2/js/i18n/hu.js diff --git a/admin/mailu/admin/static/select2/js/i18n/id.js b/admin/mailu/static/select2/js/i18n/id.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/id.js rename to admin/mailu/static/select2/js/i18n/id.js diff --git a/admin/mailu/admin/static/select2/js/i18n/is.js b/admin/mailu/static/select2/js/i18n/is.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/is.js rename to admin/mailu/static/select2/js/i18n/is.js diff --git a/admin/mailu/admin/static/select2/js/i18n/it.js b/admin/mailu/static/select2/js/i18n/it.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/it.js rename to admin/mailu/static/select2/js/i18n/it.js diff --git a/admin/mailu/admin/static/select2/js/i18n/ja.js b/admin/mailu/static/select2/js/i18n/ja.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/ja.js rename to admin/mailu/static/select2/js/i18n/ja.js diff --git a/admin/mailu/admin/static/select2/js/i18n/km.js b/admin/mailu/static/select2/js/i18n/km.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/km.js rename to admin/mailu/static/select2/js/i18n/km.js diff --git a/admin/mailu/admin/static/select2/js/i18n/ko.js b/admin/mailu/static/select2/js/i18n/ko.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/ko.js rename to admin/mailu/static/select2/js/i18n/ko.js diff --git a/admin/mailu/admin/static/select2/js/i18n/lt.js b/admin/mailu/static/select2/js/i18n/lt.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/lt.js rename to admin/mailu/static/select2/js/i18n/lt.js diff --git a/admin/mailu/admin/static/select2/js/i18n/lv.js b/admin/mailu/static/select2/js/i18n/lv.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/lv.js rename to admin/mailu/static/select2/js/i18n/lv.js diff --git a/admin/mailu/admin/static/select2/js/i18n/mk.js b/admin/mailu/static/select2/js/i18n/mk.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/mk.js rename to admin/mailu/static/select2/js/i18n/mk.js diff --git a/admin/mailu/admin/static/select2/js/i18n/ms.js b/admin/mailu/static/select2/js/i18n/ms.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/ms.js rename to admin/mailu/static/select2/js/i18n/ms.js diff --git a/admin/mailu/admin/static/select2/js/i18n/nb.js b/admin/mailu/static/select2/js/i18n/nb.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/nb.js rename to admin/mailu/static/select2/js/i18n/nb.js diff --git a/admin/mailu/admin/static/select2/js/i18n/nl.js b/admin/mailu/static/select2/js/i18n/nl.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/nl.js rename to admin/mailu/static/select2/js/i18n/nl.js diff --git a/admin/mailu/admin/static/select2/js/i18n/pl.js b/admin/mailu/static/select2/js/i18n/pl.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/pl.js rename to admin/mailu/static/select2/js/i18n/pl.js diff --git a/admin/mailu/admin/static/select2/js/i18n/pt-BR.js b/admin/mailu/static/select2/js/i18n/pt-BR.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/pt-BR.js rename to admin/mailu/static/select2/js/i18n/pt-BR.js diff --git a/admin/mailu/admin/static/select2/js/i18n/pt.js b/admin/mailu/static/select2/js/i18n/pt.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/pt.js rename to admin/mailu/static/select2/js/i18n/pt.js diff --git a/admin/mailu/admin/static/select2/js/i18n/ro.js b/admin/mailu/static/select2/js/i18n/ro.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/ro.js rename to admin/mailu/static/select2/js/i18n/ro.js diff --git a/admin/mailu/admin/static/select2/js/i18n/ru.js b/admin/mailu/static/select2/js/i18n/ru.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/ru.js rename to admin/mailu/static/select2/js/i18n/ru.js diff --git a/admin/mailu/admin/static/select2/js/i18n/sk.js b/admin/mailu/static/select2/js/i18n/sk.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/sk.js rename to admin/mailu/static/select2/js/i18n/sk.js diff --git a/admin/mailu/admin/static/select2/js/i18n/sr-Cyrl.js b/admin/mailu/static/select2/js/i18n/sr-Cyrl.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/sr-Cyrl.js rename to admin/mailu/static/select2/js/i18n/sr-Cyrl.js diff --git a/admin/mailu/admin/static/select2/js/i18n/sr.js b/admin/mailu/static/select2/js/i18n/sr.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/sr.js rename to admin/mailu/static/select2/js/i18n/sr.js diff --git a/admin/mailu/admin/static/select2/js/i18n/sv.js b/admin/mailu/static/select2/js/i18n/sv.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/sv.js rename to admin/mailu/static/select2/js/i18n/sv.js diff --git a/admin/mailu/admin/static/select2/js/i18n/th.js b/admin/mailu/static/select2/js/i18n/th.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/th.js rename to admin/mailu/static/select2/js/i18n/th.js diff --git a/admin/mailu/admin/static/select2/js/i18n/tr.js b/admin/mailu/static/select2/js/i18n/tr.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/tr.js rename to admin/mailu/static/select2/js/i18n/tr.js diff --git a/admin/mailu/admin/static/select2/js/i18n/uk.js b/admin/mailu/static/select2/js/i18n/uk.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/uk.js rename to admin/mailu/static/select2/js/i18n/uk.js diff --git a/admin/mailu/admin/static/select2/js/i18n/vi.js b/admin/mailu/static/select2/js/i18n/vi.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/vi.js rename to admin/mailu/static/select2/js/i18n/vi.js diff --git a/admin/mailu/admin/static/select2/js/i18n/zh-CN.js b/admin/mailu/static/select2/js/i18n/zh-CN.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/zh-CN.js rename to admin/mailu/static/select2/js/i18n/zh-CN.js diff --git a/admin/mailu/admin/static/select2/js/i18n/zh-TW.js b/admin/mailu/static/select2/js/i18n/zh-TW.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/zh-TW.js rename to admin/mailu/static/select2/js/i18n/zh-TW.js diff --git a/admin/mailu/admin/static/select2/js/select2.full.min.js b/admin/mailu/static/select2/js/select2.full.min.js similarity index 100% rename from admin/mailu/admin/static/select2/js/select2.full.min.js rename to admin/mailu/static/select2/js/select2.full.min.js diff --git a/admin/mailu/admin/static/select2/js/select2.min.js b/admin/mailu/static/select2/js/select2.min.js similarity index 100% rename from admin/mailu/admin/static/select2/js/select2.min.js rename to admin/mailu/static/select2/js/select2.min.js diff --git a/admin/mailu/admin/templates/admin/create.html b/admin/mailu/templates/admin/create.html similarity index 100% rename from admin/mailu/admin/templates/admin/create.html rename to admin/mailu/templates/admin/create.html diff --git a/admin/mailu/admin/templates/admin/list.html b/admin/mailu/templates/admin/list.html similarity index 100% rename from admin/mailu/admin/templates/admin/list.html rename to admin/mailu/templates/admin/list.html diff --git a/admin/mailu/admin/templates/alias/create.html b/admin/mailu/templates/alias/create.html similarity index 100% rename from admin/mailu/admin/templates/alias/create.html rename to admin/mailu/templates/alias/create.html diff --git a/admin/mailu/admin/templates/alias/edit.html b/admin/mailu/templates/alias/edit.html similarity index 100% rename from admin/mailu/admin/templates/alias/edit.html rename to admin/mailu/templates/alias/edit.html diff --git a/admin/mailu/admin/templates/alias/list.html b/admin/mailu/templates/alias/list.html similarity index 100% rename from admin/mailu/admin/templates/alias/list.html rename to admin/mailu/templates/alias/list.html diff --git a/admin/mailu/admin/templates/alternative/create.html b/admin/mailu/templates/alternative/create.html similarity index 100% rename from admin/mailu/admin/templates/alternative/create.html rename to admin/mailu/templates/alternative/create.html diff --git a/admin/mailu/admin/templates/alternative/list.html b/admin/mailu/templates/alternative/list.html similarity index 100% rename from admin/mailu/admin/templates/alternative/list.html rename to admin/mailu/templates/alternative/list.html diff --git a/admin/mailu/admin/templates/announcement.html b/admin/mailu/templates/announcement.html similarity index 100% rename from admin/mailu/admin/templates/announcement.html rename to admin/mailu/templates/announcement.html diff --git a/admin/mailu/admin/templates/base.html b/admin/mailu/templates/base.html similarity index 100% rename from admin/mailu/admin/templates/base.html rename to admin/mailu/templates/base.html diff --git a/admin/mailu/admin/templates/confirm.html b/admin/mailu/templates/confirm.html similarity index 100% rename from admin/mailu/admin/templates/confirm.html rename to admin/mailu/templates/confirm.html diff --git a/admin/mailu/admin/templates/docker-error.html b/admin/mailu/templates/docker-error.html similarity index 100% rename from admin/mailu/admin/templates/docker-error.html rename to admin/mailu/templates/docker-error.html diff --git a/admin/mailu/admin/templates/domain/create.html b/admin/mailu/templates/domain/create.html similarity index 100% rename from admin/mailu/admin/templates/domain/create.html rename to admin/mailu/templates/domain/create.html diff --git a/admin/mailu/admin/templates/domain/details.html b/admin/mailu/templates/domain/details.html similarity index 100% rename from admin/mailu/admin/templates/domain/details.html rename to admin/mailu/templates/domain/details.html diff --git a/admin/mailu/admin/templates/domain/edit.html b/admin/mailu/templates/domain/edit.html similarity index 100% rename from admin/mailu/admin/templates/domain/edit.html rename to admin/mailu/templates/domain/edit.html diff --git a/admin/mailu/admin/templates/domain/list.html b/admin/mailu/templates/domain/list.html similarity index 100% rename from admin/mailu/admin/templates/domain/list.html rename to admin/mailu/templates/domain/list.html diff --git a/admin/mailu/admin/templates/fetch/create.html b/admin/mailu/templates/fetch/create.html similarity index 100% rename from admin/mailu/admin/templates/fetch/create.html rename to admin/mailu/templates/fetch/create.html diff --git a/admin/mailu/admin/templates/fetch/edit.html b/admin/mailu/templates/fetch/edit.html similarity index 100% rename from admin/mailu/admin/templates/fetch/edit.html rename to admin/mailu/templates/fetch/edit.html diff --git a/admin/mailu/admin/templates/fetch/list.html b/admin/mailu/templates/fetch/list.html similarity index 100% rename from admin/mailu/admin/templates/fetch/list.html rename to admin/mailu/templates/fetch/list.html diff --git a/admin/mailu/admin/templates/form.html b/admin/mailu/templates/form.html similarity index 100% rename from admin/mailu/admin/templates/form.html rename to admin/mailu/templates/form.html diff --git a/admin/mailu/admin/templates/helpers.html b/admin/mailu/templates/helpers.html similarity index 100% rename from admin/mailu/admin/templates/helpers.html rename to admin/mailu/templates/helpers.html diff --git a/admin/mailu/admin/templates/index.html b/admin/mailu/templates/index.html similarity index 100% rename from admin/mailu/admin/templates/index.html rename to admin/mailu/templates/index.html diff --git a/admin/mailu/admin/templates/login.html b/admin/mailu/templates/login.html similarity index 100% rename from admin/mailu/admin/templates/login.html rename to admin/mailu/templates/login.html diff --git a/admin/mailu/admin/templates/macros.html b/admin/mailu/templates/macros.html similarity index 100% rename from admin/mailu/admin/templates/macros.html rename to admin/mailu/templates/macros.html diff --git a/admin/mailu/admin/templates/manager/create.html b/admin/mailu/templates/manager/create.html similarity index 100% rename from admin/mailu/admin/templates/manager/create.html rename to admin/mailu/templates/manager/create.html diff --git a/admin/mailu/admin/templates/manager/list.html b/admin/mailu/templates/manager/list.html similarity index 100% rename from admin/mailu/admin/templates/manager/list.html rename to admin/mailu/templates/manager/list.html diff --git a/admin/mailu/admin/templates/relay/create.html b/admin/mailu/templates/relay/create.html similarity index 100% rename from admin/mailu/admin/templates/relay/create.html rename to admin/mailu/templates/relay/create.html diff --git a/admin/mailu/admin/templates/relay/edit.html b/admin/mailu/templates/relay/edit.html similarity index 100% rename from admin/mailu/admin/templates/relay/edit.html rename to admin/mailu/templates/relay/edit.html diff --git a/admin/mailu/admin/templates/relay/list.html b/admin/mailu/templates/relay/list.html similarity index 100% rename from admin/mailu/admin/templates/relay/list.html rename to admin/mailu/templates/relay/list.html diff --git a/admin/mailu/admin/templates/services.html b/admin/mailu/templates/services.html similarity index 100% rename from admin/mailu/admin/templates/services.html rename to admin/mailu/templates/services.html diff --git a/admin/mailu/admin/templates/sidebar.html b/admin/mailu/templates/sidebar.html similarity index 100% rename from admin/mailu/admin/templates/sidebar.html rename to admin/mailu/templates/sidebar.html diff --git a/admin/mailu/admin/templates/user/create.html b/admin/mailu/templates/user/create.html similarity index 100% rename from admin/mailu/admin/templates/user/create.html rename to admin/mailu/templates/user/create.html diff --git a/admin/mailu/admin/templates/user/edit.html b/admin/mailu/templates/user/edit.html similarity index 100% rename from admin/mailu/admin/templates/user/edit.html rename to admin/mailu/templates/user/edit.html diff --git a/admin/mailu/admin/templates/user/forward.html b/admin/mailu/templates/user/forward.html similarity index 100% rename from admin/mailu/admin/templates/user/forward.html rename to admin/mailu/templates/user/forward.html diff --git a/admin/mailu/admin/templates/user/list.html b/admin/mailu/templates/user/list.html similarity index 100% rename from admin/mailu/admin/templates/user/list.html rename to admin/mailu/templates/user/list.html diff --git a/admin/mailu/admin/templates/user/password.html b/admin/mailu/templates/user/password.html similarity index 100% rename from admin/mailu/admin/templates/user/password.html rename to admin/mailu/templates/user/password.html diff --git a/admin/mailu/admin/templates/user/reply.html b/admin/mailu/templates/user/reply.html similarity index 100% rename from admin/mailu/admin/templates/user/reply.html rename to admin/mailu/templates/user/reply.html diff --git a/admin/mailu/admin/templates/user/settings.html b/admin/mailu/templates/user/settings.html similarity index 100% rename from admin/mailu/admin/templates/user/settings.html rename to admin/mailu/templates/user/settings.html diff --git a/admin/mailu/admin/templates/working.html b/admin/mailu/templates/working.html similarity index 100% rename from admin/mailu/admin/templates/working.html rename to admin/mailu/templates/working.html diff --git a/admin/mailu/admin/views/__init__.py b/admin/mailu/views/__init__.py similarity index 100% rename from admin/mailu/admin/views/__init__.py rename to admin/mailu/views/__init__.py diff --git a/admin/mailu/admin/views/admins.py b/admin/mailu/views/admins.py similarity index 100% rename from admin/mailu/admin/views/admins.py rename to admin/mailu/views/admins.py diff --git a/admin/mailu/admin/views/aliases.py b/admin/mailu/views/aliases.py similarity index 100% rename from admin/mailu/admin/views/aliases.py rename to admin/mailu/views/aliases.py diff --git a/admin/mailu/admin/views/alternatives.py b/admin/mailu/views/alternatives.py similarity index 100% rename from admin/mailu/admin/views/alternatives.py rename to admin/mailu/views/alternatives.py diff --git a/admin/mailu/admin/views/base.py b/admin/mailu/views/base.py similarity index 100% rename from admin/mailu/admin/views/base.py rename to admin/mailu/views/base.py diff --git a/admin/mailu/admin/views/domains.py b/admin/mailu/views/domains.py similarity index 100% rename from admin/mailu/admin/views/domains.py rename to admin/mailu/views/domains.py diff --git a/admin/mailu/admin/views/fetches.py b/admin/mailu/views/fetches.py similarity index 100% rename from admin/mailu/admin/views/fetches.py rename to admin/mailu/views/fetches.py diff --git a/admin/mailu/admin/views/managers.py b/admin/mailu/views/managers.py similarity index 100% rename from admin/mailu/admin/views/managers.py rename to admin/mailu/views/managers.py diff --git a/admin/mailu/admin/views/relays.py b/admin/mailu/views/relays.py similarity index 100% rename from admin/mailu/admin/views/relays.py rename to admin/mailu/views/relays.py diff --git a/admin/mailu/admin/views/users.py b/admin/mailu/views/users.py similarity index 100% rename from admin/mailu/admin/views/users.py rename to admin/mailu/views/users.py