feat(destinations): allow defer then waitlist status

This commit is contained in:
Ethan Nguyen 2021-04-20 21:37:07 -04:00
parent e891eaf0d6
commit 82bcb06956
No known key found for this signature in database
GPG Key ID: B4CA5339AF911920
6 changed files with 106 additions and 14 deletions

View File

@ -0,0 +1,32 @@
# Generated by Django 3.2 on 2021-04-21 01:22
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("destinations", "0006_alter_college_ceeb_code"),
]
operations = [
migrations.AlterField(
model_name="decision",
name="admission_status",
field=models.CharField(
choices=[
("ADMIT", "Admitted"),
("WAITLIST", "Waitlisted"),
("WAITLIST_ADMIT", "Waitlist-Admitted"),
("WAITLIST_DENY", "Waitlist-Denied"),
("DEFER", "Deferred"),
("DEFER_ADMIT", "Deferred-Admitted"),
("DEFER_DENY", "Deferred-Denied"),
("DEFER_WL_A", "Deferred-Waitlisted-Admitted"),
("DEFER_WL_D", "Deferred-Waitlisted-Denied"),
("DENY", "Denied"),
],
max_length=20,
),
),
]

View File

@ -0,0 +1,32 @@
# Generated by Django 3.2 on 2021-04-21 01:24
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("destinations", "0007_alter_decision_admission_status"),
]
operations = [
migrations.AlterField(
model_name="decision",
name="admission_status",
field=models.CharField(
choices=[
("ADMIT", "Admitted"),
("WAITLIST", "Waitlisted"),
("WAITLIST_ADMIT", "Waitlist-Admitted"),
("WAITLIST_DENY", "Waitlist-Denied"),
("DEFER", "Deferred"),
("DEFER_ADMIT", "Deferred-Admitted"),
("DEFER_DENY", "Deferred-Denied"),
("DEFER_WAITLIST_ADMIT", "Deferred-Waitlisted-Admitted"),
("DEFER_WAITLIST_DENY", "Deferred-Waitlisted-Denied"),
("DENY", "Denied"),
],
max_length=20,
),
),
]

View File

@ -43,6 +43,8 @@ class Decision(models.Model):
WAITLIST = "WAITLIST"
DEFER_ADMIT = "DEFER_ADMIT"
DEFER_DENY = "DEFER_DENY"
DEFER_WL_A = "DEFER_WAITLIST_ADMIT"
DEFER_WL_D = "DEFER_WAITLIST_DENY"
DEFER = "DEFER"
DENY = "DENY"
@ -54,6 +56,8 @@ class Decision(models.Model):
(DEFER, "Deferred"),
(DEFER_ADMIT, "Deferred-Admitted"),
(DEFER_DENY, "Deferred-Denied"),
(DEFER_WL_A, "Deferred-Waitlisted-Admitted"),
(DEFER_WL_D, "Deferred-Waitlisted-Denied"),
(DENY, "Denied"),
]

View File

@ -19,12 +19,7 @@ class ProfilePublishForm(forms.ModelForm):
self.helper.add_input(Submit("submit", "Submit"))
self.fields["attending_decision"].queryset = Decision.objects.filter(
user=self.instance,
admission_status__in=[
Decision.ADMIT,
Decision.WAITLIST_ADMIT,
Decision.DEFER_ADMIT,
],
user=self.instance, admission_status__contains="ADMIT"
)
class Meta:

View File

@ -75,6 +75,35 @@ class ProfileTest(TJDestsTestCase):
).count(),
)
# Test creating a non-admit decision, then setting that as our destination
college2 = College.objects.get_or_create(name="test university of alexandria")[
0
]
decision2 = Decision.objects.get_or_create(
college=college2,
user=user,
decision_type="ED",
admission_status=Decision.DEFER_WL_D,
)[0]
response = self.client.post(
reverse("profile:index"),
data={
"biography": "hello2",
"attending_decision": decision2.id,
"publish_data": True,
},
)
self.assertEqual(200, response.status_code)
self.assertEqual(
1,
User.objects.filter(
id=user.id,
biography="hello2",
attending_decision=decision,
publish_data=True,
).count(),
)
def test_testscore_create(self):
"""Tests creating test scores."""

View File

@ -81,16 +81,16 @@
<td class="d-flex-inline">
<span class="justify-content-center d-flex pb-1" data-toggle="tooltip" title="{{ decision.get_decision_type_display }}" aria-label="{{ decision.get_decision_type_display }}">{{ decision.decision_type }}</span>
<div class="justify-content-center d-flex">
{# First, the waitlist indicator #}
{% if decision.admission_status == "WAITLIST" or decision.admission_status == "WAITLIST_ADMIT" or decision.admission_status == "WAITLIST_DENY" %}
<i class="fas fa-clipboard-list ps-1" data-toggle="tooltip" title="Waitlisted" aria-label="Waitlisted"></i>
{% endif %}
{# Now, the deferred indicator #}
{% if decision.admission_status == "DEFER" or decision.admission_status == "DEFER_ADMIT" or decision.admission_status == "DEFER_DENY" %}
{# First, the deferred indicator #}
{% if "DEFER" in decision.admission_status %}
<i class="fas fa-clock ps-1" data-toggle="tooltip" title="Deferred" aria-label="Deferred"></i>
{% endif %}
{# Now, the waitlist indicator #}
{% if "WAITLIST" in decision.admission_status or "WL" in decision.admission_status %}
<i class="fas fa-clipboard-list ps-1" data-toggle="tooltip" title="Waitlisted" aria-label="Waitlisted"></i>
{% endif %}
{# Admits #}
{% if decision.admission_status == "ADMIT" or decision.admission_status == "WAITLIST_ADMIT" or decision.admission_status == "DEFER_ADMIT" %}
{% if "ADMIT" in decision.admission_status %}
{# Accepts get a different check #}
{% if senior.attending_decision == decision %}
<i class="fas fa-check-double ps-1" data-toggle="tooltip" title="Accepted, attending" aria-label="Accepted, attending"></i>
@ -99,7 +99,7 @@
{% endif %}
{% endif %}
{# Rejects #}
{% if decision.admission_status == "DENY" or decision.admission_status == "WAITLIST_DENY" or decision.admission_status == "DEFER_DENY" %}
{% if "DENY" in decision.admission_status %}
<i class="fas fa-times ps-1" data-toggle="tooltip" title="Denied" aria-label="Denied"></i>
{% endif %}
</div>