Flesh out user donations panel a bit

master
Drew DeVault 9 years ago
parent 010b2d666a
commit 94b283d0e9
  1. 2
      fosspay/blueprints/html.py
  2. 5
      fosspay/objects.py
  3. 30
      templates/panel.html
  4. 2
      templates/post-donation-message.html

@ -204,4 +204,4 @@ def reset_password(token):
def panel(): def panel():
return render_template("panel.html", return render_template("panel.html",
one_times=lambda u: [d for d in u.donations if d.type == DonationType.one_time], one_times=lambda u: [d for d in u.donations if d.type == DonationType.one_time],
recurring=lambda u: next(d for d in u.donations if d.type == DonationType.recurring)) recurring=lambda u: [d for d in u.donations if d.type == DonationType.monthly and d.active])

@ -59,17 +59,20 @@ class Donation(Base):
type = Column(ChoiceType(DonationType, impl=String())) type = Column(ChoiceType(DonationType, impl=String()))
amount = Column(Integer, nullable=False) amount = Column(Integer, nullable=False)
created = Column(DateTime, nullable=False) created = Column(DateTime, nullable=False)
emailed_about = Column(Boolean, nullable=False) updated = Column(DateTime, nullable=False)
comment = Column(String(512)) comment = Column(String(512))
active = Column(Boolean)
def __init__(self, user, type, amount, project=None, comment=None): def __init__(self, user, type, amount, project=None, comment=None):
self.user = user self.user = user
self.type = type self.type = type
self.amount = amount self.amount = amount
self.created = datetime.now() self.created = datetime.now()
self.updated = datetime.now()
self.emailed_about = False self.emailed_about = False
self.project = project self.project = project
self.comment = comment self.comment = comment
self.active = True
def __repr__(self): def __repr__(self):
return "<Donation {} from {}: ${} ({})>".format( return "<Donation {} from {}: ${} ({})>".format(

@ -10,6 +10,35 @@
</div> </div>
</div> </div>
<div class="container"> <div class="container">
{% if any(recurring(user)) %}
<h2>Monthly Donations</h2>
<table class="table">
<thead>
<tr>
<th style="width: 10%"></th>
<th>Date</th>
<th>Amount</th>
<th>Project</th>
</tr>
</thead>
<tbody>
{% for donation in recurring(user) %}
<tr>
<td>
<form method="DELETE" action="cancel/{{ donation.id }}">
<button type="submit" class="btn btn-danger btn-sm">Cancel</button>
</form>
</td>
<td>{{ donation.created.strftime("%Y-%m-%d") }}</td>
<td>${{ "{:.2f}".format(donation.amount / 100) }}</td>
<td>{{ donation.project.name if donation.project else "Not specified" }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
{% if any(one_times(user)) %}
<h2>One-time Donations</h2>
<table class="table"> <table class="table">
<thead> <thead>
<tr> <tr>
@ -28,5 +57,6 @@
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
{% endif %}
</div> </div>
{% endblock %} {% endblock %}

@ -1,2 +1,2 @@
<h3>Thanks!</h3> <h3>Thanks!</h3>
<p>You'll get an email when your money is going to be put to work.</p> <p>Have a great day!</p>

Loading…
Cancel
Save