예제 #1
0
 def get_context_data(self, **kwargs):
     result = super(ScreenshotDetail, self).get_context_data(**kwargs)
     component = result['object'].component
     if can_change_screenshot(self.request.user, component.project):
         if self._edit_form is not None:
             result['edit_form'] = self._edit_form
         else:
             result['edit_form'] = ScreenshotForm(instance=result['object'])
     return result
예제 #2
0
파일: views.py 프로젝트: saily/weblate
 def get_context_data(self, **kwargs):
     result = super(ScreenshotDetail, self).get_context_data(**kwargs)
     component = result['object'].component
     if can_change_screenshot(self.request.user, component.project):
         if self._edit_form is not None:
             result['edit_form'] = self._edit_form
         else:
             result['edit_form'] = ScreenshotForm(instance=result['object'])
     return result
예제 #3
0
 def post(self, request, **kwargs):
     obj = self.get_object()
     if can_change_screenshot(request.user, obj.component.project):
         self._edit_form = ScreenshotForm(
             request.POST, request.FILES, instance=obj
         )
         if self._edit_form.is_valid():
             self._edit_form.save()
         else:
             return self.get(request, **kwargs)
     return redirect(obj)
예제 #4
0
파일: views.py 프로젝트: saily/weblate
 def post(self, request, **kwargs):
     obj = self.get_object()
     if can_change_screenshot(request.user, obj.component.project):
         self._edit_form = ScreenshotForm(
             request.POST, request.FILES, instance=obj
         )
         if self._edit_form.is_valid():
             self._edit_form.save()
         else:
             return self.get(request, **kwargs)
     return redirect(obj)
예제 #5
0
    def file(self, request, **kwargs):
        obj = self.get_object()
        if request.method == 'GET':
            return self.download_file(
                obj.image.path,
                'application/binary',
            )

        if not can_change_screenshot(request.user, obj.component.project):
            raise PermissionDenied()

        serializer = ScreenshotFileSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        obj.image.save(serializer.validated_data['image'].name,
                       serializer.validated_data['image'])

        return Response(data={
            'result': True,
        })
예제 #6
0
def get_screenshot(request, pk):
    obj = get_object_or_404(Screenshot, pk=pk)
    check_access(request, obj.component.project)
    if not can_change_screenshot(request.user, obj.component.project):
        raise PermissionDenied()
    return obj
예제 #7
0
파일: views.py 프로젝트: saily/weblate
def get_screenshot(request, pk):
    obj = get_object_or_404(Screenshot, pk=pk)
    check_access(request, obj.component.project)
    if not can_change_screenshot(request.user, obj.component.project):
        raise PermissionDenied()
    return obj