コード例 #1
0
ファイル: apps.py プロジェクト: edx/registrar
    def ready(self):
        """
        Perform other one-time initialization steps.
        """
        from django.db.models.signals import post_save, pre_migrate, pre_save

        from registrar.apps.core.models import (
            OrganizationGroup,
            ProgramOrganizationGroup,
            User,
        )
        from registrar.apps.core.signals import (
            handle_organization_group_pre_save,
            handle_program_group_pre_save,
            handle_user_post_save,
        )

        post_save.connect(
            handle_user_post_save,
            sender=User,
            dispatch_uid=self.USER_POST_SAVE_DISPATCH_UID
        )
        pre_save.connect(
            handle_organization_group_pre_save,
            sender=OrganizationGroup,
        )
        pre_save.connect(
            handle_program_group_pre_save,
            sender=ProgramOrganizationGroup,
        )
        pre_migrate.connect(self._disconnect_user_post_save_for_migrations)
コード例 #2
0
ファイル: apps.py プロジェクト: jrief/djangocms-cascade
    def ready(self):
        stylesSet = force_text(settings.CKEDITOR_SETTINGS.get('stylesSet'))
        if stylesSet != 'default:{}'.format(reverse('admin:cascade_texteditor_config')):
            msg = "settings.CKEDITOR_SETTINGS['stylesSet'] should be `format_lazy('default:{}', reverse_lazy('admin:cascade_texteditor_config'))`"
            raise ImproperlyConfigured(msg)

        pre_migrate.connect(self.__class__.pre_migrate, sender=self)
        post_migrate.connect(self.__class__.post_migrate, sender=self)
コード例 #3
0
    def ready(self):
        stylesSet = str(settings.CKEDITOR_SETTINGS.get('stylesSet'))
        if stylesSet != 'default:{}'.format(reverse('admin:cascade_texteditor_config')):
            msg = "settings.CKEDITOR_SETTINGS['stylesSet'] should be `format_lazy('default:{}', reverse_lazy('admin:cascade_texteditor_config'))`"
            raise ImproperlyConfigured(msg)

        pre_migrate.connect(self.__class__.pre_migrate, sender=self)
        post_migrate.connect(self.__class__.post_migrate, sender=self)
コード例 #4
0
ファイル: apps.py プロジェクト: bittner/djangocms-cascade
    def ready(self):
        if 'cmsplugin_cascade.icon' in settings.INSTALLED_APPS:
            stylesSet = force_text(settings.CKEDITOR_SETTINGS.get('stylesSet'))
            if stylesSet != 'default:{}'.format(reverse('admin:cascade_texticon_wysiwig_config')):
                msg = "settings.CKEDITOR_SETTINGS['stylesSet'] should be `format_lazy('default:{}', reverse_lazy('admin:cascade_texticon_wysiwig_config'))`"
                raise ImproperlyConfigured(msg)

        pre_migrate.connect(self.__class__.pre_migrate, sender=self)
        post_migrate.connect(self.__class__.post_migrate, sender=self)
コード例 #5
0
 def ready(self):
     """
     Connect post_save handler during routine operation. Disconnect it during migrations.
     """
     connect_post_save_handler()
     pre_migrate.connect(disconnect_post_save_handler)
     # now, we need to reconnect the post_save handler because unittests run
     # immediately after running migrate, in the same process
     post_migrate.connect(connect_post_save_handler)
コード例 #6
0
ファイル: apps.py プロジェクト: Gointer/django-treenav
 def ready(self):
     """
     Connect post_save handler during routine operation. Disconnect it during migrations.
     """
     connect_post_save_handler()
     pre_migrate.connect(disconnect_post_save_handler)
     # now, we need to reconnect the post_save handler because unittests run
     # immediately after running migrate, in the same process
     post_migrate.connect(connect_post_save_handler)
コード例 #7
0
    def ready(self):
        if 'cmsplugin_cascade.icon' in settings.INSTALLED_APPS:
            stylesSet = force_text(settings.CKEDITOR_SETTINGS.get('stylesSet'))
            if stylesSet != 'default:{}'.format(reverse('admin:cascade_texticon_wysiwig_config')):
                msg = "settings.CKEDITOR_SETTINGS['stylesSet'] should be `format_lazy('default:{}', reverse_lazy('admin:cascade_texticon_wysiwig_config'))`"
                raise ImproperlyConfigured(msg)

        pre_migrate.connect(self.__class__.pre_migrate, sender=self)
        post_migrate.connect(self.__class__.post_migrate, sender=self)
