g.handle_notification(involved_users, show, body)
return h.redirect_to('/')
+
+ def delete(self, id):
+ c.title = 'Delete an Expenditure'
+ c.expenditure = meta.Session.query(model.Expenditure).get(id)
+ if c.expenditure is None:
+ abort(404)
+
+ return render('/spend/delete.mako')
+
+ @redirect_on_get('delete')
+ @authenticate_form
+ def destroy(self, id):
+ e = meta.Session.query(model.Expenditure).get(id)
+ if e is None:
+ abort(404)
+
+ if 'delete' in request.params:
+ meta.Session.delete(e)
+
+ meta.Session.commit()
+ show = ("Expenditure of %s paid for by %s deleted." %
+ (e.amount, e.spender))
+ h.flash(show)
+
+ involved_users = set(sp.user for sp in e.splits if sp.share != 0)
+ involved_users.add(e.spender)
+ body = render('/emails/expenditure.txt',
+ extra_vars={'expenditure': e,
+ 'op': 'deleted'})
+ g.handle_notification(involved_users, show, body)
+
+ return h.redirect_to('/')
--- /dev/null
+<%inherit file="/base.mako"/>
+
+<p>Are you sure you want to delete this expenditure?</p>
+
+<form action="${h.url_for(controller='spend', action='destroy', id=c.expenditure.id)}" method="post">
+ ${h.auth_token_hidden_field()}
+ <table class="form">
+ <tr>
+ <th><label for="spender_id">Spender</label></th>
+ <td>${c.expenditure.spender.name}</td>
+ </tr>
+ <tr>
+ <th><label for="amount">Amount</label></th>
+ <td>${c.expenditure.amount}</td>
+ </tr>
+ <tr>
+ <th><label for="date">Date</label></th>
+ <td>${c.expenditure.date.strftime('%m/%d/%Y')}</td>
+ </tr>
+ <tr>
+ <th><label for="description">Description</label></th>
+ <td>${c.expenditure.description}</td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ ${h.submit('delete', 'Delete', class_="submitbutton")}
+ ${h.submit('cancel', 'Cancel', class_="submitbutton")}
+ </td>
+ </tr>
+ </table>
+</form>