switched from using nullboolean accepted on proposal result to a more flexible status choice
This commit is contained in:
parent
82eef6f2d1
commit
0422855582
5 changed files with 17 additions and 8 deletions
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue