Example #1
0
def content_ratings_edit(request, addon_id, addon):
    initial = {}
    try:
        app_info = addon.iarc_info
        initial['submission_id'] = app_info.submission_id
        initial['security_code'] = app_info.security_code
    except IARCInfo.DoesNotExist:
        pass

    form = IARCGetAppInfoForm(data=request.POST or None, initial=initial)

    if request.method == 'POST' and form.is_valid():
        try:
            form.save(addon)
            messages.success(request, _('Content ratings successfully saved.'))
            return redirect(addon.get_dev_url('ratings'))
        except django_forms.ValidationError:
            pass  # Fall through to show the form error.

    with amo.utils.no_translation(addon.default_locale):
        addon_delocalized = Addon.objects.get(pk=addon.pk)

    return jingo.render(
        request, 'developers/apps/ratings/ratings_edit.html', {
            'addon': addon,
            'app_name': addon_delocalized.name,
            'form': form,
            'now': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        })
Example #2
0
def content_ratings_edit(request, addon_id, addon):
    initial = {}
    try:
        app_info = addon.iarc_info
        initial['submission_id'] = app_info.submission_id
        initial['security_code'] = app_info.security_code
    except IARCInfo.DoesNotExist:
        pass

    form = IARCGetAppInfoForm(data=request.POST or None, initial=initial)

    if request.method == 'POST' and form.is_valid():
        try:
            form.save(addon)
            return redirect(addon.get_dev_url('ratings'))
        except django_forms.ValidationError:
            pass  # Fall through to show the form error.

    # Save some information for _ratings_success_msg.
    if not 'ratings_edit' in request.session:
        request.session['ratings_edit'] = {}
    request.session['ratings_edit'][addon.id] = {
        'app_status': addon.status,
        'rating_modified': addon.last_rated_time()
    }
    request.session.modified = True

    return jingo.render(
        request, 'developers/apps/ratings/ratings_edit.html', {
            'addon': addon,
            'app_name': get_iarc_app_title(addon),
            'form': form,
            'now': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        })
Example #3
0
def content_ratings_edit(request, addon_id, addon):
    initial = {}
    try:
        app_info = addon.iarc_info
        initial['submission_id'] = app_info.submission_id
        initial['security_code'] = app_info.security_code
    except IARCInfo.DoesNotExist:
        pass

    form = IARCGetAppInfoForm(data=request.POST or None, initial=initial)

    if request.method == 'POST' and form.is_valid():
        try:
            form.save(addon)
            messages.success(request, _('Content ratings successfully saved.'))
            return redirect(addon.get_dev_url('ratings'))
        except django_forms.ValidationError:
            pass  # Fall through to show the form error.

    with amo.utils.no_translation(addon.default_locale):
        addon_delocalized = Addon.objects.get(pk=addon.pk)

    return jingo.render(
        request, 'developers/apps/ratings/ratings_edit.html', {
            'addon': addon,
            'app_name': addon_delocalized.name,
            'form': form,
            'now': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        })
Example #4
0
def content_ratings_edit(request, addon_id, addon):
    initial = {}
    try:
        app_info = addon.iarc_info
        initial['submission_id'] = app_info.submission_id
        initial['security_code'] = app_info.security_code
    except IARCInfo.DoesNotExist:
        pass
    messages.debug(request,
                   "DEBUG mode on; you may use IARC id 0 with any code")
    form = IARCGetAppInfoForm(data=request.POST or None,
                              initial=initial,
                              app=addon)

    if request.method == 'POST' and form.is_valid():
        try:
            form.save()
            return redirect(addon.get_dev_url('ratings'))
        except django_forms.ValidationError:
            pass  # Fall through to show the form error.

    # Save some information for _ratings_success_msg.
    if 'ratings_edit' not in request.session:
        request.session['ratings_edit'] = {}
    last_rated = addon.last_rated_time()
    request.session['ratings_edit'][str(addon.id)] = {
        'app_status': addon.status,
        'rating_modified': last_rated.isoformat() if last_rated else None
    }
    request.session.modified = True

    ctx = {
        'addon': addon,
        'app_name': get_iarc_app_title(addon),
        'form': form,
        'company': addon.latest_version.developer_name,
        'now': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    }

    if waffle.switch_is_active('iarc-upgrade-v2'):
        try:
            iarc_request = addon.iarc_request
            outdated = (datetime.now() - iarc_request.created >
                        timedelta(hours=1))
            if outdated:
                # IARC request outdated. Re-create.
                iarc_request.delete()
                iarc_request = IARCRequest.objects.create(app=addon,
                                                          uuid=uuid.uuid4())
        except IARCRequest.DoesNotExist:
            # No IARC request exists. Create.
            iarc_request = IARCRequest.objects.create(app=addon,
                                                      uuid=uuid.uuid4())
        ctx['iarc_request_id'] = iarc_request.uuid

    return render(request, 'developers/apps/ratings/ratings_edit.html', ctx)
