diff --git a/scipost/permissions.py b/scipost/permissions.py
new file mode 100644
index 0000000000000000000000000000000000000000..a9a936925fa6dc6560fc94c8f4d3340c2b9e6cff
--- /dev/null
+++ b/scipost/permissions.py
@@ -0,0 +1,6 @@
+
+def is_tester(user):
+    """
+    This method checks if user is member of the Test Group.
+    """
+    return user.groups.filter(name='Testers').exists()
diff --git a/scipost/static/scipost/assets/css/_pool.scss b/scipost/static/scipost/assets/css/_pool.scss
new file mode 100644
index 0000000000000000000000000000000000000000..e5e62bc3dc4a8b1994cdc4d1a26bd945bc677538
--- /dev/null
+++ b/scipost/static/scipost/assets/css/_pool.scss
@@ -0,0 +1,20 @@
+$pool-icons-width: 40px;
+$pool-flex-width: calc(100% - 40px);
+
+
+.pool .pool-item {
+    .icons {
+        padding-left: 10px;
+        padding-right: 10px;
+        position: relative;
+        min-height: 1px;
+        flex: 0 0 $pool-icons-width;
+        max-width: $pool-icons-width;
+    }
+
+    .item {
+        flex: 0 0 $pool-flex-width;
+        width: $pool-flex-width;
+        max-width: none;
+    }
+}
diff --git a/scipost/static/scipost/assets/css/_type.scss b/scipost/static/scipost/assets/css/_type.scss
index 9f21c44547325bbbf1055366f00574a18cc4a3b2..056fe6dcb5bb8c21f77aee7affb8a68a0cfec105 100644
--- a/scipost/static/scipost/assets/css/_type.scss
+++ b/scipost/static/scipost/assets/css/_type.scss
@@ -112,28 +112,6 @@ hr.hr12 {
     margin-bottom: 0;
 }
 
-.circle,
-.circle-clickable {
-    display: inline-block;
-    background: #fff;
-    border: 2px solid #333;
-    color: #333;
-    border-radius: 100%;
-    width: 17px;
-    height: 17px;
-    line-height: 16px;
-    text-align: center;
-    font-size: 9px;
-    transition: 0.1s;
-}
-
-.circle-clickable {
-    cursor: pointer;
-    color: #bbb;
-    border-color: #bbb;
-
-    &:hover {
-        border-color: #333;
-        color: #333;
-    }
+.fa[data-toggle="tooltip"] {
+    font-size: 1.5em;
 }
diff --git a/scipost/static/scipost/assets/css/style.scss b/scipost/static/scipost/assets/css/style.scss
index 5c8bb75eef61d1059c45fa6a2e6d1f86d20e8b1f..be68d319863f3b5d962c823aca10301be2f28b73 100644
--- a/scipost/static/scipost/assets/css/style.scss
+++ b/scipost/static/scipost/assets/css/style.scss
@@ -31,6 +31,7 @@
 @import "navbar";
 @import "nav";
 @import "page_header";
+@import "pool";
 @import "popover";
 @import "tables";
 @import "tooltip";
diff --git a/scipost/static/scipost/assets/js/scripts.js b/scipost/static/scipost/assets/js/scripts.js
index e16263ae7d94b480e54096a08385c61e00e893ba..d39b0efcdf4d29a96e39d92830aba631b833a6d3 100644
--- a/scipost/static/scipost/assets/js/scripts.js
+++ b/scipost/static/scipost/assets/js/scripts.js
@@ -42,7 +42,7 @@ $(function(){
     });
 
     // Auto-submit hook for general form elements
-    $("form .auto-submit input").on('change', function(){
+    $("form .auto-submit input, form.auto-submit input, form.auto-submit select").on('change', function(){
         $(this).parents('form').submit()
     });
 });
diff --git a/submissions/forms.py b/submissions/forms.py
index fe47475e57d4c1f80e52bd8bb1c246dddab27ba0..7cf9c9c1db4f4a87ce0b24e5db9dcba0d5688386 100644
--- a/submissions/forms.py
+++ b/submissions/forms.py
@@ -12,7 +12,7 @@ from .constants import ASSIGNMENT_BOOL, ASSIGNMENT_REFUSAL_REASONS, STATUS_RESUB
                        REPORT_ACTION_CHOICES, REPORT_REFUSAL_CHOICES, STATUS_REVISION_REQUESTED,\
                        STATUS_REJECTED, STATUS_REJECTED_VISIBLE, STATUS_RESUBMISSION_INCOMING,\
                        STATUS_DRAFT, STATUS_UNVETTED, REPORT_ACTION_ACCEPT, REPORT_ACTION_REFUSE,\
-                       STATUS_VETTED, EXPLICIT_REGEX_MANUSCRIPT_CONSTRAINTS
+                       STATUS_VETTED, EXPLICIT_REGEX_MANUSCRIPT_CONSTRAINTS, SUBMISSION_STATUS
 from . import exceptions, helpers
 from .models import Submission, RefereeInvitation, Report, EICRecommendation, EditorialAssignment,\
                     iThenticateReport
@@ -42,6 +42,17 @@ class SubmissionSearchForm(forms.Form):
         )
 
 
