MPASolutions/django-webix-sender

View on GitHub
django_webix_sender/apps.py

Summary

Maintainability
A
25 mins
Test Coverage
# -*- coding: utf-8 -*-

from __future__ import unicode_literals

from django.apps import AppConfig, apps
from django.utils.translation import ugettext_lazy as _


class DjangoWebixSenderConfig(AppConfig):
    name = 'django_webix_sender'
    verbose_name = 'Django Webix Sender'

    def ready(self):
        from django_webix_sender.settings import CONF
        from django_webix_sender.utils import my_import

        if CONF is None:
            raise Exception(_('`WEBIX_SENDER` is not configured in your settings.py file'))

        # Try to import all functions
        for send_method in CONF['send_methods']:
            my_import(send_method['function'])

        app_label, model = CONF['attachments']['model'].lower().split(".")
        try:
            apps.get_model(app_label=app_label, model_name=model)
        except Exception:
            raise NotImplementedError(_('Attachment model is not valid'))

        # Try to import Attachments save function
        my_import(CONF['attachments']['save_function'])

        for recipient in CONF['recipients']:
            app_label, model = recipient['model'].lower().split(".")
            try:
                model_class = apps.get_model(app_label=app_label, model_name=model)
            except Exception:
                raise NotImplementedError(_('Recipient model is not valid'))