Example #5
0
def content_ratings_edit(request, addon_id, addon):
    initial = {}
    try:
        app_info = addon.iarc_info
        initial['submission_id'] = app_info.submission_id
        initial['security_code'] = app_info.security_code
    except IARCInfo.DoesNotExist:
        pass
    messages.debug(request,
                   "DEBUG mode on; you may use IARC id 0 with any code")
    form = IARCGetAppInfoForm(data=request.POST or None, initial=initial,
                              app=addon)

    if request.method == 'POST' and form.is_valid():
        try:
            form.save()
            return redirect(addon.get_dev_url('ratings'))
        except django_forms.ValidationError:
            pass  # Fall through to show the form error.

    # Save some information for _ratings_success_msg.
    if 'ratings_edit' not in request.session:
        request.session['ratings_edit'] = {}
    last_rated = addon.last_rated_time()
    request.session['ratings_edit'][str(addon.id)] = {
        'app_status': addon.status,
        'rating_modified': last_rated.isoformat() if last_rated else None
    }
    request.session.modified = True

    ctx = {
        'addon': addon,
        'app_name': get_iarc_app_title(addon),
        'form': form,
        'company': addon.latest_version.developer_name,
        'now': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    }

    if waffle.switch_is_active('iarc-upgrade-v2'):
        try:
            iarc_request = addon.iarc_request
            outdated = (datetime.now() - iarc_request.created >
                        timedelta(hours=1))
            if outdated:
                # IARC request outdated. Re-create.
                iarc_request.delete()
                iarc_request = IARCRequest.objects.create(
                    app=addon, uuid=uuid.uuid4())
        except IARCRequest.DoesNotExist:
            # No IARC request exists. Create.
            iarc_request = IARCRequest.objects.create(
                app=addon, uuid=uuid.uuid4())
        ctx['iarc_request_id'] = unicode(uuid.UUID(iarc_request.uuid))

    return render(request, 'developers/apps/ratings/ratings_edit.html', ctx)
Example #6
0
    def content_ratings(self, request, *args, **kwargs):
        app = self.get_object()
        form = IARCGetAppInfoForm(data=request.DATA, app=app)

        if form.is_valid():
            try:
                form.save(app)
                return Response(status=status.HTTP_201_CREATED)
            except django_forms.ValidationError:
                pass

        return Response(form.errors, status=status.HTTP_400_BAD_REQUEST)
Example #7
0
    def content_ratings(self, request, *args, **kwargs):
        app = self.get_object()
        form = IARCGetAppInfoForm(data=request.DATA, app=app)

        if form.is_valid():
            try:
                form.save(app)
                return Response(status=status.HTTP_201_CREATED)
            except django_forms.ValidationError:
                pass

        return Response(form.errors, status=status.HTTP_400_BAD_REQUEST)
Example #8
0
def content_ratings_edit(request, addon_id, addon):
    initial = {}
    try:
        app_info = addon.iarc_info
        initial['submission_id'] = app_info.submission_id
        initial['security_code'] = app_info.security_code
    except IARCInfo.DoesNotExist:
        pass

    form = IARCGetAppInfoForm(data=request.POST or None,
                              initial=initial,
                              app=addon)

    if request.method == 'POST' and form.is_valid():
        try:
            form.save()
            return redirect(addon.get_dev_url('ratings'))
        except django_forms.ValidationError:
            pass  # Fall through to show the form error.

    # Save some information for _ratings_success_msg.
    if not 'ratings_edit' in request.session:
        request.session['ratings_edit'] = {}
    last_rated = addon.last_rated_time()
    request.session['ratings_edit'][str(addon.id)] = {
        'app_status': addon.status,
        'rating_modified': last_rated.isoformat() if last_rated else None
    }
    request.session.modified = True

    return render(
        request,
        'developers/apps/ratings/ratings_edit.html',
        {
            'addon':
            addon,
            'app_name':
            get_iarc_app_title(addon),
            'form':
            form,
            # Force double escaping of developer name. If this has HTML
            # entities we want the escaped version to be passed to IARC.
            # See bug 962362.
            'company':
            jinja2.escape(
                unicode(jinja2.escape(addon.latest_version.developer_name))),
            'now':
            datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        })