コード例 #8
0
    def ready(self):
        """
        Perform other one-time initialization steps.
        """
        from enterprise.signals import handle_user_post_save
        from django.db.models.signals import pre_migrate, post_save

        post_save.connect(handle_user_post_save, sender=self.auth_user_model, dispatch_uid=USER_POST_SAVE_DISPATCH_UID)
        pre_migrate.connect(self._disconnect_user_post_save_for_migrations)
コード例 #9
0
    def ready(self):
        """
        Perform other one-time initialization steps.
        """
        from enterprise.signals import handle_user_post_save  # pylint: disable=import-outside-toplevel

        from django.db.models.signals import post_save, pre_migrate  # pylint: disable=C0415, # isort:skip

        post_save.connect(handle_user_post_save, sender=self.auth_user_model, dispatch_uid=USER_POST_SAVE_DISPATCH_UID)
        pre_migrate.connect(self._disconnect_user_post_save_for_migrations)
コード例 #10
0
ファイル: apps.py プロジェクト: dipsims/registrar
    def ready(self):
        """
        Perform other one-time initialization steps.
        """
        from django.db.models.signals import pre_migrate, post_save
        from registrar.apps.core.models import User
        from registrar.apps.core.signals import handle_user_post_save

        post_save.connect(handle_user_post_save,
                          sender=User,
                          dispatch_uid=self.USER_POST_SAVE_DISPATCH_UID)
        pre_migrate.connect(self._disconnect_user_post_save_for_migrations)
コード例 #11
0
    def ready(self):
        super().ready()

        # Register default listeners
        pre_migrate.connect(self.pre_migrate, sender=self)
        post_migrate.connect(self.post_migrate, sender=self)
        preference_updated.connect(self.preference_updated)
        user_logged_in.connect(self.user_logged_in)
        user_logged_out.connect(self.user_logged_out)

        # Getting an app ready means it should look at its config once
        self.preference_updated(self)
コード例 #12
0
ファイル: apps.py プロジェクト: dldevinc/paper-uploads
    def ready(self):
        from .signals import handlers
        from .models.collection import CollectionBase
        from .admin import CollectionAdminBase

        # Переименование поля файла или модели-владельца файла,
        # изменит также и соответствующие значения, хранящиеся в БД
        pre_migrate.connect(handlers.inject_rename_filefield_operations, sender=self)

        # автоматическая регистрация моделей галерей в админке
        for model in apps.get_models():
            if issubclass(model, CollectionBase) and not site.is_registered(model):
                site.register(model, CollectionAdminBase)
コード例 #13
0
ファイル: apps.py プロジェクト: andreipetre/djangae
    def ready(self):
        from .patches import json
        json.patch()

        from djangae.db.backends.appengine.caching import reset_context
        from djangae.db.migrations.signals import check_migrations
        from django.core.signals import request_finished, request_started
        from django.db.models.signals import pre_migrate

        request_finished.connect(reset_context, dispatch_uid="request_finished_context_reset")
        request_started.connect(reset_context, dispatch_uid="request_started_context_reset")
        pre_migrate.connect(check_migrations, dispatch_uid="pre_migrate_check_connections")

        self._check_content_types()
コード例 #14
0
ファイル: apps.py プロジェクト: andreswebs/valuenetwork
    def ready(self):
        super(WorkAppConfig, self).ready()

        from work.models import create_unit_types, create_exchange_skills, fill_empty_languages
        from general.models import create_general_types
        from work.signals import comment_notification
        from django.db import DEFAULT_DB_ALIAS

        if not settings.TESTING and is_database_synchronized(DEFAULT_DB_ALIAS):
            pre_migrate.connect(fill_empty_languages, sender=self)

        post_migrate.connect(create_general_types, sender=self)
        post_migrate.connect(create_unit_types, sender=self)
        post_migrate.connect(create_exchange_skills, sender=self)
        comment_was_posted.connect(comment_notification,
                                   sender=self)  #Comment)
コード例 #15
0
    def ready(self):
        from .patches import json
        json.patch()

        from djangae.db.backends.appengine.caching import reset_context
        from djangae.db.migrations.signals import check_migrations
        from django.core.signals import request_finished, request_started
        from django.db.models.signals import pre_migrate

        request_finished.connect(reset_context,
                                 dispatch_uid="request_finished_context_reset")
        request_started.connect(reset_context,
                                dispatch_uid="request_started_context_reset")
        pre_migrate.connect(check_migrations,
                            dispatch_uid="pre_migrate_check_connections")

        self._check_content_types()