+class SubmissionPoolFilterForm(forms.Form):
+    status = forms.ChoiceField(choices=((None, 'All statuses'),) + SUBMISSION_STATUS,
+                               required=False)
+
+    def search(self, queryset):
+        if self.cleaned_data.get('status'):
+            # Do extra check on non-required field to never show errors on template
+            return queryset.filter(status=self.cleaned_data['status'])
+        return queryset
+
+
 ###############################
 # Submission and resubmission #
 ###############################
diff --git a/submissions/managers.py b/submissions/managers.py
index ca6bf98c7215811cffda6278abe18d7aa54fb85b..5708f37f64af239999ea1bd1f3dda9c5f8feb268 100644
--- a/submissions/managers.py
+++ b/submissions/managers.py
@@ -199,6 +199,9 @@ class EditorialAssignmentQuerySet(models.QuerySet):
     def ongoing(self):
         return self.filter(completed=False).accepted()
 
+    def open(self):
+        return self.filter(accepted=None, deprecated=False)
+
 
 class EICRecommendationManager(models.Manager):
     def get_for_user_in_pool(self, user):
diff --git a/submissions/templates/partials/submissions/admin/submission_tooltip.html b/submissions/templates/partials/submissions/admin/submission_tooltip.html
index c2968b9a79145bbd96ea69ada144e497ee8f85a3..bdd541b910663d2361fb20b7bf4c1e85aa1ad565 100644
--- a/submissions/templates/partials/submissions/admin/submission_tooltip.html
+++ b/submissions/templates/partials/submissions/admin/submission_tooltip.html
@@ -1,4 +1,4 @@
-<span class="circle-clickable no-break" data-toggle="tooltip" data-html="true"
+<i class="fa fa-info-circle" data-toggle="tooltip" data-html="true"
     title="
         {{submission.arxiv_identifier_w_vn_nr}}<hr>Status: {{submission.get_status_display}}<br>Latest activity: {{submission.latest_activity}}
