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)