コード例 #16
0
 def prepare(self):
     """Connect testing ``pre_migrate`` and ``post_migrate`` receivers."""
     self.pre_migrate_receiver_mock = mock.MagicMock()
     self.post_migrate_receiver_mock = mock.MagicMock()
     # ``old_apps`` is not real ``ProjectState`` instance, so we cannot use
     # it to get "original" main_app ``AppConfig`` instance needed to
     # connect signal receiver, that's the reason we are using
     # ``apps`` imported directly from ``django.apps``
     self.main_app_config = apps.get_app_config('main_app')
     pre_migrate.connect(
         self.pre_migrate_receiver_mock,
         sender=self.main_app_config,
     )
     post_migrate.connect(
         self.post_migrate_receiver_mock,
         sender=self.main_app_config,
     )
コード例 #17
0
    def test_signals(self):
        """ Test the signals emitted during the migration """

        app_config = apps.get_app_config('event_calendar')

        pre_migrate_callback = mock.MagicMock()
        post_migrate_callback = mock.MagicMock()

        pre_migrate.connect(pre_migrate_callback, sender=app_config)
        post_migrate.connect(post_migrate_callback, sender=app_config)

        self.test_routine_migration()

        pre_migrate.disconnect(pre_migrate_callback, sender=app_config)
        post_migrate.disconnect(post_migrate_callback, sender=app_config)

        self.assertEqual(pre_migrate_callback.call_count, 3)
        self.assertEqual(post_migrate_callback.call_count, 3)
コード例 #18
0
    def ready(self, *args, **kwargs):
        from django.core import checks
        from django.core.signals import request_started
        from django.db.models.signals import post_migrate
        from django.db.models.signals import pre_migrate

        super(TalosAppConfig, self).ready(*args, **kwargs)

        post_migrate.disconnect(
            dispatch_uid='django.contrib.auth.management.create_permissions')
        pre_migrate.connect(_pre_migrate,
                            dispatch_uid='{0}.{1}'.format(
                                _pre_migrate.__module__,
                                _pre_migrate.__name__))
        post_migrate.connect(_post_migrate,
                             dispatch_uid='{0}.{1}'.format(
                                 _post_migrate.__module__,
                                 _post_migrate.__name__))
        checks.register(_model_checks, checks.Tags.models)
        request_started.connect(_request_started,
                                dispatch_uid=_REQUEST_STARTED_UID)
コード例 #19
0
ファイル: apps.py プロジェクト: vilos/django-tsvector-field
    def ready(self):
        """

        This supports two use cases for using tsvector_field:

        1. Configure your Django project to use tsvecotr_field's DatabaseSchemaEditor
           directly by creating your own DatabaseWrapper and referencing
           tsvector_field.DatabaseSchemaEditor in the SchemaEditorClass attribute.
           See: tsvector_field/schema.py for more info.

        2. Just add `tsvector_field` to your project's INSTALLED_APPS setting and this
           will use the `pre_migrate` mechanism. Note: `pre_migrate` is not fired for
           ./manage.py migrate --run-syncdb. So if you are building apps without migrations
           you will have to use the more reliable approach in option #1.

        """
        from django.db import connection
        from . import DatabaseSchemaEditor
        if not isinstance(connection.schema_editor(), DatabaseSchemaEditor):
            # only register for pre_migrate if we're not already configured
            # with the DatabaseSchemaEditor, see option #1 in doc above
            from django.db.models.signals import pre_migrate
            from .receivers import inject_trigger_operations
            pre_migrate.connect(inject_trigger_operations)
コード例 #20
0
 def ready(self):
     pre_migrate.connect(raise_migration_flag, sender=self)
コード例 #21
0
ファイル: apps.py プロジェクト: MissionBit/MB_Portal
 def ready(self):
     pre_migrate.connect(ensure_azure_container, sender=self)
コード例 #22
0
ファイル: signals.py プロジェクト: RaphaelKimmig/processlib
            if Permission.objects.filter(codename=codename).exclude(
                    content_type=activity_content_type).exists():
                # app_label.codename should match activity_content_type, otherwise that doesn't really make sense
                raise ValueError(
                    "A permission for {}.{} with a different content type already"
                    " exists. Set auto_create_permission to False or remove the other"
                    " permission")

            if app_label != activity_content_type.app_label:
                raise ValueError(
                    "The permission {} has an app label {} that "
                    "does not match the activity model's app_label {}".format(
                        activity.permission, app_label,
                        activity_content_type.app_label))

            name = activity.verbose_name or activity.name
            Permission.objects.update_or_create(
                content_type=activity_content_type,
                codename=codename,
                defaults={
                    "name":
                    "{} - {}".format(six.text_type(flow), six.text_type(name))
                },
            )


