let campaign manager edit work description in campaign management

also, revise documentation for campaigns
pull/1/head
eric 2014-03-12 18:03:50 -04:00
parent 1fb097266e
commit d2dd926f80
3 changed files with 30 additions and 12 deletions

View File

@ -20,6 +20,8 @@ from django.forms.widgets import RadioSelect
from django.forms.extras.widgets import SelectDateWidget from django.forms.extras.widgets import SelectDateWidget
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from ckeditor.widgets import CKEditorWidget
from selectable.forms import ( from selectable.forms import (
AutoCompleteSelectMultipleWidget, AutoCompleteSelectMultipleWidget,
AutoCompleteSelectMultipleField, AutoCompleteSelectMultipleField,
@ -446,7 +448,7 @@ class DateCalculatorForm(CCDateForm, forms.ModelForm):
model = Campaign model = Campaign
fields = 'target', 'cc_date_initial', 'revenue', fields = 'target', 'cc_date_initial', 'revenue',
def getManageCampaignForm ( instance, data=None, *args, **kwargs ): def getManageCampaignForm ( instance, data=None, initial=None, *args, **kwargs ):
def get_queryset(): def get_queryset():
work=instance.work work=instance.work
@ -469,6 +471,7 @@ def getManageCampaignForm ( instance, data=None, *args, **kwargs ):
) )
edition = forms.ModelChoiceField(get_queryset(), widget=RadioSelect(),empty_label='no edition selected',required = False,) edition = forms.ModelChoiceField(get_queryset(), widget=RadioSelect(),empty_label='no edition selected',required = False,)
publisher = forms.ModelChoiceField(instance.work.publishers(), empty_label='no publisher selected', required = False,) publisher = forms.ModelChoiceField(instance.work.publishers(), empty_label='no publisher selected', required = False,)
work_description = forms.CharField( required=False , widget=CKEditorWidget())
class Meta: class Meta:
model = Campaign model = Campaign
@ -527,7 +530,7 @@ def getManageCampaignForm ( instance, data=None, *args, **kwargs ):
elif self.instance.license == 'CC0' : elif self.instance.license == 'CC0' :
raise forms.ValidationError(_('The proposed license for an ACTIVE campaign may not add restrictions.')) raise forms.ValidationError(_('The proposed license for an ACTIVE campaign may not add restrictions.'))
return new_license return new_license
return ManageCampaignForm(instance = instance, data=data) return ManageCampaignForm(instance = instance, data=data, initial=initial)
class CampaignPurchaseForm(forms.Form): class CampaignPurchaseForm(forms.Form):
anonymous = forms.BooleanField(required=False, label=_("Make this purchase anonymous, please")) anonymous = forms.BooleanField(required=False, label=_("Make this purchase anonymous, please"))

View File

