-
Notifications
You must be signed in to change notification settings - Fork 0
Feature/meeting with registry caserecord casefile support #53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
gvaguirres
merged 50 commits into
main
from
feature/meeting-with-registry-caserecord-casefile-support
Apr 27, 2026
Merged
Changes from all commits
Commits
Show all changes
50 commits
Select commit
Hold shift + click to select a range
73631f5
added meetings (sammanträden) to admin-sidenav.html
MartinStenhagen c685024
Added meeting entity-class and enum
MartinStenhagen 5f4db84
Added MeetingAgendaItem entity
MartinStenhagen acf23b6
Added MeetingAgendaDocument entity
MartinStenhagen d38c9dc
Added repositories
MartinStenhagen 5f7dd8b
Added Flyway migration for meeting tables
MartinStenhagen aec7c81
Added MeetingService
MartinStenhagen ab3e731
Added MeetingController
MartinStenhagen 6a57259
Added fragment admin-meetings.html
MartinStenhagen 44ba9b0
Added ui functionality
MartinStenhagen e112b02
Added agenda documents support to MeetingService and MeetingController
MartinStenhagen 874bc4c
Reworked populateMeetingsPage to support agenda documents.
MartinStenhagen 4a8f3b8
Added agenda document support to ui
MartinStenhagen eed6f80
Current meetings now lists correctly
MartinStenhagen f4f2e2d
Merge branch 'refs/heads/main' into feature/meeting-with-registry-cas…
MartinStenhagen 2fad9c5
Added updateMeeting and deleteMeeting to MeetingService
MartinStenhagen 9d3ef5b
Added updateMeeting and deleteMeeting to to MeetingController
MartinStenhagen 9896c31
Added meeting editing to ui
MartinStenhagen 4f21189
Added delete meeting to ui
MartinStenhagen c52ff73
Added move agenda item to MeetingService and Repo
MartinStenhagen 5268461
Added move agenda item to MeetingController
MartinStenhagen f761682
Added move agenda item to ui and saveandflush-fix to MeetingService
MartinStenhagen 49eeb8d
Added new exceptions
MartinStenhagen 649f599
Changed to use new exceptions
MartinStenhagen 4a96588
Added MeetingServiceTest
MartinStenhagen e2fc82f
Added MeetingControllerTest
MartinStenhagen b68837e
Merge branch 'fix/bucket-file-config-error' into feature/meeting-with…
MartinStenhagen fd7c0b9
Added check and exception when trying to delete files in use
MartinStenhagen 28998e9
Added FileInUseException to deleteCaseFile
MartinStenhagen 4c91d6b
Added mock to fix tests and added new test for delete file in use
MartinStenhagen 815bfdf
removed localstack_data to adress coderabbit feedback Named volume wi…
MartinStenhagen a3be5d6
fixed coderabbit feedback: Add MeetingAgendaDocumentRepository mock t…
MartinStenhagen dac15cc
fixed coderabbit feedback: Inconsistent error response shape — return…
MartinStenhagen 1862f5f
fixed coderabbit feedback: Inconsistent error response shape — return…
MartinStenhagen 587db6e
fixed coderabbit feedback: Remove malformed findById(Meeting, CaseRec…
MartinStenhagen f6bffde
fixed coderabbit feedback: Inconsistent capitalization in success/err…
MartinStenhagen a6a76c7
fixed coderabbit feedback: Catch block can throw, losing the original…
MartinStenhagen dc1c2d1
fixed coderabbit feedback: Narrow catch (IllegalArgumentException) mi…
MartinStenhagen 0652fc9
fixed coderabbit feedback: Typo in user-facing message: "diarum" → "d…
MartinStenhagen 7f32aa6
fixed coderabbit feedback: resequenceAgendaItems risks violating uk_m…
MartinStenhagen 4c9ddbe
fixed coderabbit feedback: Label inconsistency: "Registry:" is Englis…
MartinStenhagen 00849ea
fixed coderabbit feedback: Inconsistent CSRF handling across POST tests.
MartinStenhagen b839e7a
Merge branch 'main' into feature/meeting-with-registry-caserecord-cas…
MartinStenhagen 2f4cc0b
fixed coderabbit feedback: createMeeting catch can cascade to 500 whe…
MartinStenhagen 52a5683
fixed coderabbit feedback: meetingService.getMeetingById(...) is call…
MartinStenhagen ab51517
fixed coderabbit feedback: Inconsistent exception types for not-found…
MartinStenhagen d2ca6b5
fixed coderabbit feedback: Raw enum names ("PLANNED", "COMPLETED", …)…
MartinStenhagen 3889952
fixed coderabbit feedback: The safeRegistryId fallback does nothing —…
MartinStenhagen 8adc1f4
fixed coderabbit feedback: Replace with correct exception type for Ca…
MartinStenhagen 2e2b0aa
fixed coderabbit feedback: Label "Instans" is inconsistent with the r…
MartinStenhagen File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 7 additions & 0 deletions
7
src/main/java/backendlab/team4you/exceptions/DuplicateMeetingAgendaDocumentException.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| package backendlab.team4you.exceptions; | ||
|
|
||
| public class DuplicateMeetingAgendaDocumentException extends RuntimeException { | ||
| public DuplicateMeetingAgendaDocumentException(String message) { | ||
| super(message); | ||
| } | ||
| } |
7 changes: 7 additions & 0 deletions
7
src/main/java/backendlab/team4you/exceptions/DuplicateMeetingAgendaItemException.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| package backendlab.team4you.exceptions; | ||
|
|
||
| public class DuplicateMeetingAgendaItemException extends RuntimeException { | ||
| public DuplicateMeetingAgendaItemException(String message) { | ||
| super(message); | ||
| } | ||
| } |
7 changes: 7 additions & 0 deletions
7
src/main/java/backendlab/team4you/exceptions/FileInUseException.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| package backendlab.team4you.exceptions; | ||
|
|
||
| public class FileInUseException extends RuntimeException { | ||
| public FileInUseException(String message) { | ||
| super(message); | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 7 additions & 0 deletions
7
src/main/java/backendlab/team4you/exceptions/InvalidMeetingStateException.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| package backendlab.team4you.exceptions; | ||
|
|
||
| public class InvalidMeetingStateException extends RuntimeException { | ||
| public InvalidMeetingStateException(String message) { | ||
| super(message); | ||
| } | ||
| } |
7 changes: 7 additions & 0 deletions
7
src/main/java/backendlab/team4you/exceptions/MeetingAgendaDocumentNotFoundException.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| package backendlab.team4you.exceptions; | ||
|
|
||
| public class MeetingAgendaDocumentNotFoundException extends RuntimeException { | ||
| public MeetingAgendaDocumentNotFoundException(String message) { | ||
| super(message); | ||
| } | ||
| } |
7 changes: 7 additions & 0 deletions
7
src/main/java/backendlab/team4you/exceptions/MeetingAgendaItemNotFoundException.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| package backendlab.team4you.exceptions; | ||
|
|
||
| public class MeetingAgendaItemNotFoundException extends RuntimeException { | ||
| public MeetingAgendaItemNotFoundException(String message) { | ||
| super(message); | ||
| } | ||
| } |
7 changes: 7 additions & 0 deletions
7
src/main/java/backendlab/team4you/exceptions/MeetingNotFoundException.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| package backendlab.team4you.exceptions; | ||
|
|
||
| public class MeetingNotFoundException extends RuntimeException { | ||
| public MeetingNotFoundException(String message) { | ||
| super(message); | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,159 @@ | ||
| package backendlab.team4you.meeting; | ||
|
|
||
| import backendlab.team4you.registry.Registry; | ||
| import jakarta.persistence.*; | ||
|
|
||
| import java.time.LocalDateTime; | ||
| import java.util.ArrayList; | ||
| import java.util.List; | ||
|
|
||
| @Entity | ||
| @Table(name = "meeting") | ||
| public class Meeting { | ||
|
|
||
| @Id | ||
| @GeneratedValue(strategy = GenerationType.IDENTITY) | ||
| private Long id; | ||
|
|
||
| @ManyToOne(fetch = FetchType.LAZY, optional = false) | ||
| @JoinColumn(name = "registry_id", nullable = false) | ||
| private Registry registry; | ||
|
|
||
| @Column(nullable = false, length = 200) | ||
| private String title; | ||
|
|
||
| @Column(name = "starts_at", nullable = false) | ||
| private LocalDateTime startsAt; | ||
|
|
||
| @Column(name = "ends_at") | ||
| private LocalDateTime endsAt; | ||
|
|
||
| @Column(length = 200) | ||
| private String location; | ||
|
|
||
| @Enumerated(EnumType.STRING) | ||
| @Column(nullable = false, length = 30) | ||
| private MeetingStatus status; | ||
|
|
||
| @Column(length = 2000) | ||
| private String notes; | ||
|
|
||
| @OneToMany(mappedBy = "meeting", cascade = CascadeType.ALL, orphanRemoval = true) | ||
| @OrderBy("agendaOrder ASC") | ||
| private List<MeetingAgendaItem> agendaItems = new ArrayList<>(); | ||
|
|
||
| @Column(name = "created_at", nullable = false, updatable = false) | ||
| private LocalDateTime createdAt; | ||
|
|
||
| @Column(name = "updated_at", nullable = false) | ||
| private LocalDateTime updatedAt; | ||
|
|
||
| protected Meeting() { | ||
| } | ||
|
|
||
| public Meeting( | ||
| Registry registry, | ||
| String title, | ||
| LocalDateTime startsAt, | ||
| LocalDateTime endsAt, | ||
| String location, | ||
| MeetingStatus status, | ||
| String notes | ||
| ) { | ||
| this.registry = registry; | ||
| this.title = title; | ||
| this.startsAt = startsAt; | ||
| this.endsAt = endsAt; | ||
| this.location = location; | ||
| this.status = status; | ||
| this.notes = notes; | ||
| } | ||
|
|
||
| @PrePersist | ||
| void onCreate() { | ||
| LocalDateTime now = LocalDateTime.now(); | ||
| this.createdAt = now; | ||
| this.updatedAt = now; | ||
|
|
||
| if (this.status == null) { | ||
| this.status = MeetingStatus.PLANNED; | ||
| } | ||
| } | ||
|
|
||
| @PreUpdate | ||
| void onUpdate() { | ||
| this.updatedAt = LocalDateTime.now(); | ||
| } | ||
|
|
||
| public Long getId() { | ||
| return id; | ||
| } | ||
|
|
||
| public Registry getRegistry() { | ||
| return registry; | ||
| } | ||
|
|
||
| public void setRegistry(Registry registry) { | ||
| this.registry = registry; | ||
| } | ||
|
|
||
| public String getTitle() { | ||
| return title; | ||
| } | ||
|
|
||
| public void setTitle(String title) { | ||
| this.title = title; | ||
| } | ||
|
|
||
| public LocalDateTime getStartsAt() { | ||
| return startsAt; | ||
| } | ||
|
|
||
| public void setStartsAt(LocalDateTime startsAt) { | ||
| this.startsAt = startsAt; | ||
| } | ||
|
|
||
| public LocalDateTime getEndsAt() { | ||
| return endsAt; | ||
| } | ||
|
|
||
| public void setEndsAt(LocalDateTime endsAt) { | ||
| this.endsAt = endsAt; | ||
| } | ||
|
|
||
| public String getLocation() { | ||
| return location; | ||
| } | ||
|
|
||
| public void setLocation(String location) { | ||
| this.location = location; | ||
| } | ||
|
|
||
| public MeetingStatus getStatus() { | ||
| return status; | ||
| } | ||
|
|
||
| public void setStatus(MeetingStatus status) { | ||
| this.status = status; | ||
| } | ||
|
|
||
| public String getNotes() { | ||
| return notes; | ||
| } | ||
|
|
||
| public void setNotes(String notes) { | ||
| this.notes = notes; | ||
| } | ||
|
|
||
| public List<MeetingAgendaItem> getAgendaItems() { | ||
| return agendaItems; | ||
| } | ||
|
|
||
| public LocalDateTime getCreatedAt() { | ||
| return createdAt; | ||
| } | ||
|
|
||
| public LocalDateTime getUpdatedAt() { | ||
| return updatedAt; | ||
| } | ||
| } |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.