import os from django.contrib import admin from django.utils.html import mark_safe from .models import Adventure, Checklist, ChecklistItem, Collection, Transportation, Note, AdventureImage, Visit from worldtravel.models import Country, Region, VisitedRegion class AdventureAdmin(admin.ModelAdmin): list_display = ('name', 'type', 'user_id', 'is_public') list_filter = ('type', 'user_id', 'is_public') search_fields = ('name',) class CountryAdmin(admin.ModelAdmin): list_display = ('name', 'country_code', 'number_of_regions') list_filter = ('subregion',) search_fields = ('name', 'country_code') def number_of_regions(self, obj): return Region.objects.filter(country=obj).count() number_of_regions.short_description = 'Number of Regions' class RegionAdmin(admin.ModelAdmin): list_display = ('name', 'country', 'number_of_visits') list_filter = ('country',) search_fields = ('name', 'country__name') # list_filter = ('country', 'number_of_visits') def number_of_visits(self, obj): return VisitedRegion.objects.filter(region=obj).count() number_of_visits.short_description = 'Number of Visits' from django.contrib import admin from django.contrib.auth.admin import UserAdmin from users.models import CustomUser class CustomUserAdmin(UserAdmin): model = CustomUser list_display = ['username', 'email', 'is_staff', 'is_active', 'image_display'] readonly_fields = ('uuid',) search_fields = ('username', 'email') fieldsets = UserAdmin.fieldsets + ( (None, {'fields': ('profile_pic', 'uuid', 'public_profile')}), ) def image_display(self, obj): if obj.profile_pic: public_url = os.environ.get('PUBLIC_URL', 'http://127.0.0.1:8000').rstrip('/') public_url = public_url.replace("'", "") return mark_safe(f'