diff --git a/sstreasury/jinja2/sstreasury/claim_print.html b/sstreasury/jinja2/sstreasury/claim_print.html
index 486e4bc..7bec819 100644
--- a/sstreasury/jinja2/sstreasury/claim_print.html
+++ b/sstreasury/jinja2/sstreasury/claim_print.html
@@ -60,7 +60,18 @@
Budget ID |
- {{ claim.budget_id }} |
+
+ {% if budget and budget.budgetrevision_set.reverse()[0].can_view(request.user) %}
+ {{ claim.budget_id }}
+ {% if budget.budgetrevision_set.reverse()[0].state != import('sstreasury.models').BudgetState.APPROVED.value %}
+
+ {% endif %}
+ {% elif request.user.groups.filter(name='Treasury').exists() %}
+ {{ claim.budget_id }}
+ {% else %}
+ {{ claim.budget_id }}
+ {% endif %}
+ |
Comments |
@@ -117,5 +128,7 @@
}
var editing = false;
makeGrid();
+
+ print();
{% endblock %}
diff --git a/sstreasury/jinja2/sstreasury/claim_view.html b/sstreasury/jinja2/sstreasury/claim_view.html
index 3bd957b..a08e4ba 100644
--- a/sstreasury/jinja2/sstreasury/claim_view.html
+++ b/sstreasury/jinja2/sstreasury/claim_view.html
@@ -88,7 +88,18 @@
Budget ID |
- {{ claim.budget_id }} |
+
+ {% if budget and budget.budgetrevision_set.reverse()[0].can_view(request.user) %}
+ {{ claim.budget_id }}
+ {% if budget.budgetrevision_set.reverse()[0].state != import('sstreasury.models').BudgetState.APPROVED.value %}
+
+ {% endif %}
+ {% elif request.user.groups.filter(name='Treasury').exists() %}
+ {{ claim.budget_id }}
+ {% else %}
+ {{ claim.budget_id }}
+ {% endif %}
+ |
Comments |
diff --git a/sstreasury/jinja2/sstreasury/email/budget_approved.md b/sstreasury/jinja2/sstreasury/email/budget_approved.md
index 3a07900..0bb5cb0 100644
--- a/sstreasury/jinja2/sstreasury/email/budget_approved.md
+++ b/sstreasury/jinja2/sstreasury/email/budget_approved.md
@@ -1,3 +1,3 @@
-Your budget titled *{{ revision.name }}* has been reviewed by the committee and **approved**. The expenditure shown in the budget may now commence.
+Your budget titled *{{ revision.name }}* (BU-{{ revision.budget.id }}) has been reviewed by the committee and **approved**. The expenditure shown in the budget may now commence.
{{ baseurl }}{{ url('budget_view', kwargs={'id': revision.budget.id}) }}
diff --git a/sstreasury/jinja2/sstreasury/email/budget_commented.md b/sstreasury/jinja2/sstreasury/email/budget_commented.md
index b1f8582..d4b790c 100644
--- a/sstreasury/jinja2/sstreasury/email/budget_commented.md
+++ b/sstreasury/jinja2/sstreasury/email/budget_commented.md
@@ -1,4 +1,4 @@
-{{ comment.author.first_name }} {{ comment.author.last_name }} made a new comment on the budget *{{ revision.name }}*:
+{{ comment.author.first_name }} {{ comment.author.last_name }} made a new comment on the budget *{{ revision.name }}* (BU-{{ revision.budget.id }}):
```
{{ comment.content }}
diff --git a/sstreasury/jinja2/sstreasury/email/budget_endorsed_drafter.md b/sstreasury/jinja2/sstreasury/email/budget_endorsed_drafter.md
index 1003ce0..cb4d806 100644
--- a/sstreasury/jinja2/sstreasury/email/budget_endorsed_drafter.md
+++ b/sstreasury/jinja2/sstreasury/email/budget_endorsed_drafter.md
@@ -1,3 +1,3 @@
-Your budget titled *{{ revision.name }}* has been reviewed and endorsed by Treasury, and referred to the committee. The committee will determine whether or not to approve the budget at its next meeting.
+Your budget titled *{{ revision.name }}* (BU-{{ revision.budget.id }}) has been reviewed and endorsed by Treasury, and referred to the committee. The committee will determine whether or not to approve the budget at its next meeting.
{{ baseurl }}{{ url('budget_view', kwargs={'id': revision.budget.id}) }}
diff --git a/sstreasury/jinja2/sstreasury/email/budget_endorsed_secretary.md b/sstreasury/jinja2/sstreasury/email/budget_endorsed_secretary.md
index 47c08fd..fd0bfb2 100644
--- a/sstreasury/jinja2/sstreasury/email/budget_endorsed_secretary.md
+++ b/sstreasury/jinja2/sstreasury/email/budget_endorsed_secretary.md
@@ -1,3 +1,3 @@
-A budget titled *{{ revision.name }}* has been endorsed by Treasury and referred to the committee for consideration at its next meeting.
+A budget titled *{{ revision.name }}* (BU-{{ revision.budget.id }}) has been endorsed by Treasury and referred to the committee for consideration at its next meeting.
{{ baseurl }}{{ url('budget_view', kwargs={'id': revision.budget.id}) }}
diff --git a/sstreasury/jinja2/sstreasury/email/budget_returned.md b/sstreasury/jinja2/sstreasury/email/budget_returned.md
index 7126511..ac90c6c 100644
--- a/sstreasury/jinja2/sstreasury/email/budget_returned.md
+++ b/sstreasury/jinja2/sstreasury/email/budget_returned.md
@@ -1,3 +1,3 @@
-Your budget titled *{{ revision.name }}* has been reviewed by Treasury and returned to you for re-drafting. You should make any requested changes and resubmit the budget.
+Your budget titled *{{ revision.name }}* (BU-{{ revision.budget.id }}) has been reviewed by Treasury and returned to you for re-drafting. You should make any requested changes and resubmit the budget.
{{ baseurl }}{{ url('budget_view', kwargs={'id': revision.budget.id}) }}
diff --git a/sstreasury/jinja2/sstreasury/email/budget_returned_committee.md b/sstreasury/jinja2/sstreasury/email/budget_returned_committee.md
index 22866b0..e8c156e 100644
--- a/sstreasury/jinja2/sstreasury/email/budget_returned_committee.md
+++ b/sstreasury/jinja2/sstreasury/email/budget_returned_committee.md
@@ -1,3 +1,3 @@
-Your budget titled *{{ revision.name }}* has been reviewed by the committee and returned to you for re-drafting. You should make any requested changes and resubmit the budget.
+Your budget titled *{{ revision.name }}* (BU-{{ revision.budget.id }}) has been reviewed by the committee and returned to you for re-drafting. You should make any requested changes and resubmit the budget.
{{ baseurl }}{{ url('budget_view', kwargs={'id': revision.budget.id}) }}
diff --git a/sstreasury/jinja2/sstreasury/email/budget_submitted_drafter.md b/sstreasury/jinja2/sstreasury/email/budget_submitted_drafter.md
index f331bd2..864cacb 100644
--- a/sstreasury/jinja2/sstreasury/email/budget_submitted_drafter.md
+++ b/sstreasury/jinja2/sstreasury/email/budget_submitted_drafter.md
@@ -1,3 +1,3 @@
-Your budget titled *{{ revision.name }}* has been submitted for Treasury review.
+Your budget titled *{{ revision.name }}* (BU-{{ revision.budget.id }}) has been submitted for Treasury review.
{{ baseurl }}{{ url('budget_view', kwargs={'id': revision.budget.id}) }}
diff --git a/sstreasury/jinja2/sstreasury/email/budget_submitted_treasurer.md b/sstreasury/jinja2/sstreasury/email/budget_submitted_treasurer.md
index e62b9d7..86dcbab 100644
--- a/sstreasury/jinja2/sstreasury/email/budget_submitted_treasurer.md
+++ b/sstreasury/jinja2/sstreasury/email/budget_submitted_treasurer.md
@@ -1,3 +1,3 @@
-A budget titled *{{ revision.name }}* has been submitted for your review.
+A budget titled *{{ revision.name }}* (BU-{{ revision.budget.id }}) has been submitted for your review.
{{ baseurl }}{{ url('budget_view', kwargs={'id': revision.budget.id}) }}
diff --git a/sstreasury/jinja2/sstreasury/email/claim_approved.md b/sstreasury/jinja2/sstreasury/email/claim_approved.md
index fd1da57..c006917 100644
--- a/sstreasury/jinja2/sstreasury/email/claim_approved.md
+++ b/sstreasury/jinja2/sstreasury/email/claim_approved.md
@@ -1,3 +1,3 @@
-Your reimbursement claim titled *{{ claim.purpose }}* has been reviewed and approved by Treasury, and will be paid in the next pay cycle.
+Your reimbursement claim titled *{{ claim.purpose }}* (RE-{{ claim.id }}) has been reviewed and approved by Treasury, and will be paid in the next pay cycle.
{{ baseurl }}{{ url('claim_view', kwargs={'id': claim.id}) }}
diff --git a/sstreasury/jinja2/sstreasury/email/claim_commented.md b/sstreasury/jinja2/sstreasury/email/claim_commented.md
index 3b5f67f..11da25c 100644
--- a/sstreasury/jinja2/sstreasury/email/claim_commented.md
+++ b/sstreasury/jinja2/sstreasury/email/claim_commented.md
@@ -1,4 +1,4 @@
-{{ comment.author.first_name }} {{ comment.author.last_name }} made a new comment on the reimbursement claim *{{ claim.purpose }}*:
+{{ comment.author.first_name }} {{ comment.author.last_name }} made a new comment on the reimbursement claim *{{ claim.purpose }}* (RE-{{ claim.id }}):
```
{{ comment.content }}
diff --git a/sstreasury/jinja2/sstreasury/email/claim_returned.md b/sstreasury/jinja2/sstreasury/email/claim_returned.md
index 17ee9c4..9d6933e 100644
--- a/sstreasury/jinja2/sstreasury/email/claim_returned.md
+++ b/sstreasury/jinja2/sstreasury/email/claim_returned.md
@@ -1,3 +1,3 @@
-Your reimbursement claim titled *{{ claim.purpose }}* has been reviewed by Treasury and returned to you for re-drafting. You should make any requested changes and resubmit the claim.
+Your reimbursement claim titled *{{ claim.purpose }}* (RE-{{ claim.id }}) has been reviewed by Treasury and returned to you for re-drafting. You should make any requested changes and resubmit the claim.
{{ baseurl }}{{ url('claim_view', kwargs={'id': claim.id}) }}
diff --git a/sstreasury/jinja2/sstreasury/email/claim_submitted_drafter.md b/sstreasury/jinja2/sstreasury/email/claim_submitted_drafter.md
index c3bd92c..b73e438 100644
--- a/sstreasury/jinja2/sstreasury/email/claim_submitted_drafter.md
+++ b/sstreasury/jinja2/sstreasury/email/claim_submitted_drafter.md
@@ -1,3 +1,3 @@
-Your reimbursement claim titled *{{ claim.purpose }}* has been submitted for Treasury review.
+Your reimbursement claim titled *{{ claim.purpose }}* (RE-{{ claim.id }}) has been submitted for Treasury review.
{{ baseurl }}{{ url('claim_view', kwargs={'id': claim.id}) }}
diff --git a/sstreasury/jinja2/sstreasury/email/claim_submitted_treasurer.md b/sstreasury/jinja2/sstreasury/email/claim_submitted_treasurer.md
index c404a97..aaa3808 100644
--- a/sstreasury/jinja2/sstreasury/email/claim_submitted_treasurer.md
+++ b/sstreasury/jinja2/sstreasury/email/claim_submitted_treasurer.md
@@ -1,3 +1,3 @@
-A reimbursement claim titled *{{ claim.purpose }}* has been submitted for your review.
+A reimbursement claim titled *{{ claim.purpose }}* (RE-{{ claim.id }}) has been submitted for your review.
{{ baseurl }}{{ url('claim_view', kwargs={'id': claim.id}) }}
diff --git a/sstreasury/views.py b/sstreasury/views.py
index f73b685..14b2440 100644
--- a/sstreasury/views.py
+++ b/sstreasury/views.py
@@ -276,10 +276,10 @@ def budget_action(request, budget, revision):
emailer = Emailer()
for user in User.objects.filter(groups__name='Treasury'):
if user != request.user:
- emailer.send_mail([user.email], 'New comment on budget: {}'.format(revision.name), 'sstreasury/email/budget_commented.md', {'revision': revision, 'comment': comment})
+ emailer.send_mail([user.email], 'New comment on budget: {} (BU-{})'.format(revision.name, budget.id), 'sstreasury/email/budget_commented.md', {'revision': revision, 'comment': comment})
for user in revision.contributors.all():
if user != request.user:
- emailer.send_mail([user.email], 'New comment on budget: {}'.format(revision.name), 'sstreasury/email/budget_commented.md', {'revision': revision, 'comment': comment})
+ emailer.send_mail([user.email], 'New comment on budget: {} (BU-{})'.format(revision.name, budget.id), 'sstreasury/email/budget_commented.md', {'revision': revision, 'comment': comment})
if 'Submit' in actions:
if not revision.can_submit(request.user):
@@ -290,9 +290,9 @@ def budget_action(request, budget, revision):
emailer = Emailer()
for user in User.objects.filter(groups__name='Treasury'):
- emailer.send_mail([user.email], 'Action required: Budget submitted: {}'.format(revision.name), 'sstreasury/email/budget_submitted_treasurer.md', {'revision': revision})
+ emailer.send_mail([user.email], 'Action required: Budget submitted: {} (BU-{})'.format(revision.name, budget.id), 'sstreasury/email/budget_submitted_treasurer.md', {'revision': revision})
for user in revision.contributors.all():
- emailer.send_mail([user.email], 'Budget submitted: {}'.format(revision.name), 'sstreasury/email/budget_submitted_drafter.md', {'revision': revision})
+ emailer.send_mail([user.email], 'Budget submitted: {} (BU-{})'.format(revision.name, budget.id), 'sstreasury/email/budget_submitted_drafter.md', {'revision': revision})
if 'Withdraw' in actions:
if not revision.can_withdraw(user):
@@ -310,9 +310,9 @@ def budget_action(request, budget, revision):
emailer = Emailer()
for user in User.objects.filter(groups__name='Secretary'):
- emailer.send_mail([user.email], 'Action required: Budget endorsed: {}'.format(revision.name), 'sstreasury/email/budget_endorsed_secretary.md', {'revision': revision})
+ emailer.send_mail([user.email], 'Action required: Budget endorsed: {} (BU-{})'.format(revision.name, budget.id), 'sstreasury/email/budget_endorsed_secretary.md', {'revision': revision})
for user in revision.contributors.all():
- emailer.send_mail([user.email], 'Budget endorsed, awaiting committee approval: {}'.format(revision.name), 'sstreasury/email/budget_endorsed_drafter.md', {'revision': revision})
+ emailer.send_mail([user.email], 'Budget endorsed, awaiting committee approval: {} (BU-{})'.format(revision.name, budget.id), 'sstreasury/email/budget_endorsed_drafter.md', {'revision': revision})
if 'Return' in actions:
if not revision.can_return(user):
@@ -323,7 +323,7 @@ def budget_action(request, budget, revision):
emailer = Emailer()
for user in revision.contributors.all():
- emailer.send_mail([user.email], 'Action required: Budget returned for re-drafting: {}'.format(revision.name), 'sstreasury/email/budget_returned.md', {'revision': revision})
+ emailer.send_mail([user.email], 'Action required: Budget returned for re-drafting: {} (BU-{})'.format(revision.name, budget.id), 'sstreasury/email/budget_returned.md', {'revision': revision})
if 'Approve' in actions:
if not revision.can_approve(user):
@@ -334,7 +334,7 @@ def budget_action(request, budget, revision):
emailer = Emailer()
for user in revision.contributors.all():
- emailer.send_mail([user.email], 'Budget approved: {}'.format(revision.name), 'sstreasury/email/budget_approved.md', {'revision': revision})
+ emailer.send_mail([user.email], 'Budget approved: {} (BU-{})'.format(revision.name, budget.id), 'sstreasury/email/budget_approved.md', {'revision': revision})
if 'CmteReturn' in actions:
if not revision.can_cmtereturn(user):
@@ -345,7 +345,7 @@ def budget_action(request, budget, revision):
emailer = Emailer()
for user in revision.contributors.all():
- emailer.send_mail([user.email], 'Action required: Budget returned for re-drafting: {}'.format(revision.name), 'sstreasury/email/budget_returned_committee.md', {'revision': revision})
+ emailer.send_mail([user.email], 'Action required: Budget returned for re-drafting: {} (BU-{})'.format(revision.name, budget.id), 'sstreasury/email/budget_returned_committee.md', {'revision': revision})
return redirect(reverse('budget_view', kwargs={'id': budget.id}))
@@ -422,8 +422,16 @@ def claim_view(request, claim):
history = list(itertools.chain(claim.claimhistory_set.all(), claim.claimcomment_set.all()))
history.sort(key=lambda x: x.time, reverse=True)
+ budget = None
+ if claim.budget_id:
+ try:
+ budget = models.Budget.objects.get(id=claim.budget_id.split('-')[-1])
+ except models.Budget.DoesNotExist:
+ budget = None
+
return render(request, 'sstreasury/claim_view.html', {
'claim': claim,
+ 'budget': budget,
'history': history
})
@@ -431,8 +439,16 @@ def claim_view(request, claim):
@uses_claim
@claim_viewable
def claim_print(request, claim):
+ budget = None
+ if claim.budget_id:
+ try:
+ budget = models.Budget.objects.get(id=claim.budget_id.split('-')[-1])
+ except models.Budget.DoesNotExist:
+ budget = None
+
return render(request, 'sstreasury/claim_print.html', {
- 'claim': claim
+ 'claim': claim,
+ 'budget': budget
})
@login_required
@@ -482,9 +498,9 @@ def claim_action(request, claim):
emailer = Emailer()
for user in User.objects.filter(groups__name='Treasury'):
if user != request.user:
- emailer.send_mail([user.email], 'New comment on reimbursement claim: {}'.format(claim.purpose), 'sstreasury/email/claim_commented.md', {'claim': claim, 'comment': comment})
+ emailer.send_mail([user.email], 'New comment on reimbursement claim: {} (RE-{})'.format(claim.purpose, claim.id), 'sstreasury/email/claim_commented.md', {'claim': claim, 'comment': comment})
if comment.author != request.user:
- emailer.send_mail([comment.author], 'New comment on reimbursement claim: {}'.format(revision.name), 'sstreasury/email/claim_commented.md', {'claim': claim, 'comment': comment})
+ emailer.send_mail([comment.author], 'New comment on reimbursement claim: {} (RE-{})'.format(revision.name, claim.id), 'sstreasury/email/claim_commented.md', {'claim': claim, 'comment': comment})
if 'Submit' in actions:
if not claim.can_submit(request.user):
@@ -495,8 +511,8 @@ def claim_action(request, claim):
emailer = Emailer()
for user in User.objects.filter(groups__name='Treasury'):
- emailer.send_mail([user.email], 'Action required: Reimbursement claim submitted: {}'.format(claim.purpose), 'sstreasury/email/claim_submitted_treasurer.md', {'claim': claim})
- emailer.send_mail([claim.author.email], 'Reimbursement claim submitted: {}'.format(claim.purpose), 'sstreasury/email/claim_submitted_drafter.md', {'claim': claim})
+ emailer.send_mail([user.email], 'Action required: Reimbursement claim submitted: {} (RE-{})'.format(claim.purpose, claim.id), 'sstreasury/email/claim_submitted_treasurer.md', {'claim': claim})
+ emailer.send_mail([claim.author.email], 'Reimbursement claim submitted: {} (RE-{})'.format(claim.purpose, claim.id), 'sstreasury/email/claim_submitted_drafter.md', {'claim': claim})
if 'Withdraw' in actions:
if not claim.can_withdraw(request.user):
@@ -513,7 +529,7 @@ def claim_action(request, claim):
claim.update_state(request.user, models.ClaimState.APPROVED)
emailer = Emailer()
- emailer.send_mail([claim.author.email], 'Claim approved, awaiting payment: {}'.format(claim.purpose), 'sstreasury/email/claim_approved.md', {'claim': claim})
+ emailer.send_mail([claim.author.email], 'Claim approved, awaiting payment: {} (RE-{})'.format(claim.purpose, claim.id), 'sstreasury/email/claim_approved.md', {'claim': claim})
if 'Return' in actions:
if not claim.can_approve(request.user):
@@ -523,6 +539,6 @@ def claim_action(request, claim):
claim.update_state(request.user, models.ClaimState.RESUBMIT)
emailer = Emailer()
- emailer.send_mail([claim.author.email], 'Action required: Reimbursement claim returned for re-drafting: {}'.format(claim.purpose), 'sstreasury/email/claim_returned.md', {'claim': claim})
+ emailer.send_mail([claim.author.email], 'Action required: Reimbursement claim returned for re-drafting: {} (RE-{})'.format(claim.purpose, claim.id), 'sstreasury/email/claim_returned.md', {'claim': claim})
return redirect(reverse('claim_view', kwargs={'id': claim.id}))