Newer
Older
from django.contrib import admin, messages
from django import forms
from journals.models import UnregisteredAuthor, Journal, Volume, Issue, Publication, Deposit
from scipost.models import Contributor
from submissions.models import Submission
class UnregisteredAuthorAdmin(admin.ModelAdmin):
search_fields = ['last_name']
ordering = ['last_name']
admin.site.register(UnregisteredAuthor, UnregisteredAuthorAdmin)
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']
admin.site.register(Issue, IssueAdmin)
class PublicationAdminForm(forms.ModelForm):
accepted_submission = forms.ModelChoiceField(
queryset=Submission.objects.order_by('-arxiv_identifier_w_vn_nr'))
authors = forms.ModelMultipleChoiceField(
queryset=Contributor.objects.order_by('user__last_name'))
authors_claims = forms.ModelMultipleChoiceField(
required=False,
queryset=Contributor.objects.order_by('user__last_name'))
authors_false_claims = forms.ModelMultipleChoiceField(
required=False,
queryset=Contributor.objects.order_by('user__last_name'))
class Meta:
model = Publication
fields = '__all__'
class PublicationAdmin(admin.ModelAdmin):
search_fields = ['title', 'author_list']
list_display = ['title', 'author_list', 'in_issue', 'doi_string', 'publication_date']
date_hierarchy = 'publication_date'
list_filter = ['in_issue']
form = PublicationAdminForm
admin.site.register(Publication, PublicationAdmin)
class DepositAdmin(admin.ModelAdmin):
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.')