mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 23:51:09 -05:00
Enable avatar functionality for user profiles and create new migrations
Enable the avatar field in the UserProfile model and associated event tracking, alongside new migrations for core, parks, and rides modules. Replit-Commit-Author: Agent Replit-Commit-Session-Id: eff39de1-3afa-446d-a965-acaf61837fc7 Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/d6d61dac-164d-45dd-929f-7dcdfd771b64/eff39de1-3afa-446d-a965-acaf61837fc7/RPze4Xv
This commit is contained in:
@@ -149,12 +149,12 @@ class UserProfile(models.Model):
|
||||
blank=True,
|
||||
help_text="Legacy display name field - use User.display_name instead",
|
||||
)
|
||||
# avatar = models.ForeignKey(
|
||||
# 'django_cloudflareimages_toolkit.CloudflareImage',
|
||||
# on_delete=models.SET_NULL,
|
||||
# null=True,
|
||||
# blank=True
|
||||
# )
|
||||
avatar = models.ForeignKey(
|
||||
'django_cloudflareimages_toolkit.CloudflareImage',
|
||||
on_delete=models.SET_NULL,
|
||||
null=True,
|
||||
blank=True
|
||||
)
|
||||
pronouns = models.CharField(max_length=50, blank=True)
|
||||
|
||||
bio = models.TextField(max_length=500, blank=True)
|
||||
@@ -175,27 +175,26 @@ class UserProfile(models.Model):
|
||||
"""
|
||||
Return the avatar URL or generate a default letter-based avatar URL
|
||||
"""
|
||||
# Avatar field temporarily disabled - return default avatar
|
||||
# if self.avatar and self.avatar.is_uploaded:
|
||||
# # Try to get avatar variant first, fallback to public
|
||||
# avatar_url = self.avatar.get_url('avatar')
|
||||
# if avatar_url:
|
||||
# return avatar_url
|
||||
if self.avatar and self.avatar.is_uploaded:
|
||||
# Try to get avatar variant first, fallback to public
|
||||
avatar_url = self.avatar.get_url('avatar')
|
||||
if avatar_url:
|
||||
return avatar_url
|
||||
|
||||
# # Fallback to public variant
|
||||
# public_url = self.avatar.get_url('public')
|
||||
# if public_url:
|
||||
# return public_url
|
||||
# Fallback to public variant
|
||||
public_url = self.avatar.get_url('public')
|
||||
if public_url:
|
||||
return public_url
|
||||
|
||||
# # Last fallback - try any available variant
|
||||
# if self.avatar.variants:
|
||||
# if isinstance(self.avatar.variants, list) and self.avatar.variants:
|
||||
# return self.avatar.variants[0]
|
||||
# elif isinstance(self.avatar.variants, dict):
|
||||
# # Return first available variant
|
||||
# for variant_url in self.avatar.variants.values():
|
||||
# if variant_url:
|
||||
# return variant_url
|
||||
# Last fallback - try any available variant
|
||||
if self.avatar.variants:
|
||||
if isinstance(self.avatar.variants, list) and self.avatar.variants:
|
||||
return self.avatar.variants[0]
|
||||
elif isinstance(self.avatar.variants, dict):
|
||||
# Return first available variant
|
||||
for variant_url in self.avatar.variants.values():
|
||||
if variant_url:
|
||||
return variant_url
|
||||
|
||||
# Generate default letter-based avatar using first letter of username
|
||||
first_letter = self.user.username[0].upper() if self.user.username else "U"
|
||||
@@ -206,33 +205,32 @@ class UserProfile(models.Model):
|
||||
"""
|
||||
Return avatar variants for different use cases
|
||||
"""
|
||||
# Avatar field temporarily disabled - return default variants
|
||||
# if self.avatar and self.avatar.is_uploaded:
|
||||
# variants = {}
|
||||
if self.avatar and self.avatar.is_uploaded:
|
||||
variants = {}
|
||||
|
||||
# # Try to get specific variants
|
||||
# thumbnail_url = self.avatar.get_url('thumbnail')
|
||||
# avatar_url = self.avatar.get_url('avatar')
|
||||
# large_url = self.avatar.get_url('large')
|
||||
# public_url = self.avatar.get_url('public')
|
||||
# Try to get specific variants
|
||||
thumbnail_url = self.avatar.get_url('thumbnail')
|
||||
avatar_url = self.avatar.get_url('avatar')
|
||||
large_url = self.avatar.get_url('large')
|
||||
public_url = self.avatar.get_url('public')
|
||||
|
||||
# # Use specific variants if available, otherwise fallback to public or first available
|
||||
# fallback_url = public_url
|
||||
# if not fallback_url and self.avatar.variants:
|
||||
# if isinstance(self.avatar.variants, list) and self.avatar.variants:
|
||||
# fallback_url = self.avatar.variants[0]
|
||||
# elif isinstance(self.avatar.variants, dict):
|
||||
# fallback_url = next(iter(self.avatar.variants.values()), None)
|
||||
# Use specific variants if available, otherwise fallback to public or first available
|
||||
fallback_url = public_url
|
||||
if not fallback_url and self.avatar.variants:
|
||||
if isinstance(self.avatar.variants, list) and self.avatar.variants:
|
||||
fallback_url = self.avatar.variants[0]
|
||||
elif isinstance(self.avatar.variants, dict):
|
||||
fallback_url = next(iter(self.avatar.variants.values()), None)
|
||||
|
||||
# variants = {
|
||||
# "thumbnail": thumbnail_url or fallback_url,
|
||||
# "avatar": avatar_url or fallback_url,
|
||||
# "large": large_url or fallback_url,
|
||||
# }
|
||||
variants = {
|
||||
"thumbnail": thumbnail_url or fallback_url,
|
||||
"avatar": avatar_url or fallback_url,
|
||||
"large": large_url or fallback_url,
|
||||
}
|
||||
|
||||
# # Only return variants if we have at least one valid URL
|
||||
# if any(variants.values()):
|
||||
# return variants
|
||||
# Only return variants if we have at least one valid URL
|
||||
if any(variants.values()):
|
||||
return variants
|
||||
|
||||
# For default avatars, return the same URL for all variants
|
||||
default_url = self.get_avatar_url()
|
||||
|
||||
Reference in New Issue
Block a user