3380 Made it possible to edit minimum/maximum authors

There has always been a minimum and maximum limit on the number of authors per project type, it was just never configurable. Made them configurable while working on the panel.
This commit is contained in:
Andreas Svanberg 2024-05-27 16:04:09 +02:00
parent a48dccc4cd
commit da842a9fd2
3 changed files with 43 additions and 0 deletions
view/src
main/java/se/su/dsv/scipro/admin/panels
test/java/se/su/dsv/scipro/admin/panels

@ -22,6 +22,18 @@
<label wicket:for="description">Description</label>
<textarea class="form-control" wicket:id="description" cols="60" rows="5"></textarea>
</div>
<div class="mb-3">
<label wicket:for="minimum_authors">
Minimum number of authors per student idea
</label>
<input class="form-control" type="number" wicket:id="minimum_authors">
</div>
<div class="mb-3">
<label wicket:for="minimum_authors">
Maximum number of authors per student idea
</label>
<input class="form-control" type="number" wicket:id="maximum_authors">
</div>
<div class="mb-3">
<label wicket:for="minimum_oppositions_to_be_graded">
Minimum approved final seminar oppositions to be graded

@ -68,6 +68,22 @@ public class AdminProjectTypePanel extends Panel {
minimumActiveParticipationsToBeGraded.setMinimum(0);
add(minimumActiveParticipationsToBeGraded);
NumberTextField<Integer> minimumAuthors = new NumberTextField<>(
"minimum_authors",
LambdaModel.of(settings, ProjectTypeSettings::getMinAuthors, ProjectTypeSettings::setMinAuthors),
Integer.class);
minimumAuthors.setMinimum(1);
minimumAuthors.setRequired(true);
add(minimumAuthors);
NumberTextField<Integer> maximumAuthors = new NumberTextField<>(
"maximum_authors",
LambdaModel.of(settings, ProjectTypeSettings::getMaxAuthors, ProjectTypeSettings::setMaxAuthors),
Integer.class);
maximumAuthors.setMinimum(1);
maximumAuthors.setRequired(true);
add(maximumAuthors);
Button createButton = new Button("createButton") {
@Override
public void onSubmit() {

@ -40,4 +40,19 @@ public class AdminProjectTypePanelTest extends SciProTest {
assertEquals(DegreeType.values()[index], captor.getValue().getDegreeType());
}
@Test
public void set_min_max_authors() {
FormTester formTester = tester.newFormTester(path(panel, "projectTypeForm"));
formTester.setValue("name", "bachelor");
formTester.setValue("minimum_authors", "17");
formTester.setValue("maximum_authors", "29");
formTester.submit("createButton");
ArgumentCaptor<ProjectType> captor = ArgumentCaptor.forClass(ProjectType.class);
verify(projectTypeService).save(captor.capture());
assertEquals(17, captor.getValue().getProjectTypeSettings().getMinAuthors());
assertEquals(29, captor.getValue().getProjectTypeSettings().getMaxAuthors());
}
}