Example #9
0
    def content_ratings(self, request, *args, **kwargs):
        app = self.get_object()
        if waffle.switch_is_active('iarc-upgrade-v2'):
            form = IARCV2ExistingCertificateForm(data=request.data, app=app)
        else:
            form = IARCGetAppInfoForm(data=request.data, app=app)

        if form.is_valid():
            try:
                form.save(app)
                return Response(status=status.HTTP_201_CREATED)
            except django_forms.ValidationError:
                pass

        return Response(form.errors, status=status.HTTP_400_BAD_REQUEST)
Example #10
0
    def content_ratings(self, request, *args, **kwargs):
        app = self.get_object()
        if waffle.switch_is_active('iarc-upgrade-v2'):
            form = IARCV2ExistingCertificateForm(data=request.data, app=app)
        else:
            form = IARCGetAppInfoForm(data=request.data, app=app)

        if form.is_valid():
            try:
                form.save(app)
                return Response(status=status.HTTP_201_CREATED)
            except django_forms.ValidationError:
                pass

        return Response(form.errors, status=status.HTTP_400_BAD_REQUEST)
Example #11
0
def content_ratings_edit(request, addon_id, addon):
    form = IARCGetAppInfoForm(request.POST or None)

    if request.method == 'POST' and form.is_valid():
        try:
            form.save(addon)
            messages.success(request, _('Content ratings successfully saved.'))
            return redirect(addon.get_dev_url('ratings'))
        except django_forms.ValidationError:
            pass  # Fall through to show the form error.

    return jingo.render(
        request, 'developers/apps/ratings/ratings_edit.html', {
            'addon': addon,
            'form': form,
        })
Example #12
0
def content_ratings_edit(request, addon_id, addon):
    initial = {}
    try:
        app_info = addon.iarc_info
        initial["submission_id"] = app_info.submission_id
        initial["security_code"] = app_info.security_code
    except IARCInfo.DoesNotExist:
        pass
    messages.debug(request, "DEBUG mode on; you may use IARC id 0 with any code")
    form = IARCGetAppInfoForm(data=request.POST or None, initial=initial, app=addon)

    if request.method == "POST" and form.is_valid():
        try:
            form.save()
            return redirect(addon.get_dev_url("ratings"))
        except django_forms.ValidationError:
            pass  # Fall through to show the form error.

    # Save some information for _ratings_success_msg.
    if "ratings_edit" not in request.session:
        request.session["ratings_edit"] = {}
    last_rated = addon.last_rated_time()
    request.session["ratings_edit"][str(addon.id)] = {
        "app_status": addon.status,
        "rating_modified": last_rated.isoformat() if last_rated else None,
    }
    request.session.modified = True

    return render(
        request,
        "developers/apps/ratings/ratings_edit.html",
        {
            "addon": addon,
            "app_name": get_iarc_app_title(addon),
            "form": form,
            "company": addon.latest_version.developer_name,
            "now": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
        },
    )
Example #13
0
def content_ratings_edit(request, addon_id, addon):
    initial = {}
    try:
        app_info = addon.iarc_info
        initial['submission_id'] = app_info.submission_id
        initial['security_code'] = app_info.security_code
    except IARCInfo.DoesNotExist:
        pass
    messages.debug(request,
                   "DEBUG mode on; you may use IARC id 0 with any code")
    form = IARCGetAppInfoForm(data=request.POST or None,
                              initial=initial,
                              app=addon)

    if request.method == 'POST' and form.is_valid():
        try:
            form.save()
            return redirect(addon.get_dev_url('ratings'))
        except django_forms.ValidationError:
            pass  # Fall through to show the form error.

    # Save some information for _ratings_success_msg.
    if 'ratings_edit' not in request.session:
        request.session['ratings_edit'] = {}
    last_rated = addon.last_rated_time()
    request.session['ratings_edit'][str(addon.id)] = {
        'app_status': addon.status,
        'rating_modified': last_rated.isoformat() if last_rated else None
    }
    request.session.modified = True

    return render(
        request, 'developers/apps/ratings/ratings_edit.html', {
            'addon': addon,
            'app_name': get_iarc_app_title(addon),
            'form': form,
            'company': addon.latest_version.developer_name,
            'now': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        })
