diff --git a/view/src/main/java/se/su/dsv/scipro/grading/TemplatePanel.java b/view/src/main/java/se/su/dsv/scipro/grading/TemplatePanel.java
index 4e8686484e..7616d8db97 100644
--- a/view/src/main/java/se/su/dsv/scipro/grading/TemplatePanel.java
+++ b/view/src/main/java/se/su/dsv/scipro/grading/TemplatePanel.java
@@ -11,6 +11,7 @@ import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.LoadableDetachableModel;
 import se.su.dsv.scipro.project.Project;
 import se.su.dsv.scipro.report.GradeLimit;
 import se.su.dsv.scipro.report.GradingReportTemplate;
@@ -45,13 +46,18 @@ public class TemplatePanel extends Panel {
 
     public TemplatePanel(String id, final IModel<Project> projectIModel) {
         super(id, projectIModel);
-        final DegreeType degreeType = projectIModel.getObject().getProjectType().getDegreeType();
+        Project project = projectIModel.getObject();
+        final DegreeType degreeType = project.getProjectType().getDegreeType();
+
+        IModel<GradingReportTemplate> grtModel = LoadableDetachableModel.of(() ->
+            gradingReportTemplateService.getCurrentTemplate(projectIModel.getObject().getProjectType(),
+                    projectIModel.getObject().getStartDate()));
 
         final WebMarkupContainer upto16 = new WebMarkupContainer("upto2016") {
             @Override
             protected void onConfigure() {
                 super.onConfigure();
-                setVisibilityAllowed(
+                setVisibilityAllowed(grtModel.getObject() == null &&
                     GradingCategory.fromProjectStartDate(projectIModel.getObject().getStartDate()) ==
                     GradingCategory.UP_TO_2016
                 );
@@ -64,7 +70,7 @@ public class TemplatePanel extends Panel {
             @Override
             protected void onConfigure() {
                 super.onConfigure();
-                setVisibilityAllowed(
+                setVisibilityAllowed(grtModel.getObject() == null &&
                     GradingCategory.fromProjectStartDate(projectIModel.getObject().getStartDate()) ==
                     GradingCategory.BETWEEN_2017_202410
                 );
@@ -73,15 +79,11 @@ public class TemplatePanel extends Panel {
         addTemplates(degreeType, between2017_202410);
         add(between2017_202410);
 
-        final GradeLimitsContainer from202411 = new GradeLimitsContainer("from202411", projectIModel) {
+        final GradeLimitsContainer from202411 = new GradeLimitsContainer("from202411", grtModel) {
             @Override
             protected void onConfigure() {
                 super.onConfigure();
-
-                setVisibilityAllowed(
-                    GradingCategory.fromProjectStartDate(projectIModel.getObject().getStartDate()) ==
-                    GradingCategory.FROM_202411
-                );
+                setVisibilityAllowed(grtModel.getObject() != null);
             }
         };
         add(from202411);
@@ -117,9 +119,7 @@ public class TemplatePanel extends Panel {
         );
     }
 
-    private List<GradeWithPointRange> getGradeWithPointRanges(Project project) {
-        GradingReportTemplate grt = gradingReportTemplateService.getCurrentTemplate(project.getProjectType(),
-                project.getStartDate());
+    private List<GradeWithPointRange> getGradeWithPointRanges(GradingReportTemplate grt) {
         GradeLimit[] gradeLimits = grt.getGradeLimits().toArray(GradeLimit[]::new);
         List<GradeWithPointRange> list = new ArrayList<>();
 
@@ -138,11 +138,9 @@ public class TemplatePanel extends Panel {
 
     private class GradeLimitsContainer extends WebMarkupContainer {
 
-        public GradeLimitsContainer(String id, IModel<Project> projectIModel) {
-            super(id, projectIModel);
-            IModel<List<GradeWithPointRange>> list = projectIModel.map(project ->
-                getGradeWithPointRanges(project)
-            );
+        public GradeLimitsContainer(String id, IModel<GradingReportTemplate> grtModel) {
+            super(id, grtModel);
+            IModel<List<GradeWithPointRange>> list = grtModel.map(TemplatePanel.this::getGradeWithPointRanges);
 
             add(
                 new ListView<>("gradewithlimits_list", list) {