__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)" __license__ = "AGPL v3" from django.contrib import admin from .models import ( Subsidy, SubsidyPayment, SubsidyAttachment, PubFrac, WorkLog, PeriodicReportType, PeriodicReport, ) class SubsidyPaymentInline(admin.TabularInline): model = SubsidyPayment autocomplete_fields = [ "invoice", "proof_of_payment", ] extra = 0 class SubsidyAttachmentInline(admin.TabularInline): model = SubsidyAttachment extra = 0 @admin.register(Subsidy) class SubsidyAdmin(admin.ModelAdmin): list_display = [ "organization_name_short", "orgtype_display", "amount", "status", "date_from", "date_until", "total_compensations", ] list_filter = [ "organization__orgtype", ] inlines = [ SubsidyPaymentInline, SubsidyAttachmentInline, ] autocomplete_fields = [ "organization", "renewal_of", ] search_fields = [ "organization__name", "organization__name_original", "organization__acronym", ] @admin.display(description="org name short") def organization_name_short(self, obj): return obj.organization.name[:40] @admin.display(description="org type") def orgtype_display(self, obj): return obj.organization.get_orgtype_display() @admin.register(SubsidyAttachment) class SubsidyAttachmentAdmin(admin.ModelAdmin): list_display = [ "kind", "date", "subsidy", ] list_filter = [ "kind", "date", ] autocomplete_fields = [ "subsidy", ] search_fields = [ "description", "subsidy__organization__name", "subsidy__organization__name_original", "subsidy__organization__acronym", ] @admin.register(SubsidyPayment) class SubsidyPaymentAdmin(admin.ModelAdmin): list_display = [ "subsidy", "reference", "amount", "date_scheduled", "status", ] autocomplete_fields = [ "subsidy", "invoice", "proof_of_payment", ] search_fields = [ "reference", "amount", "subsidy__organization__name", "subsidy__organization__name_original", "subsidy__organization__acronym", ] def status(self, obj): return obj.status @admin.register(PubFrac) class PubFracAdmin(admin.ModelAdmin): list_display = [ "organization", "doi_label_display", "fraction", "cf_value", "compensated_by", ] autocomplete_fields = [ "organization", "publication", "compensated_by", ] search_fields = [ "publication__doi_label", "organization__name", "organization__name_original", "organization__acronym", ] @admin.display(description="doi label") def doi_label_display(self, obj): return obj.publication.doi_label @admin.register(WorkLog) class WorkLogAdmin(admin.ModelAdmin): autocomplete_fields = ["user"] admin.site.register(PeriodicReportType) admin.site.register(PeriodicReport)