-">?</span>
+"></i>
diff --git a/submissions/templates/partials/submissions/pool/submission_li.html b/submissions/templates/partials/submissions/pool/submission_li.html
new file mode 100644
index 0000000000000000000000000000000000000000..bff3e4448e2cf1e4dc01ce82c27a2624f5b455c3
--- /dev/null
+++ b/submissions/templates/partials/submissions/pool/submission_li.html
@@ -0,0 +1,23 @@
+<div class="row pool-item mb-0">
+    <div class="icons{% if is_current %} text-info{% endif %}">
+        {% include 'partials/submissions/admin/submission_tooltip.html' with submission=submission %}
+        {% if submission.editor_in_charge == request.user.contributor %}
+            <i class="fa fa-gavel mt-1{% if not is_current %} text-primary{% endif %}" data-toggle="tooltip" data-html="true" title="You are editor-in-charge"></i>
+        {% elif not submission.editor_in_charge %}
+            <i class="fa fa-exclamation mt-1 px-1 text-danger" data-toggle="tooltip" data-html="true" title="You can volunteer to become Editor-in-charge"></i>
+        {% endif %}
+    </div>
+    <div class="item col-auto">
+        {% if is_current %}
+            <strong>
+        {% endif %}
+            <p class="mb-2">
+                <a href="{% url 'submissions:pool' submission.arxiv_identifier_w_vn_nr %}">{{ submission.title }}</a><br>
+                <em>by {{ submission.author_list }}</em>
+            </p>
+            <p class="label label-{% if submission.status == 'unassigned' %}outline-danger{% else %}secondary{% endif %} label-sm">{{ submission.get_status_display }}</p>
+        {% if is_current %}
+            </strong>
+        {% endif %}
+    </div>
+</div>
diff --git a/submissions/templates/submissions/_submission_assignment_request.html b/submissions/templates/submissions/_submission_assignment_request.html
index cceb540850b6a489ae5161372e3c018177ad76dd..4f274474ef169f87858842bf39fdadcec8618868 100644
--- a/submissions/templates/submissions/_submission_assignment_request.html
+++ b/submissions/templates/submissions/_submission_assignment_request.html
@@ -8,7 +8,7 @@
     <h1>Accept or Decline this Assignment</h1>
     <h3 class="mb-2">By accepting, you will be required to start a refereeing round on the next screen.</h3>
 
-    <form action="{% url 'submissions:accept_or_decline_assignment_ack' assignment_id=assignment.id %}" method="post">
+    <form action="{% url 'submissions:assignment_request' assignment_id=assignment.id %}" method="post">
         {% csrf_token %}
         <div class="form-group row">
             <div class="col-12">
