From b5403ae20c1ba977ce5eb9daf5d16c43379faea3 Mon Sep 17 00:00:00 2001 From: Jottyfan Date: Wed, 23 Oct 2024 22:42:15 +0200 Subject: [PATCH] still buggy on rejecting people and loading old bookings --- build.gradle | 20 +++++----- .../business/bookings/BookingsRepository.java | 21 ++++++----- .../business/bookings/model/BookerBean.java | 32 ++++++++-------- .../module/business/camp/CampRepository.java | 12 +++--- .../module/business/camp/CampService.java | 9 +++-- .../business/camp/model/PersonBean.java | 30 +++++++-------- .../module/camplist/CamplistRepository.java | 6 ++- .../module/camplist/model/BookingBean.java | 24 +++++++----- .../board/ConfirmationBoardRepository.java | 4 +- .../confirmation/board/List2CSVService.java | 2 +- .../confirmation/board/model/PersonBean.java | 30 +++++++-------- .../confirmation/ConfirmationRepository.java | 37 ++++++++++--------- .../confirmation/ConfirmationService.java | 9 +++-- .../confirmation/model/BookingBean.java | 16 +++++--- .../confirmation/person/PersonController.java | 2 + .../confirmation/person/PersonRepository.java | 10 +++-- .../confirmation/person/PersonService.java | 10 +++++ .../confirmation/person/model/PersonBean.java | 30 +++++++-------- src/main/resources/static/css/style.css | 6 +++ .../resources/templates/business/booker.html | 4 +- .../templates/business/bookings.html | 4 +- .../resources/templates/business/camp.html | 4 +- .../templates/confirmation/camplist.html | 2 +- .../templates/confirmation/person.html | 9 ++--- src/main/resources/templates/dashboard.html | 12 +++--- src/main/resources/templates/template.html | 8 ++-- 26 files changed, 198 insertions(+), 155 deletions(-) diff --git a/build.gradle b/build.gradle index 982a24f..88cef72 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.springframework.boot' version '3.2.4' + id 'org.springframework.boot' version '3.3.4' id "io.spring.dependency-management" version "1.1.4" id 'java' id 'war' @@ -8,7 +8,7 @@ plugins { } group = 'de.jottyfan.camporganizer' -version = '0.8.6' +version = '0.8.7' description = """CampOrganizer2""" @@ -40,15 +40,15 @@ war { } dependencies { - implementation 'org.jooq:jooq:3.19.6' - implementation 'de.jottyfan:COJooq:2024.03.16c' + implementation 'org.jooq:jooq:3.19.14' + implementation 'de.jottyfan:COJooq:2024.10.24' - implementation 'org.apache.logging.log4j:log4j-api:2.23.1' - implementation 'org.apache.logging.log4j:log4j-core:2.23.1' - implementation 'org.apache.logging.log4j:log4j-to-slf4j:2.23.1' + implementation 'org.apache.logging.log4j:log4j-api:2.24.1' + implementation 'org.apache.logging.log4j:log4j-core:2.24.1' + implementation 'org.apache.logging.log4j:log4j-to-slf4j:2.24.1' - implementation 'org.webjars:bootstrap:5.3.2' - implementation 'org.webjars:font-awesome:6.5.1' + implementation 'org.webjars:bootstrap:5.3.3' + implementation 'org.webjars:font-awesome:6.5.2' implementation 'org.webjars:jquery:3.7.1' implementation 'org.webjars:popper.js:2.11.7' implementation 'org.webjars:datatables:1.13.5' @@ -74,7 +74,7 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-jooq' implementation 'org.springframework.boot:spring-boot-starter-security' implementation "org.springframework.boot:spring-boot-starter-oauth2-client" - implementation 'org.springframework.security:spring-security-oauth2-authorization-server:1.2.1' + implementation 'org.springframework.security:spring-security-oauth2-authorization-server:1.3.3' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' diff --git a/src/main/java/de/jottyfan/camporganizer/module/business/bookings/BookingsRepository.java b/src/main/java/de/jottyfan/camporganizer/module/business/bookings/BookingsRepository.java index b510bbf..6c1c4b1 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/business/bookings/BookingsRepository.java +++ b/src/main/java/de/jottyfan/camporganizer/module/business/bookings/BookingsRepository.java @@ -1,8 +1,8 @@ package de.jottyfan.camporganizer.module.business.bookings; +import static de.jottyfan.camporganizer.db.jooq.Tables.T_CAMPPROFILE; import static de.jottyfan.camporganizer.db.jooq.Tables.T_PERSON; import static de.jottyfan.camporganizer.db.jooq.Tables.T_PROFILE; -import static de.jottyfan.camporganizer.db.jooq.Tables.T_CAMPPROFILE; import static de.jottyfan.camporganizer.db.jooq.Tables.V_CAMP; import java.math.BigDecimal; @@ -27,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional; import de.jottyfan.camporganizer.db.EnumConverter; import de.jottyfan.camporganizer.db.jooq.enums.EnumCamprole; import de.jottyfan.camporganizer.db.jooq.enums.EnumModule; +import de.jottyfan.camporganizer.db.jooq.enums.EnumProgress; import de.jottyfan.camporganizer.db.jooq.enums.EnumSex; import de.jottyfan.camporganizer.db.jooq.tables.records.TPersonRecord; import de.jottyfan.camporganizer.module.business.bookings.model.BookerBean; @@ -52,9 +53,9 @@ public class BookingsRepository { * @return a list of bookings; an empty one at least */ public List getBookings(String username) { - SelectSeekStep4, EnumCamprole, EnumSex, String, String> sql = jooq + SelectSeekStep4, EnumCamprole, EnumSex, String, String> sql = jooq // @formatter:off - .select(T_PERSON.PK, T_PERSON.ACCEPT, T_PERSON.PAID, T_PERSON.FORENAME, T_PERSON.SURNAME, T_PERSON.CAMPROLE, T_PERSON.SEX, T_PERSON.CREATED, V_CAMP.NAME, V_CAMP.YEAR) + .select(T_PERSON.PK, T_PERSON.PROGRESS, T_PERSON.PAID, T_PERSON.FORENAME, T_PERSON.SURNAME, T_PERSON.CAMPROLE, T_PERSON.SEX, T_PERSON.CREATED, V_CAMP.NAME, V_CAMP.YEAR) .from(T_PERSON) .leftJoin(V_CAMP).on(V_CAMP.PK.eq(T_PERSON.FK_CAMP)) .leftJoin(T_CAMPPROFILE).on(T_CAMPPROFILE.FK_CAMP.eq(T_PERSON.FK_CAMP)).and(T_CAMPPROFILE.MODULE.eq(EnumModule.business)) @@ -64,13 +65,14 @@ public class BookingsRepository { // @formatter:on LOGGER.debug(sql.toString()); List list = new ArrayList<>(); - Iterator> i = sql.fetch().iterator(); + Iterator> i = sql.fetch().iterator(); while (i.hasNext()) { - Record10 r = i.next(); + Record10 r = i.next(); String forename = r.get(T_PERSON.FORENAME); String surname = r.get(T_PERSON.SURNAME); EnumCamprole role = r.get(T_PERSON.CAMPROLE); EnumSex sex = r.get(T_PERSON.SEX); + EnumProgress progress = r.get(T_PERSON.PROGRESS); String campName = r.get(V_CAMP.NAME); Double campYear = r.get(V_CAMP.YEAR); BookerBean bean = new BookerBean(); @@ -79,7 +81,7 @@ public class BookingsRepository { bean.setRole(EnumConverter.role2GermanNames(role)); bean.setSex(EnumConverter.sex2GermanNames(sex)); bean.setBookingDate(r.get(T_PERSON.CREATED)); - bean.setAccept(r.get(T_PERSON.ACCEPT)); + bean.setProgress(progress == null ? null : progress.getLiteral()); bean.setPaid(r.get(T_PERSON.PAID)); bean.setCamp(String.format("%s %4.0f", campName, campYear)); list.add(bean); @@ -95,10 +97,10 @@ public class BookingsRepository { * @return the booker bean or null */ public BookerBean getBooking(Integer id, String username) { - SelectConditionStep> sql = jooq + SelectConditionStep> sql = jooq // @formatter:off .select(T_PERSON.PK, - T_PERSON.ACCEPT, + T_PERSON.PROGRESS, T_PERSON.PAID, T_PERSON.FORENAME, T_PERSON.SURNAME, @@ -126,6 +128,7 @@ public class BookingsRepository { String surname = r.get(T_PERSON.SURNAME); EnumCamprole role = r.get(T_PERSON.CAMPROLE); EnumSex sex = r.get(T_PERSON.SEX); + EnumProgress progress = r.get(T_PERSON.PROGRESS); BigDecimal requiredPrice = r.get(T_PERSON.REQUIRED_PRICE); String campName = r.get(V_CAMP.NAME); Double campYear = r.get(V_CAMP.YEAR); @@ -136,7 +139,7 @@ public class BookingsRepository { bean.setRole(EnumConverter.role2GermanNames(role)); bean.setSex(EnumConverter.sex2GermanNames(sex)); bean.setBookingDate(r.get(T_PERSON.CREATED)); - bean.setAccept(r.get(T_PERSON.ACCEPT)); + bean.setProgress(progress == null ? null : progress.getLiteral()); bean.setPaid(r.get(T_PERSON.PAID)); bean.setCamp(String.format("%s %4.0f", campName, campYear)); bean.setCampId(campId); diff --git a/src/main/java/de/jottyfan/camporganizer/module/business/bookings/model/BookerBean.java b/src/main/java/de/jottyfan/camporganizer/module/business/bookings/model/BookerBean.java index 04e3d01..cc3d8f0 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/business/bookings/model/BookerBean.java +++ b/src/main/java/de/jottyfan/camporganizer/module/business/bookings/model/BookerBean.java @@ -10,13 +10,13 @@ import java.time.LocalDateTime; * */ public class BookerBean implements Serializable { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 2L; private Integer pk; private String name; private String role; private String sex; - private Boolean accept; + private String progress; private LocalDateTime bookingDate; private BigDecimal paid; private String camp; @@ -24,20 +24,6 @@ public class BookerBean implements Serializable { private Integer campId; private BigDecimal requiredPrice; - /** - * @return the accept - */ - public Boolean getAccept() { - return accept; - } - - /** - * @param accept the accept to set - */ - public void setAccept(Boolean accept) { - this.accept = accept; - } - /** * @return the paid */ @@ -141,4 +127,18 @@ public class BookerBean implements Serializable { public void setRequiredPrice(BigDecimal requiredPrice) { this.requiredPrice = requiredPrice; } + + /** + * @return the progress + */ + public String getProgress() { + return progress; + } + + /** + * @param progress the progress to set + */ + public void setProgress(String progress) { + this.progress = progress; + } } diff --git a/src/main/java/de/jottyfan/camporganizer/module/business/camp/CampRepository.java b/src/main/java/de/jottyfan/camporganizer/module/business/camp/CampRepository.java index f60ff03..2e576e6 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/business/camp/CampRepository.java +++ b/src/main/java/de/jottyfan/camporganizer/module/business/camp/CampRepository.java @@ -25,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional; import de.jottyfan.camporganizer.db.EnumConverter; import de.jottyfan.camporganizer.db.jooq.enums.EnumCamprole; import de.jottyfan.camporganizer.db.jooq.enums.EnumModule; +import de.jottyfan.camporganizer.db.jooq.enums.EnumProgress; import de.jottyfan.camporganizer.db.jooq.enums.EnumSex; import de.jottyfan.camporganizer.module.business.camp.model.CampBean; import de.jottyfan.camporganizer.module.business.camp.model.PersonBean; @@ -84,9 +85,9 @@ public class CampRepository { * @return a list of bookings; an empty one at least */ public List getBookings(Integer pk, String username) { - SelectSeekStep4, EnumCamprole, EnumSex, String, String> sql = jooq + SelectSeekStep4, EnumCamprole, EnumSex, String, String> sql = jooq // @formatter:off - .select(T_PERSON.PK, T_PERSON.ACCEPT, T_PERSON.PAID, T_PERSON.FORENAME, T_PERSON.SURNAME, T_PERSON.CAMPROLE, T_PERSON.SEX, T_PERSON.CREATED) + .select(T_PERSON.PK, T_PERSON.PROGRESS, T_PERSON.PAID, T_PERSON.FORENAME, T_PERSON.SURNAME, T_PERSON.CAMPROLE, T_PERSON.SEX, T_PERSON.CREATED) .from(T_PERSON) .leftJoin(T_CAMPPROFILE).on(T_CAMPPROFILE.FK_CAMP.eq(T_PERSON.FK_CAMP)).and(T_CAMPPROFILE.MODULE.eq(EnumModule.business)) .leftJoin(T_PROFILE).on(T_PROFILE.PK.eq(T_CAMPPROFILE.FK_PROFILE)) @@ -96,20 +97,21 @@ public class CampRepository { // @formatter:on LOGGER.debug(sql.toString()); List list = new ArrayList<>(); - Iterator> i = sql.fetch().iterator(); + Iterator> i = sql.fetch().iterator(); while (i.hasNext()) { - Record8 r = i.next(); + Record8 r = i.next(); String forename = r.get(T_PERSON.FORENAME); String surname = r.get(T_PERSON.SURNAME); EnumCamprole role = r.get(T_PERSON.CAMPROLE); EnumSex sex = r.get(T_PERSON.SEX); + EnumProgress progress = r.get(T_PERSON.PROGRESS); PersonBean bean = new PersonBean(); bean.setPk(r.get(T_PERSON.PK)); bean.setName(String.format("%s %s", forename, surname)); bean.setRole(EnumConverter.role2GermanNames(role)); bean.setSex(EnumConverter.sex2GermanNames(sex)); bean.setBookingDate(r.get(T_PERSON.CREATED)); - bean.setAccept(r.get(T_PERSON.ACCEPT)); + bean.setProgress(progress == null ? null : progress.getLiteral()); bean.setPaid(r.get(T_PERSON.PAID)); list.add(bean); } diff --git a/src/main/java/de/jottyfan/camporganizer/module/business/camp/CampService.java b/src/main/java/de/jottyfan/camporganizer/module/business/camp/CampService.java index c16027d..88ed9f6 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/business/camp/CampService.java +++ b/src/main/java/de/jottyfan/camporganizer/module/business/camp/CampService.java @@ -6,6 +6,7 @@ import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import de.jottyfan.camporganizer.db.jooq.enums.EnumProgress; import de.jottyfan.camporganizer.module.business.camp.model.BookingBean; import de.jottyfan.camporganizer.module.business.camp.model.CampBean; import de.jottyfan.camporganizer.module.business.camp.model.PersonBean; @@ -31,12 +32,12 @@ public class CampService { Integer rejected = 0; BigDecimal paid = new BigDecimal(0); for (PersonBean p : campGateway.getBookings(id, username)) { - Boolean acceptence = p.getAccept(); - if (acceptence == null) { + String progress = p.getProgress(); + if (EnumProgress.requested.getLiteral().equals(progress)) { open += 1; - } else if (acceptence) { + } else if (EnumProgress.approved.getLiteral().equals(progress)) { approved += 1; - } else { + } else if (EnumProgress.rejected.getLiteral().equals(progress)) { rejected += 1; } paid = paid.add(p.getPaid() == null ? new BigDecimal(0) : p.getPaid()); diff --git a/src/main/java/de/jottyfan/camporganizer/module/business/camp/model/PersonBean.java b/src/main/java/de/jottyfan/camporganizer/module/business/camp/model/PersonBean.java index a3d42f5..a1b4b5a 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/business/camp/model/PersonBean.java +++ b/src/main/java/de/jottyfan/camporganizer/module/business/camp/model/PersonBean.java @@ -16,24 +16,10 @@ public class PersonBean implements Serializable { private String name; private String role; private String sex; - private Boolean accept; + private String progress; private LocalDateTime bookingDate; private BigDecimal paid; - /** - * @return the accept - */ - public Boolean getAccept() { - return accept; - } - - /** - * @param accept the accept to set - */ - public void setAccept(Boolean accept) { - this.accept = accept; - } - /** * @return the paid */ @@ -99,4 +85,18 @@ public class PersonBean implements Serializable { public void setBookingDate(LocalDateTime bookingDate) { this.bookingDate = bookingDate; } + + /** + * @return the progress + */ + public String getProgress() { + return progress; + } + + /** + * @param progress the progress to set + */ + public void setProgress(String progress) { + this.progress = progress; + } } diff --git a/src/main/java/de/jottyfan/camporganizer/module/camplist/CamplistRepository.java b/src/main/java/de/jottyfan/camporganizer/module/camplist/CamplistRepository.java index 275d342..9f46624 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/camplist/CamplistRepository.java +++ b/src/main/java/de/jottyfan/camporganizer/module/camplist/CamplistRepository.java @@ -34,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional; import de.jottyfan.camporganizer.db.jooq.enums.EnumCamprole; import de.jottyfan.camporganizer.db.jooq.enums.EnumDocument; +import de.jottyfan.camporganizer.db.jooq.enums.EnumProgress; import de.jottyfan.camporganizer.db.jooq.tables.TProfile; import de.jottyfan.camporganizer.db.jooq.tables.records.VCampRecord; import de.jottyfan.camporganizer.module.camplist.model.BookingBean; @@ -76,7 +77,7 @@ public class CamplistRepository { T_PERSON.CREATED, T_PERSON.EMAIL, T_PERSON.SEX, - T_PERSON.ACCEPT, + T_PERSON.PROGRESS, T_PERSON.FK_CAMP, T_PROFILE.FORENAME, T_PROFILE.SURNAME, @@ -106,6 +107,8 @@ public class CamplistRepository { Record r = i.next(); Integer fkCamp = r.get(T_PERSON.FK_CAMP); BookingBean bean = new BookingBean(); + EnumProgress progress = r.get(T_PERSON.PROGRESS); + bean.setProgress(progress == null ? null : progress.getLiteral()); bean.setPk(r.get(T_PERSON.PK)); bean.setForename(r.get(T_PERSON.FORENAME)); bean.setSurname(r.get(T_PERSON.SURNAME)); @@ -129,7 +132,6 @@ public class CamplistRepository { bean.setUrl(r.get(V_CAMP.URL)); bean.setIsOver(r.get(V_CAMP.IS_OVER)); bean.setCampName(r.get(V_CAMP.NAME)); - bean.setAccept(r.get(T_PERSON.ACCEPT)); StringBuilder buf = new StringBuilder(); String forename = r.get(REGISTRATOR.FORENAME); String surname = r.get(REGISTRATOR.SURNAME); diff --git a/src/main/java/de/jottyfan/camporganizer/module/camplist/model/BookingBean.java b/src/main/java/de/jottyfan/camporganizer/module/camplist/model/BookingBean.java index 4faf4ba..17164c4 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/camplist/model/BookingBean.java +++ b/src/main/java/de/jottyfan/camporganizer/module/camplist/model/BookingBean.java @@ -41,7 +41,7 @@ public class BookingBean implements Serializable { private Boolean isOver; private String campName; private String registrator; - private Boolean accept; + private String progress; private String subscriber; private List documents; @@ -396,14 +396,6 @@ public class BookingBean implements Serializable { this.registrator = registrator; } - public Boolean getAccept() { - return accept; - } - - public void setAccept(Boolean accept) { - this.accept = accept; - } - public String getSubscriber() { return subscriber; } @@ -416,4 +408,18 @@ public class BookingBean implements Serializable { return documents; } + /** + * @return the progress + */ + public String getProgress() { + return progress; + } + + /** + * @param progress the progress to set + */ + public void setProgress(String progress) { + this.progress = progress; + } + } diff --git a/src/main/java/de/jottyfan/camporganizer/module/confirmation/board/ConfirmationBoardRepository.java b/src/main/java/de/jottyfan/camporganizer/module/confirmation/board/ConfirmationBoardRepository.java index bb0bdcd..b1bb33e 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/confirmation/board/ConfirmationBoardRepository.java +++ b/src/main/java/de/jottyfan/camporganizer/module/confirmation/board/ConfirmationBoardRepository.java @@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import de.jottyfan.camporganizer.db.jooq.enums.EnumModule; +import de.jottyfan.camporganizer.db.jooq.enums.EnumProgress; import de.jottyfan.camporganizer.db.jooq.enums.EnumSex; import de.jottyfan.camporganizer.module.confirmation.board.model.CampBean; import de.jottyfan.camporganizer.module.confirmation.board.model.PersonBean; @@ -93,7 +94,8 @@ public class ConfirmationBoardRepository { while (i.hasNext()) { Record r = i.next(); PersonBean bean = new PersonBean(); - bean.setAccept(r.get(T_PERSON.ACCEPT)); + EnumProgress progress = r.get(T_PERSON.PROGRESS); + bean.setProgress(progress == null ? null : progress.getLiteral()); bean.setBirthDate(r.get(T_PERSON.BIRTHDATE)); bean.setCamprole(r.get(T_PERSON.CAMPROLE) == null ? null : r.get(T_PERSON.CAMPROLE).getLiteral()); bean.setCity(r.get(T_PERSON.CITY)); diff --git a/src/main/java/de/jottyfan/camporganizer/module/confirmation/board/List2CSVService.java b/src/main/java/de/jottyfan/camporganizer/module/confirmation/board/List2CSVService.java index 658685b..2c75273 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/confirmation/board/List2CSVService.java +++ b/src/main/java/de/jottyfan/camporganizer/module/confirmation/board/List2CSVService.java @@ -61,7 +61,7 @@ public class List2CSVService { append(buf, bean.getSex()); append(buf, bean.getCamprolle()); append(buf, bean.getBirthDate()); - append(buf, bean.getAccept()); + append(buf, bean.getProgress()); append(buf, bean.getCreated()); append(buf, bean.getConsentCatalogPhoto()); append(buf, bean.getComment()); diff --git a/src/main/java/de/jottyfan/camporganizer/module/confirmation/board/model/PersonBean.java b/src/main/java/de/jottyfan/camporganizer/module/confirmation/board/model/PersonBean.java index 4af042f..92ea41b 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/confirmation/board/model/PersonBean.java +++ b/src/main/java/de/jottyfan/camporganizer/module/confirmation/board/model/PersonBean.java @@ -22,7 +22,7 @@ public class PersonBean implements Serializable { private String email; private LocalDate birthDate; private String camprole; - private Boolean accept; + private String progress; private LocalDateTime created; private String sex; private Double paid; @@ -181,20 +181,6 @@ public class PersonBean implements Serializable { this.camprole = camprole; } - /** - * @return the accept - */ - public Boolean getAccept() { - return accept; - } - - /** - * @param accept the accept to set - */ - public void setAccept(Boolean accept) { - this.accept = accept; - } - /** * @return the created */ @@ -264,4 +250,18 @@ public class PersonBean implements Serializable { public void setConsentCatalogPhoto(Boolean consentCatalogPhoto) { this.consentCatalogPhoto = consentCatalogPhoto; } + + /** + * @return the progress + */ + public String getProgress() { + return progress; + } + + /** + * @param progress the progress to set + */ + public void setProgress(String progress) { + this.progress = progress; + } } diff --git a/src/main/java/de/jottyfan/camporganizer/module/confirmation/confirmation/ConfirmationRepository.java b/src/main/java/de/jottyfan/camporganizer/module/confirmation/confirmation/ConfirmationRepository.java index d77f0c9..3beb919 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/confirmation/confirmation/ConfirmationRepository.java +++ b/src/main/java/de/jottyfan/camporganizer/module/confirmation/confirmation/ConfirmationRepository.java @@ -31,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional; import de.jottyfan.camporganizer.db.jooq.enums.EnumCamprole; import de.jottyfan.camporganizer.db.jooq.enums.EnumModule; +import de.jottyfan.camporganizer.db.jooq.enums.EnumProgress; import de.jottyfan.camporganizer.module.confirmation.confirmation.model.BookingBean; import de.jottyfan.camporganizer.module.confirmation.confirmation.model.CampOverviewBean; @@ -55,10 +56,10 @@ public class ConfirmationRepository { */ public List getCampOverviewBeans(String currentUser) { Name COUNT = DSL.name("count"); - SelectHavingStep> sql = jooq + SelectHavingStep> sql = jooq // @formatter:off .select(DSL.count(T_PERSON.PK).as(COUNT), - T_PERSON.ACCEPT, + T_PERSON.PROGRESS, T_CAMP.NAME, T_CAMP.ARRIVE) .from(T_PERSON) @@ -68,15 +69,15 @@ public class ConfirmationRepository { .where(T_CAMP.ARRIVE.isNotNull()) .and(T_CAMPPROFILE.MODULE.eq(EnumModule.registration)) .and(T_PROFILE.USERNAME.eq(currentUser)) - .groupBy(T_CAMP.NAME, T_CAMP.ARRIVE, T_PERSON.ACCEPT); + .groupBy(T_CAMP.NAME, T_CAMP.ARRIVE, T_PERSON.PROGRESS); // @formatter:on LOGGER.debug(sql.toString()); Map map = new HashMap<>(); - Iterator> i = sql.fetch().iterator(); + Iterator> i = sql.fetch().iterator(); while (i.hasNext()) { - Record4 r = i.next(); + Record4 r = i.next(); Integer count = r.get(COUNT, Integer.class); - Boolean accept = r.get(T_PERSON.ACCEPT); + EnumProgress progress = r.get(T_PERSON.PROGRESS); String campname = r.get(T_CAMP.NAME); LocalDateTime arrive = r.get(T_CAMP.ARRIVE); CampOverviewBean bean = map.get(arrive); @@ -84,11 +85,11 @@ public class ConfirmationRepository { bean = new CampOverviewBean(arrive.toLocalDate(), campname); map.put(arrive, bean); } - if (accept == null) { + if (progress == null || EnumProgress.requested.equals(progress)) { bean.setUntouched(count); - } else if (accept) { + } else if (EnumProgress.approved.equals(progress)) { bean.setApproved(count); - } else { + } else if (EnumProgress.rejected.equals(progress)){ bean.setRejected(count); } } @@ -145,7 +146,7 @@ public class ConfirmationRepository { * @return a list of booking beans; an empty one at least */ public List getUntouched(String currentUser) { - return getListWithCondition(currentUser, T_PERSON.ACCEPT.isNull()); + return getListWithCondition(currentUser, T_PERSON.PROGRESS.eq(EnumProgress.requested)); } /** @@ -155,7 +156,7 @@ public class ConfirmationRepository { * @return a list of booking beans; an empty one at least */ public List getApproved(String currentUser) { - return getListWithCondition(currentUser, T_PERSON.ACCEPT.isTrue()); + return getListWithCondition(currentUser, T_PERSON.PROGRESS.eq(EnumProgress.approved)); } /** @@ -165,7 +166,7 @@ public class ConfirmationRepository { * @return a list of booking beans; an empty one at least */ public List getRejected(String currentUser) { - return getListWithCondition(currentUser, T_PERSON.ACCEPT.isFalse()); + return getListWithCondition(currentUser, T_PERSON.PROGRESS.eq(EnumProgress.rejected)); } /** @@ -183,9 +184,9 @@ public class ConfirmationRepository { .or(V_CAMP.YEAR.cast(String.class).containsIgnoreCase(needle)); // @formatter:on - SelectSeekStep1, LocalDateTime> sql = jooq + SelectSeekStep1, LocalDateTime> sql = jooq // @formatter:off - .select(T_PERSON.PK, T_PERSON.FORENAME, T_PERSON.SURNAME, T_PERSON.CAMPROLE, V_CAMP.NAME, V_CAMP.YEAR, V_CAMP.LOCATION_NAME, T_PERSON.ACCEPT) + .select(T_PERSON.PK, T_PERSON.FORENAME, T_PERSON.SURNAME, T_PERSON.CAMPROLE, V_CAMP.NAME, V_CAMP.YEAR, V_CAMP.LOCATION_NAME, T_PERSON.PROGRESS) .from(T_PERSON) .leftJoin(V_CAMP).on(V_CAMP.PK.eq(T_PERSON.FK_CAMP)) .leftJoin(T_CAMPPROFILE).on(T_CAMPPROFILE.FK_CAMP.eq(T_PERSON.FK_CAMP)) @@ -197,20 +198,20 @@ public class ConfirmationRepository { // @formatter:on LOGGER.debug(sql.toString()); List list = new ArrayList<>(); - Iterator> i = sql.fetch().iterator(); + Iterator> i = sql.fetch().iterator(); while (i.hasNext()) { - Record8 r = i.next(); + Record8 r = i.next(); Integer pkPerson = r.get(T_PERSON.PK); String forename = r.get(T_PERSON.FORENAME); String surname = r.get(T_PERSON.SURNAME); EnumCamprole role = r.get(T_PERSON.CAMPROLE); String campname = r.get(V_CAMP.NAME); Double year = r.get(V_CAMP.YEAR); - Boolean accept = r.get(T_PERSON.ACCEPT); + EnumProgress progress = r.get(T_PERSON.PROGRESS); BookingBean bean = new BookingBean(pkPerson, null, String.format("%s %4.0f", campname, year)); bean.setRole(role == null ? null : role.getLiteral()); bean.setFullname(new StringBuilder().append(forename).append(" ").append(surname).toString()); - bean.setAccept(accept); + bean.setProgress(progress == null ? null : progress.getLiteral()); list.add(bean); } return list; diff --git a/src/main/java/de/jottyfan/camporganizer/module/confirmation/confirmation/ConfirmationService.java b/src/main/java/de/jottyfan/camporganizer/module/confirmation/confirmation/ConfirmationService.java index 2fd2b2a..6e9f3f0 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/confirmation/confirmation/ConfirmationService.java +++ b/src/main/java/de/jottyfan/camporganizer/module/confirmation/confirmation/ConfirmationService.java @@ -5,6 +5,7 @@ import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import de.jottyfan.camporganizer.db.jooq.enums.EnumProgress; import de.jottyfan.camporganizer.module.confirmation.confirmation.model.BookingBean; import de.jottyfan.camporganizer.module.confirmation.confirmation.model.CampOverviewBean; @@ -39,12 +40,14 @@ public class ConfirmationService { ""); for (BookingBean bean : gateway.getSearchResult(needle, currentUser)) { String acceptHtml = ""; - if (bean.getAccept() == null) { + if (EnumProgress.requested.equals(bean.getProgress())) { acceptHtml = ""; - } else if (bean.getAccept()) { + } else if (EnumProgress.approved.equals(bean.getProgress())) { acceptHtml = ""; - } else { + } else if (EnumProgress.rejected.equals(bean.getProgress())) { acceptHtml = ""; + } else if (EnumProgress.revoked.equals(bean.getProgress())) { + acceptHtml = ""; } buf.append(String.format("", acceptHtml, linkURL, bean.getPkPerson(), bean.getFullname(), bean.getCamp(), bean.getRolename())); diff --git a/src/main/java/de/jottyfan/camporganizer/module/confirmation/confirmation/model/BookingBean.java b/src/main/java/de/jottyfan/camporganizer/module/confirmation/confirmation/model/BookingBean.java index 608dca8..927dc12 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/confirmation/confirmation/model/BookingBean.java +++ b/src/main/java/de/jottyfan/camporganizer/module/confirmation/confirmation/model/BookingBean.java @@ -20,7 +20,7 @@ public class BookingBean implements Serializable, Comparable { private String fullname; private String role; private LocalDateTime registered; - private Boolean accept; + private String progress; public BookingBean(Integer pkPerson, LocalDate date, String camp) { this.pkPerson = pkPerson; @@ -114,11 +114,17 @@ public class BookingBean implements Serializable, Comparable { return pkPerson; } - public Boolean getAccept() { - return accept; + /** + * @return the progress + */ + public String getProgress() { + return progress; } - public void setAccept(Boolean accept) { - this.accept = accept; + /** + * @param progress the progress to set + */ + public void setProgress(String progress) { + this.progress = progress; } } diff --git a/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/PersonController.java b/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/PersonController.java index 088921a..7a5bbe3 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/PersonController.java +++ b/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/PersonController.java @@ -32,6 +32,7 @@ public class PersonController extends CommonController { model.addAttribute("camps", personService.getCamps(username)); model.addAttribute("annotations", personService.getAnnotations(pk)); model.addAttribute("campPrice", personService.getCampPrice(pk)); + model.addAttribute("progresses", personService.getProgresses()); return "confirmation/person"; } @@ -43,6 +44,7 @@ public class PersonController extends CommonController { model.addAttribute("camps", personService.getCamps(username)); model.addAttribute("annotations", personService.getAnnotations(bean.getPk())); model.addAttribute("campPrice", personService.getCampPrice(bean.getPk())); + model.addAttribute("progresses", personService.getProgresses()); return "confirmation/person"; } personService.updatePerson(bean, username); diff --git a/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/PersonRepository.java b/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/PersonRepository.java index 8359359..85749ec 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/PersonRepository.java +++ b/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/PersonRepository.java @@ -33,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional; import de.jottyfan.camporganizer.db.jooq.enums.EnumCamprole; import de.jottyfan.camporganizer.db.jooq.enums.EnumModule; +import de.jottyfan.camporganizer.db.jooq.enums.EnumProgress; import de.jottyfan.camporganizer.db.jooq.tables.TProfile; import de.jottyfan.camporganizer.db.jooq.tables.records.TCampRecord; import de.jottyfan.camporganizer.db.jooq.tables.records.TPersonRecord; @@ -118,7 +119,8 @@ public class PersonRepository { Record r = i.next(); PersonBean bean = new PersonBean(); bean.setPk(pk); - bean.setAccept(r.get(T_PERSON.ACCEPT)); + EnumProgress progress = r.get(T_PERSON.PROGRESS); + bean.setProgress(progress == null ? null : progress.getLiteral()); bean.setBirthdate(r.get(T_PERSON.BIRTHDATE)); bean.setCamprole(r.get(T_PERSON.CAMPROLE)); bean.setCity(r.get(T_PERSON.CITY)); @@ -158,8 +160,8 @@ public class PersonRepository { SelectConditionStep sql1 = jooq.selectFrom(T_PERSON).where(T_PERSON.PK.eq(bean.getPk())); LOGGER.debug(sql1.toString()); TPersonRecord r = sql1.fetchOne(); - lrw.putBoolean("acceptOld", r == null ? null : r.getAccept()); - lrw.putBoolean("acceptNew", bean.getAccept()); + lrw.putBoolean("acceptOld", r == null ? null : EnumProgress.approved.equals(r.getProgress())); + lrw.putBoolean("acceptNew", EnumProgress.approved.getLiteral().equals(bean.getProgress())); Integer fkCamp = r == null ? null : r.getFkCamp(); String email = r.getEmail(); // use the old one, too lrw.putString("oldEmail", email); @@ -186,7 +188,7 @@ public class PersonRepository { .set(T_PERSON.PHONE, bean.getPhone()) .set(T_PERSON.EMAIL, bean.getEmail()) .set(T_PERSON.COMMENT, bean.getComment()) - .set(T_PERSON.ACCEPT, bean.getAccept()) + .set(T_PERSON.PROGRESS, EnumProgress.lookupLiteral(bean.getProgress())) .set(T_PERSON.CAMPROLE, bean.getCamprole()) .set(T_PERSON.FK_REGISTRATOR, fkRegistrator) .set(T_PERSON.REQUIRED_PRICE, bean.getRequiredPrice()) diff --git a/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/PersonService.java b/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/PersonService.java index db8e675..2ed52d2 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/PersonService.java +++ b/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/PersonService.java @@ -1,10 +1,12 @@ package de.jottyfan.camporganizer.module.confirmation.person; +import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import de.jottyfan.camporganizer.db.jooq.enums.EnumProgress; import de.jottyfan.camporganizer.module.confirmation.person.model.CampBean; import de.jottyfan.camporganizer.module.confirmation.person.model.PersonBean; @@ -43,4 +45,12 @@ public class PersonService { public String getCampPrice(Integer pk) { return gateway.getCampprice(pk); } + + public List getProgresses() { + List list = new ArrayList<>(); + for (EnumProgress p : EnumProgress.values()) { + list.add(p.getLiteral()); + } + return list; + } } diff --git a/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/model/PersonBean.java b/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/model/PersonBean.java index 8e88362..1ffd55a 100644 --- a/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/model/PersonBean.java +++ b/src/main/java/de/jottyfan/camporganizer/module/confirmation/person/model/PersonBean.java @@ -32,7 +32,7 @@ public class PersonBean implements Serializable { private String email; private Integer fkCamp; private Integer fkProfile; - private Boolean accept; + private String progress; private LocalDateTime created; private EnumSex sex; private Integer fkRegistrator; @@ -194,20 +194,6 @@ public class PersonBean implements Serializable { this.fkProfile = fkProfile; } - /** - * @return the accept - */ - public Boolean getAccept() { - return accept; - } - - /** - * @param accept the accept to set - */ - public void setAccept(Boolean accept) { - this.accept = accept; - } - /** * @return the created */ @@ -291,4 +277,18 @@ public class PersonBean implements Serializable { public void setRequiredPrice(BigDecimal requiredPrice) { this.requiredPrice = requiredPrice; } + + /** + * @return the progress + */ + public String getProgress() { + return progress; + } + + /** + * @param progress the progress to set + */ + public void setProgress(String progress) { + this.progress = progress; + } } diff --git a/src/main/resources/static/css/style.css b/src/main/resources/static/css/style.css index 4f64451..6ca0bd1 100644 --- a/src/main/resources/static/css/style.css +++ b/src/main/resources/static/css/style.css @@ -356,6 +356,12 @@ div { border: 1px solid black; } +.framed-pink { + background: linear-gradient(to bottom right, #9141ac, #613583); + color: #9141ac; + border: 1px solid #613583; +} + .nomaxwidth { max-width: none !important; } diff --git a/src/main/resources/templates/business/booker.html b/src/main/resources/templates/business/booker.html index 593f3b3..efd3237 100644 --- a/src/main/resources/templates/business/booker.html +++ b/src/main/resources/templates/business/booker.html @@ -36,8 +36,8 @@ - - + + diff --git a/src/main/resources/templates/business/bookings.html b/src/main/resources/templates/business/bookings.html index c69dd28..46cec1e 100644 --- a/src/main/resources/templates/business/bookings.html +++ b/src/main/resources/templates/business/bookings.html @@ -18,7 +18,7 @@ - + @@ -48,7 +48,7 @@ - + diff --git a/src/main/resources/templates/business/camp.html b/src/main/resources/templates/business/camp.html index 9355840..06a75b2 100644 --- a/src/main/resources/templates/business/camp.html +++ b/src/main/resources/templates/business/camp.html @@ -63,7 +63,7 @@ - + @@ -75,7 +75,7 @@ - + diff --git a/src/main/resources/templates/confirmation/camplist.html b/src/main/resources/templates/confirmation/camplist.html index 62f1a6f..c646a9f 100644 --- a/src/main/resources/templates/confirmation/camplist.html +++ b/src/main/resources/templates/confirmation/camplist.html @@ -39,7 +39,7 @@
- + diff --git a/src/main/resources/templates/confirmation/person.html b/src/main/resources/templates/confirmation/person.html index b9a6486..61e2124 100644 --- a/src/main/resources/templates/confirmation/person.html +++ b/src/main/resources/templates/confirmation/person.html @@ -113,12 +113,9 @@
-
- -
+
diff --git a/src/main/resources/templates/dashboard.html b/src/main/resources/templates/dashboard.html index 1120bf9..8faa898 100644 --- a/src/main/resources/templates/dashboard.html +++ b/src/main/resources/templates/dashboard.html @@ -32,10 +32,10 @@

-

@@ -62,7 +62,7 @@
-
+
Dokumente
@@ -150,8 +150,8 @@
angemeldet am von
-
- von +
+ bestätigtabgelehnt von
Die Freizeit ist bereits vorbei.
diff --git a/src/main/resources/templates/template.html b/src/main/resources/templates/template.html index b073dbe..6f27d5f 100644 --- a/src/main/resources/templates/template.html +++ b/src/main/resources/templates/template.html @@ -1,17 +1,17 @@ - + Camp Organizer 2 - - + + - +
DabeiNameFreizeitRolle
%s%s%s%s
BestätigtStatus
FreizeitpreisFreizeit Rolle KontostandAngemeldetStatus Bestätigt
Geschlecht Rolle KontostandAngemeldetStatus Bestätigt