switched from using nullboolean accepted on proposal result to a more flexible status choice

This commit is contained in:
James Tauber 2012-09-02 14:45:41 -04:00
parent 82eef6f2d1
commit 0422855582
5 changed files with 17 additions and 8 deletions

View file

@ -7,7 +7,7 @@ from symposion.reviews.models import ProposalResult, promote_proposal
class Command(BaseCommand):
def handle(self, *args, **options):
accepted_proposals = ProposalResult.objects.filter(accepted=True)
accepted_proposals = ProposalResult.objects.filter(status="accepted")
accepted_proposals = accepted_proposals.order_by("proposal")
for result in accepted_proposals:

View file

@ -209,6 +209,12 @@ class ProposalResult(models.Model):
(False, "rejected"),
(None, "undecided"),
], default=None)
status = models.CharField(max_length=20, choices=[
("accepted", "accepted"),
("rejected", "rejected"),
("undecided", "undecided"),
("in-reserve", "in reserve"),
], default="undecided")
@classmethod
def full_calculate(cls):
@ -309,7 +315,7 @@ def unpromote_proposal(proposal):
def accepted_proposal(sender, instance=None, **kwargs):
if instance is None:
return
if instance.accepted == True:
if instance.status == "accepted":
promote_proposal(instance.proposal)
else:
unpromote_proposal(instance.proposal)

View file

@ -217,13 +217,16 @@ def review_detail(request, pk):
result = request.POST["result_submit"]
if result == "accept":
proposal.result.accepted = True
proposal.result.status = "accepted"
proposal.result.save()
elif result == "reject":
proposal.result.accepted = False
proposal.result.status = "rejected"
proposal.result.save()
elif result == "undecide":
proposal.result.accepted = None
proposal.result.status = "undecided"
proposal.result.save()
elif result == "reserve":
proposal.result.status = "in-reserve"
proposal.result.save()
return redirect(request.path)
@ -357,7 +360,7 @@ def review_bulk_accept(request, section_slug):
talk_ids = form.cleaned_data["talk_ids"].split(",")
talks = ProposalBase.objects.filter(id__in=talk_ids).select_related("result")
for talk in talks:
talk.result.accepted = True
talk.result.status = "accepted"
talk.result.save()
return redirect("review_list")
else:

View file

@ -10,7 +10,7 @@
<span class="label label-important">Cancelled</span>
{% else %}
{% if request.user == proposal.speaker.user %}
{% if proposal.result.accepted %}
{% if proposal.result.status == "accepted" %}
<span class="label label-success">Accepted</span>
{% else %}
<span class="label">Submitted</span>

View file

@ -10,7 +10,7 @@
<span class="label label-important">Cancelled</span>
{% else %}
{% if request.user == proposal.speaker.user %}
{% if proposal.result.accepted %}
{% if proposal.result.status == "accepted" %}
<span class="label label-success">Accepted</span>
{% else %}
<span class="label">Submitted</span>