diff --git a/submissions/templates/submissions/accept_or_decline_assignment_ack.html b/submissions/templates/submissions/accept_or_decline_assignment_ack.html
deleted file mode 100644
index 67a7551cca06e5c12e852c533d727220874f89e1..0000000000000000000000000000000000000000
--- a/submissions/templates/submissions/accept_or_decline_assignment_ack.html
+++ /dev/null
@@ -1,20 +0,0 @@
-{% extends 'scipost/base.html' %}
-
-{% block pagetitle %}: accept or decline assignment (ack){% endblock pagetitle %}
-
-{% block content %}
-
-
-  {% if errormessage %}
-      <p>{{ errormessage }}</p>
-      <p>Return to the <a href="{% url 'submissions:pool' %}">Submissions Pool</a>.</p>
-
-  {% elif assignment.accepted %}
-      <h1>Thank you for becoming Editor-in-charge of this submission.</h1>
-      <p>Please go to the <a href="{% url 'submissions:editorial_page' arxiv_identifier_w_vn_nr=assignment.submission.arxiv_identifier_w_vn_nr %}">Submission's editorial page</a> and select referees now.</p>
-  {% else %}
-      <h1>Thank you for considering.</h1>
-      <p>Return to the <a href="{% url 'submissions:pool' %}">Submissions Pool</a>.</p>
-  {% endif %}
-
-{% endblock content %}
diff --git a/submissions/templates/submissions/pool/assignment_request.html b/submissions/templates/submissions/pool/assignment_request.html
new file mode 100644
index 0000000000000000000000000000000000000000..a01954b9f109d98ef7b6ce2c5497d07229598fa5
--- /dev/null
+++ b/submissions/templates/submissions/pool/assignment_request.html
@@ -0,0 +1,20 @@
+{% extends 'submissions/pool/base.html' %}
+
+{% load bootstrap %}
+{% load guardian_tags %}
+{% load scipost_extras %}
+{% load submissions_extras %}
+
+{% block breadcrumb_items %}
+    {{ block.super }}
+    <span class="breadcrumb-item">Assignment Request</span>
+{% endblock %}
+
+{% block pagetitle %}: Assignment Request{% endblock pagetitle %}
+
+{% block content %}
+    <h1>Assignment request</h1>
+    <h3>Can you act as Editor-in-charge? (see below to accept/decline)</h3>
+
+    {% include 'submissions/_submission_assignment_request.html' with assignment=assignment consider_assignment_form=form %}
+{% endblock %}
diff --git a/submissions/templates/submissions/pool/base.html b/submissions/templates/submissions/pool/base.html
new file mode 100644
index 0000000000000000000000000000000000000000..ca638eb5ab558e81c5911ad27e2788d812086d5a
--- /dev/null
+++ b/submissions/templates/submissions/pool/base.html
@@ -0,0 +1,13 @@
+{% extends 'scipost/base.html' %}
+
+{% block body_class %}{{ block.super }} pool{% endblock %}
+
+{% block breadcrumb %}
+    <nav class="breadcrumb py-md-2 px-0">
+        <div class="container">
+            {% block breadcrumb_items %}
+                <a href="{% url 'submissions:pool' %}" class="breadcrumb-item">Pool</a>
+            {% endblock %}
+        </div>
+    </nav>
+{% endblock %}
diff --git a/submissions/templates/submissions/pool/pool.html b/submissions/templates/submissions/pool/pool.html
new file mode 100644
index 0000000000000000000000000000000000000000..12bef8d6c0f2ad76fe2b981eeaeaf9397d65d16e
--- /dev/null
+++ b/submissions/templates/submissions/pool/pool.html
@@ -0,0 +1,87 @@
+{% extends 'submissions/pool/base.html' %}
+
+{% load bootstrap %}
+{% load guardian_tags %}
+{% load scipost_extras %}
+{% load submissions_extras %}
+
+{% block breadcrumb_items %}
+    <a href="{% url 'scipost:personal_page' %}" class="breadcrumb-item">Personal Page</a>
+    {% if submission %}
+        <a href="{% url 'submissions:pool' %}" class="breadcrumb-item">Pool</a>
+        <span class="breadcrumb-item">{{ submission.arxiv_identifier_w_vn_nr }}</span>
+    {% else %}
+        <span class="breadcrumb-item">Pool</span>
+    {% endif %}
+{% endblock %}
+
+{% block pagetitle %}: Submissions Pool{% endblock pagetitle %}
+
+{% block content %}
+    {% with is_ECAdmin=request.user|is_in_group:'Editorial Administrators' %}
+        <a href="{% url 'submissions:pool' %}?test=1">See old pool layout</a>
+        <div class="row">
+            <div class="col-md-7">
+                <h1>SciPost Submissions Pool</h1>
+
+                {% if assignments_to_consider %}
+                    <h3>Your open Assignment Requests <i class="fa fa-exclamation-circle text-warning"></i></h3>
+                    <ul>
+                        {% for assignment in assignments_to_consider %}
+                            <li>On submission: {{ assignment.submission }}<br>
+                                <a href="{% url 'submissions:assignment_request' assignment.id %}">Accept or decline here</a>
+                            </li>
+                        {% endfor %}
+                    </ul>
+                {% endif %}
+
+                {% if recs_to_vote_on %}
+                    <h3>Recommendations to vote on <i class="fa fa-exclamation-circle text-warning"></i></h3>
+                    <ul>
+                        {% for recommendation in recs_to_vote_on %}
+                            <li>On Editorial Recommendation of: {{ recommendation.submission }}<br>
+                                <a href="{% url 'submissions:vote_on_rec' rec_id=recommendation.id %}">See the Editorial Recommendation</a>
+                            </li>
+                        {% endfor %}
+                    </ul>
+                {% endif %}
+
+                {% if assignments_to_consider or recs_to_vote_on %}
+                    <hr>
+                {% endif %}
+
+                {% if search_form %}
+                    <h3>Filter by status</h3>
+                    <form method="get" class="auto-submit mb-3">
+                        {{ search_form|bootstrap_inline }}
+                    </form>
+                {% endif %}
+
+                <ul class="list-unstyled">
+                    <!-- Submissions list -->
+                    {% for sub in submissions_in_pool %}
+                        <li class="p-2{% if sub == submission %} bg-light{% endif %}">
+                            {% if sub == submission %}
+                                {% include 'partials/submissions/pool/submission_li.html' with submission=sub is_current=1 %}
+                            {% else %}
+                                {% include 'partials/submissions/pool/submission_li.html' with submission=sub is_current=0 %}
+                            {% endif %}
+                        </li>
+                    {% empty %}
+                        <li>
+                            <h3 class="text-center"><i class="fa fa-question fa-2x"></i><br>No Submissions found.</h3>
+                        </li>
+                    {% endfor %}
+                </ul>
+            </div><!-- End page content -->
+
+            <div class="col-md-5">
+                {% if submission %}
+                    {% include 'submissions/_submission_card_in_pool.html' with submission=submission remark_form=remark_form is_ECAdmin=is_ECAdmin user=request.user %}
+                {% else %}
+                    <h3><em>Click on a submission to see its summary and actions</em></h3>
+                {% endif %}
+            </div>
+        </div>
+    {% endwith %}
+{% endblock %}
diff --git a/submissions/templates/submissions/pool/recommendation.html b/submissions/templates/submissions/pool/recommendation.html
new file mode 100644
index 0000000000000000000000000000000000000000..fd05c4be4d6a89ee92cb2b9a2e1ecd8e0de4a0cf
--- /dev/null
+++ b/submissions/templates/submissions/pool/recommendation.html
@@ -0,0 +1,31 @@
+{% extends 'submissions/pool/base.html' %}
+
+{% load bootstrap %}
+
+{% block breadcrumb_items %}
+    {{ block.super }}
+    <span class="breadcrumb-item">Editorial Recommendation</span>
+{% endblock %}
+
+{% block pagetitle %}: Editorial Recommendation{% endblock pagetitle %}
+
+{% block content %}
+    <h1>Editorial Recommendation to vote on</h1>
+
+    {# <div class="card card-outline-secondary">#}
+        {% include 'submissions/_submission_card_fellow_content.html' with submission=recommendation.submission %}
+    {# </div>#}
+
+    {# <div class="card card-outline-secondary">#}
+        {% include 'submissions/_recommendation_fellow_content.html' with recommendation=recommendation %}
+        <div class="card-footer">
+            <h3>Your position on this recommendation</h3>
+            <form action="{% url 'submissions:vote_on_rec' rec_id=recommendation.id %}" method="post">
+                {% csrf_token %}
+                {{ form|bootstrap:'0,12' }}
+                <input type="submit" name="submit" value="Cast your vote" class="btn btn-primary submitButton" id="submit-id-submit">
+            </form>
+        </div>
+    {# </div>#}
+
+{% endblock %}
diff --git a/submissions/urls.py b/submissions/urls.py
index c1f46c9ab3839e1758c764de519a0ae91a24eecf..432335b1f3b62669f986e7ccb9c75985c74a1a9f 100644
--- a/submissions/urls.py
+++ b/submissions/urls.py
@@ -44,9 +44,10 @@ urlpatterns = [
     url(r'^submit_manuscript$', views.RequestSubmission.as_view(), name='submit_manuscript'),
     url(r'^submit_manuscript/prefill$', views.prefill_using_arxiv_identifier,
         name='prefill_using_identifier'),
-    url(r'^pool$', views.pool, name='pool'),
+    url(r'^pool/$', views.pool, name='pool'),
+    url(r'^pool/{regex}/$'.format(regex=SUBMISSIONS_COMPLETE_REGEX), views.pool, name='pool'),
     url(r'^submissions_by_status/(?P<status>[a-zA-Z_]+)$',
-        views.submissions_by_status, name='submissions_by_status'),
+        views.submissions_by_status, name='submissions_by_status'),  # DEPRECATED
     url(r'^add_remark/{regex}$'.format(regex=SUBMISSIONS_COMPLETE_REGEX),
         views.add_remark, name='add_remark'),
 
@@ -55,8 +56,8 @@ urlpatterns = [
         views.assign_submission, name='assign_submission'),
     url(r'^assign_submission_ack/{regex}$'.format(regex=SUBMISSIONS_COMPLETE_REGEX),
         views.assign_submission_ack, name='assign_submission_ack'),
-    url(r'^accept_or_decline_assignment_ack/(?P<assignment_id>[0-9]+)$',
-        views.accept_or_decline_assignment_ack, name='accept_or_decline_assignment_ack'),
+    url(r'^pool/assignment_request/(?P<assignment_id>[0-9]+)$',
+        views.assignment_request, name='assignment_request'),
     url(r'^volunteer_as_EIC/{regex}$'.format(regex=SUBMISSIONS_COMPLETE_REGEX),
         views.volunteer_as_EIC, name='volunteer_as_EIC'),
     url(r'^assignment_failed/{regex}$'.format(regex=SUBMISSIONS_COMPLETE_REGEX),
diff --git a/submissions/views.py b/submissions/views.py
index 7f53451343204d046ff2f976e5e9fb5a96faee4f..47df6ea5571449bcdaf7acd7b8d6a00f01baf434 100644
--- a/submissions/views.py
+++ b/submissions/views.py
@@ -31,13 +31,14 @@ from .forms import SubmissionIdentifierForm, RequestSubmissionForm, SubmissionSe
                    ConsiderRefereeInvitationForm, EditorialCommunicationForm,\
                    EICRecommendationForm, ReportForm, VetReportForm, VotingEligibilityForm,\
                    SubmissionCycleChoiceForm, ReportPDFForm, SubmissionReportsForm,\
-                   iThenticateReportForm
+                   iThenticateReportForm, SubmissionPoolFilterForm
 from .utils import SubmissionUtils
 
 from mails.views import MailEditingSubView
 from scipost.forms import ModifyPersonalMessageForm, RemarkForm
 from scipost.models import Contributor, Remark, RegistrationInvitation
 from scipost.utils import Utils
+from scipost.permissions import is_tester
 
 from comments.forms import CommentForm
 from production.models import ProductionStream
@@ -324,7 +325,7 @@ def editorial_workflow(request):
 
 @login_required
 @permission_required('scipost.can_view_pool', raise_exception=True)
-def pool(request):
+def pool(request, arxiv_identifier_w_vn_nr=None):
     """
     The Submissions pool contains all submissions which are undergoing
     the editorial process, from submission
@@ -341,8 +342,7 @@ def pool(request):
                                              .filter(
                                                 submission__status__in=['voting_in_preparation']))
     contributor = Contributor.objects.get(user=request.user)
-    assignments_to_consider = EditorialAssignment.objects.filter(
-        to=contributor, accepted=None, deprecated=False)
+    assignments_to_consider = EditorialAssignment.objects.open().filter(to=contributor)
     consider_assignment_form = ConsiderAssignmentForm()
     recs_to_vote_on = (EICRecommendation.objects.get_for_user_in_pool(request.user)
                        .filter(eligible_to_vote=contributor)
@@ -362,12 +362,38 @@ def pool(request):
                'recs_to_vote_on': recs_to_vote_on,
                'rec_vote_form': rec_vote_form,
                'remark_form': remark_form, }
-    return render(request, 'submissions/pool.html', context)
+
+    # The following is in test phase. Update if test is done
+    # --
+
+    # Search
+    search_form = SubmissionPoolFilterForm(request.GET or None)
+    if search_form.is_valid():
+        context['submissions_in_pool'] = search_form.search(context['submissions_in_pool'])
+    context['search_form'] = search_form
+
+    # Show specific submission in the pool
+    if arxiv_identifier_w_vn_nr:
+        try:
+            context['submission'] = context['submissions_in_pool'].get(
+                arxiv_identifier_w_vn_nr=arxiv_identifier_w_vn_nr)
+        except Submission.DoesNotExist:
+            context['submission'] = None
+
+    # Temporary test logic: only testers see the new Pool
+    if is_tester(request.user) and not request.GET.get('test'):
+        template = 'submissions/pool/pool.html'
+    else:
+        template = 'submissions/pool.html'
+    return render(request, template, context)
 
 
 @login_required
 @permission_required('scipost.can_view_pool', raise_exception=True)
 def submissions_by_status(request, status):
+    # ---
+    # DEPRECATED AS PER NEW POOL
+    # ---
     status_dict = dict(SUBMISSION_STATUS)
     if status not in status_dict.keys():
         errormessage = 'Unknown status.'
@@ -448,56 +474,76 @@ def assign_submission_ack(request, arxiv_identifier_w_vn_nr):
 @login_required
 @permission_required('scipost.can_take_charge_of_submissions', raise_exception=True)
 @transaction.atomic
-def accept_or_decline_assignment_ack(request, assignment_id):
-    contributor = Contributor.objects.get(user=request.user)
-    assignment = get_object_or_404(EditorialAssignment, pk=assignment_id)
+def assignment_request(request, assignment_id):
+    """
+    Process EditorialAssignment acceptance/denial form or show if not submitted.
+    """
+    assignment = get_object_or_404(EditorialAssignment.objects.open(),
+                                   to=request.user.contributor, pk=assignment_id)
+
     errormessage = None
     if assignment.submission.status == 'assignment_failed':
         errormessage = 'This Submission has failed pre-screening and has been rejected.'
-        context = {'errormessage': errormessage}
-        return render(request, 'submissions/accept_or_decline_assignment_ack.html', context)
-    if assignment.submission.editor_in_charge:
+
+    elif assignment.submission.editor_in_charge:
         errormessage = (assignment.submission.editor_in_charge.get_title_display() + ' ' +
                         assignment.submission.editor_in_charge.user.last_name +
                         ' has already agreed to be Editor-in-charge of this Submission.')
-        context = {'errormessage': errormessage}
-        return render(request, 'submissions/accept_or_decline_assignment_ack.html', context)
-    if request.method == 'POST':
-        form = ConsiderAssignmentForm(request.POST)
-        if form.is_valid():
-            assignment.date_answered = timezone.now()
-            if form.cleaned_data['accept'] == 'True':
-                assignment.accepted = True
-                assignment.to = contributor
-                assignment.submission.status = 'EICassigned'
-                assignment.submission.editor_in_charge = contributor
-                assignment.submission.open_for_reporting = True
-                deadline = timezone.now() + datetime.timedelta(days=28)  # for papers
-                if assignment.submission.submitted_to_journal == 'SciPost Physics Lecture Notes':
-                    deadline += datetime.timedelta(days=28)
-                assignment.submission.reporting_deadline = deadline
-                assignment.submission.open_for_commenting = True
-                assignment.submission.latest_activity = timezone.now()
-
-                SubmissionUtils.load({'assignment': assignment})
-                SubmissionUtils.deprecate_other_assignments()
-                assign_perm('can_take_editorial_actions', contributor.user, assignment.submission)
-                ed_admins = Group.objects.get(name='Editorial Administrators')
-                assign_perm('can_take_editorial_actions', ed_admins, assignment.submission)
-                SubmissionUtils.send_EIC_appointment_email()
-                SubmissionUtils.send_author_prescreening_passed_email()
-
-                # Add SubmissionEvents
-                assignment.submission.add_general_event('The Editor-in-charge has been assigned.')
-            else:
-                assignment.accepted = False
-                assignment.refusal_reason = form.cleaned_data['refusal_reason']
-                assignment.submission.status = 'unassigned'
-            assignment.save()
-            assignment.submission.save()
-
-    context = {'assignment': assignment}
-    return render(request, 'submissions/accept_or_decline_assignment_ack.html', context)
+
+    if errormessage:
+        # Assignments can get stuck here,
+        # if errormessage is given the contributor can't close the assignment!!
+        messages.warning(request, errormessage)
+        return redirect(reverse('submissions:pool'))
+
+    form = ConsiderAssignmentForm(request.POST or None)
+    if form.is_valid():
+        assignment.date_answered = timezone.now()
+        if form.cleaned_data['accept'] == 'True':
+            assignment.accepted = True
+            assignment.to = request.user.contributor
+            assignment.submission.status = 'EICassigned'
+            assignment.submission.editor_in_charge = request.user.contributor
+            assignment.submission.open_for_reporting = True
+            deadline = timezone.now() + datetime.timedelta(days=28)  # for papers
+            if assignment.submission.submitted_to_journal == 'SciPost Physics Lecture Notes':
+                deadline += datetime.timedelta(days=28)
+            assignment.submission.reporting_deadline = deadline
+            assignment.submission.open_for_commenting = True
+            assignment.submission.latest_activity = timezone.now()
+
+            SubmissionUtils.load({'assignment': assignment})
+            SubmissionUtils.deprecate_other_assignments()
+            assign_perm('can_take_editorial_actions', request.user, assignment.submission)
+            ed_admins = Group.objects.get(name='Editorial Administrators')
+            assign_perm('can_take_editorial_actions', ed_admins, assignment.submission)
+            SubmissionUtils.send_EIC_appointment_email()
+            SubmissionUtils.send_author_prescreening_passed_email()
+
+            # Add SubmissionEvents
+            assignment.submission.add_general_event('The Editor-in-charge has been assigned.')
+            msg = 'Thank you for becoming Editor-in-charge of this submission.'
+            url = reverse('submissions:editorial_page',
+                          args=(assignment.submission.arxiv_identifier_w_vn_nr,))
+        else:
+            assignment.accepted = False
+            assignment.refusal_reason = form.cleaned_data['refusal_reason']
+            assignment.submission.status = 'unassigned'
+            msg = 'Thank you for considering'
+            url = reverse('submissions:pool')
+        # Save assignment and submission
+        assignment.save()
+        assignment.submission.save()
+
+        # Form submitted, redirect user
+        messages.success(request, msg)
+        return redirect(url)
+
+    context = {
+        'assignment': assignment,
+        'form': form
+    }
+    return render(request, 'submissions/pool/assignment_request.html', context)
 
 
 @login_required
@@ -506,7 +552,7 @@ def accept_or_decline_assignment_ack(request, assignment_id):
 def volunteer_as_EIC(request, arxiv_identifier_w_vn_nr):
     """
     Called when a Fellow volunteers while perusing the submissions pool.
-    This is an adapted version of the accept_or_decline_assignment_ack method.
+    This is an adapted version of the assignment_request method.
     """
     submission = get_object_or_404(Submission.objects.get_pool(request.user),
                                    arxiv_identifier_w_vn_nr=arxiv_identifier_w_vn_nr)
@@ -1350,9 +1396,14 @@ def vote_on_rec(request, rec_id):
                             remark=form.cleaned_data['remark'])
             remark.save()
         recommendation.save()
+        messages.success(request, 'Thank you for your vote.')
         return redirect(reverse('submissions:pool'))
 
-    return redirect(reverse('submissions:pool'))
+    context = {
+        'recommendation': recommendation,
+        'form': form
+    }
+    return render(request, 'submissions/pool/recommendation.html', context)
 
 
 @permission_required('scipost.can_prepare_recommendations_for_voting', raise_exception=True)