from django.contrib import admin from .models import * class PersonAdmin(admin.ModelAdmin): search_fields = ['title', 'first_name', 'last_name', 'organisation', 'position', 'country__short_name', 'contact_email'] fieldsets = ( (None, { 'fields': ( ('mr_mrs', 'title','full_name', 'position'), ('first_name', 'last_name', 'search_name', 'status'), ('contact_email', 'email_2', 'skype', 'professional_phone'), 'organization', 'personal_url', 'biography', 'field_of_expertise', 'geographic_area_of_expertise') }), ('Research Scale', { 'classes': ('collapse',), 'fields': (('field_site', 'transect', 'mountain_top', 'mountain_range', 'landscape', 'regional', 'national',), '_global'), }), ('Methods and tools', { 'classes': ('collapse',), 'fields': (('biological_field_sampling', 'data_mining', 'remote_sensing', 'gis', 'spatial_analysis', 'statistical_analysis', 'modelling'), ('assessment', 'meta_analysis', 'synthesis', 'qualitative_ssm', 'genetic_analyses')) }), ('Taxonomic groups', { 'classes': ('collapse',), 'fields': (('birds', 'mammals', 'reptiles', 'amphibians', 'fish', 'insects', 'molluscs', 'crustaceans', 'arachnids'), ('angiosperms', 'gymnosperms', 'fungi', 'algae', 'microbes')), }), ('Others', { 'classes': ('collapse',), 'fields': ('orcid', 'web_of_science', 'twitter', 'instagram', 'updated', ('news_letter', 'profile_on_web'), 'entry_date', 'country', 'gmba_function' ), }), ) class ResourceAdmin(admin.ModelAdmin): search_fields = ['title', 'url', 'citation', 'abstract'] class RangeAdmin(admin.ModelAdmin): search_fields = ['name', 'range_name', 'range_name_ascii', 'range_name_language', 'mother_range', 'feature', 'level', 'level', 'level_1', 'level_2', 'level_3', 'peak_name', 'comments', 'source', 'name_fr', 'name_de', 'name_es', 'name_pt', 'name_cn', 'name_ru', 'name_tr'] class FieldAdmin(admin.ModelAdmin): search_fields = ['name'] class CountriesAdmin(admin.ModelAdmin): search_fields = ['short_name', 'formal_name', 'membership_within_un_system', 'continent', 'eu_ms', 'eea_ms', 'iso3', 'iso2'] class GMBA_SpeciesGroupAdmin(admin.ModelAdmin): search_fields = ['species_group'] class LanguageAdmin(admin.ModelAdmin): search_fields = ['language'] class PeopleStatusAdmin(admin.ModelAdmin): search_fields = ['status'] class RangeTypeAdmin(admin.ModelAdmin): search_fields = ['range_type'] class RedListCategoryAdmin(admin.ModelAdmin): search_fields = ['red_list_category'] class SourceAdmin(admin.ModelAdmin): search_fields = ['source'] class TaxonStatusAdmin(admin.ModelAdmin): search_fields = ['taxon_status'] class TaxonUnitAdmin(admin.ModelAdmin): search_fields = ['taxon_status'] class TrendsQuantityAdmin(admin.ModelAdmin): search_fields = ['trend'] class TrendsQualityAdmin(admin.ModelAdmin): search_fields = ['trend'] class RepositoryAdmin(admin.ModelAdmin): search_fields = ['repository_name', 'repository_url'] class GMBAFunctionAdmin(admin.ModelAdmin): search_fields = ['gmba_function'] class OrganizationAdmin(admin.ModelAdmin): search_fields = ['organisation_search', 'org_alpjha_search', 'organization_2', 'organization_3', 'subject'] class RangeOnlineInfoAdmin(admin.ModelAdmin): search_fields = ['info_source'] class PeaksAdmin(admin.ModelAdmin): search_fields = ['point_name', 'link'] class SearchAdmin(admin.ModelAdmin): search_fields = ['search_string', 'search_date', 'result'] list_display = ['search_string', 'search_date', 'result'] def search_string(self, obj): return str(obj.search_string) if obj else '--' def search_date(self, obj): return str(obj.search_date) if obj else '--' def result(self, obj): return str(obj.result) if obj else '--' class SpeciesAdmin(admin.ModelAdmin): search_fields = ['scientific_name', 'class_', 'english_name', 'url'] class TaxonRangeAdmin(admin.ModelAdmin): model = TaxonRange search_fields = ['range__range_name', 'taxon', 'subrange_or_region', 'distribution', 'source', 'remarks'] list_display = ['range_name', 'taxon'] def range_name(self, obj): return str(obj.range.range_name) if obj and obj.range and obj.range.range_name else 'None' def taxon(self, obj): return str(obj.taxon) if obj.taxon else 'None' class RangeNameTranslationAdmin(admin.ModelAdmin): model = RangeNameTranslation search_fields = ['range__range_name', 'language__language'] list_display = ['range_name', 'language_translation'] def range_name(self, obj): return str(obj.range.range_name) def country_name(self, obj): return str(obj.language.language) if obj.language else 'None' class PeopleRangeAdmin(admin.ModelAdmin): model = Range list_display = ['person', 'range_name', ] def range_name(self, obj): return str(obj.range.name) class PeopleResourceAdmin(admin.ModelAdmin): fields = ('person', 'resource', 'p_r_role') list_display = ['person', 'resource', 'role'] search_fields = ['person__full_name', 'resource__title', 'p_r_role__role'] class SpeciesRangeAdmin(admin.ModelAdmin): model = SpeciesRange search_fields = ['scientific_name__scientific_name', 'range__range_name'] list_display = ['scientific_name', 'range_name'] def scientific_name(self, obj): return str(obj.scientific_name.scientific_name) if obj and obj.scientific_name and obj.scientific_name.scientific_name else '--' def range_name(self, obj): return str(obj.range) if obj.range else '--' class RangeCountryAdmin(admin.ModelAdmin): model = RangeCountry search_fields = ['range__range_name', 'country__short_name'] list_display = ['range_name', 'country_name'] def range_name(self, obj): return str(obj.range.range_name) def country_name(self, obj): return str(obj.country.short_name) if obj.country else 'None' # Register your models here. admin.site.register(Person, PersonAdmin) admin.site.register(Resource, ResourceAdmin) admin.site.register(Range, RangeAdmin) admin.site.register(Method) admin.site.register(Scale) admin.site.register(Taxon) admin.site.register(Field, FieldAdmin) # LU models admin.site.register(Country, CountriesAdmin) admin.site.register(GMBA_SpeciesGroup, GMBA_SpeciesGroupAdmin) admin.site.register(Language, LanguageAdmin) admin.site.register(PeopleStatus, PeopleStatusAdmin) admin.site.register(RangeType, RangeTypeAdmin) admin.site.register(RedListCategory, RedListCategoryAdmin) admin.site.register(Source, SourceAdmin) admin.site.register(TaxonStatus, TaxonStatusAdmin) admin.site.register(TaxonUnit, TaxonUnitAdmin) admin.site.register(TrendsQuality, TrendsQualityAdmin) admin.site.register(TrendsQuantity, TrendsQuantityAdmin) # Others admin.site.register(Repository, RepositoryAdmin) admin.site.register(GMBA_function, GMBAFunctionAdmin) admin.site.register(Organization, OrganizationAdmin) admin.site.register(RangeOnlineInfo, RangeOnlineInfoAdmin) admin.site.register(RangeNameTranslation, RangeNameTranslationAdmin) admin.site.register(AddElevation) admin.site.register(GMBA_V2_Centroid) admin.site.register(ImportGeom210915) admin.site.register(Peak, PeaksAdmin) admin.site.register(Search, SearchAdmin) admin.site.register(TaxaPeople) # admin.site.register(RangesPeople) # admin.site.register(ResourcesPeople) admin.site.register(ScalesPeople) admin.site.register(Species, SpeciesAdmin) admin.site.register(PeopleFunction) admin.site.register(SpeciesRange, SpeciesRangeAdmin) admin.site.register(RangesPeople, PeopleRangeAdmin) admin.site.register(TaxonRange, TaxonRangeAdmin) admin.site.register(PeopleResource, PeopleResourceAdmin) admin.site.register(RangeCountry, RangeCountryAdmin) admin.site.register(Role)