Newer
Older
__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3"
from django.contrib import admin, messages
from django import forms
from journals.models import Journal, Volume, Issue, Publication, \
Deposit, DOAJDeposit, GenericDOIDeposit, Reference, PublicationAuthorsTable,\
from scipost.models import Contributor
from submissions.models import Submission
class JournalAdmin(admin.ModelAdmin):
search_fields = ['name']
list_display = ['__str__', 'doi_string', 'active']
admin.site.register(Journal, JournalAdmin)
class VolumeAdmin(admin.ModelAdmin):
list_display = ['__str__', 'doi_string']
admin.site.register(Volume, VolumeAdmin)
class IssueAdmin(admin.ModelAdmin):
list_display = ['__str__', 'doi_string']
search_fields = [
'in_journal__name',
'in_volume__in_journal__name',
'doi_label',
]
admin.site.register(Issue, IssueAdmin)
class ReferenceInline(admin.TabularInline):
model = Reference
class AuthorsInline(admin.TabularInline):
model = PublicationAuthorsTable
extra = 0
autocomplete_fields = [
'profile',
'affiliations',
]
class OrgPubFractionInline(admin.TabularInline):
model = OrgPubFraction
list_display = ('organization', 'publication', 'fraction')
autocomplete_fields = [
'organization',
]
class PublicationAdmin(admin.ModelAdmin):
search_fields = ['title', 'author_list', 'doi_label']
list_display = [
'title', 'author_list',
'in_issue', 'doi_string',
'publication_date', 'status']
date_hierarchy = 'publication_date'
list_filter = ['in_issue']
inlines = [AuthorsInline, ReferenceInline, OrgPubFractionInline]
autocomplete_fields = [
'accepted_submission',
'grants',
'funders_generic',
'topics',
]
admin.site.register(Publication, PublicationAdmin)
class PublicationProxyMetadata(Publication):
search_fields = ['title', 'author_list', 'doi_label']
list_display = [
'title', 'author_list',
'in_issue', 'doi_string',
'publication_date', 'status']
class Meta:
proxy = True
verbose_name = 'Publication metadata'
verbose_name_plural = 'Publication metadata'
class PublicationProxyMetadataAdmin(admin.ModelAdmin):
fields = ['metadata', 'metadata_xml', 'metadata_DOAJ', 'BiBTeX_entry']
search_fields = ['title', 'author_list', 'doi_label']
list_display = [
'title', 'author_list',
'in_issue', 'doi_string',
'publication_date', 'status']
admin.site.register(PublicationProxyMetadata, PublicationProxyMetadataAdmin)
list_display = ('publication', 'timestamp', 'doi_batch_id', 'deposition_date',)
readonly_fields = ('publication', 'doi_batch_id', 'metadata_xml', 'deposition_date',)
actions = None
def message_user(self, request, *args):
return messages.warning(request, 'Sorry, Deposits are readonly.')
def has_add_permission(self, *args):
return False
def has_delete_permission(self, *args):
return False
admin.site.register(Deposit, DepositAdmin)
class DOAJDepositAdmin(admin.ModelAdmin):
autocomplete_fields = [
'publication',
]
admin.site.register(DOAJDeposit, DOAJDepositAdmin)
admin.site.register(GenericDOIDeposit)
class PublicationUpdateAdmin(admin.ModelAdmin):
autocomplete_fields = [
'publication',
]
admin.site.register(PublicationUpdate, PublicationUpdateAdmin)