pre_migrate.connect(
    lambda *args, **kwargs: autodiscover_flows(),
    dispatch_uid="processlib.signals.autodiscover_flows",
)
コード例 #23
0
ファイル: apps.py プロジェクト: Chedi/django-iban-field
 def ready(self):
     pre_migrate.connect(self.enforce_database_constraint_callback)
コード例 #24
0
ファイル: __init__.py プロジェクト: 01-/viewflow
"""Import flows before auth permission setup."""

try:
    from django.db.models.signals import pre_migrate

    def import_flows(app_config, **kwargs):
        """Pre-import flows to allow permissions auto-creation."""
        try:
            __import__('{}.flows'.format(app_config.module.__name__))
        except ImportError:
            pass

    pre_migrate.connect(import_flows, dispatch_uid="viewflow.management.import_flows")

except ImportError:
    # django 1.6
    try:
        from south.signals import pre_migrate, post_migrate
        from ..compat import get_app_package

        def import_flows(app, **kwargs):
            try:
                __import__('{}.flows'.format(get_app_package(app)))
            except ImportError:
                pass

        pre_migrate.connect(import_flows, dispatch_uid="viewflow.management.import_flows")

        from django.conf import settings
        if 'django.contrib.auth' in settings.INSTALLED_APPS:
            def create_permissions_compat(app, **kwargs):
コード例 #25
0
 def create_test_db(self, *args, **kwargs):
     pre_migrate.connect(_create_heroku_connect_schema)
     return super().create_test_db(*args, **kwargs)
コード例 #26
0
from stream_django.conf import FEED_MANAGER_CLASS
from stream_django.conf import DJANGO_MAJOR_VERSION
from django.db.models.signals import class_prepared
from stream_django.utils import get_class_from_string

feed_manager_class = get_class_from_string(FEED_MANAGER_CLASS)
feed_manager = feed_manager_class()

class_prepared = class_prepared.connect(feed_manager.bind_model)


def disable_model_tracking(sender, **kwargs):
    feed_manager.disable_model_tracking()


if DJANGO_MAJOR_VERSION == 1.6:
    from django.db.models.signals import pre_syncdb

    pre_syncdb.connect(disable_model_tracking)
elif DJANGO_MAJOR_VERSION > 1.6:
    from django.db.models.signals import pre_migrate

    pre_migrate.connect(disable_model_tracking)
コード例 #27
0
ファイル: apps.py プロジェクト: 2216288075/meiduo_project
 def ready(self):
     pre_migrate.connect(inject_rename_contenttypes_operations, sender=self)
     post_migrate.connect(create_contenttypes)
     checks.register(check_generic_foreign_keys, checks.Tags.models)
コード例 #28
0
# ##############################################################################
from django.apps import AppConfig
from django.db.models.signals import post_migrate, pre_migrate

# noinspection PyUnresolvedReferences
import df_config.checks
from df_config.config.base import merger


class MigrationCounter:
    def __init__(self):
        self.last_app_config = None

    # noinspection PyUnusedLocal
    def pre_migrate(self, *args, app_config: AppConfig = None, **kwargs):
        if self.last_app_config is None:  # this is the pre_migrate of first app
            merger.call_method_on_config_values("pre_migrate")
        self.last_app_config = app_config.name

    # noinspection PyUnusedLocal
    def post_migrate(self, *args, app_config: AppConfig = None, **kwargs):
        if (app_config.name == self.last_app_config
            ):  # this is the post_migrate of the last app
            merger.call_method_on_config_values("post_migrate")


migration_counter = MigrationCounter()

pre_migrate.connect(migration_counter.pre_migrate)
post_migrate.connect(migration_counter.post_migrate)
コード例 #29
0
 def ready(self):
     pre_migrate.connect(create_index, sender=self)
     post_migrate.connect(reindex, sender=self)
コード例 #30
0
 def ready(self):
     """
     Listen for pre-migrate signals and prompt for migration docs.
     """
     pre_migrate.connect(sync_docs_on_pre_migrate,
                         dispatch_uid='sync_docs_on_pre_migrate')
