Example #1
0
    def related_not_authorized(self, user, objs):
        """
        Find all objects related to ``objs`` that should also be deleted. ``objs``
        must be a homogenous iterable of objects (e.g. a QuerySet).
        """
        collector = NestedObjects(using=DEFAULT_DB_ALIAS)
        collector.collect(objs)

        blocked = []

        for model, obj in collector.instances_with_model():
            admin_instance = admin.site._registry.get(obj.__class__, None)

            if admin_instance and hasattr(admin_instance, 'is_authorized'):
                if not admin_instance.is_authorized(user, obj):
                    blocked += [obj]

        return blocked
Example #2
0
    def related_not_authorized(self, user, objs):
        """
        Find all objects related to ``objs`` that should also be deleted. ``objs``
        must be a homogenous iterable of objects (e.g. a QuerySet).
        """
        collector = NestedObjects(using=DEFAULT_DB_ALIAS)
        collector.collect(objs)

        blocked = []
        
        for model, obj in collector.instances_with_model():
            admin_instance = admin.site._registry.get(obj.__class__, None)

            if admin_instance and hasattr(admin_instance, 'is_authorized'):
                if not admin_instance.is_authorized(user, obj):
                    blocked += [obj]

        return blocked
Example #3
0
def get_related_objects(obj):
    collector = NestedObjects(using='default')
    collector.collect(obj)
    return [(model._meta.verbose_name_plural, instance)
            for model, instance in collector.instances_with_model()]
Example #4
0
def get_related_objects(obj):
    collector = NestedObjects(using='default')
    collector.collect(obj)
    return [(model._meta.verbose_name_plural, instance)
            for model, instance in collector.instances_with_model()]