diff --git a/scipost/static/scipost/assets/css/_cards.scss b/scipost/static/scipost/assets/css/_cards.scss
index a276ee0cce180697b019963054b6cbea7eb81002..a8625fded65fb44c56709bf4d3829627cf888a69 100644
--- a/scipost/static/scipost/assets/css/_cards.scss
+++ b/scipost/static/scipost/assets/css/_cards.scss
@@ -58,3 +58,14 @@
         }
     }
 }
+
+.card.radio-option {
+    label {
+        cursor: pointer;
+    }
+
+    &.checked,
+    &:hover {
+        border-color: $scipost-darkblue;
+    }
+}
diff --git a/submissions/forms.py b/submissions/forms.py
index 6bb7af39bb29008fd9eb097450b5178d4a7f4402..ba545eb05b6c62cbcbd7c80e211db3aa65a3e473 100644
--- a/submissions/forms.py
+++ b/submissions/forms.py
@@ -2,7 +2,7 @@ from django import forms
 from django.core.validators import RegexValidator
 
 from .constants import ASSIGNMENT_BOOL, ASSIGNMENT_REFUSAL_REASONS,\
-                       REPORT_ACTION_CHOICES, REPORT_REFUSAL_CHOICES
+                       REPORT_ACTION_CHOICES, REPORT_REFUSAL_CHOICES, SUBMISSION_CYCLES
 from .models import Submission, RefereeInvitation, Report, EICRecommendation
 
 from scipost.constants import SCIPOST_SUBJECT_AREAS
@@ -261,3 +261,21 @@ class RecommendationVoteForm(forms.Form):
                     css_class='flex-Fellowactionbox'),
                 css_class='flex-container')
         )
