6959 Commits

Author SHA1 Message Date
9cd4a9ebb6 87: Merge from develop 2025-05-09 13:57:51 +02:00
233f5329af Fix supervisor gets phase 2 review request deadline hardcoded to 2020-03-08 before any reviewer is assigned. ()
Fixes .

**How to test:**

1. Switch user to supervisor 'Elsabet Employee <elsabet@example.com>', she has one project to supervise: 'A bachelor thesis'.
2. Click 'Phase 2 review', and fill the form 'Rough draft approval', click button 'Request review'.
3. The next view shows the status of the review request. Since there is no reviewer assigned, the row "Deadline: ..." no longer is visible.
4. Switch user to admin, edit project 'A bachelor thesis', assign a reviewer (like 'Eric Employee') to the project.
5. Switch user back to 'Elsabet Employee', click Phase 2 review again. The deadline now shows with correct date.

Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Reviewed-on: 
Reviewed-by: Andreas Svanberg <andreass@dsv.su.se>
Co-authored-by: Tom Zhao <tom.zhao@dsv.su.se>
Co-committed-by: Tom Zhao <tom.zhao@dsv.su.se>
2025-05-09 13:21:27 +02:00
e34f231e92 Show supervisors the date they submitted the thesis for examination ()
Fixes 

## How to test
1. Go to https://scipro-supervisor-submit-to-examiner-date.branch.dsv.su.se
2. Log in as `einstein@example.com`
3. Open the project
4. See Galileo's date on the overview
5. Go to finishing up tab and see his date there as well
6. Go to Newtons tab and submit (it will stay in the unsubmitted view due to mocked APIs with fixed data)
7. Go to overview
8. See that Newtons submitted date is correctly shown as the moment you submitted

## Mocked APIs
This pull request will in addition to fixing  also set up mocked APIs for the integrations with grading service and Daisy. To use those mocked APIs remove any outside configuration (in Tomcat or otherwise) for `service.grading.url` and `daisy.api.{url,username,password}`.

To add new data to the mocked APIs see the YAML files in the `mock-api` directory. See [APImposter](https://gitea.dsv.su.se/DMC/apimposter) for more technical details how it works.

Reviewed-on: 
Reviewed-by: Tom Zhao <tom.zhao@dsv.su.se>
2025-05-09 12:49:16 +02:00
e40c622d49 Add log out link during development and on test servers ()
Saves a lot of time when switching users. It is available in the top menu.

Co-authored-by: Tom Zhao <tom.zhao@dsv.su.se>
Reviewed-on: 
Reviewed-by: Tom Zhao <tom.zhao@dsv.su.se>
2025-05-08 12:34:25 +02:00
76138ef437 Supervisor calendar overview ()
Fixes 

Basic structure to render and show a calendar for the supervisors. Currently shows only first meeting events.

 ## How to test
1) Log in as salieri@example.com
2) Click on the tab 'Schedule Overview'
3) Verify that there are 2 events in the calendar.
     - One event has a clickable text, the other does not.
     - The one that has a clickable text is associated with a project.
     - The one without a clickable text is does not have a project yet.
4) Click on the clickable event to go that events project page.
5) Select 'First Meeting' tab
6) Set a new date and time for the first meeting.
7) Click on 'Schedule Overview' and verify.

