Merge pull request '10105/improve-person-detail-load-time' (#3) from 10105/improve-person-detail-load-time into master

Reviewed-on: #3
This commit is contained in:
pcoder116 2022-01-05 15:53:12 +00:00
commit b3d43f802d
2 changed files with 29 additions and 2 deletions

View file

@ -2,14 +2,19 @@ from django.contrib import admin
from django.utils.html import format_html
from .models import *
from django.forms import TextInput
from django.conf import settings
class PeopleResourceInline(admin.TabularInline):
autocomplete_fields = ['resource']
model = PeopleResource
extra = 0
class PeopleRangeInline(admin.TabularInline):
autocomplete_fields = ['range']
model = PeopleRange
extra = 0
class PersonAdmin(admin.ModelAdmin):
@ -60,19 +65,26 @@ class PersonAdmin(admin.ModelAdmin):
)
list_display = ['id', 'full_name', 'organization']
autocomplete_fields = ['organization']
list_per_page = settings.ADMIN_LIST_PER_PAGE
# list_display_links = ['id']
class ResourceKeywordInline(admin.TabularInline):
autocomplete_fields = ['keyword']
model = ResourceKeyword
extra = 0
class ResourceRangeInline(admin.TabularInline):
autocomplete_fields = ['range_name']
model = ResourceRange
extra = 0
class ResourcePeopleInline(admin.TabularInline):
autocomplete_fields = ['person']
model = PeopleResource
extra = 0
formfield_overrides = {
models.CharField: {'widget': TextInput(attrs={'size': '20'})}
}
@ -116,17 +128,23 @@ class ResourceAdmin(admin.ModelAdmin):
'PEGASuS_Check_map_with_author',),)
}),
)
list_per_page = settings.ADMIN_LIST_PER_PAGE
class RangeNameTranslationInline(admin.TabularInline):
autocomplete_fields = ['language_translation']
model = RangeNameTranslation
extra = 0
class RangeCountryInline(admin.TabularInline):
autocomplete_fields = ['country']
model = RangeCountry
extra = 0
class RangeAdmin(admin.ModelAdmin):
autocomplete_fields = ['mother_range']
inlines = [
RangeNameTranslationInline,
RangeCountryInline
@ -166,6 +184,7 @@ class RangeAdmin(admin.ModelAdmin):
)
list_display = ['range_name', 'mother_range', 'countries']
ordering = ['range_name']
list_per_page = settings.ADMIN_LIST_PER_PAGE
class PeopleOrganizationInline(admin.TabularInline):
@ -360,10 +379,16 @@ class RangeCountryAdmin(admin.ModelAdmin):
return str(obj.country.short_name) if obj.country else 'None'
class KeywordAdmin(admin.ModelAdmin):
search_fields = ['keyword']
# Register your models here.
admin.site.register(Person, PersonAdmin)
admin.site.register(Resource, ResourceAdmin)
admin.site.register(MountainRange, RangeAdmin)
admin.site.register(Keyword, KeywordAdmin)
# admin.site.register(Method)
# admin.site.register(Scale)
# admin.site.register(Taxon)
@ -371,9 +396,9 @@ admin.site.register(MountainRange, RangeAdmin)
# LU models
# admin.site.register(Country, CountriesAdmin)
admin.site.register(Country, CountriesAdmin)
# admin.site.register(GMBA_SpeciesGroup, GMBA_SpeciesGroupAdmin)
# admin.site.register(Language, LanguageAdmin)
admin.site.register(Language, LanguageAdmin)
# admin.site.register(PeopleStatus, PeopleStatusAdmin)
# admin.site.register(RangeType, RangeTypeAdmin)
# admin.site.register(RedListCategory, RedListCategoryAdmin)

View file

@ -118,3 +118,5 @@ STATIC_URL = '/static/'
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
ADMIN_LIST_PER_PAGE = os.getenv('ADMIN_LIST_PER_PAGE', 20)