+
+
+class SubmissionCycleChoiceForm(forms.ModelForm):
+    referees_reinvite = forms.ModelMultipleChoiceField(queryset=RefereeInvitation.objects.none(),
+                                                       widget=forms.CheckboxSelectMultiple({
+                                                            'checked': 'checked'}),
+                                                       required=False, label='Reinvite referees')
+
+    class Meta:
+        model = Submission
+        fields = ('refereeing_cycle',)
+        widgets = {'refereeing_cycle': forms.RadioSelect}
+
+    def __init__(self, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+        self.fields['refereeing_cycle'].default = None
+        self.fields['referees_reinvite'].queryset = (self.instance.other_versions()
+                                                     .first().referee_invitations.all())
diff --git a/submissions/templates/submissions/_form_submission_cycle_choice.html b/submissions/templates/submissions/_form_submission_cycle_choice.html
new file mode 100644
index 0000000000000000000000000000000000000000..7b3e3f5fda5b721baf256eca8240bfe1d4f25db0
--- /dev/null
+++ b/submissions/templates/submissions/_form_submission_cycle_choice.html
@@ -0,0 +1,82 @@
+<form method="post">
+    <h3 class="mb-2">This submission is a resubmission, please choose which submission cycle to proceed with</h3>
+    <div class="card-deck" id="id_submission_cycle">
+        {% for choice in form.refereeing_cycle %}
+            <div class="card radio-option" for="{{choice.id_for_label}}" data-reinvite="{% if choice.choice_value == 'direct_rec' %}0{% else %}1{% endif %}">
+                <div class="card-block text-center">
+                    <span class="hidden-xs-up">{{choice.tag}}</span>
+                    <label for="{{choice.id_for_label}}">
+                        <h3 class="card-title">{{choice.choice_label}}</h3>
+                        <p class="card-text text-muted">
+                            {% if choice.choice_value == 'short' %}
+                                Run a speedy refereeing round: two weeks, with option of reinviting previous referees
+                            {% elif choice.choice_value == 'direct_rec' %}
+                                Immediately write an editorial recommendation.
+                            {% else %}
+                                Run a new full refereeing round: four weeks as usual, can invite previous referees and/or new ones.
+                            {% endif %}
+                        </p>
+                    </label>
+                </div>
+            </div>
+        {% endfor %}
+    </div>
+    <div class="card-deck" id="id_referees_reinvite_block" style="display: none;">
+        <div class="card">
+            <div class="card-block">
+                <h3 class="card-title">The following referees were also invited in the last submission</h3>
+                <h4 class="card-subtitle text-muted pt-0">Please choose who you want to reinvite</h4>
+                <div class="form-group row" id="id_referees_reinvite">
+                    <label class="col-form-label col-md-2" for="id_referees_reinvite">Reinvite referees</label>
+                    <div class="col-md-10 multiple-checkbox">
+                        <ul class="mb-0">
+                            {% for referee in form.referees_reinvite.field.queryset %}
+                                <li>
+                                    <label for="{{form.referees_reinvite.name}}_{{forloop.counter0}}">
+                                        <input checked="checked" id="{{form.referees_reinvite.name}}_{{forloop.counter0}}" name="{{form.referees_reinvite.name}}" type="checkbox" value="{{referee.id}}">
+                                        <div class="d-inline-block" style="vertical-align: top;">
+                                            {{referee.referee_str}}
+                                            <br>
+                                            <span class="text-muted">Originally invited on {{referee.date_invited}}</span>
+                                        </div>
+                                     </label>
+                                 </li>
+                            {% endfor %}
+                        </ul>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <input type="submit" class="btn btn-primary" value="Confirm choice">
+</form>
+
+<script>
+    $(function(){
+        console.log($('#id_submission_cycle .radio-option'));
+        $('#id_submission_cycle .radio-option').on('click', function(){
+            var el_id = $('#id_submission_cycle .radio-option input[type="radio"]:checked'),
+                radio_cards = $('#id_submission_cycle .radio-option');
+
+            // Check/uncheck radiobuttons
+            $('#id_submission_cycle input[type="radio"]')
+                .prop('checked', false)
+                .filter(el_id)
+                .prop('checked', true);
+
+            // Toggle classes of cards
+            radio_cards.removeClass('checked')
+            var el_card = el_id.parents('.radio-option');
+            el_card.addClass('checked');
+
+            // Show/hide invitation block
+            if(el_card.attr('data-reinvite') > 0) {
+                $('#id_referees_reinvite_block').show();
+            } else {
+                $('#id_referees_reinvite_block').hide();
+            }
+        }).trigger('click');
+
+
+    });
+</script>
diff --git a/submissions/templates/submissions/editorial_page.html b/submissions/templates/submissions/editorial_page.html
index c5cc177ff3568ba332512714ab3afb37007c421b..a52050e5da183260baf2c442d59ad32ed9e67fdd 100644
--- a/submissions/templates/submissions/editorial_page.html
+++ b/submissions/templates/submissions/editorial_page.html
@@ -150,24 +150,7 @@
 {% if submission.status == 'resubmitted_incomin' %}
     <div class="row">
         <div class="col-12">
-            <h3 class="highlight">This submission is a resubmission, please choose which submission cycle to proceed with</h3>
-            <div class="card-deck">
-                <div class="card">
-                    <div class="card-block">
-                        HENK
-                    </div>
-                </div>
-                <div class="card">
-                    <div class="card-block">
-                        INGRID
-                    </div>
-                </div>
-                <div class="card">
-                    <div class="card-block">
-                        DE BUURVROUW
-                    </div>
-                </div>
-            </div>
+            {% include 'submissions/_form_submission_cycle_choice.html' with form=cycle_choice_form %}
         </div>
     </div>
 {% else %}
diff --git a/submissions/views.py b/submissions/views.py
index 9f0e786745617ff92a3b1a2b92bb71852c6310ef..856bdbeb54e7a63453ec9668b7dc24e753b1e521 100644
--- a/submissions/views.py
+++ b/submissions/views.py
@@ -23,7 +23,8 @@ from .forms import SubmissionIdentifierForm, SubmissionForm, SubmissionSearchFor
                    RecommendationVoteForm, ConsiderAssignmentForm, AssignSubmissionForm,\
                    SetRefereeingDeadlineForm, RefereeSelectForm, RefereeRecruitmentForm,\
                    ConsiderRefereeInvitationForm, EditorialCommunicationForm,\
-                   EICRecommendationForm, ReportForm, VetReportForm, VotingEligibilityForm
+                   EICRecommendationForm, ReportForm, VetReportForm, VotingEligibilityForm,\
+                   SubmissionCycleChoiceForm
 from .utils import SubmissionUtils
 
 from comments.models import Comment
@@ -633,13 +634,16 @@ def editorial_page(request, arxiv_identifier_w_vn_nr):
                           .get(submission=submission))
     except EICRecommendation.DoesNotExist:
         recommendation = None
-    context = {'submission': submission,
-               'other_versions': other_versions,
-               'recommendation': recommendation,
-               'set_deadline_form': SetRefereeingDeadlineForm(),
-               'ref_invitations': ref_invitations,
-               'nr_reports_to_vet': nr_reports_to_vet,
-               'communications': communications}
+    context = {
+        'submission': submission,
+        'other_versions': other_versions,
+        'recommendation': recommendation,
+        'set_deadline_form': SetRefereeingDeadlineForm(),
+        'cycle_choice_form': SubmissionCycleChoiceForm(instance=submission),
+        'ref_invitations': ref_invitations,
+        'nr_reports_to_vet': nr_reports_to_vet,
+        'communications': communications
+    }
     return render(request, 'submissions/editorial_page.html', context)