def upload_handlers_insert(position, handler): """ Decorator that allows you to insert an upload_handler Used in when other deocrators lock the handlers ie. @staff_member_required decorator """ def _decorator(view_func): def _upload_handlers_insert_func(request, *args, **kwargs): request.upload_handlers.insert(position, handler()) return view_func(request, *args, **kwargs) _upload_handlers_insert_func.__doc__ = view_func.__doc__ _upload_handlers_insert_func.__dict__ = view_func.__dict__ return _upload_handlers_insert_func return _decorator def upload_handlers_append(handler): """ Decorator that allows you to append an upload_handler Used in when other deocrators lock the handlers ie. @staff_member_required decorator """ def _decorator(view_func): def _upload_handlers_append_func(request, *args, **kwargs): request.upload_handlers.append(handler()) return view_func(request, *args, **kwargs) _upload_handlers_append_func.__doc__ = view_func.__doc__ _upload_handlers_append_func.__dict__ = view_func.__dict__ return _upload_handlers_insert_func return _decorator def upload_handlers(handlers): """ Decorator that allows you to set the upload_handlers Used in when other deocrators lock the handlers ie. @staff_member_required decorator """ def _decorator(view_func): def _upload_handlers_func(request, *args, **kwargs): upload_handlers = [] for handler in handlers: upload_handlers.append(handler()) request.upload_handlers = handlers return view_func(request, *args, **kwargs) _upload_handlers_func.__doc__ = view_func.__doc__ _upload_handlers_func.__dict__ = view_func.__dict__ return _upload_handlers_insert_func return _decorator