示例#1
0
    def clean(self):
        data = self.cleaned_data
        if 'upload' not in self.cleaned_data:
            self._errors['upload'] = self.upload_error
            return

        if self.is_packaged():
            # Now run the packaged app check, done in clean, because
            # clean_packaged needs to be processed first.

            try:
                pkg = parse_addon(data['upload'], self.addon)
            except forms.ValidationError, e:
                self._errors['upload'] = self.error_class(e.messages)
                return

            # Collect validation errors so we can display them at once.
            errors = []

            ver = pkg.get('version')
            if (ver and self.addon and
                self.addon.versions.filter(version=ver).exists()):
                errors.append(_(u'Version %s already exists.') % ver)

            origin = pkg.get('origin')
            if origin:
                try:
                    verify_app_domain(origin, packaged=True,
                                      exclude=self.addon)
                except forms.ValidationError, e:
                    errors.append(e.message)

                if self.addon and origin != self.addon.app_domain:
                    errors.append(_('Changes to "origin" are not allowed.'))
示例#2
0
    def clean(self):
        data = self.cleaned_data
        if 'upload' not in self.cleaned_data:
            self._errors['upload'] = self.upload_error
            return

        if self.is_packaged():
            # Now run the packaged app check, done in clean, because
            # clean_packaged needs to be processed first.

            try:
                pkg = parse_addon(data['upload'], self.addon)
            except forms.ValidationError, e:
                self._errors['upload'] = self.error_class(e.messages)
                return

            # Collect validation errors so we can display them at once.
            errors = []

            ver = pkg.get('version')
            if (ver and self.addon
                    and self.addon.versions.filter(version=ver).exists()):
                errors.append(_(u'Version %s already exists.') % ver)

            origin = pkg.get('origin')
            if origin:
                try:
                    verify_app_domain(origin,
                                      packaged=True,
                                      exclude=self.addon)
                except forms.ValidationError, e:
                    errors.append(e.message)

                if self.addon and origin != self.addon.app_domain:
                    errors.append(_('Changes to "origin" are not allowed.'))
示例#3
0
文件: forms.py 项目: Sancus/zamboni
 def clean_upload(self):
     upload = self.cleaned_data['upload']
     if self.is_packaged:
         pkg = parse_addon(upload, self.addon)
         ver = pkg.get('version')
         if (ver and self.addon and
             self.addon.versions.filter(version=ver).exists()):
             raise forms.ValidationError(
                 _(u'Version %s already exists') % ver)
     else:
         # Throw an error if this is a dupe.
         verify_app_domain(upload.name)  # JS sets manifest as `upload.name`.
     return upload
示例#4
0
 def clean_upload(self):
     upload = self.cleaned_data['upload']
     if self.is_packaged:
         pkg = parse_addon(upload, self.addon)
         ver = pkg.get('version')
         if (ver and self.addon
                 and self.addon.versions.filter(version=ver).exists()):
             raise forms.ValidationError(
                 _(u'Version %s already exists') % ver)
     else:
         # Throw an error if this is a dupe.
         # (JS sets manifest as `upload.name`.)
         verify_app_domain(upload.name)
     return upload
示例#5
0
    def clean(self):
        data = self.cleaned_data
        if 'upload' not in self.cleaned_data:
            self._errors['upload'] = self.upload_error
            return

        if self.is_packaged():
            # Now run the packaged app check, done in clean, because
            # clean_packaged needs to be processed first.
            try:
                pkg = parse_addon(data['upload'], self.addon)
            except forms.ValidationError, e:
                self._errors['upload'] = self.error_class(e.messages)
                return

            ver = pkg.get('version')
            if (ver and self.addon
                    and self.addon.versions.filter(version=ver).exists()):
                self._errors['upload'] = _(u'Version %s already exists') % ver
                return

            origin = pkg.get('origin')
            if origin:
                try:
                    origin = verify_app_domain(origin,
                                               packaged=True,
                                               exclude=self.addon)
                except forms.ValidationError, e:
                    self._errors['upload'] = self.error_class(e.messages)
                    return
                if origin:
                    data['origin'] = origin
