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 test_license_details_links(self): # Check that builtin licenses get details links. doc = pq(unicode(LicenseForm(addon=self.version.addon))) for license in License.objects.builtins(): radio = 'input.license[value=%s]' % license.builtin eq_(doc(radio).parent().text(), unicode(license.name) + ' Details') eq_(doc(radio + '+ a').attr('href'), license.url) eq_(doc('input[name=builtin]:last-child').parent().text(), 'Other')
def test_license_details_links(self): # Check that builtin licenses get details links. doc = pq(str(LicenseForm(version=self.version))) for license in License.objects.builtins(): radio = 'input.license[value="%s"]' % license.builtin assert doc(radio).parent().text() == (str(license) + ' Details') assert doc(radio + '+ a').attr('href') == license.url assert doc('input[name=builtin]:last-child').parent().text() == 'Other'
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)