Example #1
0
def edit(request,
         campaign_id=None,
         template='campaign/campaign_edit_form.html'):
    ctx = {}
    approved_campaign_edit = False
    FormClass = forms.get_campaign_form(request)
    if campaign_id is not None:
        # We are in update mode. Get the campaign instance if it belongs to
        # this user and it has not yet been submitted for admin approval.
        campaign = get_object_or_404(
            Campaign.visible_objects,
            pk=campaign_id,
            artist__user_profile__user=request.user)  #is_submitted=False
        mode = 'update'
        ctx['campaign'] = campaign
        if campaign.is_approved:
            # Approved campaigns use a different form to track changes
            FormClass = forms.get_campaign_edit_form(campaign, request)
            approved_campaign_edit = True
    else:
        campaign = Campaign(artist=request.user.get_profile().artist)
        mode = 'create'
    if request.POST:
        form = FormClass(data=request.POST,
                         files=request.FILES,
                         instance=campaign)
        if form.is_valid():
            if approved_campaign_edit:
                campaign_change = form.save(commit=True)
                ActionItem.objects.q_admin_action(campaign,
                                                  'approve-campaign-edit')
                email_template('Campaign Edited: approval requested by %s' %
                               request.user.username,
                               'campaign/email/request_approval_edit.txt',
                               {'campaign': campaign},
                               to_list=settings.CAMPAIGN_APPROVERS,
                               fail_silently=False)
                request.user.message_set.create(message=_(
                    "This is what your updated campaign page will look like once an admin approves your changes."
                ))
            else:
                campaign = form.save(commit=False)
                campaign.save()
                request.user.message_set.create(message=_(
                    "This is what your updated campaign page will look like. If you are happy with it, please submit it for approval."
                ))
            if campaign_id is None:
                _log.info('Campaign created: (%s) %s', campaign.pk,
                          campaign.short_title)
            else:
                _log.info('Campaign updated: (%s) %s', campaign.pk,
                          campaign.short_title)
            return HttpResponseRedirect(campaign.get_absolute_url())
    else:
        form = FormClass(instance=campaign)
    ctx.update({'form': form, 'mode': mode})
    return render_view(request, template, ctx)
Example #2
0
def edit(request, campaign_id=None, template='campaign/campaign_edit_form.html'):
    ctx = {}
    approved_campaign_edit = False
    FormClass = forms.get_campaign_form(request)
    if campaign_id is not None:
        # We are in update mode. Get the campaign instance if it belongs to 
        # this user and it has not yet been submitted for admin approval.
        campaign = get_object_or_404(Campaign.visible_objects, pk=campaign_id, artist__user_profile__user=request.user) #is_submitted=False
        mode = 'update'
        ctx['campaign'] = campaign
        if campaign.is_approved:
            # Approved campaigns use a different form to track changes
            FormClass = forms.get_campaign_edit_form(campaign, request)
            approved_campaign_edit = True
    else:
        campaign = Campaign(artist=request.user.get_profile().artist)
        mode = 'create'
    if request.POST:
        form = FormClass(data=request.POST, files=request.FILES, instance=campaign)
        if form.is_valid():
            if approved_campaign_edit:
                campaign_change = form.save(commit=True)
                ActionItem.objects.q_admin_action(campaign, 'approve-campaign-edit')
                email_template('Campaign Edited: approval requested by %s' % request.user.username,
                           'campaign/email/request_approval_edit.txt',
                           {'campaign':campaign}, to_list=settings.CAMPAIGN_APPROVERS, fail_silently=False)
                request.user.message_set.create(message=_("This is what your updated campaign page will look like once an admin approves your changes."))
            else:
                campaign = form.save(commit=False)
                campaign.save()
                request.user.message_set.create(message=_("This is what your updated campaign page will look like. If you are happy with it, please submit it for approval."))
            if campaign_id is None:
                _log.info('Campaign created: (%s) %s', campaign.pk, campaign.short_title)
            else:
                _log.info('Campaign updated: (%s) %s', campaign.pk, campaign.short_title)
            return HttpResponseRedirect(campaign.get_absolute_url())
    else:
        form = FormClass(instance=campaign)
    ctx.update({'form':form, 'mode':mode})
    return render_view(request, template, ctx)