diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ausschreibung/Altersgruppen.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ausschreibung/Altersgruppen.java new file mode 100644 index 0000000..646dac8 --- /dev/null +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ausschreibung/Altersgruppen.java @@ -0,0 +1,37 @@ +package de.kreth.vaadin.clubhelper.vaadinclubhelper.ausschreibung; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Altersgruppe; + +public class Altersgruppen { + + private List values; + + public Altersgruppen() { + this.values = new ArrayList<>(); + } + + public static Altersgruppen parse(boolean hasCaption, String inputText) { + + Altersgruppen result = new Altersgruppen(); + + List lines = inputText.lines().collect(Collectors.toList()); + if (hasCaption) { + lines.remove(0); + } + for (String line : lines) { + Altersgruppe g = new Altersgruppe(); + g.setBezeichnung(line); + result.getValues().add(g); + } + return result; + } + + public List getValues() { + return values; + } + +} diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/PflichtenDao.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/PflichtenDao.java new file mode 100644 index 0000000..002bdee --- /dev/null +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/PflichtenDao.java @@ -0,0 +1,7 @@ +package de.kreth.vaadin.clubhelper.vaadinclubhelper.dao; + +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Pflicht; + +public interface PflichtenDao extends IDao { + +} diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/PflichtenDaoImpl.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/PflichtenDaoImpl.java new file mode 100644 index 0000000..94438a3 --- /dev/null +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/PflichtenDaoImpl.java @@ -0,0 +1,16 @@ +package de.kreth.vaadin.clubhelper.vaadinclubhelper.dao; + +import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; + +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Pflicht; + +@Repository +@Transactional +public class PflichtenDaoImpl extends AbstractDaoImpl implements PflichtenDao { + + public PflichtenDaoImpl() { + super(Pflicht.class); + } + +} diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Altersgruppe.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Altersgruppe.java new file mode 100644 index 0000000..2f484ee --- /dev/null +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Altersgruppe.java @@ -0,0 +1,120 @@ +package de.kreth.vaadin.clubhelper.vaadinclubhelper.data; + +import java.io.Serializable; + +import javax.persistence.Entity; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.NamedQuery; +import javax.persistence.Table; + +@Entity +@Table(name = "altersgruppe") +@Inheritance(strategy = InheritanceType.SINGLE_TABLE) +@NamedQuery(name = "Altersgruppe.findAll", query = "SELECT a FROM Altersgruppe a") +public class Altersgruppe extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 126215772910869273L; + private String bezeichnung; + private int start; + private int end; + private Pflicht pflicht; + @ManyToOne + @JoinColumn(name = "event_id") + private ClubEvent clubEvent; + + public String getBezeichnung() { + return bezeichnung; + } + + public void setBezeichnung(String bezeichnung) { + this.bezeichnung = bezeichnung; + } + + public int getStart() { + return start; + } + + public void setStart(int start) { + this.start = start; + } + + public int getEnd() { + return end; + } + + public void setEnd(int end) { + this.end = end; + } + + public Pflicht getPflicht() { + return pflicht; + } + + public void setPflicht(Pflicht pflicht) { + this.pflicht = pflicht; + } + + public ClubEvent getClubEvent() { + return clubEvent; + } + + public void setClubEvent(ClubEvent clubEvent) { + this.clubEvent = clubEvent; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((bezeichnung == null) ? 0 : bezeichnung.hashCode()); + result = prime * result + end; + result = prime * result + ((pflicht == null) ? 0 : pflicht.hashCode()); + result = prime * result + start; + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (!super.equals(obj)) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + Altersgruppe other = (Altersgruppe) obj; + if (bezeichnung == null) { + if (other.bezeichnung != null) { + return false; + } + } else if (!bezeichnung.equals(other.bezeichnung)) { + return false; + } + if (end != other.end) { + return false; + } + if (pflicht == null) { + if (other.pflicht != null) { + return false; + } + } else if (!pflicht.equals(other.pflicht)) { + return false; + } + if (start != other.start) { + return false; + } + return true; + } + + @Override + public String toString() { + return "Altersgruppe [bezeichnung=" + bezeichnung + ", pflicht=" + pflicht + ", jahre=" + start + " - " + end + + "]"; + } + +} diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/BaseEntity.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/BaseEntity.java index 1e73df2..3cc3c67 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/BaseEntity.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/BaseEntity.java @@ -15,13 +15,13 @@ public abstract class BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; - + @Temporal(TemporalType.TIMESTAMP) private Date changed; - + @Temporal(TemporalType.TIMESTAMP) private Date created; - + @Temporal(TemporalType.TIMESTAMP) private Date deleted; diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/ClubEvent.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/ClubEvent.java index 695d525..e1ca824 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/ClubEvent.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/ClubEvent.java @@ -7,19 +7,26 @@ import java.util.Date; import java.util.HashSet; import java.util.Set; +import javax.persistence.Entity; +import javax.persistence.Id; import javax.persistence.Transient; import org.vaadin.addon.calendar.item.BasicItem; +// Entity must not be used, this class is persisted by ClubEvent.hbm.xml +@Entity public class ClubEvent extends BasicItem { private static final long serialVersionUID = -3600971939167437577L; + + @Id + private String id; private String location; private String iCalUID; - private String id; private String organizerDisplayName; private Set persons; + private Set altersgruppen; ClubEvent() { } @@ -111,6 +118,14 @@ public class ClubEvent extends BasicItem { person.remove(this); } + public Set getAltersgruppen() { + return altersgruppen; + } + + public void setAltersgruppen(Set altersgruppen) { + this.altersgruppen = altersgruppen; + } + @Transient public String toDisplayString() { return "ClubEvent [Caption=" + getCaption() + ", Start=" + getStart() + ", location=" + location + "]"; diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Pflicht.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Pflicht.java new file mode 100644 index 0000000..40aa9b5 --- /dev/null +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Pflicht.java @@ -0,0 +1,70 @@ +package de.kreth.vaadin.clubhelper.vaadinclubhelper.data; + +import java.io.Serializable; + +import javax.persistence.Entity; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +import javax.persistence.NamedQuery; +import javax.persistence.Table; + +@Entity +@Table(name = "pflichten") +@Inheritance(strategy = InheritanceType.SINGLE_TABLE) +@NamedQuery(name = "Pflicht.findAll", query = "SELECT p FROM Pflicht p") +public class Pflicht extends BaseEntity implements Serializable { + + private static final long serialVersionUID = -1309514158086518524L; + + private String name; + private boolean fixed; + private int ordered; + private String comment; + + public Pflicht() { + } + + public Pflicht(String name, boolean fixed, int ordered, String comment) { + this.name = name; + this.fixed = fixed; + this.ordered = ordered; + this.comment = comment; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public boolean isFixed() { + return fixed; + } + + public void setFixed(boolean fixed) { + this.fixed = fixed; + } + + public int getOrdered() { + return ordered; + } + + public void setOrdered(int order) { + this.ordered = order; + } + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } + + @Override + public String toString() { + return name; + } +} diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainUi.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainUi.java index ef1b32c..3e82348 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainUi.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainUi.java @@ -16,6 +16,7 @@ import com.vaadin.ui.UI; import de.kreth.vaadin.clubhelper.vaadinclubhelper.business.EventBusiness; import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.GroupDao; import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PersonDao; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PflichtenDao; @Theme("vaadin-clubhelpertheme") @SpringUI @@ -35,6 +36,9 @@ public class MainUi extends UI { @Autowired EventBusiness eventBusiness; + @Autowired + PflichtenDao pflichtenDao; + @Override protected void init(VaadinRequest request) { @@ -48,7 +52,7 @@ public class MainUi extends UI { navigator.addView(MainView.VIEW_NAME, new MainView(personDao, groupDao, eventBusiness)); navigator.addView(LoginUI.VIEW_NAME, new LoginUI(personDao)); navigator.addView(PersonEditView.VIEW_NAME, new PersonEditView(groupDao, personDao)); - navigator.addView(EventDetails.VIEW_NAME, new EventDetails(personDao, groupDao, eventBusiness)); + navigator.addView(EventDetails.VIEW_NAME, new EventDetails(personDao, groupDao, eventBusiness, pflichtenDao)); navigator.navigateTo(MainView.VIEW_NAME); } diff --git a/src/main/resources/schema/ClubEvent.hbm.xml b/src/main/resources/schema/ClubEvent.hbm.xml index a451bd6..d00cf00 100644 --- a/src/main/resources/schema/ClubEvent.hbm.xml +++ b/src/main/resources/schema/ClubEvent.hbm.xml @@ -24,11 +24,16 @@ - + + + + + + diff --git a/src/main/resources/schema/version1.sql b/src/main/resources/schema/version1.sql new file mode 100644 index 0000000..7d4b7c2 --- /dev/null +++ b/src/main/resources/schema/version1.sql @@ -0,0 +1,53 @@ +CREATE TABLE `pflichten` ( + `id` INT NOT NULL AUTO_INCREMENT, + `name` VARCHAR(45) NOT NULL, + `fixed` TINYINT NULL, + `ordered` INT NOT NULL, + `comment` VARCHAR(500) NULL, + `changed` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `deleted` DATETIME NULL DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE INDEX `name_UNIQUE` (`name` ASC) VISIBLE); + +CREATE TABLE `altersgruppe` ( + `id` INT NOT NULL AUTO_INCREMENT, + `event_id` VARCHAR(250) NOT NULL, + `pflicht_id` INT NULL, + `bezeichnung` VARCHAR(100) NOT NULL, + `start` INT NULL, + `end` VARCHAR(45) NULL, + `changed` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `deleted` DATETIME NULL DEFAULT NULL, + PRIMARY KEY (`id`), + INDEX `fk_altersgruppe_pflicht_idx` (`pflicht_id` ASC) VISIBLE, + INDEX `fk_altersgruppe_event_idx` (`event_id` ASC) VISIBLE, + CONSTRAINT `fk_altersgruppe_pflicht` + FOREIGN KEY (`pflicht_id`) + REFERENCES `pflichten` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION), + CONSTRAINT `fk_altersgruppe_event` + FOREIGN KEY (`event_id`) + REFERENCES `clubhelper`.`clubevent` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION; + +CREATE TABLE `event_has_altersgruppe` ( + `id` INT NOT NULL AUTO_INCREMENT, + `event_id` VARCHAR(250) NOT NULL, + `altersgruppe_id` INT NOT NULL, + PRIMARY KEY (`id`), + INDEX `fk_event_has_altersgruppe_event_idx` (`event_id` ASC) VISIBLE, + INDEX `fk_event_has_altersgruppe_altersgruppe_idx` (`altersgruppe_id` ASC) VISIBLE, + CONSTRAINT `fk_event_has_altersgruppe_event` + FOREIGN KEY (`event_id`) + REFERENCES `clubevent` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `fk_event_has_altersgruppe_altersgruppe` + FOREIGN KEY (`altersgruppe_id`) + REFERENCES `altersgruppe` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION); diff --git a/src/main/resources/simplelogger.properties b/src/main/resources/simplelogger.properties index ffd6bed..e24ccea 100644 --- a/src/main/resources/simplelogger.properties +++ b/src/main/resources/simplelogger.properties @@ -1,4 +1,8 @@ -org.slf4j.simpleLogger.defaultLogLevel = debug -log4j.logger.de.kreth.vaadin.clubhelper=trace -log4j.logger.org.hibernate.type=warn -log4j.logger.org.jboss.logging=warn \ No newline at end of file +org.slf4j.simpleLogger.defaultLogLevel=trace +org.slf4j.simpleLogger.logFile=System.err +org.slf4j.simpleLogger.showThreadName=false + +org.slf4j.simpleLogger.log.de.kreth.vaadin.clubhelper=trace +org.slf4j.simpleLogger.log.org.hibernate=info +org.slf4j.simpleLogger.log.com.zaxxer.hikari=info +org.slf4j.simpleLogger.log.com.mysql=info \ No newline at end of file diff --git a/src/test/java/de/kreth/vaadin/clubhelper/HibernateHolder.java b/src/test/java/de/kreth/vaadin/clubhelper/HibernateHolder.java index eb55426..3efee8d 100644 --- a/src/test/java/de/kreth/vaadin/clubhelper/HibernateHolder.java +++ b/src/test/java/de/kreth/vaadin/clubhelper/HibernateHolder.java @@ -5,6 +5,7 @@ import java.io.File; import org.hibernate.cfg.Configuration; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Adress; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Altersgruppe; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Attendance; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubeventHasPerson; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Contact; @@ -12,6 +13,7 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.DeletedEntry; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.GroupDef; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Persongroup; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Pflicht; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Relative; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Startpass; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.StartpassStartrechte; @@ -25,12 +27,14 @@ public enum HibernateHolder { private org.hibernate.cfg.Configuration createConfig() { Configuration configuration = new Configuration(); configuration.addAnnotatedClass(Adress.class); + configuration.addAnnotatedClass(Altersgruppe.class); configuration.addAnnotatedClass(Attendance.class); configuration.addAnnotatedClass(Contact.class); configuration.addAnnotatedClass(DeletedEntry.class); configuration.addAnnotatedClass(GroupDef.class); configuration.addAnnotatedClass(Person.class); configuration.addAnnotatedClass(Persongroup.class); + configuration.addAnnotatedClass(Pflicht.class); configuration.addAnnotatedClass(Relative.class); configuration.addAnnotatedClass(Startpass.class); configuration.addAnnotatedClass(StartpassStartrechte.class); @@ -38,13 +42,13 @@ public enum HibernateHolder { configuration.addInputStream(getClass().getResourceAsStream("/schema/ClubEvent.hbm.xml")); configuration.addAnnotatedClass(ClubeventHasPerson.class); -// mysqlTest(configuration); +// mysqlLocal(configuration); h2Memory(configuration); return configuration; } - public void h2File(Configuration configuration) { + void h2File(Configuration configuration) { File f = new File("./database"); System.out.println("Databasepath: " + f.getAbsolutePath()); configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); @@ -53,7 +57,7 @@ public enum HibernateHolder { configuration.setProperty("hibernate.hbm2ddl.auto", "create"); } - public void mysqlTest(Configuration configuration) { + void mysqlTest(Configuration configuration) { configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL8Dialect"); // configuration.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver"); configuration.setProperty("hibernate.connection.url", @@ -64,7 +68,15 @@ public enum HibernateHolder { configuration.setProperty("spring.jpa.hibernate.ddl-auto", "update"); } - public void h2Memory(Configuration configuration) { + void mysqlLocal(Configuration configuration) { + configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL8Dialect"); + configuration.setProperty("hibernate.connection.url", + "jdbc:mysql://localhost/clubhelper?useUnicode=yes&characterEncoding=utf8&serverTimezone=Europe/Berlin"); + configuration.setProperty("hibernate.connection.username", "markus"); + configuration.setProperty("hibernate.connection.password", "0773"); + } + + void h2Memory(Configuration configuration) { configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); configuration.setProperty("hibernate.connection.driver_class", "org.h2.Driver"); diff --git a/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ausschreibung/AltersgruppenParserTest.java b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ausschreibung/AltersgruppenParserTest.java new file mode 100644 index 0000000..dd93d69 --- /dev/null +++ b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ausschreibung/AltersgruppenParserTest.java @@ -0,0 +1,107 @@ +package de.kreth.vaadin.clubhelper.vaadinclubhelper.ausschreibung; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.mockito.Mockito.when; + +import java.util.List; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PflichtenDao; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Altersgruppe; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.tests.TestPflichten; + +class AltersgruppenParserTest { + + @Mock + private PflichtenDao dao; + + @BeforeEach + void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + when(dao.listAll()).thenReturn(TestPflichten.getFixedPflichten()); + } + + @Test + void testBezirksDMT2019() { + Altersgruppen bezDmt = Altersgruppen.parse(true, bezirksDMT2019()); + assertNotNull(bezDmt); + List gruppen = bezDmt.getValues(); + assertEquals(7, gruppen.size()); + + } + + public String bezirksDMT2019() { + return "Klasse Alter Jahrgang\r\n" + + + "Schüler – innen F 8 u. Jünger 2011 und jünger\r\n" + + + "Schüler – innen E 9-10 2009 - 2010\r\n" + + + "Schüler – innen D 11-12 2007 - 2008\r\n" + + + "Schüler – innen C 13-14 2005 - 2006\r\n" + + + "Schüler – innen B 15-16 2003 - 2004\r\n" + + + "Jugendturner - innen 17-18 2001 - 2002\r\n" + + + "Turner - innen 19 Jahre u. älter 2000 und älter"; + } + + public String bezEinzelWK2019() { + return "Klasse Jahrgang\r\n" + + + "Schüler – innen G 2013 und jünger P3\r\n" + + + "Schüler – innen F 2011 – 2012 P3\r\n" + + + "Schüler – innen E 2009 – 2010 P3\r\n" + + + "Schüler – innen D 2007 - 2008 P4\r\n" + + + "Schüler – innen C 2005 - 2006 P4\r\n" + + + "Schüler – innen B 2003 - 2004 P5\r\n" + + + "Heranwachsende 2002-1998 P5\r\n" + + + "Turner - innen 1997 -1990 P5"; + } + + public String bezEinzelMS2019() { + return "Klasse Jahrgang\r\n" + + + "Schüler – innen F 2011 und jünger P3\r\n" + + + "Schüler – innen E 2009 – 2010 P4\r\n" + + + "Schüler – innen D 2007 - 2008 P5\r\n" + + + "Schüler – innen C 2005 - 2006 P6\r\n" + + + "Schüler – innen B 2003 - 2004 P7\r\n" + + + "Heranwachsende 2002-1998 P8\r\n" + + + "Turner - innen 1997 -1990 P8\r\n" + + + "Oldies 1989 und älter P5"; + } + + public String kreisWK2019() { + return "Einsteigerwettkampf I Einsteigerwettkampf II\r\n" + + "Jahrgangseinteilung/ Schüler/innen Jahrg. 2013 und jünger P 3 Jahrg. 2012 und jünger P 3\r\n" + + "Pflichtübungen: Schüler/innen Jahrg. 2011 und 2012 P 3 Jahrg. 2009 bis 2011 P 3\r\n" + + " Schüler/innen Jahrg. 2009 und 2010 P 3 Jahrg. 2006 bis 2008 P 3\r\n" + + " Schüler/innen Jahrg. 2007 und 2008 P 3 Jahrg. 2003 bis 2005 P 3\r\n" + + " Schüler/innen Jahrg. 2005 und 2006 P 3 Jahrg. 1994 bis 2002 P 4\r\n" + + " Schüler/innen Jahrg. 2003 und 2004 P 3 Jahrg. 1993 und älter P 4\r\n" + + " Heranwachsene Jahrg. 2002 bis 1994 P 4\r\n" + " Turner/innen Jahrg. 1993 und älter P 4\r\n" + + "\r\n" + ""; + } +} diff --git a/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/tests/TestPflichten.java b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/tests/TestPflichten.java new file mode 100644 index 0000000..f570e49 --- /dev/null +++ b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/tests/TestPflichten.java @@ -0,0 +1,47 @@ +package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.tests; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.persistence.EntityManager; +import javax.persistence.EntityTransaction; + +import org.hibernate.SessionFactory; +import org.hibernate.cfg.Configuration; + +import de.kreth.vaadin.clubhelper.HibernateHolder; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Pflicht; + +public class TestPflichten { + + public static List getFixedPflichten() { + List pflichten = new ArrayList<>(); + for (int i = 1; i < 9; i++) { + pflichten.add(new Pflicht("P" + i, true, i, null)); + } + + pflichten.add(new Pflicht("M5", true, 15, null)); + pflichten.add(new Pflicht("M6", true, 16, null)); + pflichten.add(new Pflicht("M7", true, 17, null)); + return pflichten; + } + + public static void main(String[] args) { + Configuration config = HibernateHolder.configuration(); + SessionFactory sf = config.buildSessionFactory(); + EntityManager em = sf.createEntityManager(); + + List pflichten = getFixedPflichten(); + Date now = new Date(); + EntityTransaction tx = em.getTransaction(); + tx.begin(); + for (Pflicht pf : pflichten) { + pf.setCreated(now); + pf.setChanged(now); + em.persist(pf); + } + tx.commit(); + em.close(); + } +}