From 774f1e9d7a5e3c27794a4fe945bc4e128117a71b Mon Sep 17 00:00:00 2001
From: Nico Athanassiadis <nico@dsv.su.se>
Date: Wed, 20 Nov 2024 11:07:07 +0100
Subject: [PATCH] Fix for project title commit
 90604b8ef1f82343e913319c54802dbd09278027

The project title was added to the wrong panel which caused side effect of showing a title when
creating a new template. Moved the previous code it is only shown when editing a template.

Also changed it to read the title from the database using the LoadableDetachableModel pattern.

Now the project title should only be shown when editing an existing template.
---
 .../admin/pages/grading/AdminGradingTemplateEditPage.html   | 5 +++++
 .../admin/pages/grading/AdminGradingTemplateEditPage.java   | 6 ++++++
 .../pages/grading/EditingGradingTemplateComponentPanel.html | 6 ------
 .../pages/grading/EditingGradingTemplateComponentPanel.java | 1 -
 .../EditingGradingTemplateComponentPanel.utf8.properties    | 1 -
 .../admin/pages/grading/wicket-package.utf8.properties      | 1 +
 6 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/AdminGradingTemplateEditPage.html b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/AdminGradingTemplateEditPage.html
index 626408b739..cd7a505d25 100644
--- a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/AdminGradingTemplateEditPage.html
+++ b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/AdminGradingTemplateEditPage.html
@@ -3,6 +3,11 @@
 <body>
 <wicket:extend>
     <div wicket:id="feedback"></div>
+    <div class="mb-3 lead">
+        <wicket:message key="project_type_name_editing">
+            <span wicket:id="project_type_name"></span>
+        </wicket:message>
+    </div>
     <form wicket:id="form">
         <div wicket:id="editing" class="mb-3"></div>
         <div class="position-sticky bottom-0 bg-white p-3 border line-length-limit hstack">
diff --git a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/AdminGradingTemplateEditPage.java b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/AdminGradingTemplateEditPage.java
index c255d1be51..d2ad546e0f 100644
--- a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/AdminGradingTemplateEditPage.java
+++ b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/AdminGradingTemplateEditPage.java
@@ -4,8 +4,11 @@ import jakarta.inject.Inject;
 import org.apache.wicket.RestartResponseException;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.LoadableDetachableModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import se.su.dsv.scipro.admin.pages.AbstractAdminProjectPage;
 import se.su.dsv.scipro.grading.GradingReportTemplateService;
@@ -16,6 +19,7 @@ import se.su.dsv.scipro.report.GradingReportTemplate;
 import se.su.dsv.scipro.report.NoSuchTemplateException;
 import se.su.dsv.scipro.report.TemplateLockedException;
 import se.su.dsv.scipro.report.ValidDateMustBeInTheFutureException;
+import se.su.dsv.scipro.system.ProjectType;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -41,6 +45,8 @@ public class AdminGradingTemplateEditPage extends AbstractAdminProjectPage imple
         editingGradingTemplate = new EditingGradingTemplate(template);
 
         add(new FeedbackPanel("feedback"));
+        IModel<GradingReportTemplate> model = LoadableDetachableModel.of(() -> gradingReportTemplateService.getTemplate(id));
+        add(new Label("project_type_name", model.map(GradingReportTemplate::getProjectType).map(ProjectType::getName)));
 
         Form<EditingGradingTemplate> form = new Form<>("form") {
             @Override
diff --git a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.html b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.html
index f4ea4e67dc..80952a8f02 100644
--- a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.html
+++ b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.html
@@ -9,12 +9,6 @@
 </head>
 <body>
 <wicket:panel>
-    <div class="mb-3 lead">
-        <wicket:message key="project_type_name_editing">
-            <span wicket:id="project_type_name"></span>
-        </wicket:message>
-    </div>
-
     <div class="mb-3 line-length-limit">
         <label class="form-label" wicket:for="valid_from">
             Valid from
diff --git a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.java b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.java
index dfe427faf7..6a59cfa2f5 100644
--- a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.java
+++ b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.java
@@ -33,7 +33,6 @@ class EditingGradingTemplateComponentPanel extends GenericPanel<EditingGradingTe
 
         setOutputMarkupId(true);
 
-        add(new Label("project_type_name", editingGradingTemplateModel.map(EditingGradingTemplate::getProjectType)));
         TextField<LocalDate> validFromField = new RequiredTextField<>("valid_from",
                 LambdaModel.of(editingGradingTemplateModel,
                         EditingGradingTemplate::getValidFrom,
diff --git a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.utf8.properties b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.utf8.properties
index db27aba41e..6315499c53 100644
--- a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.utf8.properties
+++ b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.utf8.properties
@@ -11,4 +11,3 @@ Type.INDIVIDUAL=Individually for each author
 minimum.Required=You must set the minimum number of points for each grade
 grade.Required=You must set the letter for each grade
 flag.nullValid=None
-project_type_name_editing=You are editing a ${project_type_name} grading template. 
diff --git a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/wicket-package.utf8.properties b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/wicket-package.utf8.properties
index 25726d2d64..defb43b968 100644
--- a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/wicket-package.utf8.properties
+++ b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/wicket-package.utf8.properties
@@ -4,3 +4,4 @@ another_template_exists_for_the_given_date_date=There is already another ${proje
 template_is_locked=You can not edit templates that have become current. The template you are trying to edit became current at ${validFrom}.
 template_created=New template for ${name} created.
 unsaved_changes=The grading template has been changed, unsaved changes will be lost if you do not save.
+project_type_name_editing=You are editing a ${project_type_name} grading template.