Skip to content
Snippets Groups Projects
Commit 8d7f17df authored by Georgios Andreadis's avatar Georgios Andreadis :musical_note:
Browse files

Merge branch '271-claimed-slots-in-admin-view-not-sorted-correctly' into 'development'

Resolve "Claimed slots in admin view not sorted correctly"

Closes #271

See merge request !254
parents 9a972819 5971a090
Branches
No related tags found
1 merge request!254Resolve "Claimed slots in admin view not sorted correctly"
......@@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
### Fixed
- Correctly sort claimed time slots in admin view [@cedricwilleken](https://gitlab.ewi.tudelft.nl/cedricwilleken)
## [1.2.0] - (2020-05-20)
### Added
......
......@@ -21,6 +21,7 @@ package nl.tudelft.ewi.walkytalky.controller;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
......@@ -210,6 +211,7 @@ public class UnitController {
Unit unit = unitRepository.findById(id).orElseThrow();
List<ClaimedTimeSlot> claimedTimeSlots = claimedTimeSlotRepository
.findAllByUnitOnOrAfterDate(unit, LocalDate.now());
Collections.sort(claimedTimeSlots);
model.addAttribute("slots", claimedTimeSlots);
model.addAttribute("unit", unit);
......
......@@ -39,7 +39,7 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class ClaimedTimeSlot {
public class ClaimedTimeSlot implements Comparable<ClaimedTimeSlot> {
@Id
@GeneratedValue
private Long id;
......@@ -87,4 +87,9 @@ public class ClaimedTimeSlot {
public int hashCode() {
return Objects.hash(getId());
}
@Override
public int compareTo(ClaimedTimeSlot claimedTimeSlot) {
return this.slot.start().compareTo(claimedTimeSlot.getSlot().start());
}
}
......@@ -29,7 +29,6 @@ import java.util.stream.Collectors;
import nl.tudelft.ewi.walkytalky.model.*;
import org.springframework.data.domain.Sort;
import org.springframework.data.querydsl.QSort;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
......@@ -65,8 +64,7 @@ public interface ClaimedTimeSlotRepository extends PagingAndSortingRepository<Cl
List<ClaimedTimeSlot> findAll(Sort sort);
default List<ClaimedTimeSlot> findAllByUnitOnOrAfterDate(Unit unit, LocalDate date) {
QSort sort = QSort.by(qClaimedTimeSlot.slot.schedule.start.asc());
return findAll(sort).stream()
return findAll().stream()
.filter(t -> t.getSlot().getSchedule().getUnit().equals(unit)
&& t.getSlot().startsAfter(LocalDateTime.of(date, LocalTime.MIDNIGHT)))
.collect(Collectors.toList());
......
......@@ -19,9 +19,14 @@
*/
package nl.tudelft.ewi.walkytalky.model;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import nl.tudelft.ewi.walkytalky.SpringTestSecurityConfig;
import nl.tudelft.ewi.walkytalky.repository.ClaimedTimeSlotRepository;
......@@ -51,4 +56,16 @@ class ClaimedTimeSlotTest {
claimedTimeSlot.setRoom(new RoomInfo("test", RoomStatus.ACTIVE));
assertTrue(claimedTimeSlot.isActive());
}
@Test
void testSortingCorrectly() {
List<ClaimedTimeSlot> claimedTimeSlots = claimedTimeSlotRepository.findAll();
Collections.sort(claimedTimeSlots);
Iterator<ClaimedTimeSlot> claimedTimeSlotIterator = claimedTimeSlots.iterator();
ClaimedTimeSlot prev = claimedTimeSlotIterator.next();
while (claimedTimeSlotIterator.hasNext()) {
assertThat(prev.getSlot().start().compareTo(claimedTimeSlotIterator.next().getSlot().start()))
.isLessThanOrEqualTo(0);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment