コード例 #1
0
ファイル: views_drf.py プロジェクト: amuntner/addons-server
    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})
                }
            })
コード例 #2
0
    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})
            }
        })
コード例 #3
0
ファイル: handlers.py プロジェクト: amuntner/addons-server
    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
コード例 #4
0
 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')
コード例 #5
0
 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'
コード例 #6
0
    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)
コード例 #7
0
ファイル: views_drf.py プロジェクト: amuntner/addons-server
    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)
コード例 #8
0
ファイル: handlers.py プロジェクト: amuntner/addons-server
    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
コード例 #9
0
    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)
コード例 #10
0
ファイル: views_drf.py プロジェクト: amuntner/addons-server
    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)