@ -162,7 +162,10 @@ Please fix the following before launching your campaign:
<p> This is the license you are offering to use once the campaign succeeds. For more information on the licenses you can use, see <a href="http://creativecommons.org/licenses">Creative Commons: About the Licenses</a>. Once your campaign is active, you'll be able to switch to a less restrictive license, but not a more restrictive one. We encourage you to pick the least restrictive license you are comfortable with, as this will increase the ways people can use your unglued ebook and motivate more people to donate.</p> <p> This is the license you are offering to use once the campaign succeeds. For more information on the licenses you can use, see <a href="http://creativecommons.org/licenses">Creative Commons: About the Licenses</a>. Once your campaign is active, you'll be able to switch to a less restrictive license, but not a more restrictive one. We encourage you to pick the least restrictive license you are comfortable with, as this will increase the ways people can use your unglued ebook and motivate more people to donate.</p>
{% else %} {% else %}
<h3>License Being Used</h3> <h3>License Being Used</h3>
<p> This is the license you are using. For more information on the licenses you can use, see <a href="http://creativecommons.org/licenses">Creative Commons: About the Licenses</a>. Once your campaign is active, you'll be able to switch to a less restrictive license, but not a more restrictive one. We encourage you to pick the least restrictive license you are comfortable with, as this will increase the ways people can use your unglued ebook and motivate more people to donate.</p> <p> This is the license you are using. For more information on the licenses you can use, see <a href="http://creativecommons.org/licenses">Creative Commons: About the Licenses</a>.
Once your campaign is active, you'll be able to switch to a less restrictive license, but not a more restrictive one.
We encourage you to pick the least restrictive license you are comfortable with, as this will increase the ways people can use your unglued ebook and motivate more people to participate.
</p>
{% endifnotequal %} {% endifnotequal %}
<div> <div>
{{ form.license.errors }}{{ form.license }} {{ form.license.errors }}{{ form.license }}
@ -252,18 +255,22 @@ Please fix the following before launching your campaign:
{% endifequal %}{{ form.do_watermark.errors }} {% endifequal %}{{ form.do_watermark.errors }}
<h3>Make Your Pitch</h3> <h3>Your Pitch</h3>
{% ifequal campaign.type 3 %} {% ifequal campaign.type 3 %}
<p>This will be displayed to a user who has clicked a "download" button. It's your chance to ask for their support. The user can either accept the suggested contribution and go make a payment, or enter "0" and go straight to download. To see your request in test mode, <a href="{% url download campaign.work.id %}?testmode=1">click here</a>. </p> <p>In a "thanks for ungluing" campaign, you want to first "motivate" your book- that is, you want to get the user to download the book.
{% else %} Once the user has clicked a "Download" button or a "Read it Now" button, you have a chance for an "ask" - that's where a user can decide to also make a thank-you contribution.
<p>This will be displayed in the Campaign tab for your work. It's your main pitch to supporters/purchasers.</p> The "ask" will be displayed to a user who has clicked a "Download" button. It's your chance to ask for their support.
{% endifequal %} The user can decide to make a contribution and go enter a credit card, or can scroll down to download.
<p>This isn't a dry synopsis in a catalog. It's your chance to be creative, to share your passion for this work, and to inspire readers. A strong pitch:</p> To see your request in test mode, <a href="{% url download campaign.work.id %}?testmode=1">click here</a>. </p>
<p>A strong ask/motivation combination:</p>
{% else %}
<p>This will be displayed in the Campaign tab for your work. It's your main pitch to supporters/purchasers, and your chance to share your passion for this work, and to inspire readers..</p>
<p>A strong ask:</p>
{% endifequal %}
<ul class="terms"> <ul class="terms">
{% ifequal campaign.type 3 %} {% ifequal campaign.type 3 %}
<li>Thanks the user for their interest in the book.</li> <li>Thanks the user for their interest in the book.</li>
<li>Makes a connection to the user while explaining how their contribution will make your work possible.</li> <li>Makes a connection to the user while explaining how a contribution makes your work possible.</li>
<li>Speaks visually to the user (photos and/or videos). The FAQ has <a hef="{% url faq_sublocation 'campaigns' 'addingmedia' %}">instruction on adding media</a>.</li> <li>Speaks visually to the user (photos and/or videos). The FAQ has <a hef="{% url faq_sublocation 'campaigns' 'addingmedia' %}">instruction on adding media</a>.</li>
{% else %} {% else %}
<li>Introduces the work. What's this book like?</li> <li>Introduces the work. What's this book like?</li>
@ -279,6 +286,11 @@ Please fix the following before launching your campaign:
{% endifequal %} {% endifequal %}
</ul> </ul>
<br /> <br />
{% ifequal campaign.type 3 %}
<div style="padding-top:2em;padding-bottom:0.5em">First, the <b>Motivation</b>. Note that users who immediately click on a "Read it Now" button won't see this.:</div>
{{ form.work_description.errors }}{{ form.work_description }}
<div style="padding-top:2em;padding-bottom:0.5em">Next, the <b>Ask</b>. A "thank you" form will float right in this area, so don't use wide graphic elements.</div>
{% endifequal %}
{{ form.description.errors }}{{ form.description }} {{ form.description.errors }}{{ form.description }}
<h3>Edition and Rights Details</h3> <h3>Edition and Rights Details</h3>
<p>This will be displayed on the More... tab for your work. It's the fine print for your campaign. {% ifequal campaign.type 1 %}Make sure to disclose any ways the unglued edition will differ from the existing edition; for example: <p>This will be displayed on the More... tab for your work. It's the fine print for your campaign. {% ifequal campaign.type 1 %}Make sure to disclose any ways the unglued edition will differ from the existing edition; for example:

View File

@ -645,6 +645,9 @@ def manage_campaign(request, id, action='manage'):
for offer in offers: for offer in offers:
offer.offer_form=OfferForm(instance=offer,prefix='offer_%d'%offer.id) offer.offer_form=OfferForm(instance=offer,prefix='offer_%d'%offer.id)
campaign.update_left() campaign.update_left()
if campaign.type is THANKS :
campaign.work.description = form.cleaned_data['work_description']
campaign.work.save()
alerts.append(_('Campaign data has been saved')) alerts.append(_('Campaign data has been saved'))
activetab = '#2' activetab = '#2'
else: else:
@ -684,7 +687,7 @@ def manage_campaign(request, id, action='manage'):
new_premium_form = CustomPremiumForm(data={'campaign': campaign}) new_premium_form = CustomPremiumForm(data={'campaign': campaign})
activetab = '#2' activetab = '#2'
else: else:
form = getManageCampaignForm(instance=campaign) form = getManageCampaignForm(instance=campaign, initial={'work_description':campaign.work.description})
new_premium_form = CustomPremiumForm(data={'campaign': campaign}) new_premium_form = CustomPremiumForm(data={'campaign': campaign})
return render(request, 'manage_campaign.html', { return render(request, 'manage_campaign.html', {