2984 PO 11) Can only change publication metadata if no students have been submitted for examination

This commit is contained in:
Andreas Svanberg 2023-10-04 15:27:47 +02:00
parent 239c648549
commit c2c7551c39
3 changed files with 23 additions and 1 deletions
view/src
main/java/se/su/dsv/scipro/grading
test/java/se/su/dsv/scipro/grading

@ -7,7 +7,7 @@
<wicket:container wicket:id="components"/>
<button class="btn btn-success btn-sm scrollSneak" type="submit">
<button class="btn btn-success btn-sm scrollSneak" type="submit" wicket:id="save">
Save
</button>
</form>

@ -1,6 +1,7 @@
package se.su.dsv.scipro.grading;
import org.apache.wicket.feedback.FencedFeedbackPanel;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.markup.html.form.TextField;
@ -8,6 +9,8 @@ import org.apache.wicket.markup.html.panel.GenericPanel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LambdaModel;
import org.apache.wicket.model.LoadableDetachableModel;
import se.su.dsv.scipro.finalthesis.FinalThesis;
import se.su.dsv.scipro.finalthesis.FinalThesisService;
import se.su.dsv.scipro.project.Project;
import javax.inject.Inject;
@ -15,6 +18,8 @@ import javax.inject.Inject;
public class PublicationMetadataPanel extends GenericPanel<Project> {
@Inject
PublicationMetadataService publicationMetadataService;
@Inject
private FinalThesisService finalThesisService;
public PublicationMetadataPanel(String id, IModel<Project> projectModel) {
super(id, projectModel);
@ -32,6 +37,20 @@ public class PublicationMetadataPanel extends GenericPanel<Project> {
add(new FencedFeedbackPanel("feedback", this));
add(new PublicationMetadataFormComponentPanel("components", metadataModel));
add(new WebMarkupContainer("save") {
@Override
protected void onConfigure() {
super.onConfigure();
setVisible(isEnabledInHierarchy());
}
});
}
@Override
protected void onConfigure() {
super.onConfigure();
setEnabled(finalThesisService.canReject(PublicationMetadataPanel.this.getModelObject()));
}
@Override

@ -1,5 +1,6 @@
package se.su.dsv.scipro.grading;
import org.apache.wicket.model.IModel;
import org.apache.wicket.util.tester.FormTester;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@ -9,6 +10,7 @@ import se.su.dsv.scipro.project.Project;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
class PublicationMetadataPanelTest extends SciProTest {
private Project project;
@ -17,6 +19,7 @@ class PublicationMetadataPanelTest extends SciProTest {
void setUp() {
project = new Project();
project.setId(2397842L);
when(finalThesisService.canReject(project)).thenReturn(true);
}
@Test