After testing you can reset the state of the branch by going [here](https://gitea.dsv.su.se/DMC/scipro/actions/runs/672/jobs/0) and rerun all jobs a button top right.

Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Reviewed-on: 
Reviewed-by: Andreas Svanberg <andreass@dsv.su.se>
Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Co-committed-by: Nico Athanassiadis <nico@dsv.su.se>
2025-05-08 12:34:04 +02:00
e7571c0455 Merge branch 'develop' into 87-split-project 2025-05-08 10:18:14 +02:00
eaca5199a2 Version updates ()
Managed a couple of dependencies that weren't and made sure every version is a property.

Added a test for JasperReports since it was a major bumb in OpenPDF that we use as a replacement for the now commercial iText. Also good to make sure it stays compatible.

Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Co-committed-by: Andreas Svanberg <andreass@dsv.su.se>
2025-05-08 09:55:39 +02:00
d49bbea3ea Merge branch 'develop' into 87-split-project 2025-05-07 09:55:55 +02:00
1c034a3196 Clearer instructions for grading opponent on final seminar ()
Attempt to explain to supervisors that they should request improvements if the report is close to passing rather than giving it zero points.

Fixes 

## How to test
1. Log in as `eric@example.com`
2. Open the project "Putting the it in supervising"
3. Go to the final seminar tab
4. See instructions in the blue box above opponents

Reviewed-on: 
2025-05-06 16:06:05 +02:00
ed61c18a62 Allow deletion of entire forum threads ()
Only threads with no replies can be deleted. When a thread is deleted a notification is sent to the relevant parties.

Fixes 

## How to test
1. Log in as `eric@example.com` (supervisor) or as `sture@example.com` (author)
2. Open the forum in project "Putting the it in supervising"
3. Create a new thread
4. Delete the thread
5. Create a second thread
6. Post some replies as the different users
7. See that the thread (initial post) can't be deleted
8. Delete the replies
9. Delete the thread

Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
2025-05-06 11:59:55 +02:00
779ef6dcb4 Disable the date and time pickers when their attached component is disabled ()
Fixes 

## How to test
1. Log in as `bobby@example.com`
2. Open the project and go to the final seminar tab
3. See that the date and time picker icons are disabled
4. Move the seminar using the link below the time picker

Co-authored-by: Tom Zhao <tom.zhao@dsv.su.se>
Reviewed-on: 
Reviewed-by: Tom Zhao <tom.zhao@dsv.su.se>
2025-05-06 10:30:41 +02:00
ca6f580006 87: Use UserLabel component 2025-05-05 15:57:43 +02:00
821b534763 87: Remove unnecessary authorization check 2025-05-05 15:49:17 +02:00
b2ef52033f Merge branch 'develop' into 87-split-project 2025-05-05 13:05:52 +02:00
7ef581ad2c Project level and credits active participations and opposition ()
Fixes 

Previously accessing the final seminar view for active participations students could only see the project title on the top of the page,
the project level (bachelor, master ...) and credits for the level where missing.

In other places of the application we are showing the title, project level and credits.

Now the title, project level and credits are shown in the view following the same pattern as in other places of the application

How to test:
- Log in as beata@example.com
- Select 'All Final Seminars' tab
- Select radio button 'Past final seminars'
- Select project 'A bachelor thesis'
- Verify that title, project type and credits are shown.

Reviewed-on: 
Reviewed-by: Andreas Svanberg <andreass@dsv.su.se>
Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Co-committed-by: Nico Athanassiadis <nico@dsv.su.se>
2025-04-29 14:34:58 +02:00
0f1d586863 87: Add info about if RoughDraftApproval is cloned 2025-04-28 15:13:23 +02:00
d0ee2fc98b 87: Improve model handling 2025-04-28 10:43:37 +02:00
7bb47f6e09 Merge branch 'develop' into 87-split-project 2025-04-14 12:07:40 +02:00
8d5a082a6b 87: Move cancel link to same row as submit button 2025-04-07 13:31:14 +02:00
3f604ad926 87: Refactor out status message to view layer 2025-04-07 12:50:34 +02:00
1ebf21f14b 87: Refactor SplittableStatusRecord using Java record 2025-04-02 09:41:27 +02:00
8266b1f1fe 87: Improve result page (AdminViewParentProjectPage) after split 2025-03-27 11:48:34 +01:00
d193663590 87: Fix test & Reformat code 2025-03-26 13:59:13 +01:00
0e261fc85e 87: Reformat code 2025-03-26 13:00:11 +01:00
6526dc1fd9 87: Add initial support of parent-child project 2025-03-26 12:57:18 +01:00
02dc062962 87: Add initial support of AdminViewParentProjectPage 2025-03-26 10:26:28 +01:00
f2e19b686d 87: Use service method in AdminSplitProjectPanel 2025-03-26 10:04:40 +01:00
739bf1c0bd 87: Add support for split project confirmation page 2025-03-24 14:31:58 +01:00
f33956068d 87: Add initial view for splitting project 2025-03-20 09:18:39 +01:00
7504c267c5 Delete forum replies ()
Allows deleting (your own) forum replies.

Fixes 

## How to test

1. Log in as `eric@example.com` (supervisor) or as `sture@example.com` (author)
2. Open the forum in project "Putting the it in supervising"
3. Create a new thread
4. Post some replies as the different users
5. Delete the replies

Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Co-committed-by: Andreas Svanberg <andreass@dsv.su.se>
2025-03-18 08:34:21 +01:00
59e3ec3fd9 Maintain project selection on validation failure during group creation ()
Fixes 

## How to test
1. Log in as `evan@example.com`
2. Go to "My groups"
3. Click "Create new group"
4. Select some projects but do *not* fill in the "Title"
5. Click save
6. Error message should be presented
7. Project selection should be maintained

Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Co-committed-by: Andreas Svanberg <andreass@dsv.su.se>
2025-03-11 09:15:01 +01:00
23e0a7f5ea Improvements to the Excel export of projects ()
The research area column show the string "null" instead of being an empty cell for projects without a research area. This has been fixed everywhere and not just on the project export.

The reviewer column showed weird technical details (`User#toString()`) instead of the reviewers name.

## How to test
1. On `develop` branch
2. Log in as the default admin
3. Go to "Project management / Projects"
4. Click "Excel export" under the table
5. Open the file and see
6. Repeat 1-5 on this branch

Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Co-committed-by: Andreas Svanberg <andreass@dsv.su.se>
2025-03-05 14:07:47 +01:00
1aa0a4e3ef Improve the UX when creating groups as a supervisor ()
The main problem was that the supervisor did not get enough information about each project, mainly who the authors were, when selecting them in the dropdown.

To remedy this, the dropdown has been completely replaced with a checkbox based approach showing the title as well as project type, authors, and start date for each project. The projects are sorted first by start date (descending) and then title, based on the assumptions that newly created projects are the most relevant when setting up groups.

In addition extra "quick buttons" have been added in an effort to reduce the number of clicks required to accomplish varying tasks.

Fixes 

## How to test
1. Log in as `evan@example.com`
2. Go to "My groups"
3. Click "Create new group"

Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Co-committed-by: Andreas Svanberg <andreass@dsv.su.se>
2025-03-05 11:01:37 +01:00
d008bec815 Allow supervisors to request improvements from final seminar opponents ()
Fixes 

## How to test
1. (Optional) Log in as `sid@example.com` and submit an opposition report
   1. Go to the tab "Opposition & Active participation"
   2. Open the opposition "Putting the it in supervising" on the right
   3. Submit the report
2. Log in as `eric@example.com`
3. Go to the final seminar in the "Putting the it in supervising" project (or follow the notification if you did step 1)
4. Request improvements
5. Log in as `sid@example.com`
6. Follow the notification to submit the new opposition report

Click the "Re-run all jobs" button (top right) on https://gitea.dsv.su.se/DMC/scipro/actions/runs/457 to reset the database. It takes a few minutes.

Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Co-committed-by: Andreas Svanberg <andreass@dsv.su.se>
2025-03-05 10:05:37 +01:00
a71eeb5e2c Fix crash when editing an application period ()
Fixes 

## How to test
1. Log in as admin
2. Go to "Match / Application periods"
3. Click the edit icon (6th column)
4. Click "Save"

Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Co-committed-by: Andreas Svanberg <andreass@dsv.su.se>
2025-03-03 07:48:46 +01:00
e71aa8120c Grading boundaries are wrong in supervisor view ()
They display old hard-coded text that does not reflect the current template.

Fixes 

Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Reviewed-on: 
Reviewed-by: Andreas Svanberg <andreass@dsv.su.se>
Co-authored-by: Tom Zhao <tom.zhao@dsv.su.se>
Co-committed-by: Tom Zhao <tom.zhao@dsv.su.se>
2025-02-21 14:06:29 +01:00
a0fd84343c Show error message when trying to add duplicate exemptions ()
Fixes 

## How to test
1. Log in as admin
2. Go to "Admin / Match / Application periods"
3. Click "Edit exemptions" on the period
4. Add the same exemption twice to "Sture Student"

Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Co-committed-by: Andreas Svanberg <andreass@dsv.su.se>
2025-02-20 13:56:13 +01:00
399d8f5275 Assign supervisor to student ideas no matter if target (goal) is reached ()
Fixes 

Reviewed-on: 
Reviewed-by: Andreas Svanberg <andreass@dsv.su.se>
Co-authored-by: Tom Zhao <tom.zhao@dsv.su.se>
Co-committed-by: Tom Zhao <tom.zhao@dsv.su.se>
2025-02-18 09:59:23 +01:00
b9f7dd5a49 Update supervisor's idea table immediately upon scheduling a first meeting ()
Before, after scheduling a first meeting, they had to refresh the entire page to show the information in the table.

Fixes 

Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
2025-02-13 09:59:33 +01:00
304d0431c1 Deadline visible in "Rough draft approval" page ()
Previously deadline was only visible at the Reviewer start page, tab 'Rough draft approvals'.

Now the deadline is also shown when you go to the detail page of a rough draft.

Fixes issue 

Reviewed-on: 
Reviewed-by: Andreas Svanberg <andreass@dsv.su.se>
Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Co-committed-by: Nico Athanassiadis <nico@dsv.su.se>
2025-02-12 11:07:53 +01:00
219c312441 Fix localizer warning on the finishing up tab for each author ()
Fixes 

The `getReflectionText` method was calling `getString` when no reflection has been submitted. This is not a relevant case for the editing form since it can not be accessed when there is no reflection. Inlined the method call and removed the non-submitted case, the default will be an empty string.

## How to test
1. Log in as a supervisor
2. Open a project that has a Daisy connection (`identifier`is non-null on the `Project`)
3. Go to the "Finishing up" tab
4. Go to the tab for the author with no reflection submitted
5. See that no warning is logged

Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Co-committed-by: Andreas Svanberg <andreass@dsv.su.se>
2025-02-07 07:50:02 +01:00
5439d77d73 Require authors to fill in background, literature, problem, method, and interests when submitting ideas ()
Require authors to fill in background, literature, method, problem, and interests when submitting an idea.

Fixes 

## How to test
1. Navigate to https://scipro-student-idea-form-required-fields.branch.dsv.su.se/
2. Log in as `stig@example.com`
3. Go to "Ideas" / "My ideas"
4. Attempt to submit an idea without either of background, literature, method, problem, or interests

Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Co-committed-by: Andreas Svanberg <andreass@dsv.su.se>
2025-01-17 09:45:27 +01:00
2784bca8f6 Improve XJC-binding (Issue 73) ()
Fixes 

In daisy.xsd there are two datatypes, one is called STATUS and another one is called Status. Since Windows file system is case insensitive, file STATUS.java and Status.java are considered as same name. This makes build on Windows impossible.

Solution: in XJC binding file, rename Status.java to Status2.java (the Status2.java belongs to Examination is endpoint/resource which is not used by Scipro).

Other small improvments:

- package name 'se.su.dsv.scipro.daisyExternal' is renamed to 'se.su.dsv.scipro.daisyexternal'.
- single import statements are applied.

Reviewed-on: 
Reviewed-by: Andreas Svanberg <andreass@dsv.su.se>
Co-authored-by: Tom Zhao <tom.zhao@dsv.su.se>
Co-committed-by: Tom Zhao <tom.zhao@dsv.su.se>
2025-01-16 13:55:38 +01:00
adf45414d5 Forum Message UI Improvement (Thesis Board ) ()
Fix 

**Requirements**

On supervisor's start page, a overview of the projects being supervised is shown as a table. One of columns is a flag and on clicking action the browser is redirected to forum page of that project.

Two improvements were asked:

1. If there is unread messages, show a tooltip if mouse is placed over the flag.
2. A number is shown to indicate number of unread messages.

**How to test**
1. Go to https://scipro-3470-forum-msg-ui-improvement.branch.dsv.su.se/
2. Log in as `eric@example.com`
3. Go to the project overview
4. Write something in the forum
5. Mark as unread (click the flag)
6. Go back to overview

Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Reviewed-on: 
Reviewed-by: Andreas Svanberg <andreass@dsv.su.se>
2024-12-19 15:28:23 +01:00
25117c8187 Switch authentication to OAuth 2 ()
This is one requirement in bringing  to reality.

Currently the way to log in to SciPro is by having a locally modified `web.xml` that emulates being authenticated via single sign-on (SSO). This method can not work on an automatically deployed test server. It is also not possible to have real SSO configured for the test servers due to their dynamic nature and that they are given a new hostname each time. Our current SSO solution requires there to be certificate issued to specific hostnames. Even if it were possible to get SSO set up how would the username received from SSO match to test data? We would have to have real usernames in our test data which is not desirable.

To solve both of the problems described above - requiring a locally modified version of a git tracked file and needing an authentication mechanism that works for dynamic test servers - a change of the authentication mechanism from Tomcat controlled SSO to application controlled OAuth 2 is proposed. There is already an OAuth 2 authorization server running in production which itself is authenticates users via SSO that will be used in production and for the permanent test servers. In development and for the dynamic test servers a local authorization server running in Docker is provided.

For "regular" users there will be no noticeable change, they will be prompted to log in via SSO and then they get access to the system. For users with high developer access they will, on the permanent test servers, be prompted to "issue token". On that page they can use the top form to authenticate as themselves based on their SSO authentication, or use the bottom form to issue a completely custom authentication and log in as whatever username they deem necessary. The temporary test servers and during local development will work similarly with the only difference being that there is no SSO log in first and you will be prompted to issue a token immediately. The default authentication (top form) will be a local sys-admin level user.

## How to test
1. Start the local OAuth 2 authorization server with `docker compose up`
2. Start SciPro
3. Attempt to log in

Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
2024-12-16 16:55:49 +01:00
f67f37ecdd Keep and validate project type selection when creating/editing application periods ()
If you have FormComponents in a ListView you need to call setReuseItems(true) on the ListView. Otherwise the ListItems will be recreated before rendering which results in them losing their "converted input" (what Wicket calls the submitted value).

Instead of simply calling setReuseItems(true) on the ListView, which would've solved the problem, it was instead replaced by a proper FormComponent for dealing with this exact case (a CheckboxMultipleChoice component). This reduces the amount of code required and more clearly communicates intent. The change required some minor test refactoring.

Fixes 

---

Now requires at least one project type to be selected before saving.

Fixes 

---

## How to test
1. Go to "Admin" / "Match" / "Application periods"
2. Click create new
3. Submit without selecting any types
4. See that there's proper feedback
5. Leave name blank and select some types
6. Submit
7. See that the project type selection sticks around

Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Co-committed-by: Andreas Svanberg <andreass@dsv.su.se>
2024-12-16 13:23:37 +01:00
c6bd17d9ad Fix grade calculator being serialized ()
The new calculator that's based on templates has a reference to the @Entity for the template which should not be serialized.

Fixes 

## How to test/replicate
1. Log in as a supervisor
1. Open a project that's new enough to use a grading report template with grade limits
1. Go to the "Finishing up" tab
1. Go to the sub-tab for an individual author

Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Co-committed-by: Andreas Svanberg <andreass@dsv.su.se>
2024-12-16 11:24:33 +01:00
1554d4bc27 Enforce code formatting via Prettier ()
Fixes  by introducing [Prettier](https://prettier.io/).

Prettier is an extremely opinionated formatter. It will reformat every single line according to its style. There are virtually no configuration options so there can be no discussion about formatting rules.

There are two parameters that are configurable; indent length and line length. Indent length has been set to 4 because that's the Java standard.

Line length defaults to 80 but has been increased to 100. The rational for this is that Prettier was created for JavaScript which is much less verbose than Java. Not only does every Java line start with 8 spaces of indentation vs. JavaScripts 0 or 2, it also has types wile JavaScript does not and uses `const` for variable declarations. Compare the two below examples as well as an actual example from the source code that is too long for the default 80 characters. I have no problem dropping down to the default 80 if that is preferred I just felt that with the average length of a line of Java code being pretty long, excessive wrapping would reduce readability.

```javascript
  const attributes = {
    ...
  };
```
```java
        Map<String, String> attributes = Map.of(
            ...
        );
```

Or the following real code which is 97 characters long.
```java
        Set<ProjectParticipant> contributors = daisyAPI.getContributors(project.getIdentifier());
```

Reviewed-on: 
Reviewed-by: Tom Zhao <tom.zhao@dsv.su.se>
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Co-committed-by: Andreas Svanberg <andreass@dsv.su.se>
2024-12-02 14:17:59 +01:00
8a657b21dd 3494 UI improvements to the administration page for grading templates ()
Changes made to the grading template UI

Some of the improvements include:
- When editing a template, and the user makes a change the user will be informed/alerted that the template has changed.
- When editing a template the user will now see a project title that shows what project type that template has.
- Default value of points required to pass has been changed from 0 -> 1
- Requirements to points will be added by default when adding a new criteria.
- The create button is now hidden until the user has chosen a grading template project type from the drop down menu.
- Max available points are now updated as point requirements are added to the criterion.

Reviewed-on: 
Reviewed-by: Andreas Svanberg <andreass@dsv.su.se>
Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Co-committed-by: Nico Athanassiadis <nico@dsv.su.se>
2024-11-26 10:18:55 +01:00
ff4c5b58b4 Allow changes to the reflection to be made after it's been submitted ()
Replaces 

Fixes card 3213 and 3412

There are minimum requirements for the reflection document submitted by authors at the end of the thesis process. Before now there was no way to handle the case when the reflection did not meet these minimum requirements.

This change makes it possible in two ways;
 1. The supervisor can request improvements to be made requiring the author to re-submit a new reflection inside SciPro
 2. The supervisor can directly edit the reflection themselves if it has been submitted out-of-band or for any other reason

Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Reviewed-on: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
2024-11-21 19:20:47 +01:00