Exemplo n.º 1
0
    AdminPasswordChangeForm)
from djangocg.contrib.auth.models import User, Group
from djangocg.contrib import messages
from djangocg.core.exceptions import PermissionDenied
from djangocg.http import HttpResponseRedirect, Http404
from djangocg.shortcuts import get_object_or_404
from djangocg.template.response import TemplateResponse
from djangocg.utils.html import escape
from djangocg.utils.decorators import method_decorator
from djangocg.utils.safestring import mark_safe
from djangocg.utils import six
from djangocg.utils.translation import ugettext, ugettext_lazy as _
from djangocg.views.decorators.csrf import csrf_protect
from djangocg.views.decorators.debug import sensitive_post_parameters

csrf_protect_m = method_decorator(csrf_protect)

class GroupAdmin(admin.ModelAdmin):
    search_fields = ('name',)
    ordering = ('name',)
    filter_horizontal = ('permissions',)

    def formfield_for_manytomany(self, db_field, request=None, **kwargs):
        if db_field.name == 'permissions':
            qs = kwargs.get('queryset', db_field.rel.to.objects)
            # Avoid a major performance hit resolving permission names which
            # triggers a content_type load:
            kwargs['queryset'] = qs.select_related('content_type')
        return super(GroupAdmin, self).formfield_for_manytomany(
            db_field, request=request, **kwargs)
Exemplo n.º 2
0
        request.method = 'POST'
        self.assertTrue(isinstance(my_safe_view(request), HttpResponseNotAllowed))
        request.method = 'PUT'
        self.assertTrue(isinstance(my_safe_view(request), HttpResponseNotAllowed))
        request.method = 'DELETE'
        self.assertTrue(isinstance(my_safe_view(request), HttpResponseNotAllowed))


# For testing method_decorator, a decorator that assumes a single argument.
# We will get type arguments if there is a mismatch in the number of arguments.
def simple_dec(func):
    def wrapper(arg):
        return func("test:" + arg)
    return wraps(func)(wrapper)

simple_dec_m = method_decorator(simple_dec)


# For testing method_decorator, two decorators that add an attribute to the function
def myattr_dec(func):
    def wrapper(*args, **kwargs):
        return func(*args, **kwargs)
    wrapper.myattr = True
    return wraps(func)(wrapper)

myattr_dec_m = method_decorator(myattr_dec)


def myattr2_dec(func):
    def wrapper(*args, **kwargs):
        return func(*args, **kwargs)