diff --git a/commentaries/admin.py b/commentaries/admin.py index 80f638be8c0bcd1ca9b9141c8a12e1022be9924b..441d0f229c0eaf8bbba274a5402a9ee888b6c31c 100644 --- a/commentaries/admin.py +++ b/commentaries/admin.py @@ -1,12 +1,29 @@ from django.contrib import admin +from django import forms + from commentaries.models import Commentary +from scipost.models import Contributor + + +class CommentaryAdminForm(forms.ModelForm): + authors = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.order_by('user__last_name')) + authors_claims = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.order_by('user__last_name')) + authors_false_claims = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.order_by('user__last_name')) + + class Meta: + model = Commentary + fields = '__all__' + class CommentaryAdmin(admin.ModelAdmin): search_fields = ['author_list', 'pub_abstract'] list_display = ('__str__', 'vetted', 'latest_activity',) date_hierarchy = 'latest_activity' - + form = CommentaryAdminForm admin.site.register(Commentary, CommentaryAdmin) diff --git a/journals/admin.py b/journals/admin.py index 0626c2b11e1a6fc2828b11a359c6ac2d05033f5a..dc98d36072c7fd63e5dd98d2c67e8836d53f7b07 100644 --- a/journals/admin.py +++ b/journals/admin.py @@ -1,7 +1,10 @@ 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): @@ -33,12 +36,27 @@ class IssueAdmin(admin.ModelAdmin): 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( + queryset=Contributor.objects.order_by('user__last_name')) + authors_false_claims = forms.ModelMultipleChoiceField( + 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) diff --git a/production/admin.py b/production/admin.py index 41ae12e06e49ec6a43fc034ed520b5708e3b2ff0..64b634398caf4f31004b7488a98a5615c673a8a9 100644 --- a/production/admin.py +++ b/production/admin.py @@ -1,7 +1,39 @@ from django.contrib import admin +from django import forms + from .models import ProductionStream, ProductionEvent +from submissions.models import Submission + + +class ProductionStreamAdminForm(forms.ModelForm): + submission = forms.ModelChoiceField( + queryset=Submission.objects.order_by('-arxiv_identifier_w_vn_nr')) + + class Meta: + model = ProductionStream + fields = '__all__' + +class ProductionStreamAdmin(admin.ModelAdmin): + search_fields = ['submission'] + list_display = ['submission', 'opened', 'status'] + form = ProductionStreamAdminForm + +admin.site.register(ProductionStream, ProductionStreamAdmin) + + +class ProductionEventAdminForm(forms.ModelForm): + stream = forms.ModelChoiceField( + queryset=ProductionStream.objects.order_by('-submission.arxiv_identifier_w_vn_nr')) + + class Meta: + model = ProductionEvent + fields = '__all__' + +class ProductionEventAdmin(admin.ModelAdmin): + search_field = ['stream', 'event', 'comment', 'noted_by'] + list_display = ['stream', 'event', 'noted_on', 'noted_by'] + form = ProductionEventAdminForm -admin.site.register(ProductionStream) -admin.site.register(ProductionEvent) +admin.site.register(ProductionEvent, ProductionEventAdmin) diff --git a/scipost/admin.py b/scipost/admin.py index 2f137a42295438e82e056a70de4a15d600104ca4..dc4ef69f237f2511068edde40147e41eb3d2e9d5 100644 --- a/scipost/admin.py +++ b/scipost/admin.py @@ -1,6 +1,7 @@ import datetime from django.contrib import admin +from django import forms from django.contrib.auth.admin import UserAdmin from django.contrib.auth.models import User, Permission @@ -12,6 +13,9 @@ from scipost.models import Contributor, Remark,\ AuthorshipClaim, PrecookedEmail,\ EditorialCollege, EditorialCollegeFellowship +from journals.models import Publication +from submissions.models import Submission + class ContributorInline(admin.StackedInline): model = Contributor @@ -80,30 +84,57 @@ def get_remark_type(remark): return 'Recommendation' return '' +class RemarkAdminForm(forms.ModelForm): + submission = forms.ModelChoiceField( + queryset=Submission.objects.order_by('-arxiv_identifier_w_vn_nr')) + + class Meta: + model = Remark + fields = '__all__' class RemarkAdmin(admin.ModelAdmin): search_fields = ['contributor', 'remark'] list_display = [remark_text, 'contributor', 'date', get_remark_type] date_hierarchy = 'date' list_filter = [RemarkTypeListFilter] - + form = RemarkAdminForm admin.site.register(Remark, RemarkAdmin) +class DraftInvitationAdminForm(forms.ModelForm): + cited_in_submission = forms.ModelChoiceField( + queryset=Submission.objects.order_by('-arxiv_identifier_w_vn_nr')) + cited_in_publication = forms.ModelChoiceField( + queryset=Publication.objects.order_by('-publication_date')) + + class Meta: + model = DraftInvitation + fields = '__all__' + class DraftInvitationAdmin(admin.ModelAdmin): search_fields = ['first_name', 'last_name', 'email', 'processed'] - + form = DraftInvitationAdminForm admin.site.register(DraftInvitation, DraftInvitationAdmin) +class RegistrationInvitationAdminForm(forms.ModelForm): + cited_in_submission = forms.ModelChoiceField( + queryset=Submission.objects.order_by('-arxiv_identifier_w_vn_nr')) + cited_in_publication = forms.ModelChoiceField( + queryset=Publication.objects.order_by('-publication_date')) + + class Meta: + model = RegistrationInvitation + fields = '__all__' + class RegistrationInvitationAdmin(admin.ModelAdmin): search_fields = ['first_name', 'last_name', 'email', 'invitation_key'] list_display = ['__str__', 'invitation_type', 'invited_by', 'responded'] list_filter = ['invitation_type', 'message_style', 'responded', 'declined'] date_hierarchy = 'date_sent' - + form = RegistrationInvitationAdminForm admin.site.register(RegistrationInvitation, RegistrationInvitationAdmin) diff --git a/submissions/admin.py b/submissions/admin.py index c0d1156527056afdba29f1656ff3e712246e7afd..1cac3e6107410e539ede53109214ecfee3bda976 100644 --- a/submissions/admin.py +++ b/submissions/admin.py @@ -1,34 +1,65 @@ from django.contrib import admin +from django import forms from guardian.admin import GuardedModelAdmin from submissions.models import * +from scipost.models import Contributor + def submission_short_title(obj): return obj.submission.title[:30] +class SubmissionAdminForm(forms.ModelForm): + authors = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.order_by('user__last_name')) + authors_claims = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.order_by('user__last_name')) + authors_false_claims = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.order_by('user__last_name')) + + class Meta: + model = Submission + fields = '__all__' + class SubmissionAdmin(GuardedModelAdmin): search_fields = ['submitted_by__user__last_name', 'title', 'author_list', 'abstract'] list_display = ('title', 'author_list', 'status', 'submission_date', 'publication',) date_hierarchy = 'submission_date' list_filter = ('status', 'discipline', 'submission_type', ) - + form = SubmissionAdminForm admin.site.register(Submission, SubmissionAdmin) +class EditorialAssignmentAdminForm(forms.ModelForm): + submission = forms.ModelChoiceField( + queryset=Submission.objects.order_by('-arxiv_identifier_w_vn_nr')) + + class Meta: + model = EditorialAssignment + fields = '__all__' + class EditorialAssignmentAdmin(admin.ModelAdmin): search_fields = ['submission__title', 'submission__author_list', 'to__user__last_name'] list_display = ('to', submission_short_title, 'accepted', 'completed', 'date_created',) date_hierarchy = 'date_created' list_filter = ('accepted', 'deprecated', 'completed', ) - + form = EditorialAssignmentAdminForm admin.site.register(EditorialAssignment, EditorialAssignmentAdmin) +class RefereeInvitationAdminForm(forms.ModelForm): + submission = forms.ModelChoiceField( + queryset=Submission.objects.order_by('-arxiv_identifier_w_vn_nr')) + + class Meta: + model = RefereeInvitation + fields = '__all__' + class RefereeInvitationAdmin(admin.ModelAdmin): search_fields = ['submission__title', 'submission__author_list', 'referee__user__last_name', @@ -36,18 +67,26 @@ class RefereeInvitationAdmin(admin.ModelAdmin): list_display = ('__str__', 'accepted', ) list_filter = ('accepted', 'fulfilled', 'cancelled',) date_hierarchy = 'date_invited' - + form = RefereeInvitationAdminForm admin.site.register(RefereeInvitation, RefereeInvitationAdmin) +class ReportAdminForm(forms.ModelForm): + submission = forms.ModelChoiceField( + queryset=Submission.objects.order_by('-arxiv_identifier_w_vn_nr')) + + class Meta: + model = Report + fields = '__all__' + class ReportAdmin(admin.ModelAdmin): search_fields = ['author__user__last_name', 'submission'] list_display = ('author', 'status', submission_short_title, 'date_submitted', ) list_display_links = ('author',) date_hierarchy = 'date_submitted' list_filter = ('status',) - + form = ReportAdminForm admin.site.register(Report, ReportAdmin) @@ -59,8 +98,33 @@ class EditorialCommunicationAdmin(admin.ModelAdmin): admin.site.register(EditorialCommunication, EditorialCommunicationAdmin) +class EICRecommendationAdminForm(forms.ModelForm): + submission = forms.ModelChoiceField( + queryset=Submission.objects.order_by('-arxiv_identifier_w_vn_nr')) + eligible_to_vote = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.filter( + user__groups__name__in=['Editorial College'], + ).order_by('user__last_name')) + voted_for = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.filter( + user__groups__name__in=['Editorial College'], + ).order_by('user__last_name')) + voted_against = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.filter( + user__groups__name__in=['Editorial College'], + ).order_by('user__last_name')) + voted_abstain = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.filter( + user__groups__name__in=['Editorial College'], + ).order_by('user__last_name')) + + class Meta: + model = EICRecommendation + fields = '__all__' + + class EICRecommendationAdmin(admin.ModelAdmin): search_fields = ['submission__title'] - + form = EICRecommendationAdminForm admin.site.register(EICRecommendation, EICRecommendationAdmin) diff --git a/theses/admin.py b/theses/admin.py index 61338e88abe0453a93254d180c9dbeff4dd463b7..3fc5fd571457f533b471b6d379c129356a943d4f 100644 --- a/theses/admin.py +++ b/theses/admin.py @@ -1,9 +1,26 @@ from django.contrib import admin +from django import forms + from theses.models import * +from scipost.models import Contributor + + +class ThesisLinkAdminForm(forms.ModelForm): + author_claims = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.order_by('user__last_name')) + author_false_claims = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.order_by('user__last_name')) + supervisor_as_cont = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.order_by('user__last_name')) + + class Meta: + model = ThesisLink + fields = '__all__' class ThesisLinkAdmin(admin.ModelAdmin): search_fields = ['requested_by__user__username', 'author', 'title'] + form = ThesisLinkAdminForm admin.site.register(ThesisLink, ThesisLinkAdmin) diff --git a/virtualmeetings/admin.py b/virtualmeetings/admin.py index c831a447b58b6d95edd086fda5750bbfc5e315c6..61bf7ab92665dd958f36e3b97756996c3924c80e 100644 --- a/virtualmeetings/admin.py +++ b/virtualmeetings/admin.py @@ -1,7 +1,11 @@ from django.contrib import admin +from django import forms + from .models import VGM, Feedback, Nomination, Motion +from scipost.models import Contributor + class VGMAdmin(admin.ModelAdmin): search_fields = ['start_date'] @@ -17,15 +21,51 @@ class FeedbackAdmin(admin.ModelAdmin): admin.site.register(Feedback, FeedbackAdmin) +class NominationAdminForm(forms.ModelForm): + in_agreement = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.filter( + user__groups__name__in=['Editorial College'], + ).order_by('user__last_name')) + in_notsure = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.filter( + user__groups__name__in=['Editorial College'], + ).order_by('user__last_name')) + in_disagreement = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.filter( + user__groups__name__in=['Editorial College'], + ).order_by('user__last_name')) + + class Meta: + model = Nomination + fields = '__all__' + class NominationAdmin(admin.ModelAdmin): search_fields = ['last_name', 'first_name', 'by'] - + form = NominationAdminForm admin.site.register(Nomination, NominationAdmin) +class MotionAdminForm(forms.ModelForm): + in_agreement = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.filter( + user__groups__name__in=['Editorial College'], + ).order_by('user__last_name')) + in_notsure = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.filter( + user__groups__name__in=['Editorial College'], + ).order_by('user__last_name')) + in_disagreement = forms.ModelMultipleChoiceField( + queryset=Contributor.objects.filter( + user__groups__name__in=['Editorial College'], + ).order_by('user__last_name')) + + class Meta: + model = Motion + fields = '__all__' + class MotionAdmin(admin.ModelAdmin): search_fields = ['background', 'motion', 'put_forward_by'] - + form = MotionAdminForm admin.site.register(Motion, MotionAdmin)