def register_extensions(cls, *extensions):
        """
        Register all extensions passed as arguments.

        Extensions should be specified as a string to the python module
        containing the extension. If it is a bundled extension of FeinCMS,
        you do not need to specify the full python module path -- only
        specifying the last part (f.e. ``'seo'`` or ``'translations'``) is
        sufficient.
        """

        if not hasattr(cls, "_extensions"):
            cls._extensions = []
            cls._extensions_seen = []

        for ext in extensions:
            if ext in cls._extensions:
                continue

            extension = None

            if inspect.isclass(ext) and issubclass(ext, Extension):
                extension = ext

            elif isinstance(ext, str):
                try:
                    extension = get_object(ext)
                except (AttributeError, ImportError, ValueError):
                    if not extension:
                        raise ImproperlyConfigured(
                            f"{ext} is not a valid extension for {cls.__name__}"
                        )

            if hasattr(extension, "Extension"):
                extension = extension.Extension

            elif hasattr(extension, "register"):
                extension = extension.register

            elif hasattr(extension, "__call__"):
                pass

            else:
                raise ImproperlyConfigured(
                    f"{ext} is not a valid extension for {cls.__name__}"
                )

            if extension in cls._extensions_seen:
                continue
            cls._extensions_seen.append(extension)

            if hasattr(extension, "handle_model"):
                cls._extensions.append(extension(cls))
            else:
                raise ImproperlyConfigured("%r is an invalid extension." % extension)

        Register all extensions passed as arguments.

        Extensions should be specified as a string to the python module
        containing the extension. If it is a bundled extension of FeinCMS,
        you do not need to specify the full python module path -- only
        specifying the last part (f.e. ``'seo'`` or ``'translations'``) is
        sufficient.
        
feincms/extensions/base.py