示例#6
0
文件: forms.py 项目: kylewu/zamboni
    def clean(self):
        data = self.cleaned_data
        if 'upload' not in self.cleaned_data:
            self._errors['upload'] = self.upload_error
            return

        if self.is_packaged():
            # Now run the packaged app check, done in clean, because
            # clean_packaged needs to be processed first.
            try:
                pkg = parse_addon(data['upload'], self.addon)
            except forms.ValidationError, e:
                self._errors['upload'] = self.error_class(e.messages)
                return

            ver = pkg.get('version')
            if (ver and self.addon and
                self.addon.versions.filter(version=ver).exists()):
                self._errors['upload'] = _(u'Version %s already exists') % ver
                return

            origin = pkg.get('origin')
            if origin:
                try:
                    origin = verify_app_domain(origin, packaged=True,
                                               exclude=self.addon)
                except forms.ValidationError, e:
                    self._errors['upload'] = self.error_class(e.messages)
                    return
                if origin:
                    data['origin'] = origin
示例#7
0
文件: forms.py 项目: zzdjk6/zamboni
                pkg = parse_addon(data['upload'], self.addon)
            except forms.ValidationError, e:
                self._errors['upload'] = self.error_class(e.messages)
                return

            ver = pkg.get('version')
            if (ver and self.addon
                    and self.addon.versions.filter(version=ver).exists()):
                self._errors['upload'] = _(u'Version %s already exists') % ver
                return
        else:
            # Throw an error if this is a dupe.
            # (JS sets manifest as `upload.name`.)
            try:
                from mkt.developers.forms import verify_app_domain
                verify_app_domain(data['upload'].name)
            except forms.ValidationError, e:
                self._errors['upload'] = self.error_class(e.messages)
                return

        return data

    def is_packaged(self):
        return self._is_packaged

    def __init__(self, *args, **kw):
        request = kw.pop('request', None)
        self.addon = kw.pop('addon', None)
        self._is_packaged = kw.pop('is_packaged', False)
        super(NewWebappVersionForm, self).__init__(*args, **kw)
示例#8
0
                pkg = parse_addon(data["upload"], self.addon)
            except forms.ValidationError, e:
                self._errors["upload"] = self.error_class(e.messages)
                return

            ver = pkg.get("version")
            if ver and self.addon and self.addon.versions.filter(version=ver).exists():
                self._errors["upload"] = _(u"Version %s already exists") % ver
                return
        else:
            # Throw an error if this is a dupe.
            # (JS sets manifest as `upload.name`.)
            try:
                from mkt.developers.forms import verify_app_domain

                verify_app_domain(data["upload"].name)
            except forms.ValidationError, e:
                self._errors["upload"] = self.error_class(e.messages)
                return

        return data

    def is_packaged(self):
        return self._is_packaged

    def __init__(self, *args, **kw):
        request = kw.pop("request", None)
        self.addon = kw.pop("addon", None)
        self._is_packaged = kw.pop("is_packaged", False)
        super(NewWebappVersionForm, self).__init__(*args, **kw)
示例#9
0
                                      exclude=self.addon)
                except forms.ValidationError, e:
                    errors.append(e.message)

                if self.addon and origin != self.addon.app_domain:
                    errors.append(_('Changes to "origin" are not allowed.'))

            if errors:
                self._errors['upload'] = self.error_class(errors)
                return

        else:
            # Throw an error if this is a dupe.
            # (JS sets manifest as `upload.name`.)
            try:
                verify_app_domain(data['upload'].name)
            except forms.ValidationError, e:
                self._errors['upload'] = self.error_class(e.messages)
                return

        return data

    def is_packaged(self):
        return self._is_packaged


class NewWebappForm(DeviceTypeForm, NewWebappVersionForm):
    upload = forms.ModelChoiceField(widget=forms.HiddenInput,
        queryset=FileUpload.objects.filter(valid=True),
        error_messages={'invalid_choice': _lazy(
            u'There was an error with your upload. Please try again.')})
示例#10
0
 def clean_upload(self):
     upload = self.cleaned_data['upload']
     # Throw an error if this is a dupe.
     verify_app_domain(upload.name)  # JS sets manifest as `upload.name`.
     return upload
示例#11
0
 def clean_upload(self):
     upload = self.cleaned_data['upload']
     # Throw an error if this is a dupe.
     verify_app_domain(upload.name)  # JS sets manifest as `upload.name`.
     return upload
示例#12
0
文件: forms.py 项目: pjajara/zamboni
 def clean_upload(self):
     upload = self.cleaned_data['upload']
     verify_app_domain(upload.name)  # JS puts manifest URL here.
     return upload