示例#1
0
def resource_edit_step2_view(request, resource_id):
    if request.user.is_anonymous():
        # TODO use contrib.messages
        return render(request, 'orb/login_required.html', {
            'message': _(u'You need to be logged in to add a resource.'),
        })

    resource = get_object_or_404(Resource, pk=resource_id)

    # check if owner of this resource
    if not resource_can_edit(resource, request.user):
        raise Http404()

    if request.method == 'POST':
        form = ResourceStep2Form(request.POST, request.FILES, request=request)

        if form.is_valid():
            title = form.cleaned_data.get("title")
            # add file and url
            if request.FILES.has_key('file'):
                rf = ResourceFile(
                    resource=resource, create_user=request.user, update_user=request.user)
                rf.file = request.FILES["file"]
                if title:
                    rf.title = title
                rf.save()

            url = form.cleaned_data.get("url")
            if url:
                ru = ResourceURL(
                    resource=resource, create_user=request.user, update_user=request.user)
                ru.url = url
                if title:
                    ru.title = title
                ru.save()

    initial = {}
    form = ResourceStep2Form(initial=initial, request=request)

    resource_files = ResourceFile.objects.filter(resource=resource)
    resource_urls = ResourceURL.objects.filter(resource=resource)

    return render(request, 'orb/resource/edit_step2.html', {
        'form': form,
        'resource': resource,
        'resource_files': resource_files,
        'resource_urls': resource_urls,
    })
示例#2
0
 def test_mimetype(self, extension, mimetype, mocker):
     """"""
     mocked_extension = mocker.patch(
         'orb.models.ResourceFile.file_extension',
         new_callable=mock.PropertyMock)
     mocked_extension.return_value = extension
     r = ResourceFile()
     assert r.mimetype == mimetype
示例#3
0
def file_view(request):
    if request.method != 'POST':
        return HttpResponse(status=HTML_METHOD_NOT_ALLOWED)

    auth = ApiKeyAuthentication()
    auth_result = auth.is_authenticated(request)
    if auth_result == False:
        return HttpResponse(status=HTML_UNAUTHORIZED)
    elif auth_result != True:
        return auth_result

    required_params = ['resource_id', 'title', 'description', 'order_by']

    for r in required_params:
        if r not in request.POST:
            return HttpResponse(status=HTML_BADREQUEST, content='{ "error": "No ' + r + ' provided"}')

    if 'resource_file' not in request.FILES:
        return HttpResponse(status=HTML_BADREQUEST, content='{ "error": "No resource file provided"}')

    # check owner of resource
    resource_id = request.POST['resource_id']
    try:
        resource = Resource.objects.get(
            create_user=request.user, pk=resource_id)
    except Resource.DoesNotExist:
        return HttpResponse(status=HTML_UNAUTHORIZED)

    rf = ResourceFile()
    rf.title = request.POST['title']
    rf.resource = resource
    rf.create_user = request.user
    rf.update_user = request.user
    rf.file = request.FILES['resource_file']
    rf.description = request.POST['description']
    rf.order_by = request.POST['order_by']
    rf.save()

    return HttpResponse(status=HTML_CREATED)
示例#4
0
def resource_edit_step2_view(request, resource_id):
    if request.user.is_anonymous:
        # TODO use contrib.messages
        return render(
            request, 'orb/login_required.html', {
                'message': _('You need to be logged in to add a resource.'),
            })

    resource = get_object_or_404(Resource, pk=resource_id)

    # check if owner of this resource
    if not resource_can_edit(resource, request.user):
        raise Http404()

    if request.method == 'POST':
        form = ResourceStep2Form(request.POST, request.FILES, request=request)

        if form.is_valid():
            title = form.cleaned_data.get("title")
            # add file and url
            if request.FILES.has_key('file'):
                rf = ResourceFile(resource=resource,
                                  create_user=request.user,
                                  update_user=request.user)
                rf.file = request.FILES["file"]
                if title:
                    rf.title = title
                rf.save()

            url = form.cleaned_data.get("url")
            if url:
                ru = ResourceURL(resource=resource,
                                 create_user=request.user,
                                 update_user=request.user)
                ru.url = url
                if title:
                    ru.title = title
                ru.save()

    initial = {}
    form = ResourceStep2Form(initial=initial, request=request)

    resource_files = ResourceFile.objects.filter(resource=resource)
    resource_urls = ResourceURL.objects.filter(resource=resource)

    return render(
        request, 'orb/resource/edit_step2.html', {
            'form': form,
            'resource': resource,
            'resource_files': resource_files,
            'resource_urls': resource_urls,
        })
示例#5
0
def file_view(request):
    if request.method != 'POST':
        return HttpResponse(status=HTML_METHOD_NOT_ALLOWED)

    auth = ApiKeyAuthentication()
    auth_result = auth.is_authenticated(request)
    if auth_result == False:
        return HttpResponse(status=HTML_UNAUTHORIZED)
    elif auth_result != True:
        return auth_result

    required_params = ['resource_id', 'title', 'description', 'order_by']

    for r in required_params:
        if r not in request.POST:
            return HttpResponse(status=HTML_BADREQUEST, content='{ "error": "No ' + r + ' provided"}')

    if 'resource_file' not in request.FILES:
        return HttpResponse(status=HTML_BADREQUEST, content='{ "error": "No resource file provided"}')

    # check owner of resource
    resource_id = request.POST['resource_id']
    try:
        resource = Resource.objects.get(
            create_user=request.user, pk=resource_id)
    except Resource.DoesNotExist:
        return HttpResponse(status=HTML_UNAUTHORIZED)

    rf = ResourceFile()
    rf.title = request.POST['title']
    rf.resource = resource
    rf.create_user = request.user
    rf.update_user = request.user
    rf.file = request.FILES['resource_file']
    rf.description = request.POST['description']
    rf.order_by = request.POST['order_by']
    rf.save()

    return HttpResponse(status=HTML_CREATED)