コード例 #31
0
ファイル: appconfig.py プロジェクト: tlehoux/Geotrek-admin
 def __init__(self, *args, **kwargs):
     pre_migrate.connect(check_srid_has_meter_unit, sender=self, dispatch_uid='geotrek.core.checksrid')
     super(GeotrekConfig, self).__init__(*args, **kwargs)
コード例 #32
0
 def ready(self):
     pre_migrate.connect(start_migration, sender=self)
     post_migrate.connect(end_migration, sender=self)
コード例 #33
0
ファイル: apps.py プロジェクト: sinelun/ev_san_ru_parsys
 def ready(self):
     from .signals import pre_migrate_copy_opencart_data, post_migrate_clear_foreignkeys
     pre_migrate.connect(pre_migrate_copy_opencart_data, sender=self)
     post_migrate.connect(post_migrate_clear_foreignkeys, sender=self)
コード例 #34
0
 def ready(self):
     pre_migrate.connect(inject_rename_contenttypes_operations, sender=self)
     post_migrate.connect(create_contenttypes)
コード例 #35
0
    all_perms = set(
        Permission.objects.using(using).filter(
            content_type__in=ctypes, ).values_list("content_type", "codename"))

    perms = [
        Permission(codename=codename, name=name, content_type=ct)
        for ct, (codename, name) in searched_perms
        if (ct.pk, codename) not in all_perms
    ]

    Permission.objects.using(using).bulk_create(perms)
    if verbosity >= 2:
        for perm in perms:
            print("Adding permission '%s'" % perm)


def import_flows(app_config, **kwargs):
    """Pre-import flows to allow permissions auto-creation."""
    try:
        __import__('{}.flows'.format(app_config.module.__name__))
    except ImportError:
        pass


pre_migrate.connect(import_flows,
                    dispatch_uid="viewflow.management.import_flows")
if django.VERSION >= (1, 10):
    post_migrate.connect(create_permissions,
                         dispatch_uid="viewflow.management.create_permissions")
コード例 #36
0
 def ready(self):
     pre_migrate.connect(inject_rename_contenttypes_operations, sender=self)
     post_migrate.connect(update_contenttypes)
     checks.register(check_generic_foreign_keys, checks.Tags.models)
コード例 #37
0
 def handle(self, *args, **options):
     # Only connect the handler when this command is run to
     # avoid running for tests.
     pre_migrate.connect(self.pre_migrate_receiver,
                         dispatch_uid="django_safemigrate")
     super().handle(*args, **options)
コード例 #38
0
    CITextField = six.add_metaclass(models.SubfieldBase)(CITextField)
    CICharField = six.add_metaclass(models.SubfieldBase)(CICharField)
    CIEmailField = six.add_metaclass(models.SubfieldBase)(CIEmailField)

if "south" in settings.INSTALLED_APPS:
    from south.modelsinspector import add_introspection_rules

    add_introspection_rules(
        [], ["^sentry\.db\.models\.fields\.citext\.CITextField"])
    add_introspection_rules(
        [], ["^sentry\.db\.models\.fields\.citext\.CICharField"])
    add_introspection_rules(
        [], ["^sentry\.db\.models\.fields\.citext\.CIEmailField"])


def create_citext_extension(using, **kwargs):
    from sentry.utils.db import is_postgres

    # We always need the citext extension installed for Postgres,
    # and for tests, it's not always guaranteed that we will have
    # run full migrations which installed it.
    if is_postgres(using):
        cursor = connections[using].cursor()
        try:
            cursor.execute("CREATE EXTENSION IF NOT EXISTS citext")
        except Exception:
            pass


pre_migrate.connect(create_citext_extension)
コード例 #39
0
from stream_django.conf import FEED_MANAGER_CLASS
from stream_django.conf import DJANGO_MAJOR_VERSION
from django.db.models.signals import class_prepared
from stream_django.utils import get_class_from_string


feed_manager_class = get_class_from_string(FEED_MANAGER_CLASS)
feed_manager = feed_manager_class()

class_prepared = class_prepared.connect(feed_manager.bind_model)


def disable_model_tracking(sender, **kwargs):
    feed_manager.disable_model_tracking()


if DJANGO_MAJOR_VERSION == 1.6:
    from django.db.models.signals import pre_syncdb
    pre_syncdb.connect(disable_model_tracking)
elif DJANGO_MAJOR_VERSION > 1.6:
    from django.db.models.signals import pre_migrate
    pre_migrate.connect(disable_model_tracking)