Beispiel #1
0
def snippet_update(request, client_pk):
    client = get_object_or_404(relational.Client, pk=client_pk)
    snippet_form = forms.SnippetForm(client=client, data=request.GET)

    if snippet_form.is_valid():
        campaign = snippet_form.cleaned_data['campaign']
        if request.GET.get('changed') == 'campaign':
            content = client.clientcontent.get(campaignproperties__campaign=campaign)
        else:
            content = snippet_form.cleaned_data['content']
        data = build_urls(request.get_host(), campaign, content)
        data.update(
            campaign=campaign.campaign_id,
            content=content.content_id,
        )
        return JsonHttpResponse(data)

    return JsonHttpResponse(snippet_form.errors, status=400)
Beispiel #2
0
def snippets(request, client_pk):
    client = get_object_or_404(relational.Client, pk=client_pk)

    try:
        first_campaign = client.campaigns.get(pk=request.GET.get('campaign_pk', ''))
    except (relational.Campaign.DoesNotExist, ValueError):
        try:
            first_campaign = client.campaigns.exclude(rootcampaign_properties=None)[0]
        except IndexError:
            first_campaign = None

    try:
        first_content = client.clientcontent.get(pk=request.GET.get('content_pk', ''))
    except (relational.ClientContent.DoesNotExist, ValueError):
        client_contents = client.clientcontent.all()
        if first_campaign:
            client_contents = client_contents.filter(campaignproperties__campaign=first_campaign)

        try:
            first_content = client_contents[0]
        except IndexError:
            first_content = None

    if first_campaign and first_content:
        context = {
            'snippet_form': forms.SnippetForm(client=client, initial={
                'campaign': first_campaign,
                'content': first_content,
            }),
        }
        context.update(build_urls(request.get_host(), first_campaign, first_content))
    else:
        context = {'snippet_form': forms.SnippetForm(client=client)}

    context.update(
        client=client,
        campaign=first_campaign,
        content=first_content,
    )
    return render(request, 'targetadmin/snippets.html', context)