improving data flow of acks throughout system
parent
8db1e5b59a
commit
da0f4970c2
|
@ -386,18 +386,15 @@ class Campaign(models.Model):
|
|||
translist = []
|
||||
for transaction in translist:
|
||||
ungluers['all'].append(transaction.user)
|
||||
if not transaction.anonymous:
|
||||
if transaction.amount >= Premium.TIERS["bibliophile"]:
|
||||
ungluers['bibliophiles'].append(transaction)
|
||||
elif transaction.amount >= Premium.TIERS["patron"]:
|
||||
ungluers['patrons'].append(transaction)
|
||||
elif transaction.amount >= Premium.TIERS["supporter"]:
|
||||
ungluers['supporters'].append(transaction)
|
||||
else:
|
||||
if transaction.anonymous:
|
||||
anons += 1
|
||||
|
||||
ungluers['anons'] = anons
|
||||
|
||||
if transaction.amount >= Premium.TIERS["bibliophile"]:
|
||||
ungluers['bibliophiles'].append(transaction)
|
||||
elif transaction.amount >= Premium.TIERS["patron"]:
|
||||
ungluers['patrons'].append(transaction)
|
||||
elif transaction.amount >= Premium.TIERS["supporter"]:
|
||||
ungluers['supporters'].append(transaction)
|
||||
|
||||
return ungluers
|
||||
|
||||
def effective_premiums(self):
|
||||
|
|
|
@ -45,12 +45,9 @@
|
|||
</dl>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if transactions.anons %}
|
||||
<p>We also gratefully acknowledge the support of {{ transactions.anons }} anonymous ungluer{% if transactions.anons > 1 %}s{% endif %}.</p>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
<p>
|
||||
You can say thank you by supporting the ungluing of more books at <a href="https://unglue.it/">https://unglue.it/</a>
|
||||
You can say thank you by supporting the ungluing of more books at <a href="https://unglue.it/">https://unglue.it/</a> .
|
||||
</p>
|
||||
</section>
|
||||
<!-- trim here -->
|
||||
|
|
|
@ -98,28 +98,6 @@
|
|||
<div id="ack_name" class="ack_inactive"><div class="ack_level">$25+</div><div class="ack_header">You'll be acknowledged on the acknowledgements page of the unglued ebook<span id="ack_section"></span>. {{ form.ack_name.label_tag }} {{ form.ack_name.errors }}{{ form.ack_name }}<div id="anonbox"><I>{{ form.anonymous.label_tag }}</I> {{ form.anonymous.errors }}{{ form.anonymous }}</div></div></div>
|
||||
<div id="ack_link" class="ack_inactive"><div class="ack_level">$50+</div><div class="ack_header">Your acknowledgement will link to your Unglue.it supporter page.{{ form.ack_link }}</div></div>
|
||||
<div id="ack_dedication" class="ack_inactive"><div class="ack_level">$100+</div><div class="ack_header">Your acknowledgement can include a dedication (140 characters max). {{ form.ack_dedication.label_tag }} {{ form.ack_dedication.errors }}{{ form.ack_dedication }}</div></div>
|
||||
{% comment %}
|
||||
What this needs:
|
||||
DONE fields for name (and anonymity), link, dedication (140 char limit)
|
||||
selective highlighting/activation. if inactive, grey out and provide an indication of the amount ( "$50+" or "($50+)" ); remove indication when active
|
||||
DONE "How would you like to be recognized on the supporters page?" or similar
|
||||
DONE validation? how?
|
||||
prefill name and link? how? (do NOT prefill dedication; make them commit to that) At any rate, this is a second-step problem.
|
||||
A way to commit this to the db.
|
||||
DONE: fields attached to transaction
|
||||
- do we want to update supporter with a last-committed-name-and-link to allow prefilling?
|
||||
- path from frontend through db field. add to existing form and use for validation? make sure everything is optional.
|
||||
styling
|
||||
|
||||
Testing:
|
||||
run tests
|
||||
create tests pertaining to name/link/dedication. what?
|
||||
scour for places transaction authorize() & pledge() happen
|
||||
make sure they've all been fed needed data!
|
||||
wire in support analogously to PledgeView, then ask raymond to check in on DonateView
|
||||
make sure forms do something sensible when ack_name, etc., are empty
|
||||
make sure to expose & handle anonymity checkbox
|
||||
{% endcomment %}
|
||||
</div>
|
||||
<input name="pledge" type="submit" {% if faqmenu == 'modify' %}value="Modify Pledge"{% else %}value="Pledge Now"{% endif %} id="pledgesubmit" />
|
||||
<input name="decoy" type="submit" id="fakepledgesubmit" disabled="disabled" />
|
||||
|
@ -131,7 +109,15 @@
|
|||
</div>
|
||||
<div class="cancel_notice">(You will be sent to <b>{{ payment_processor|capfirst }}</b>
|
||||
{% if faqmenu == 'modify' %}, if needed, to modify your pledge. We hope you won't, but of course you're also free to <a href="{% url pledge_cancel campaign_id=work.last_campaign.id %}">cancel your pledge</a>{% else %} to complete your pledge.{% endif %}.)</div>
|
||||
<div id="supporter_name" style="display: none;">{{ request.user.username }}</div>
|
||||
<div id="pass_supporter_name" style="display: none;">{{ request.user.username }}</div>
|
||||
{% if transaction.ack_name %}
|
||||
<div id="pass_ack_name" style="display: none;">{{ transaction.ack_name }}</div>
|
||||
{% else %}
|
||||
<div id="pass_ack_name" style="display: none;">{{ request.user.username }}</div>
|
||||
{% endif %}
|
||||
<div id="pass_ack_link" style="display: none;">{{ transaction.ack_link }}</div>
|
||||
<div id="pass_ack_dedication" style="display: none;">{{ transaction.ack_dedication }}</div>
|
||||
<div id="pass_anon" style="display: none;">{{ transaction.anonymous }}</div>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
|
|
@ -736,7 +736,7 @@ class PledgeModifyView(FormView):
|
|||
else:
|
||||
premium_id = None
|
||||
premium_description = None
|
||||
|
||||
|
||||
# is there a Transaction for an ACTIVE campaign for this
|
||||
# should make sure Transaction is modifiable.
|
||||
|
||||
|
@ -761,6 +761,7 @@ class PledgeModifyView(FormView):
|
|||
'faqmenu': 'modify',
|
||||
'tid': transaction.id,
|
||||
'payment_processor':settings.PAYMENT_PROCESSOR,
|
||||
'transaction': transaction,
|
||||
})
|
||||
return context
|
||||
|
||||
|
@ -781,10 +782,10 @@ class PledgeModifyView(FormView):
|
|||
|
||||
work_id = self.kwargs["work_id"]
|
||||
preapproval_amount = form.cleaned_data["preapproval_amount"]
|
||||
anonymous = form.cleaned_data["anonymous"]
|
||||
ack_name = form.cleaned_data["ack_name"]
|
||||
ack_link = form.cleaned_data["ack_link"]
|
||||
ack_dedication = form.cleaned_data["ack_dedication"]
|
||||
anonymous = form.cleaned_data["anonymous"]
|
||||
|
||||
assert self.request.user.is_authenticated()
|
||||
user = self.request.user
|
||||
|
@ -811,7 +812,7 @@ class PledgeModifyView(FormView):
|
|||
paymentReason = "Unglue.it Pledge for {0}".format(campaign.name)
|
||||
status, url = p.modify_transaction(transaction=transaction, amount=preapproval_amount, premium=premium,
|
||||
paymentReason=paymentReason, ack_name=ack_name, ack_link=ack_link,
|
||||
ack_dedication=ack_dedication)
|
||||
ack_dedication=ack_dedication, anonymous=anonymous)
|
||||
|
||||
logger.info("status: {0}, url:{1}".format(status, url))
|
||||
|
||||
|
|
|
@ -738,7 +738,7 @@ class PaymentManager( object ):
|
|||
transaction.user,
|
||||
return_url,
|
||||
nevermind_url,
|
||||
transaction.anonymous,
|
||||
anonymous,
|
||||
premium,
|
||||
paymentReason,
|
||||
ack_name,
|
||||
|
@ -771,6 +771,9 @@ class PaymentManager( object ):
|
|||
transaction.amount = amount
|
||||
transaction.anonymous = anonymous
|
||||
transaction.premium = premium
|
||||
transaction.ack_name = ack_name
|
||||
transaction.ack_link = ack_link
|
||||
transaction.ack_dedication = ack_dedication
|
||||
|
||||
transaction.save()
|
||||
logger.info("Updated amount of transaction to %f" % amount)
|
||||
|
|
|
@ -11,12 +11,21 @@ $j().ready(function() {
|
|||
var fakesubmitbutton = $j('#fakepledgesubmit');
|
||||
var anonbox = $j('#anonbox input');
|
||||
var ackSection = $j('#ack_section');
|
||||
var supporterName = $j('#supporter_name').html();
|
||||
var supporterName = $j('#pass_supporter_name').html();
|
||||
var ackName = $j('#pass_ack_name').html();
|
||||
var ackLink = $j('#pass_ack_link').html();
|
||||
var ackDedication = $j('#pass_ack_dedication').html();
|
||||
if(ackDedication == 'None') {
|
||||
ackDedication = '';
|
||||
}
|
||||
var acks = {
|
||||
ack_name: supporterName,
|
||||
ack_dedication: ''
|
||||
ack_name: ackName,
|
||||
ack_link: ackLink,
|
||||
ack_dedication: ackDedication
|
||||
};
|
||||
|
||||
var ackAnon = $j('#pass_anon').html();
|
||||
|
||||
// we're not letting people submit arbitrary links
|
||||
$j('#id_ack_link').attr('disabled', 'disabled');
|
||||
|
||||
|
@ -49,7 +58,7 @@ $j().ready(function() {
|
|||
submitbutton.removeAttr('disabled');
|
||||
}
|
||||
|
||||
// make mandatory premium input area active
|
||||
// make acknowledgements input area active
|
||||
var activate = function(mySpan) {
|
||||
$j('#'+mySpan).removeClass('ack_inactive').addClass('ack_active');
|
||||
$j('#'+mySpan+' input').removeAttr('disabled');
|
||||
|
@ -66,7 +75,11 @@ $j().ready(function() {
|
|||
// fill mandatory premium link input with supporter page
|
||||
var activateLink = function() {
|
||||
$j('#ack_link').removeClass('ack_inactive').addClass('ack_active');
|
||||
$j('input#id_ack_link').val('https://unglue.it/supporter/'+supporterName);
|
||||
if(ackLink) {
|
||||
$j('input#id_ack_link').val(ackLink);
|
||||
} else {
|
||||
$j('input#id_ack_link').val('https://unglue.it/supporter/'+supporterName);
|
||||
}
|
||||
}
|
||||
|
||||
// empty mandatory premium link
|
||||
|
@ -131,6 +144,11 @@ $j().ready(function() {
|
|||
} else {
|
||||
rectifyAcknowledgements(0);
|
||||
}
|
||||
if (ackAnon == 'True') {
|
||||
anonymizeName();
|
||||
deactivateLink();
|
||||
anonbox.prop("checked", true);
|
||||
}
|
||||
|
||||
// when user clicks a premium, ensure it is compatible with the pledge box amount
|
||||
$j('#premiums_list input').on("click", function() {
|
||||
|
|
Loading…
Reference in New Issue