Example #14
0
def content_ratings_edit(request, addon_id, addon):
    initial = {}
    try:
        app_info = addon.iarc_info
        initial['submission_id'] = app_info.submission_id
        initial['security_code'] = app_info.security_code
    except IARCInfo.DoesNotExist:
        pass

    form = IARCGetAppInfoForm(data=request.POST or None, initial=initial,
                              app=addon)

    if request.method == 'POST' and form.is_valid():
        try:
            form.save()
            return redirect(addon.get_dev_url('ratings'))
        except django_forms.ValidationError:
            pass  # Fall through to show the form error.

    # Save some information for _ratings_success_msg.
    if not 'ratings_edit' in request.session:
        request.session['ratings_edit'] = {}
    last_rated = addon.last_rated_time()
    request.session['ratings_edit'][addon.id] = {
        'app_status': addon.status,
        'rating_modified': last_rated.isoformat() if last_rated else None
    }
    request.session.modified = True

    return render(request, 'developers/apps/ratings/ratings_edit.html',
                  {'addon': addon, 'app_name': get_iarc_app_title(addon),
                   'form': form,
                   # Force double escaping of developer name. If this has HTML
                   # entities we want the escaped version to be passed to IARC.
                   # See bug 962362.
                   'company': jinja2.escape(unicode(
                       jinja2.escape(addon.latest_version.developer_name))),
                   'now': datetime.now().strftime('%Y-%m-%d %H:%M:%S')})
Example #15
0
def content_ratings_edit(request, addon_id, addon):
    initial = {}
    try:
        app_info = addon.iarc_info
        initial['submission_id'] = app_info.submission_id
        initial['security_code'] = app_info.security_code
    except IARCInfo.DoesNotExist:
        pass
    messages.debug(request,
                   "DEBUG mode on; you may use IARC id 0 with any code")
    form = IARCGetAppInfoForm(data=request.POST or None, initial=initial,
                              app=addon)

    if request.method == 'POST' and form.is_valid():
        try:
            form.save()
            return redirect(addon.get_dev_url('ratings'))
        except django_forms.ValidationError:
            pass  # Fall through to show the form error.

    # Save some information for _ratings_success_msg.
    if 'ratings_edit' not in request.session:
        request.session['ratings_edit'] = {}
    last_rated = addon.last_rated_time()
    request.session['ratings_edit'][str(addon.id)] = {
        'app_status': addon.status,
        'rating_modified': last_rated.isoformat() if last_rated else None
    }
    request.session.modified = True

    return render(request, 'developers/apps/ratings/ratings_edit.html',
                  {'addon': addon,
                   'app_name': get_iarc_app_title(addon),
                   'form': form,
                   'company': addon.latest_version.developer_name,
                   'now': datetime.now().strftime('%Y-%m-%d %H:%M:%S')})
Example #16
0
def content_ratings_edit(request, addon_id, addon):
    initial = {}
    try:
        app_info = addon.iarc_info
        initial['submission_id'] = app_info.submission_id
        initial['security_code'] = app_info.security_code
    except IARCInfo.DoesNotExist:
        pass

    form = IARCGetAppInfoForm(data=request.POST or None, initial=initial)

    if request.method == 'POST' and form.is_valid():
        try:
            form.save(addon)
            return redirect(addon.get_dev_url('ratings'))
        except django_forms.ValidationError:
            pass  # Fall through to show the form error.

    with amo.utils.no_translation(addon.default_locale):
        addon_delocalized = Addon.objects.get(pk=addon.pk)

    # If dev gets rating thru IARC tool, JS will redirect. Use session to know
    # whether to display a success message when hitting the summary page.
    request.session['ratings_last_modified'] = None
    if addon.is_rated():
        request.session['ratings_last_modified'] = (
            addon.content_ratings.order_by('-modified')[0].modified
        )

    return jingo.render(
        request, 'developers/apps/ratings/ratings_edit.html', {
            'addon': addon,
            'app_name': addon_delocalized.name,
            'form': form,
            'now': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        })