feat(profile): make nickname optional

This commit is contained in:
Shreyas Mayya 2022-01-30 12:51:49 -05:00
parent 6a743c1144
commit cf7923f62a
No known key found for this signature in database
GPG Key ID: 42522E3641BA2E31
5 changed files with 37 additions and 4 deletions

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.11 on 2022-01-30 17:12
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('authentication', '0010_user_nickname'),
]
operations = [
migrations.AddField(
model_name='user',
name='use_nickname',
field=models.BooleanField(default=False, help_text='If this is set, your nickname will be used to identify you across the site.', verbose_name='Use nickname instead of first name'),
),
]

View File

@ -14,6 +14,11 @@ class User(AbstractUser):
is_student = models.BooleanField(default=False)
nickname = models.CharField(max_length=30, blank=True)
use_nickname = models.BooleanField(
default=(nickname is not None),
verbose_name="Use nickname instead of first name",
help_text="If this is set, your nickname will be used to identify you across the site.",
)
# The rest are used only if a senior
publish_data = models.BooleanField(
@ -37,7 +42,7 @@ class User(AbstractUser):
@property
def preferred_name(self):
return self.nickname if self.nickname else self.first_name
return self.nickname if self.nickname and self.use_nickname else self.first_name
def __str__(self):
return f"{self.preferred_name} {self.last_name}"

View File

@ -36,7 +36,7 @@ class ProfilePublishForm(forms.ModelForm):
class Meta:
model = User
fields = ["publish_data", "GPA", "biography", "attending_decision"]
fields = ["use_nickname", "publish_data", "GPA", "biography", "attending_decision"]
help_texts = {
"biography": "ECs, intended major, advice, etc. Markdown is supported.",

View File

@ -15,4 +15,11 @@ $(document).ready(function(){
$(this).prop("checked", confirmreturn)
}
})
/* Hide "Use nickname" checkbox if person doesn't have a nickname
The box won't do anything if they don't have a nickname,
but it's nice to just get it out of the way, you know? */
if ($("#without-nickname").length) {
$("#div_id_use_nickname").hide();
}
})

View File

@ -4,8 +4,11 @@
{% block content %}
<h2>Profile</h2>
<p>You are {{ request.user.username }}, {{ request.user.preferred_name }} {{ request.user.last_name }}.</p>
{% if request.user.nickname %}
<p id="with-nickname">You are {{ request.user.username }}, {{ request.user.first_name }} {{ request.user.last_name }} ({{ request.user.nickname }}).</p>
{% else %}
<p id="without-nickname">You are {{ request.user.username }}, {{ request.user.preferred_name }} {{ request.user.last_name }}.</p>
{% endif %}
<h4>Data Publication, College Attending, Biography</h4>
<div class="container">
{% if request.user.is_senior %}