class ScreenshotDetail(DetailView): model = Screenshot _edit_form = None def get_object(self, *args, **kwargs): obj = super(ScreenshotDetail, self).get_object(*args, **kwargs) check_access(self.request, obj.component.project) return obj 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 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)
class ScreenshotDetail(DetailView): model = Screenshot _edit_form = None def get_object(self, *args, **kwargs): obj = super(ScreenshotDetail, self).get_object(*args, **kwargs) self.request.user.check_access(obj.component.project) return obj def get_context_data(self, **kwargs): result = super(ScreenshotDetail, self).get_context_data(**kwargs) component = result['object'].component if self.request.user.has_perm('screenshot.edit', component): if self._edit_form is not None: result['edit_form'] = self._edit_form else: result['edit_form'] = ScreenshotForm(instance=result['object']) return result def post(self, request, **kwargs): obj = self.get_object() if request.user.has_perm('screenshot.edit', obj.component): self._edit_form = ScreenshotForm( request.POST, request.FILES, instance=obj ) if self._edit_form.is_valid(): if request.FILES: obj.user = request.user request.user.profile.uploaded += 1 request.user.profile.save(update_fields=['uploaded']) self._edit_form.save() else: return self.get(request, **kwargs) return redirect(obj)
class ScreenshotDetail(DetailView): model = Screenshot _edit_form = None def get_object(self, *args, **kwargs): obj = super().get_object(*args, **kwargs) self.request.user.check_access_component(obj.component) return obj def get_context_data(self, **kwargs): result = super().get_context_data(**kwargs) component = result["object"].component if self.request.user.has_perm("screenshot.edit", component): if self._edit_form is not None: result["edit_form"] = self._edit_form else: result["edit_form"] = ScreenshotForm(instance=result["object"]) return result def post(self, request, **kwargs): obj = self.get_object() if request.user.has_perm("screenshot.edit", obj.component): self._edit_form = ScreenshotForm(request.POST, request.FILES, instance=obj) if self._edit_form.is_valid(): if request.FILES: obj.user = request.user request.user.profile.increase_count("uploaded") self._edit_form.save() else: return self.get(request, **kwargs) return redirect(obj)