SciPost Code Repository

Skip to content
Snippets Groups Projects
admin.py 3.16 KiB
Newer Older
__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
Jorran de Wit's avatar
Jorran de Wit committed
from django.contrib import admin

from .models import (
    Subsidy,
    SubsidyAttachment,
    WorkLog,
    PeriodicReportType,
    PeriodicReport,
)
class SubsidyPaymentInline(admin.TabularInline):
    model = SubsidyPayment
    autocomplete_fields = [
        "invoice",
        "proof_of_payment",
    ]
    extra = 0
class SubsidyAttachmentInline(admin.TabularInline):
    model = SubsidyAttachment
@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",
    ]
        SubsidyPaymentInline,
        SubsidyAttachmentInline,
    ]
        "organization",
        "renewal_of",
        "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",
        "compensated_by",
    ]
    autocomplete_fields = [
        "organization",
        "publication",
    ]
    search_fields = [
        "publication__doi_label",
        "organization__name",
        "organization__name_original",
        "organization__acronym",
    ]

    @admin.display(description="doi label")
        return obj.publication.doi_label
@admin.register(WorkLog)
class WorkLogAdmin(admin.ModelAdmin):
    autocomplete_fields = ["user"]

admin.site.register(PeriodicReportType)

admin.site.register(PeriodicReport)