fix(destinations): sort properly by preferred name

This commit is contained in:
Shreyas Mayya 2022-02-09 17:14:23 -05:00
parent aa2df1935e
commit 69fb6f8ca8
No known key found for this signature in database
GPG Key ID: 42522E3641BA2E31
3 changed files with 28 additions and 3 deletions

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.12 on 2022-02-09 22:04
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("authentication", "0011_user_use_nickname"),
]
operations = [
migrations.AddField(
model_name="user",
name="preferred_name",
field=models.CharField(blank=True, max_length=30),
),
]

View File

@ -40,9 +40,14 @@ class User(AbstractUser):
last_modified = models.DateTimeField(auto_now=True) last_modified = models.DateTimeField(auto_now=True)
@property preferred_name = models.CharField(max_length=30, blank=True)
def preferred_name(self):
def get_preferred_name(self):
return self.nickname if self.nickname and self.use_nickname else self.first_name return self.nickname if self.nickname and self.use_nickname else self.first_name
def __str__(self): def __str__(self):
return f"{self.preferred_name} {self.last_name}" return f"{self.preferred_name} {self.last_name}"
def save(self, *args, **kwargs):
self.preferred_name = self.get_preferred_name()
super().save(*args, **kwargs)

View File

@ -27,7 +27,9 @@ class StudentDestinationListView(
else: else:
queryset = User.objects.filter(publish_data=True) queryset = User.objects.filter(publish_data=True)
queryset = queryset.filter(is_senior=True).order_by("last_name", "first_name") queryset = queryset.filter(is_senior=True).order_by(
"last_name", "preferred_name"
)
college_id: Optional[str] = self.request.GET.get("college", None) college_id: Optional[str] = self.request.GET.get("college", None)
if college_id is not None: if college_id is not None: