From de1b28823905993b1ad4181ccbca2e3c29faaf7e Mon Sep 17 00:00:00 2001 From: Ihsan Ullah Date: Sat, 10 Feb 2024 16:13:09 +0500 Subject: [PATCH 1/3] user diplay name if available otherwise use username --- src/apps/api/serializers/competitions.py | 16 +- .../riot/competitions/detail/_header.tag | 2 +- src/static/riot/profiles/profile_detail.tag | 145 ++++++++++++++---- 3 files changed, 132 insertions(+), 31 deletions(-) diff --git a/src/apps/api/serializers/competitions.py b/src/apps/api/serializers/competitions.py index e3bc20fb7..3788771f2 100644 --- a/src/apps/api/serializers/competitions.py +++ b/src/apps/api/serializers/competitions.py @@ -326,7 +326,8 @@ class CompetitionCreateSerializer(CompetitionSerializer): class CompetitionDetailSerializer(serializers.ModelSerializer): - created_by = serializers.CharField(source='created_by.username', read_only=True) + created_by = serializers.SerializerMethodField() + owner = serializers.CharField(source='created_by.username') logo_icon = NamedBase64ImageField(allow_null=True) pages = PageSerializer(many=True) phases = PhaseDetailSerializer(many=True) @@ -371,7 +372,8 @@ class Meta: 'reward', 'contact_email', 'report', - 'whitelist_emails' + 'whitelist_emails', + 'owner', ) def get_leaderboards(self, instance): @@ -389,9 +391,13 @@ def get_whitelist_emails(self, instance): whitelist_emails_list = [entry.email for entry in whitelist_emails_query] return whitelist_emails_list + def get_created_by(self, obj): + # Get the user's display name if not None, otherwise return username + return obj.created_by.display_name if obj.created_by.display_name else obj.created_by.username + class CompetitionSerializerSimple(serializers.ModelSerializer): - created_by = serializers.CharField(source='created_by.username') + created_by = serializers.SerializerMethodField() participant_count = serializers.IntegerField(read_only=True) class Meta: @@ -411,6 +417,10 @@ class Meta: 'report', ) + def get_created_by(self, obj): + # Get the user's display name if not None, otherwise return username + return obj.created_by.display_name if obj.created_by.display_name else obj.created_by.username + PageSerializer.competition = CompetitionSerializer(many=True, source='competition') diff --git a/src/static/riot/competitions/detail/_header.tag b/src/static/riot/competitions/detail/_header.tag index d6cda97d4..5c95c4262 100644 --- a/src/static/riot/competitions/detail/_header.tag +++ b/src/static/riot/competitions/detail/_header.tag @@ -41,7 +41,7 @@
Organized by: - {competition.created_by} + {competition.created_by} ({competition.contact_email})
diff --git a/src/static/riot/profiles/profile_detail.tag b/src/static/riot/profiles/profile_detail.tag index 714a6e2ab..3281ad99b 100644 --- a/src/static/riot/profiles/profile_detail.tag +++ b/src/static/riot/profiles/profile_detail.tag @@ -34,47 +34,125 @@
- - {selected_user.first_name} {selected_user.last_name} + + +
Personal Info
+ + +
+
+
Name
+
{selected_user.first_name} {selected_user.last_name}
+
+
+ + +
+ +
+
+
Email
+
{selected_user.email}
+
+
+ + +
+
+
Username
+
{selected_user.username}
+
+
+ + +
+
+
Display Name
+
{selected_user.display_name}
+
+
+
- +
About
-
- - Location - {selected_user.location} + + +
+
+
Location
+
{selected_user.location}
+
-
- - Job Title - {selected_user.title} + + +
+
+
Job Title
+
{selected_user.title}
+
- + + Update your profile to show your job title and location here. + + + +
Bio
- No bio found! Update your profile to show your bio here. +
{selected_user.biography}
- + + Update your profile to show your bio here. + + +
Links
-
-