コード例 #1
0
def update_ad(request, site):
    active_site = Site.get_cached_by_id(site)
    try:
        ad = Ad.objects.get(id=request.POST['id'], site=active_site)
        ad.name = request.POST['name']
        ad.format = request.POST['format']
        ad.viewcounter = request.POST['viewcounter']

        if not ad.is_adform_script():
            ad.destination = request.POST['destination'].strip()
            if 'ad' in request.FILES:
                ad.delete_file()
                ad.sha1_hash, ad.extension, ad.content_type = upload(request.FILES['ad'])
                if not validate_size(request.FILES['ad'], request.POST['format']):
                    messages.error(request, 'invalid_size')
            if 'ad_fallback' in request.FILES:
                ad.delete_fallback_file()
                ad.fallback_sha1_hash, ad.fallback_extension, ad.fallback_content_type = upload(request.FILES['ad_fallback'])
                if not validate_size(request.FILES['ad_fallback'], request.POST['format']):
                    messages.error(request, 'invalid_size')
        else:
            script = request.POST['script'].strip()
            ad.destination = parse_adform_script_destination(script)
            ad.content_script = script

        ad.save()
    except IndexError:
        messages.error(request, 'unparseable_script')

    return redirect('admin:sites.ads.list', active_site.id)
コード例 #2
0
ファイル: views.py プロジェクト: simensma/sherpa
def update_ad(request, site):
    active_site = Site.objects.get(id=site)
    try:
        ad = Ad.on(active_site).get(id=request.POST['id'])
        ad.name = request.POST['name']
        ad.viewcounter = request.POST['viewcounter']

        if not ad.is_adform_script():
            ad.destination = request.POST['destination'].strip()
            if ad.width is not None: ad.width = request.POST['width']
            if ad.height is not None: ad.height = request.POST['height']
            if 'ad' in request.FILES:
                ad.delete_file()
                ad.sha1_hash, ad.extension, ad.content_type = upload(request.FILES['ad'])
            if 'ad_fallback' in request.FILES:
                ad.delete_fallback_file()
                ad.fallback_sha1_hash, ad.fallback_extension, ad.fallback_content_type = upload(request.FILES['ad_fallback'])
        else:
            script = request.POST['script'].strip()
            ad.destination = parse_adform_script_destination(script)
            ad.content_script = script

        ad.save()
    except IndexError:
        messages.error(request, 'unparseable_script')

    return redirect('admin.sites.ads.views.list', active_site.id)
コード例 #3
0
ファイル: views.py プロジェクト: simensma/sherpa
def create_ad(request, site):
    active_site = Site.objects.get(id=site)

    if request.POST['type'] == 'file':

        if not 'ad' in request.FILES:
            return redirect('admin.sites.ads.views.list', active_site.id)

        hash, extension, content_type = upload(request.FILES['ad'])
        fallback_hash = None
        fallback_extension = None
        fallback_content_type = None

        if 'ad_fallback' in request.FILES:
            fallback_hash, fallback_extension, fallback_content_type = upload(request.FILES['ad_fallback'])
        width = None if request.POST['width'] == '' else request.POST['width'].strip()
        height = None if request.POST['height'] == '' else request.POST['height'].strip()

        ad = Ad(
            name=request.POST['name'].strip(),
            extension=extension,
            destination=request.POST['destination'].strip(),
            viewcounter=request.POST['viewcounter'].strip(),
            sha1_hash=hash,
            width=width,
            height=height,
            content_type=content_type,
            fallback_extension=fallback_extension,
            fallback_sha1_hash=fallback_hash,
            fallback_content_type=fallback_content_type,
            site=active_site,
        )
        ad.save()

    elif request.POST['type'] == 'adform-script':

        try:
            script = request.POST['script'].strip()
            destination = parse_adform_script_destination(script)

            ad = Ad(
                name=request.POST['name'].strip(),
                extension='',
                destination=destination,
                viewcounter=request.POST['viewcounter'].strip(),
                sha1_hash='',
                width=None,
                height=None,
                content_script=script,
                content_type=Ad.ADFORM_SCRIPT_CONTENT_TYPE,
                fallback_extension=None,
                fallback_sha1_hash=None,
                fallback_content_type=None,
                site=active_site,
            )
            ad.save()
        except IndexError:
            messages.error(request, 'unparseable_script')

    return redirect('admin.sites.ads.views.list', active_site.id)
コード例 #4
0
def create_ad(request, site):
    active_site = Site.get_cached_by_id(site)

    if request.POST['type'] == 'file':

        if 'ad' not in request.FILES:
            return redirect('admin:sites.ads.list', active_site.id)

        hash, extension, content_type = upload(request.FILES['ad'])
        # Validation has do be done after upload, or upload will not work properly
        if not validate_size(request.FILES['ad'], request.POST['format']):
            messages.error(request, 'invalid_size')
        fallback_hash = None
        fallback_extension = None
        fallback_content_type = None

        if 'ad_fallback' in request.FILES:
            fallback_hash, fallback_extension, fallback_content_type = upload(request.FILES['ad_fallback'])
            if not validate_size(request.FILES['ad_fallback'], request.POST['format']):
                messages.error(request, 'invalid_size')

        ad = Ad(
            name=request.POST['name'].strip(),
            extension=extension,
            destination=request.POST['destination'].strip(),
            viewcounter=request.POST['viewcounter'].strip(),
            sha1_hash=hash,
            content_type=content_type,
            fallback_extension=fallback_extension,
            fallback_sha1_hash=fallback_hash,
            fallback_content_type=fallback_content_type,
            site=active_site,
            format=request.POST['format'],
        )
        ad.save()

    elif request.POST['type'] == 'adform-script':

        try:
            script = request.POST['script'].strip()
            destination = parse_adform_script_destination(script)

            ad = Ad(
                name=request.POST['name'].strip(),
                extension='',
                destination=destination,
                viewcounter=request.POST['viewcounter'].strip(),
                sha1_hash='',
                content_script=script,
                content_type=Ad.ADFORM_SCRIPT_CONTENT_TYPE,
                fallback_extension=None,
                fallback_sha1_hash=None,
                fallback_content_type=None,
                site=active_site,
                format=request.POST['format'],
            )
            ad.save()
        except IndexError:
            messages.error(request, 'unparseable_script')

    return redirect('admin:sites.ads.list', active_site.id)