diff --git a/aleksis/apps/alsijil/forms.py b/aleksis/apps/alsijil/forms.py
index 35eb75a8da2c32db870a62d533fb982166c85cb1..c09381a0d0012fe5ae57f912996a570677336d31 100644
--- a/aleksis/apps/alsijil/forms.py
+++ b/aleksis/apps/alsijil/forms.py
@@ -81,6 +81,12 @@ PersonalNoteFormSet = forms.modelformset_factory(
 
 
 class RegisterAbsenceForm(forms.Form):
+    layout = Layout(Row("date_start", "date_end"),
+                    Row("from_period"),
+                    Row("absent", "excused"),
+                    Row("person"),
+                    Row("remarks")
+                    )
     date_start = forms.DateField(
         label=_("Start date"), initial=datetime.today
     )
@@ -97,6 +103,8 @@ class RegisterAbsenceForm(forms.Form):
 
 
 class PersonalNoteFilterForm(forms.ModelForm):
+    layout = Layout(Row("identifier", "description"), Row("regex"))
+
     class Meta:
         model = PersonalNoteFilter
         fields = ["identifier", "description", "regex"]
diff --git a/aleksis/apps/alsijil/static/css/alsijil/alsijil.css b/aleksis/apps/alsijil/static/css/alsijil/alsijil.css
new file mode 100644
index 0000000000000000000000000000000000000000..e3ca3bf017f0549701a2be7c02f0b6be8a7d3f88
--- /dev/null
+++ b/aleksis/apps/alsijil/static/css/alsijil/alsijil.css
@@ -0,0 +1,9 @@
+table.datatable a {
+  color: inherit !important;
+}
+
+table a.tr-link {
+  display: block;
+  width: inherit;
+  height: inherit;
+}
diff --git a/aleksis/apps/alsijil/static/css/alsijil/lesson.css b/aleksis/apps/alsijil/static/css/alsijil/lesson.css
index 22a1be5d539fb0c1fedcd6d0b14ec8f38ec4e648..83b7db8e90d35891d0106f73ebf6176b36d32262 100644
--- a/aleksis/apps/alsijil/static/css/alsijil/lesson.css
+++ b/aleksis/apps/alsijil/static/css/alsijil/lesson.css
@@ -1,3 +1,11 @@
 .alsijil-lesson-cancelled {
     text-decoration: line-through;
 }
+
+@media only screen and (max-width : 992px) {
+    table.responsive-table.alsijil-table th,
+    table.responsive-table.alsijil-table td {
+      margin: 0;
+      vertical-align: top;
+      height: 109px;}
+}
diff --git a/aleksis/apps/alsijil/templates/alsijil/register_absence.html b/aleksis/apps/alsijil/templates/alsijil/absences/register.html
similarity index 89%
rename from aleksis/apps/alsijil/templates/alsijil/register_absence.html
rename to aleksis/apps/alsijil/templates/alsijil/absences/register.html
index 94651f01e10d175c614b923e1b69fd9556025d4f..908f3b32194889eb206244a30bf3b843a8193309 100644
--- a/aleksis/apps/alsijil/templates/alsijil/register_absence.html
+++ b/aleksis/apps/alsijil/templates/alsijil/absences/register.html
@@ -10,7 +10,7 @@
   <form method="post">
     {% csrf_token %}
     {% form form=register_absence_form %}{% endform %}
-    {% include "core/save_button.html" %}
+    {% include "core/partials/save_button.html" %}
   </form>
 
 {% endblock %}
diff --git a/aleksis/apps/alsijil/templates/alsijil/lesson.html b/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html
similarity index 91%
rename from aleksis/apps/alsijil/templates/alsijil/lesson.html
rename to aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html
index 16b2579c768b8d07dad41a8d2646c745fa7e34f4..2e7308ab04bcfb0e09b4e318067a4105406bd813 100644
--- a/aleksis/apps/alsijil/templates/alsijil/lesson.html
+++ b/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html
@@ -31,13 +31,13 @@
   <form method="post">
     <div class="row">
       <div class="col s12">
-        {% include "core/save_button.html" %}
+        {% include "core/partials/save_button.html" %}
       </div>
     </div>
     {% csrf_token %}
 
     <div class="row">
-      <div class="col s12 m12 l8">
+      <div class="col s12 m12 l6 xl8">
         <div class="card">
           <div class="card-content">
           <span class="card-title">
@@ -48,13 +48,13 @@
           </div>
         </div>
       </div>
-      <div class="col s12 m12 l4">
+      <div class="col s12 m12 l6 xl4">
         <div class="card">
           <div class="card-content">
           <span class="card-title">
             {% blocktrans %}Change history{% endblocktrans %}
           </span>
-            {% include 'core/crud_events.html' with obj=lesson_documentation %}
+            {% include 'core/partials/crud_events.html' with obj=lesson_documentation %}
           </div>
         </div>
       </div>
@@ -69,7 +69,7 @@
       </span>
             {% form form=personal_note_formset.management_form %}{% endform %}
 
-            <table class="striped responsive-table">
+            <table class="striped responsive-table alsijil-table">
               <thead>
               <tr>
                 <th>{% blocktrans %}Person{% endblocktrans %}</th>
@@ -123,7 +123,7 @@
 
     <div class="row">
       <div class="col s12">
-        {% include "core/save_button.html" %}
+        {% include "core/partials/save_button.html" %}
       </div>
     </div>
   </form>
diff --git a/aleksis/apps/alsijil/templates/alsijil/week_view.html b/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html
similarity index 78%
rename from aleksis/apps/alsijil/templates/alsijil/week_view.html
rename to aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html
index e709d4871d9907156ef15c28c8565cadcf94820d..e42575fd07fc5ad520575643a1db2effa61ba66a 100644
--- a/aleksis/apps/alsijil/templates/alsijil/week_view.html
+++ b/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html
@@ -12,7 +12,14 @@
 
 {% block content %}
   <div class="row">
-    <div class="col s10">
+    {% if group %}
+      <div class="col s12 m2 push-m10 l1 push-l11">
+        <a class="col s12 btn waves-effect waves-light right" href="{% url 'full_register_group' group.id %}">
+          <i class="material-icons center">print</i>
+        </a>
+      </div>
+    {% endif %}
+    <div class="col s12 {% if group %}m10 pull-m2 l11 pull-l1 {% endif %}">
       <form method="post" action="">
         {% csrf_token %}
         {% form form=select_form %}{% endform %}
@@ -21,28 +28,22 @@
         </button>
       </form>
     </div>
-    {% if group %}
-      <div class="col s2">
-        <a class="btn waves-effect waves-light right" href="{% url 'full_register_group' group.id %}">
-          <i class="material-icons center">print</i>
-        </a>
-      </div>
-    {% endif %}
   </div>
 
   <h4>{% blocktrans with el=el week=week.week %}CW {{ week }}: {{ instance }}{% endblocktrans %} </h4>
 
   {% if lesson_periods %}
     <div class="row">
-      <div class="col s7">
+      <div class="col s12 m7">
         {% regroup lesson_periods by period.get_weekday_display as periods_by_day %}
         {% for weekday, periods in periods_by_day %}
           <div class="card">
             <div class="card-content">
+              {% weekday_to_date week periods.0.period.weekday as current_date %}
               <span class="card-title">
-                {{ weekday }}
+                {{ weekday }}, {{ current_date }}
               </span>
-              <table class="striped responsive-table datatable">
+              <table class="striped datatable">
                 <thead>
                 <tr>
                   <th></th>
@@ -57,13 +58,21 @@
                     <td class="center-align">
                       {% include "alsijil/partials/lesson_status_icon.html" with period=period %}
                     </td>
-                    <td>{{ period.period.period }}</td>
+                    <td class="tr-link">
+                      <a class="tr-link" href="{% url 'lesson_by_week_and_period' week.year week.week period.id %}">
+                        {{ period.period.period }}.
+                      </a>
+                    </td>
                     <td>
-                      <a href="{% url 'lesson_by_week_and_period' week.year week.week period.id %}">
+                      <a class="tr-link" href="{% url 'lesson_by_week_and_period' week.year week.week period.id %}">
                         {{ period.get_subject.name }}
                       </a>
                     </td>
-                    <td>{{ period.get_teacher_names }}</td>
+                    <td>
+                      <a class="tr-link" href="{% url 'lesson_by_week_and_period' week.year week.week period.id %}">
+                        {{ period.get_teacher_names }}
+                      </a>
+                    </td>
                   </tr>
                 {% endfor %}
                 </tbody>
@@ -72,7 +81,7 @@
           </div>
         {% endfor %}
       </div>
-      <div class="col s5">
+      <div class="col s12 m5">
         <div class="card">
           <div class="card-content">
             <span class="card-title">
diff --git a/aleksis/apps/alsijil/templates/alsijil/personal_note_filters.html b/aleksis/apps/alsijil/templates/alsijil/personal_note_filter/list.html
similarity index 100%
rename from aleksis/apps/alsijil/templates/alsijil/personal_note_filters.html
rename to aleksis/apps/alsijil/templates/alsijil/personal_note_filter/list.html
diff --git a/aleksis/apps/alsijil/templates/alsijil/manage_personal_note_filter.html b/aleksis/apps/alsijil/templates/alsijil/personal_note_filter/manage.html
similarity index 55%
rename from aleksis/apps/alsijil/templates/alsijil/manage_personal_note_filter.html
rename to aleksis/apps/alsijil/templates/alsijil/personal_note_filter/manage.html
index 8a9d156c67adf02e56d531722e5ac57640c5cf0b..427777439d73975a0cf3434bd507d27077cb9a2a 100644
--- a/aleksis/apps/alsijil/templates/alsijil/manage_personal_note_filter.html
+++ b/aleksis/apps/alsijil/templates/alsijil/personal_note_filter/manage.html
@@ -2,23 +2,33 @@
 {% extends "core/base.html" %}
 {% load material_form i18n static %}
 
-{% block browser_title %}{% blocktrans %}Manage personal note filter{% endblocktrans %}{% endblock %}
-{% block page_title %}{% blocktrans %}Manage personal note filter{% endblocktrans %}{% endblock %}
-
-{% block content %}
+{% block browser_title %}
   {% if personal_note_filter %}
-    <p>
-      <a href="{% url 'delete_personal_note_filter' personal_note_filter.id %}"
-         class="waves-effect waves-light btn red">
-        <i class="material-icons left">delete</i>{% blocktrans %}Delete filter{% endblocktrans %}
-      </a>
-    </p>
+    {% trans "Update personal note filter" %}
+  {% else %}
+    {% trans "Create personal note filter" %}
+  {% endif %}
+{% endblock %}
+{% block page_title %}
+  {% if personal_note_filter %}
+    {% trans "Update personal note filter" %}
+  {% else %}
+    {% trans "Create personal note filter" %}
   {% endif %}
+{% endblock %}
 
+
+{% block content %}
   <form method="post">
     {% csrf_token %}
     {% form form=personal_note_filter_form %}{% endform %}
-    {% include "core/save_button.html" %}
+    {% include "core/partials/save_button.html" %}
+    {% if personal_note_filter %}
+      <a href="{% url 'delete_personal_note_filter' personal_note_filter.id %}"
+         class="waves-effect waves-light btn red">
+        <i class="material-icons left">delete</i>{% blocktrans %}Delete filter{% endblocktrans %}
+      </a>
+    {% endif %}
   </form>
 
 {% endblock %}
diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py
index 24c242471e1aebf1ea5106a42d6ee9557457f1d2..84c12a8e2e6354ec1208537dc7a31a7f142f71b6 100644
--- a/aleksis/apps/alsijil/views.py
+++ b/aleksis/apps/alsijil/views.py
@@ -105,7 +105,7 @@ def lesson(
     context["lesson_documentation_form"] = lesson_documentation_form
     context["personal_note_formset"] = personal_note_formset
 
-    return render(request, "alsijil/lesson.html", context)
+    return render(request, "alsijil/class_register/lesson.html", context)
 
 
 def week_view(
@@ -223,7 +223,7 @@ def week_view(
         request.GET.urlencode(),
     )
 
-    return render(request, "alsijil/week_view.html", context)
+    return render(request, "alsijil/class_register/week_view.html", context)
 
 
 def full_register_group(request: HttpRequest, id_: int) -> HttpResponse:
@@ -326,7 +326,7 @@ def register_absence(request: HttpRequest) -> HttpResponse:
 
     context["register_absence_form"] = register_absence_form
 
-    return render(request, "alsijil/register_absence.html", context)
+    return render(request, "alsijil/absences/register.html", context)
 
 
 def list_personal_note_filters(request: HttpRequest) -> HttpResponse:
@@ -340,7 +340,7 @@ def list_personal_note_filters(request: HttpRequest) -> HttpResponse:
 
     context["personal_note_filters_table"] = personal_note_filters_table
 
-    return render(request, "alsijil/personal_note_filters.html", context)
+    return render(request, "alsijil/personal_note_filter/list.html", context)
 
 
 def edit_personal_note_filter(request: HttpRequest, id: Optional["int"] = None) -> HttpResponse:
@@ -364,7 +364,7 @@ def edit_personal_note_filter(request: HttpRequest, id: Optional["int"] = None)
 
     context["personal_note_filter_form"] = personal_note_filter_form
 
-    return render(request, "alsijil/manage_personal_note_filter.html", context)
+    return render(request, "alsijil/personal_note_filter/manage.html", context)
 
 
 def delete_personal_note_filter(request: HttpRequest, id_: int) -> HttpResponse: