diff --git a/apps/note/urls.py b/apps/note/urls.py
index e1cc5216212fbdddd8738c97170bdd637a00ef1e..fea911f6ac5ebdeaa871240fe56c764d024db675 100644
--- a/apps/note/urls.py
+++ b/apps/note/urls.py
@@ -12,7 +12,6 @@ urlpatterns = [
     path('buttons/create/', views.TransactionTemplateCreateView.as_view(), name='template_create'),
     path('buttons/update/<int:pk>/', views.TransactionTemplateUpdateView.as_view(), name='template_update'),
     path('buttons/', views.TransactionTemplateListView.as_view(), name='template_list'),
-    path('consos/<str:template_type>/', views.ConsoView.as_view(), name='consos'),
     path('consos/', views.ConsoView.as_view(), name='consos'),
 
     # API for the note autocompleter
diff --git a/apps/note/views.py b/apps/note/views.py
index 9a23a2318e4f92d46b23795847d544249d0d35a7..167ef4f0d4c4c8a45c251e7e60af2ebb622b98b1 100644
--- a/apps/note/views.py
+++ b/apps/note/views.py
@@ -8,7 +8,7 @@ from django.urls import reverse
 from django.utils.translation import gettext_lazy as _
 from django.views.generic import CreateView, ListView, UpdateView
 
-from .models import Transaction, TransactionCategory, TransactionTemplate, Alias
+from .models import Transaction, TransactionTemplate, Alias
 from .forms import TransactionForm, TransactionTemplateForm, ConsoForm
 
 
@@ -138,21 +138,17 @@ class ConsoView(LoginRequiredMixin, CreateView):
         Add some context variables in template such as page title
         """
         context = super().get_context_data(**kwargs)
-        context['template_types'] = TransactionCategory.objects.all()
+        context['transaction_templates'] = TransactionTemplate.objects.all() \
+            .order_by('template_type')
+        context['title'] = _("Consommations")
 
+        # select2 compatibility
         context['no_cache'] = True
 
-        if 'template_type' not in self.kwargs.keys():
-            return context
-
-        template_type = TransactionCategory.objects.filter(
-            name=self.kwargs.get('template_type')).get()
-        context['buttons'] = TransactionTemplate.objects.filter(
-            template_type=template_type)
-        context['title'] = template_type
-
         return context
 
     def get_success_url(self):
-        return reverse('note:consos',
-                       args=(self.kwargs.get('template_type'), ))
+        """
+        When clicking a button, reload the same page
+        """
+        return reverse('note:consos')
diff --git a/templates/member/profile_detail.html b/templates/member/profile_detail.html
index f68dc278e84e88dbc358ee03c6ffbc118240b2c5..655f9893271d4c582a087d701b0ad53ae0c1ff62 100644
--- a/templates/member/profile_detail.html
+++ b/templates/member/profile_detail.html
@@ -54,7 +54,7 @@
                         <i class="fa fa-users"></i> {% trans "View my memberships" %}
                     </a>
                 </div>
-                <div id="clubListCollapse" class="collapse overflow-auto show" aria-labelledby="clubListHeading" data-parent="#accordionProfile">
+                <div id="clubListCollapse" class="collapse show" style="overflow:auto hidden" aria-labelledby="clubListHeading" data-parent="#accordionProfile">
                     {% render_table club_list %}
                 </div>
             </div>
@@ -67,7 +67,7 @@
                         <i class="fa fa-euro"></i> Historique des transactions
                     </a>
                 </div>
-                <div id="historyListCollapse" class="collapse overflow-auto" aria-labelledby="historyListHeading" data-parent="#accordionProfile">
+                <div id="historyListCollapse" class="collapse" style="overflow:auto hidden" aria-labelledby="historyListHeading" data-parent="#accordionProfile">
                     {% render_table history_list %}
                 </div>
             </div>
diff --git a/templates/note/conso_form.html b/templates/note/conso_form.html
index e2106f1794c41d65c42c438df6fa4771c73057b2..b121ad54d12f970a66f9572194d3b45d8a3376c8 100644
--- a/templates/note/conso_form.html
+++ b/templates/note/conso_form.html
@@ -2,40 +2,96 @@
 
 {% load i18n static pretty_money %}
 
+{# Remove page title #}
+{% block contenttitle %}{% endblock %}
+
 {% block content %}
-    <fieldset class="module aligned">
-        {% for type in template_types %}
-            <a href="{% url 'note:consos' template_type=type %}"><button>{{ type }}</button></a>
-        {% endfor %}
-    </fieldset>
-    <form method="post" onsubmit="window.onbeforeunload=null">{% csrf_token %}
-        {% if form.non_field_errors %}
-            <p class="errornote">
-                {% for error in form.non_field_errors %}
-                    {{ error }}
+    {# Regroup buttons under categories #}
+    {% regroup transaction_templates by template_type as template_types %}
+
+    <form method="post" onsubmit="window.onbeforeunload=null">
+        {% csrf_token %}
+
+        <div class="row">
+            <div class="col-sm-5 mb-4">
+                {% if form.non_field_errors %}
+                    <p class="errornote">
+                        {% for error in form.non_field_errors %}
+                            {{ error }}
+                        {% endfor %}
+                    </p>
+                {% endif %}
+                {% for field in form %}
+                    <div class="form-row{% if field.errors %} errors{% endif %}">
+                        {{ field.errors }}
+                        <div>
+                            {{ field.label_tag }}
+                            {% if field.is_readonly %}
+                                <div class="readonly">{{ field.contents }}</div>
+                            {% else %}
+                                {{ field }}
+                            {% endif %}
+                            {% if field.field.help_text %}
+                                <div class="help">{{ field.field.help_text|safe }}</div>
+                            {% endif %}
+                        </div>
+                    </div>
                 {% endfor %}
-            </p>
-        {% endif %}
-        <fieldset class="module aligned">
-            {% for field in form %}
-                <div class="form-row{% if field.errors %} errors{% endif %}">
-                    {{ field.errors }}
-                    <div>
-                        {{ field.label_tag }}
-                        {% if field.is_readonly %}
-                            <div class="readonly">{{ field.contents }}</div>
-                        {% else %}
-                            {{ field }}
-                        {% endif %}
-                        {% if field.field.help_text %}
-                            <div class="help">{{ field.field.help_text|safe }}</div>
-                        {% endif %}
+            </div>
+
+            <div class="col-sm-7">
+                <div class="card text-center shadow">
+                    {# Tabs for button categories #}
+                    <div class="card-header">
+                        <ul class="nav nav-tabs nav-fill card-header-tabs">
+                            {% for template_type in template_types %}
+                                <li class="nav-item">
+                                    <a class="nav-link" data-toggle="tab" href="#{{ template_type.grouper|slugify }}">
+                                        {{ template_type.grouper }}
+                                    </a>
+                                </li>
+                            {% endfor %}
+                        </ul>
+                    </div>
+
+                    {# Tabs content #}
+                    <div class="card-body">
+                        <div class="tab-content">
+                            {% for template_type in template_types %}
+                                <div class="tab-pane" id="{{ template_type.grouper|slugify }}">
+                                    <div class="d-inline-flex flex-wrap justify-content-center">
+                                        {% for button in template_type.list %}
+                                            <button class="btn btn-outline-dark rounded-0 flex-fill"
+                                                    name="button" value="{{ button.name }}">
+                                                {{ button.name }} ({{ button.amount | pretty_money }})
+                                            </button>
+                                        {% endfor %}
+                                    </div>
+                                </div>
+                            {% endfor %}
+                        </div>
                     </div>
                 </div>
-            {% endfor %}
-            {% for button in buttons %}
-                <button name="button" value="{{ button.name }}">{{ button.name }} ({{ button.amount | pretty_money }})</button>
-            {% endfor %}
-        </fieldset>
+            </div>
+        </div>
     </form>
 {% endblock %}
+
+{% block extrajavascript %}
+    <script type="text/javascript">
+        $(document).ready(function() {
+            // If hash of a category in the URL, then select this category
+            // else select the first one
+            if (location.hash) {
+                $("a[href='" + location.hash + "']").tab("show");
+            } else {
+                $("a[data-toggle='tab']").first().tab("show");
+            }
+
+            // When selecting a category, change URL
+            $(document.body).on("click", "a[data-toggle='tab']", function(event) {
+                location.hash = this.getAttribute("href");
+            });
+        });
+    </script>
+{% endblock %}