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, })
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
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)
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, })