mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2026-04-05 19:58:22 -04:00
feat: Implement initial schema and add various API, service, and management command enhancements across the application.
This commit is contained in:
@@ -77,8 +77,6 @@ class UserProfileInline(admin.StackedInline):
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
@admin.register(User)
|
||||
class CustomUserAdmin(QueryOptimizationMixin, ExportActionMixin, UserAdmin):
|
||||
"""
|
||||
@@ -332,8 +330,9 @@ class CustomUserAdmin(QueryOptimizationMixin, ExportActionMixin, UserAdmin):
|
||||
try:
|
||||
profile = user.profile
|
||||
# Credits would be recalculated from ride history here
|
||||
profile.save(update_fields=["coaster_credits", "dark_ride_credits",
|
||||
"flat_ride_credits", "water_ride_credits"])
|
||||
profile.save(
|
||||
update_fields=["coaster_credits", "dark_ride_credits", "flat_ride_credits", "water_ride_credits"]
|
||||
)
|
||||
count += 1
|
||||
except UserProfile.DoesNotExist:
|
||||
pass
|
||||
@@ -442,12 +441,14 @@ class UserProfileAdmin(QueryOptimizationMixin, ExportActionMixin, BaseModelAdmin
|
||||
@admin.display(description="Completeness")
|
||||
def profile_completeness(self, obj):
|
||||
"""Display profile completeness indicator."""
|
||||
fields_filled = sum([
|
||||
bool(obj.display_name),
|
||||
bool(obj.avatar),
|
||||
bool(obj.bio),
|
||||
bool(obj.twitter or obj.instagram or obj.youtube or obj.discord),
|
||||
])
|
||||
fields_filled = sum(
|
||||
[
|
||||
bool(obj.display_name),
|
||||
bool(obj.avatar),
|
||||
bool(obj.bio),
|
||||
bool(obj.twitter or obj.instagram or obj.youtube or obj.discord),
|
||||
]
|
||||
)
|
||||
percentage = (fields_filled / 4) * 100
|
||||
color = "green" if percentage >= 75 else "orange" if percentage >= 50 else "red"
|
||||
return format_html(
|
||||
@@ -529,12 +530,8 @@ class EmailVerificationAdmin(QueryOptimizationMixin, BaseModelAdmin):
|
||||
def expiration_status(self, obj):
|
||||
"""Display expiration status with color coding."""
|
||||
if timezone.now() - obj.last_sent > timedelta(days=1):
|
||||
return format_html(
|
||||
'<span style="color: red; font-weight: bold;">Expired</span>'
|
||||
)
|
||||
return format_html(
|
||||
'<span style="color: green; font-weight: bold;">Valid</span>'
|
||||
)
|
||||
return format_html('<span style="color: red; font-weight: bold;">Expired</span>')
|
||||
return format_html('<span style="color: green; font-weight: bold;">Valid</span>')
|
||||
|
||||
@admin.display(description="Can Resend", boolean=True)
|
||||
def can_resend(self, obj):
|
||||
@@ -665,6 +662,3 @@ class PasswordResetAdmin(ReadOnlyAdminMixin, BaseModelAdmin):
|
||||
"Cleanup old tokens",
|
||||
)
|
||||
return actions
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user