def create(self, request): new_file_form = XPIForm(request, request.POST, request.FILES) if not new_file_form.is_valid(): return _xpi_form_error(new_file_form, request) # License can be optional. license = None if 'builtin' in request.POST: license_form = LicenseForm(request.POST) if not license_form.is_valid(): return _form_error(license_form) license = license_form.save() addon = new_file_form.create_addon(license=license) if not license: # If there is no license, we push you to step # 5 so that you can pick one. addon.submitstep_set.create(step=5) serializer = self.serializer_class(addon) return Response( serializer.data, **{ 'status': 201, 'headers': { 'Location': reverse('api.addon', kwargs={'addon_id': addon.id}) } })
def create(self, request): new_file_form = XPIForm(request, request.POST, request.FILES) if not new_file_form.is_valid(): return _xpi_form_error(new_file_form, request) # License can be optional. license = None if 'builtin' in request.POST: license_form = LicenseForm(request.POST) if not license_form.is_valid(): return _form_error(license_form) license = license_form.save() addon = new_file_form.create_addon(license=license) if not license: # If there is no license, we push you to step # 5 so that you can pick one. addon.submitstep_set.create(step=5) serializer = self.serializer_class(addon) return Response(serializer.data, **{ 'status': 201, 'headers': { 'Location': reverse('api.addon', kwargs={'addon_id': addon.id}) } })
def update(self, request, addon, version): new_file_form = XPIForm(request, request.PUT, request.FILES, version=version) if not new_file_form.is_valid(): return _xpi_form_error(new_file_form, request) license = None if 'builtin' in request.POST: license_form = LicenseForm(request.POST) if not license_form.is_valid(): return _form_error(license_form) license = license_form.save() v = new_file_form.update_version(license) return v
def create(self, request, addon_id): addon = get_object_or_404(Addon, id=addon_id) new_file_form = XPIForm(request, request.POST, request.FILES, addon=addon) if not new_file_form.is_valid(): return _xpi_form_error(new_file_form, request) license = None if 'builtin' in request.POST: license_form = LicenseForm(request.POST) if not license_form.is_valid(): return _form_error(license_form) license = license_form.save() v = new_file_form.create_version(license=license) serializer = self.serializer_class(v) return Response(serializer.data)
def create(self, request): new_file_form = XPIForm(request, request.POST, request.FILES) if not new_file_form.is_valid(): return _xpi_form_error(new_file_form, request) # License can be optional. license = None if 'builtin' in request.POST: license_form = LicenseForm(request.POST) if not license_form.is_valid(): return _form_error(license_form) license = license_form.save() addon = new_file_form.create_addon(license=license) if not license: # If there is no license, we push you to step # 5 so that you can pick one. addon.submitstep_set.create(step=5) return addon
def update(self, request, addon_id, version_id): try: version = self.get_object() except Http404: return Response(status=410) new_file_form = XPIForm(request, request.DATA, request.FILES, version=version) if not new_file_form.is_valid(): return _xpi_form_error(new_file_form, request) license = None if 'builtin' in request.DATA: license_form = LicenseForm(request.DATA) if not license_form.is_valid(): return _form_error(license_form) license = license_form.save() v = new_file_form.update_version(license) serializer = self.serializer_class(v) return Response(serializer.data)