Compare commits
3 Commits
85b5c5fbf2
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| f7d726b8a2 | |||
| 5dd7829a69 | |||
| d4037491f1 |
+1
-1
@@ -8,7 +8,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = 'de.jottyfan.camporganizer'
|
group = 'de.jottyfan.camporganizer'
|
||||||
version = '1.0.2'
|
version = '1.0.4'
|
||||||
|
|
||||||
description = """CampOrganizer2"""
|
description = """CampOrganizer2"""
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class SecurityConfiguration {
|
|||||||
// @formatter:off
|
// @formatter:off
|
||||||
.oauth2Login(o -> o.defaultSuccessUrl("/"))
|
.oauth2Login(o -> o.defaultSuccessUrl("/"))
|
||||||
.logout(o -> o.logoutSuccessHandler(new OidcClientInitiatedLogoutSuccessHandler(crr)))
|
.logout(o -> o.logoutSuccessHandler(new OidcClientInitiatedLogoutSuccessHandler(crr)))
|
||||||
.authorizeHttpRequests(o -> o.requestMatchers("/", "/impressum", "/datenschutz", "/allgemeines", "/reports/**", "/nachruf", "/verein", "/vereinsmitglieder", "/kontakt", "/css/**", "/js/**", "/images/**", "/fonts/**", "/font-awesome/**", "/webjars/**", "/ical/**").permitAll()
|
.authorizeHttpRequests(o -> o.requestMatchers("/", "/impressum", "/datenschutz", "/allgemeines", "/camplist", "/reports/**", "/nachruf", "/verein", "/vereinsmitglieder", "/kontakt", "/css/**", "/js/**", "/images/**", "/fonts/**", "/font-awesome/**", "/webjars/**", "/ical/**").permitAll()
|
||||||
.anyRequest().authenticated())
|
.anyRequest().authenticated())
|
||||||
.oauth2ResourceServer(o -> o.jwt(Customizer.withDefaults()))
|
.oauth2ResourceServer(o -> o.jwt(Customizer.withDefaults()))
|
||||||
.sessionManagement(o -> o.init(sec));
|
.sessionManagement(o -> o.init(sec));
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package de.jottyfan.camporganizer.module.campside;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.Model;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
|
||||||
|
import de.jottyfan.camporganizer.module.camplist.CommonController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
public class CampsideController extends CommonController {
|
||||||
|
@Autowired
|
||||||
|
CampsideService service;
|
||||||
|
|
||||||
|
@GetMapping("/campside")
|
||||||
|
public String getCampside(final Model model) {
|
||||||
|
model.addAttribute("myCampBookings", service.getCampBookingsOf(super.getCurrentUser()));
|
||||||
|
return "/campside/list";
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/campside/{id}")
|
||||||
|
public String getCampDetails(@PathVariable("id") Integer fkCamp, final Model model) {
|
||||||
|
// TODO: load content for the camp with fkCamp
|
||||||
|
return "/campside/camp";
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/campside/{id}/plan")
|
||||||
|
public String getCampPlan(@PathVariable("id") Integer fkCamp, final Model model) {
|
||||||
|
// TODO: load camp plan from database
|
||||||
|
return "/campside/plan";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
package de.jottyfan.camporganizer.module.campside;
|
||||||
|
|
||||||
|
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.V_CAMP;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.jooq.DSLContext;
|
||||||
|
import org.jooq.Record;
|
||||||
|
import org.jooq.Record9;
|
||||||
|
import org.jooq.SelectSeekStep1;
|
||||||
|
import org.jooq.impl.DSL;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import de.jottyfan.camporganizer.db.jooq.tables.TProfile;
|
||||||
|
import de.jottyfan.camporganizer.module.campside.model.MyCampBookingBean;
|
||||||
|
import de.jottyfan.camporganizer.module.campside.model.MyPersonBean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*/
|
||||||
|
@Repository
|
||||||
|
public class CampsideRepository {
|
||||||
|
private static final Logger LOGGER = LogManager.getLogger(CampsideRepository.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DSLContext jooq;
|
||||||
|
|
||||||
|
public List<MyCampBookingBean> getMyCampBookings(String username) {
|
||||||
|
TProfile REGISTRATOR = TProfile.T_PROFILE.as("registrator");
|
||||||
|
SelectSeekStep1<Record9<String, String, Double, Boolean, LocalDateTime, LocalDateTime, Integer, String, String>, LocalDateTime> sql = jooq
|
||||||
|
// @formatter:off
|
||||||
|
.select(V_CAMP.NAME,
|
||||||
|
V_CAMP.LOCATION_NAME,
|
||||||
|
V_CAMP.YEAR,
|
||||||
|
V_CAMP.IS_OVER,
|
||||||
|
V_CAMP.ARRIVE,
|
||||||
|
V_CAMP.DEPART,
|
||||||
|
V_CAMP.PK,
|
||||||
|
T_PERSON.FORENAME,
|
||||||
|
T_PERSON.SURNAME)
|
||||||
|
.from(T_PROFILE)
|
||||||
|
.leftJoin(T_PERSON).on(T_PERSON.FK_PROFILE.eq(T_PROFILE.PK))
|
||||||
|
.leftJoin(REGISTRATOR).on(REGISTRATOR.PK.eq(T_PERSON.FK_REGISTRATOR))
|
||||||
|
.leftJoin(V_CAMP).on(V_CAMP.PK.eq(T_PERSON.FK_CAMP))
|
||||||
|
.where(DSL.trim(T_PROFILE.USERNAME).eq(username == null ? null : username.trim()))
|
||||||
|
.and(T_PERSON.PK.isNotNull())
|
||||||
|
.orderBy(V_CAMP.ARRIVE.desc());
|
||||||
|
// @formatter:on
|
||||||
|
LOGGER.trace(sql);
|
||||||
|
Map<Integer, MyCampBookingBean> map = new HashMap<>();
|
||||||
|
Iterator<Record9<String, String, Double, Boolean, LocalDateTime, LocalDateTime, Integer, String, String>> i = sql.fetch().iterator();
|
||||||
|
while (i.hasNext()) {
|
||||||
|
Record r = i.next();
|
||||||
|
Integer fkCamp = r.get(V_CAMP.PK);
|
||||||
|
MyCampBookingBean bean = map.get(fkCamp);
|
||||||
|
if (bean == null) {
|
||||||
|
bean = new MyCampBookingBean();
|
||||||
|
map.put(fkCamp, bean);
|
||||||
|
}
|
||||||
|
bean.setFkCamp(fkCamp);
|
||||||
|
bean.setLocationName(r.get(V_CAMP.LOCATION_NAME));
|
||||||
|
bean.setCampName(String.format("%s %4.0f", r.get(V_CAMP.NAME), r.get(V_CAMP.YEAR)).trim());
|
||||||
|
bean.setIsOver(r.get(V_CAMP.IS_OVER));
|
||||||
|
bean.setArrive(r.get(V_CAMP.ARRIVE));
|
||||||
|
bean.setDepart(r.get(V_CAMP.DEPART));
|
||||||
|
bean.getPerson().add(MyPersonBean.of(null, r.get(T_PERSON.FORENAME), r.get(T_PERSON.SURNAME)));
|
||||||
|
}
|
||||||
|
List<MyCampBookingBean> list = new ArrayList<>(map.values());
|
||||||
|
list.sort((o1, o2) -> (o1 == null || o1.getArrive() == null || o2 == null) ? 0 : o1.getArrive().compareTo(o2.getArrive()));
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package de.jottyfan.camporganizer.module.campside;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import de.jottyfan.camporganizer.module.campside.model.MyCampBookingBean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class CampsideService {
|
||||||
|
@Autowired
|
||||||
|
private CampsideRepository repository;
|
||||||
|
|
||||||
|
public List<MyCampBookingBean> getCampBookingsOf(String currentUser) {
|
||||||
|
return repository.getMyCampBookings(currentUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,118 @@
|
|||||||
|
package de.jottyfan.camporganizer.module.campside.model;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class MyCampBookingBean implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Integer fkCamp;
|
||||||
|
private String locationName;
|
||||||
|
private String campName;
|
||||||
|
private Boolean isOver;
|
||||||
|
private LocalDateTime arrive;
|
||||||
|
private LocalDateTime depart;
|
||||||
|
private final List<MyPersonBean> person;
|
||||||
|
|
||||||
|
public MyCampBookingBean() {
|
||||||
|
person = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the fkCamp
|
||||||
|
*/
|
||||||
|
public Integer getFkCamp() {
|
||||||
|
return fkCamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param fkCamp the fkCamp to set
|
||||||
|
*/
|
||||||
|
public void setFkCamp(Integer fkCamp) {
|
||||||
|
this.fkCamp = fkCamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the locationName
|
||||||
|
*/
|
||||||
|
public String getLocationName() {
|
||||||
|
return locationName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param locationName the locationName to set
|
||||||
|
*/
|
||||||
|
public void setLocationName(String locationName) {
|
||||||
|
this.locationName = locationName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the campName
|
||||||
|
*/
|
||||||
|
public String getCampName() {
|
||||||
|
return campName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param campName the campName to set
|
||||||
|
*/
|
||||||
|
public void setCampName(String campName) {
|
||||||
|
this.campName = campName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the isOver
|
||||||
|
*/
|
||||||
|
public Boolean getIsOver() {
|
||||||
|
return isOver;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param isOver the isOver to set
|
||||||
|
*/
|
||||||
|
public void setIsOver(Boolean isOver) {
|
||||||
|
this.isOver = isOver;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the person
|
||||||
|
*/
|
||||||
|
public List<MyPersonBean> getPerson() {
|
||||||
|
return person;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the arrive
|
||||||
|
*/
|
||||||
|
public LocalDateTime getArrive() {
|
||||||
|
return arrive;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param arrive the arrive to set
|
||||||
|
*/
|
||||||
|
public void setArrive(LocalDateTime arrive) {
|
||||||
|
this.arrive = arrive;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the depart
|
||||||
|
*/
|
||||||
|
public LocalDateTime getDepart() {
|
||||||
|
return depart;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param depart the depart to set
|
||||||
|
*/
|
||||||
|
public void setDepart(LocalDateTime depart) {
|
||||||
|
this.depart = depart;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
package de.jottyfan.camporganizer.module.campside.model;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author jotty
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class MyPersonBean implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Integer pkPerson;
|
||||||
|
private String forename;
|
||||||
|
private String surname;
|
||||||
|
|
||||||
|
public static final MyPersonBean of(Integer pkPerson, String forename, String surname) {
|
||||||
|
MyPersonBean bean = new MyPersonBean();
|
||||||
|
bean.setPkPerson(pkPerson);
|
||||||
|
bean.setForename(forename);
|
||||||
|
bean.setSurname(surname);
|
||||||
|
return bean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the forename
|
||||||
|
*/
|
||||||
|
public String getForename() {
|
||||||
|
return forename;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param forename the forename to set
|
||||||
|
*/
|
||||||
|
public void setForename(String forename) {
|
||||||
|
this.forename = forename;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the pkPerson
|
||||||
|
*/
|
||||||
|
public Integer getPkPerson() {
|
||||||
|
return pkPerson;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param pkPerson the pkPerson to set
|
||||||
|
*/
|
||||||
|
public void setPkPerson(Integer pkPerson) {
|
||||||
|
this.pkPerson = pkPerson;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the surname
|
||||||
|
*/
|
||||||
|
public String getSurname() {
|
||||||
|
return surname;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param surname the surname to set
|
||||||
|
*/
|
||||||
|
public void setSurname(String surname) {
|
||||||
|
this.surname = surname;
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 166 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 453 KiB |
@@ -8,6 +8,10 @@
|
|||||||
<th:block layout:fragment="content">
|
<th:block layout:fragment="content">
|
||||||
<div class="mainpage">
|
<div class="mainpage">
|
||||||
<div th:replace="~{/fragments/camplist.html::camplist(camps=${camps})}"></div>
|
<div th:replace="~{/fragments/camplist.html::camplist(camps=${camps})}"></div>
|
||||||
|
<br />
|
||||||
|
<div class="text-center">
|
||||||
|
<a class="btn btn-outline-secondary titlefont d-inline-block" th:href="@{/campside}">Zu meinen Freizeiten</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</th:block>
|
</th:block>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org" layout:decorate="~{template}" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
|
||||||
|
<head>
|
||||||
|
<title>Camp Organizer 2</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<th:block layout:fragment="content">
|
||||||
|
<div class="mainpage">
|
||||||
|
<div class="alert alert-info">
|
||||||
|
Diese Übersicht wurde noch nicht entwickelt.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</th:block>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org" layout:decorate="~{template}" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
|
||||||
|
<head>
|
||||||
|
<title>Camp Organizer 2</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<th:block layout:fragment="content">
|
||||||
|
<div class="mainpage">
|
||||||
|
<div class="alert alert-warning">
|
||||||
|
Diese Seite befindet sich noch im Aufbau. Nutze vorübergehend besser <a th:href="@{/camplist}">die Freizeitübersicht</a>.
|
||||||
|
</div>
|
||||||
|
<div class="alert alert-primary menufont" th:if="${myCampBookings.size() < 1}">Für diese Freizeit hast du keine Anmeldedaten.</div>
|
||||||
|
<div class="container">
|
||||||
|
<div class="row g-2">
|
||||||
|
<div class="col" th:each="b : ${myCampBookings}">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<div class="headlinefont" th:text="${b.campName}"></div>
|
||||||
|
<div class="menufont" th:text="${#temporals.format(b.arrive, 'dd.MM.') + ' - ' + #temporals.format(b.depart, 'dd.MM.')}"></div>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<span class="menufont">von dir angemeldet:</span><br />
|
||||||
|
<div th:each="p : ${b.person}">
|
||||||
|
<span th:text="${p.forename}"></span> <span th:text="${p.surname}"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-footer">
|
||||||
|
<a class="btn btn-outline-secondary" th:href="@{/campside/{id}(id=${b.fkCamp})}">Freizeitdetails</a>
|
||||||
|
<a class="btn btn-outline-secondary" th:href="@{/campside/{id}/plan(id=${b.fkCamp})}">Freizeitplan</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</th:block>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org" layout:decorate="~{template}" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
|
||||||
|
<head>
|
||||||
|
<title>Camp Organizer 2</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<th:block layout:fragment="content">
|
||||||
|
<div class="mainpage">
|
||||||
|
<div class="alert alert-info">
|
||||||
|
Diese Übersicht wurde noch nicht entwickelt. Sie wird nur für Mitarbeiter verfügbar sein.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</th:block>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org" layout:decorate="~{template}" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
|
||||||
|
<head>
|
||||||
|
<title>Camp Organizer 2 - Freizeitbericht Grow-Up 2026</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<th:block layout:fragment="content">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<h2 class="titlefont">Grow Up 2026 - eine Zusammenfassung von Lorena</h2>
|
||||||
|
<p>
|
||||||
|
Ich war dieses Jahr zum ersten Mal bei der Grow up dabei und war wirklich überrascht, wie viel Neues ich lernen durfte. Besonders auffällig ist, dass sich die Grow up deutlich von anderen Freizeiten unterscheidet. Ein zentrales Element ist ein Arbeitsheft, in dem wir täglich eine Lektion bearbeiten, die wir anschließend in Austauschgruppen besprechen. Diese Gruppen bestehen aus etwa zehn Teilnehmern und werden ausgelost.
|
||||||
|
|
||||||
|
Im Folgenden möchte ich einen typischen Tagesablauf beschreiben.
|
||||||
|
|
||||||
|
Zunächst wurden wir um 7:30 Uhr mit unterschiedlicher Musik geweckt. Danach hatten wir eine halbe Stunde Zeit, um uns fertig zu machen. Zwischen 8:00 und 9:00 Uhr bearbeiteten wir die Lektion in unserem Heft. Anschließend gab es Frühstück.
|
||||||
|
|
||||||
|
Gegen 10:30 Uhr ging es mit gemeinsamem Singen weiter. Danach trafen wir uns in unseren Austauschgruppen, um die Lektion zusammen mit einem Mitarbeiter zu besprechen. Im Anschluss daran gab es Mittagessen.
|
||||||
|
|
||||||
|
Ab 15:30 Uhr begann das Nachmittagsprogramm. Dieses bestand aus verschiedenen Aktivitäten wie Seminaren, AGs, einem stillen Nachmittag oder auch evangelistischen Aktionen. Gegen 18:30 Uhr folgte das Abendessen.
|
||||||
|
|
||||||
|
Daraufhin begann um etwa 20:00 Uhr das Abendprogramm. Dazu gehörten beispielsweise freie Abende, Andachten, Nachtspiele, ein Frageabend zu Themen wie Ehe, Sexualität und Beziehungen, Zeugnisabende oder auch ein Lagerfeuer. Um 23:00 Uhr war offiziell Nachtruhe – zumindest theoretisch. In der Praxis führten viele Teilnehmer noch Gespräche oder machten gemeinsam Quatsch.
|
||||||
|
|
||||||
|
Während der Freizeit kam es auch zu einigen lustigen Streichen. So wurden beispielsweise Mitarbeiter in ihren Zimmern „eingesperrt“, indem die Tür mit einem Besen und Kreppband blockiert wurde. Außerdem spielte jemand am 1. April um 4 Uhr morgens Musik ab und raubte uns damit den Schlaf. Darüber hinaus wurden Lebensmittel in die Tiefkühltruhe gelegt und am nächsten Tag trotzdem wieder serviert. Auch Salz und Zucker wurden vertauscht.
|
||||||
|
|
||||||
|
Insgesamt lässt sich sagen, dass die Grow up einen klaren Fokus auf die Nachfolge im Glauben legt und uns Jugendlichen konkrete Hilfestellungen bietet. Gleichzeitig schafft sie einen Raum, in dem wir neue Erfahrungen machen können. Für mich persönlich war es zum Beispiel das erste Mal, dass ich an einer evangelistischen Aktion teilgenommen habe.
|
||||||
|
|
||||||
|
Dabei erhielten wir von den Mitarbeitern Verteilmaterial wie Flyer und Bücher zum Thema Ostern. Anschließend teilten wir den Ort Olfen unter uns auf, während einige Gruppen auch in umliegende Ortschaften fuhren. Dort hatten wir die Möglichkeit, mit Bewohnern ins Gespräch zu kommen und zu lernen, wie man auf den Glauben aufmerksam machen kann.
|
||||||
|
|
||||||
|
Ein weiteres Highlight war für mich der stille Nachmittag. In dieser Zeit, die etwa zweieinhalb Stunden dauerte, konnte man seine Beziehung zu Gott reflektieren, über das Gelernte nachdenken oder sich neue Ziele setzen.
|
||||||
|
|
||||||
|
Das Thema der diesjährigen Freizeit war Daniel 1–7. Besonders gelungen fand ich, dass die Mitarbeiter die Inhalte so vermittelt haben, dass wir sie gut auf unser eigenes Leben übertragen konnten. Der Leitspruch der Woche lautete: „Ein Mann mit Gott ist immer in der Mehrzahl“ – John Knox.
|
||||||
|
|
||||||
|
Mich hat diese Freizeit auf jeden Fall ermutigt mehr Menschen mit der frohen Botschaft zu erreichen.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</th:block>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -11,11 +11,11 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="blocktext">
|
<div class="blocktext">
|
||||||
<i>
|
<i>
|
||||||
Dieses Jahr gibt es verschiedene Beiträge, die die Teilnehmer selber geschrieben haben. Damit bekommt ihr hoffentlich einen Eindruck direkt aus erster Hand. Die Reihenfolge der Beiträge
|
Dieses Jahr gibt es wieder verschiedene Beiträge, die die Teilnehmer selber geschrieben haben. Damit bekommt ihr hoffentlich einen Eindruck direkt aus erster Hand. Die Reihenfolge der Beiträge
|
||||||
ist nach Eingang geordnet.
|
ist nach Eingang geordnet.
|
||||||
</i>
|
</i>
|
||||||
<hr />
|
<hr />
|
||||||
<p>Matthias hat seine Erfahrungen in Stichpunkten gesammelt:</p>
|
<p class="titlefont">Matthias hat seine Erfahrungen in Stichpunkten gesammelt:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Die Freizeit ging vom 05.04. bis zum 11.04.26</li>
|
<li>Die Freizeit ging vom 05.04. bis zum 11.04.26</li>
|
||||||
<li>Es waren sehr viele Kinder und Erwachsene da.</li>
|
<li>Es waren sehr viele Kinder und Erwachsene da.</li>
|
||||||
@@ -41,8 +41,25 @@
|
|||||||
<li>Jeder hat für die Woche noch ein kleines Heft bekommen für die Bibelfreude am Morgen (ein kleines Andachtsheft).</li>
|
<li>Jeder hat für die Woche noch ein kleines Heft bekommen für die Bibelfreude am Morgen (ein kleines Andachtsheft).</li>
|
||||||
<li>Meine Lieblingssüßigkeit im Kiosk sind so "Knusperreis", auch genannt Puffreis, oder so Anacondas (süße Schlangen)</li>
|
<li>Meine Lieblingssüßigkeit im Kiosk sind so "Knusperreis", auch genannt Puffreis, oder so Anacondas (süße Schlangen)</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Melissa schreibt:</p>
|
<p class="titlefont">... und dann auch noch eine Übersicht über einen erlebten Tag geschrieben:</p>
|
||||||
<p>Ich kann echt nicht glauben, dass die Zeit soooo schnell vergeht. Ich sitze hier, in meinem Zimmer und schreibe einen Bericht über meine offiziell <u>letzte</u> Olfenfreizeit. Vor fast vier Jahren saß ich hier und hab noch Bibelverse gelernt und jetzt... Ich bin echt dankbar, dass ich sooo viele Jahre auf diese Freizeit gehen durfte. Nicht mal wegen der Menschen hier, sondern einfach Gott näher zu kommen. Vor vier Jahren saß ich in der Andacht und habe das Lied "Bin ich dabei?" gesungen. Es war erst ein ganz normales Lied, bis ich an den Satz kam: "Ich habe Angst, ich bin nicht dabei"
|
<p>Heute ist Freitag, und ich wirde mal früher aufgeweckt, und zwar von irgendwelchen Jungs mit Wasser im Bett, denn sie haben mir mitten im Schlaf Wasser ins Gesicht gekippt. Ja, ich weiß, nervig. Egal, jetzt zum richtigen. Wir wurden um 8:00 Uhr geweckt. Dann hatten wir eine halbe Stunde Zeit, um uns fertig zu machen, bis unser Mitarbeiter zu uns ins Zimmer kommt und mit uns Bibelfreude macht. Um 9:00 Uhr gibt es das Frühstück, das sehr lecker schmeckt. Nach dem Essen haben wir eine halbe Stunde Zeit gehabt, bis es weiter ging. In dieser Zeit konnte man sein Zimmer aufräumen oder Pluspunkte sammeln. Dann hatten wir frohe Stunde, wo wir viele Lieder gesungen haben und eine spannende Geschichte hören durften. Während der Frohen Stunde sind zwei Mitarbeiter durch die Zimmer gelaufen und haben Punkte vergeben, wie sauber unser Zimmer ist. Deswegen auch die Pluspunkte, um die Gesamtpunktzahl hochzupushen. Danach gibt es nochmal etwa 10 Minuten freie Zeit, bis es Mittagessen gibt, das auch wieder sehr lecker schmeckt, wie der Nachtisch. Anschließend gibt es noch 10 Minuten ungefähr, wo es auch kurz Kiosk gibt. Dann müssen wir aufs Zimmer. Dort können wir unsere Ordner machen und sie verschönern. Heute war es besonders wichtig, weil die, die wollten, konnten heute abgeben, weil heute der letzte richtige Tag war. Dann wurden wir wieder geholt zum Spiel (heute war es ein Dorfspiel). Nach dem Spiel hatten wir freie Zeit, wo ein paar Mödchen und ich Ketten gebastelt haben. Ich habe dann auch noch den Bericht ein wenig weiter geschrieben. Beim Abendessen hatten alle sehr viel Spaß; es wurde gelacht, gegessen und Spaß gehabt. Nach dem Abendessen hatten wir wieder freie Zeit, wo z.B. Tischtennis, Klavier oder Kartenspiele gespielt wurde. Gegen 20:00 Uhr fängt die Andacht an, wo wir wieder viel lernen können. Heute gibt es ein Nachtspiel, worauf ich mich richtig freue. Wenn ihr euch wundert: ja, ich weiß, ich habe die letzten Sätze im Voraus geschrieben, das ist so, weil ich den Bericht abgeben kann, dass er es noch rechtzeitig hier auf die Homepage schafft. Es hat mir sehr viel Spaß gemacht, euch über diesen Tag von der Freizeit zu erzählen.</p>
|
||||||
|
<hr />
|
||||||
|
<p class="titlefont">Melissa (14 Jahre) schreibt:</p>
|
||||||
|
<p>Ich kann echt nicht glauben, dass die Zeit soooo schnell vergeht. Ich sitze hier, in meinem Zimmer und schreibe einen Bericht über meine offiziell <u>letzte</u> Olfenfreizeit. Vor fast vier Jahren saß ich hier und hab noch Bibelverse gelernt und jetzt... Ich bin echt dankbar, dass ich sooo viele Jahre auf diese Freizeit gehen durfte. Nicht mal wegen der Menschen hier, sondern einfach Gott näher zu kommen. Vor vier Jahren saß ich in der Andacht und habe das Lied "Bin ich dabei?" gesungen. Es war erst ein ganz normales Lied, bis ich an den Satz kam: "Ich habe Angst, ich bin nicht dabei." Dieser Satz hat mich so zum Nachdenken gebracht, und ich kann echt nicht glauben, dass ich mich nach meiner Bekehrung auf den Namen Herrn Jesus Christus taufen durfte und jezt dabei sein kann, weil ich ein Kin Gottes bin. Diese Freizeiten bringen mich immer mehr näher zu Gott und ich staune jedes Mal neu, wie groß Gott doch wirklich ist, wie unbeschreiblich er uns liebt, uns vergibt und eine Beziehung mit uns haben möchte. Ich liebe auch die Gemeinschaft, di eman hier 24/7 hat. Das gemeinsame Bibellesen, Singen, und die Spiele machen so viel Spaß. Morgens aufzustehen und direkt mit Gottes Wort zu starten, bereichert den ganzen Tag und bringt gute Laune am Frühstückstisch. Außerdem hab ich gelernt, was wahre Freunde sind und hab diese auch hier afu den Freizeiten durch das stundenlange Kichern von früh morgens, bis spät in die Nacht kennengelernt. Manchmal, ich würde sogar sagen: <u>fast immer</u>, sind die Freunde in Christus größer, als Christus in uns selbst. Christliche Freunde sind eins der größten Schätze, die man haben kann. Selbst, wenn es am Ende nur eine Person ist. Als ich noch neu auf der Freizeit war, habe ich nie das Angebot angenommen, mit den Mitarbeitern über den Glauben offen zu reden, oder präzise Fragen zu stellen und um ehrlich zu sein: bereue ich es <u>sehr</u>. Denn mit Mitabeitern zu reden, selbst wenn es über die unnormalsten Themen geht, ist so eine Bereicherung und lässt einen noch mehr im Glauben wachsen. Sie sind immer, wirklich immer für einen da, haben ein offenes Ohr und einen Bibelvers per Rat. Sie nehmen sich so viel Zeit, egal ob es jetzt nur 5 Minuten oder 1 Stunde ist.<br />
|
||||||
|
Ich habe von diesen Freizeiten so unendlich viel Erfahrung (auch für mein späteres Leben) gesammelt, darunter wie barmherzig, gnädig und liebevoll Gott doch ist. Er hat seinen Sohn für uns geopfert, obwohl wir es nie im Leben verdient haben, nur das der Weg wieder frei ist und wir mit Gott leben können. Und auch, wenn dann mal die eigene Zimmernummer für den Küchendienst aufgerufen wird und man die Augen verdreht und versucht, noch schnell zu verhandeln, ob man nicht doch am Abend machen kann, macht Küchendienst doch irgendwie Spaß und lässt die ganze Küche von dem lauten Gesang mit einem Lächeln herumlaufen. Selbst, wenn man am Morgen von der Zimmerbewertung zwei Minuspunkte bekommen hat und die Bestechungsschokolade, welche auf dem Tisch zwischen den selbstgeschriebenen Bibelversen lag, die ungemachten Betten, den dreckigen Boden und die Socken, die im Zimmer verstreut lagen nicht entschuldigen konnten. Ich bin Gott sooo unendlich dankbar, dass ich meine Zeit so oft in Olfen mit all diesen einzigartigen Menschen verbringen konnte und kann es kaum erwarten, nächstes Jahr (auch auf Wunsch der jüngeren Teilnehmer) als Mitarbeiter auf dieser Freizeit zu sein. Gottes reichen Segen an den Leser.</p>
|
||||||
|
<hr />
|
||||||
|
<p class="titlefont">Simeon wollte uns an seinem Freitag teilnehmen lassen:</p>
|
||||||
|
<p><img th:src="@{/images/olfenosternaufdie1.png}" align="left" style="margin-right: 8px" />Heute ist Freitag... ich hatte viel Spaß, aber ich hatte auch Tage, wo es mir nicht so sehr gefallen hat. Am Montag hat es um 17:00 Uhr angefangen. Uns wurden die Regeln erklärt, und natürlich wurden auch unsere Handys eingesammelt. Danach hatten wir freie Zeit, da konnten wir spielen und frei sein. Dann hatten wir die Andacht. Wir haben natürlich auch gegessen. Auf dieser Freizeit kann man jedes Mal etwas Neues über Gott und Jesus lernen. Ich war dabei, wie sich viele Kinder bekehrt haben. Die Leute sind nett (naja... meistens zumindest). Wir spielen auch sehr viel gemeinsam, Spieleabende, Nachtwanderungen, Nachtspiele und vieles mehr. Ich bin immer so glücklich, wenn wir so wunderschöne Lieder singen. Das schönste fand ich, als wir alle zusammen am Lagerfeuer saßen und singen konnten. Ein Mitarbeiter hat uns eine Geschichte erzählt. Es war einfach wunderschön...</p>
|
||||||
|
<hr />
|
||||||
|
<p class="titlefont">Emma möchte uns auch von ihrem Tag berichten:</p>
|
||||||
|
<p><img th:src="@{/images/emmagiraffe.png}" align="right" style="margin-left: 8px" />Ich finde Olfen eine großartige Freizeit, denn hier wird einem nie langweilig, und ein Tag hier würde so ausssehen:
|
||||||
|
Während man entweder eine kurze oder lange Nacht hinte rsich hatte wegen beispielsweise Bibel lesen bis um 3 Uhr nachts oder so müde vom Vortag ist, dass man schon um 0 Uhr einschläft. Während man dann also noch im 7. Himmel ist, wird man vom Punkt 8 Uhr geweckt. Das ist für viele von uns der größte Horror. Es werden von den Mitarbeitern dann laute, lustige und fröhliche Lieder mit Begleitung der Gitarre gesungen. Anschließend haben wir dann 15 Minuten, um uns anzuziehen, Zähne zu putzen und unsere Betten zu machen. Die Meisten bleiben aber wie ich nochmal 10 Minuten im Bett, kriegen dann aber nochmal 5 Minuten von unseren üebraus lieben und geduldigen Mitarbeitern, um dann widerum ein kurzes Gebet zu sprechen und dann die Bibelfreude zu machen. In der Bibelfreude wollen die Mitarbeiter uns die frohe Botschaft mit Bibelversen, die wir nachlesen, und einem kleinen Arbeitsheft verkünden. Der Austausch ist immer sehr interessant, udn es macht auch glücklich, sich über Gott auszutauschen. Die Bibelfreude dauert in der Regel 30 Minuten. Dann endlich gibt es das lang ersehnte Frühstück.
|
||||||
|
Hierzu muss ich sagen, dass es einfach nur krass ist, wie lecker unsere Küche kochen kann, und das, egal ob du lactoseintolerant bist oder sogar glutenfrei bist. Ich danke Gott dafür täglich, dass die Küche sowas kann. Es ist alles sauber und hygienisch, was vielen Leuten auch wichtig ist, und bei uns muss der Teller aufgegessen werden, deswegen: am Anfang bisschen weniger nehmen, hilft. Nach dem Frühstück haben wir dann eine halbe Stunde, in der wir unser Zimmer putzen müssen, also Waschbecken, Boden und Tisch. Außerdem muss man den Müll bis 10 Uhr leeren. Aber die Restzeit spielen viele von uns Volleyball oder Tischtennis, was bei uns sehr beliebt ist. Nach dieser Pause haben wir frohe Stunde. Da setzen wir uns in den Saal und hören von einem Mitarbeiter eine Andacht. Nach der Andacht beten wir und lernen den Bibelvers zusammen, den dei Mitarbeiter vereinbart haben. Den schreiben wir dann in unseren Ordner ab und kriegen Arbeitsblätter. Nach dem Mittagessen ist dann Mittagspause, in der wir leise im Zimmer sitzen sollten und die gegebenen Arbeitsblätter ausfüllen müssen. Diese geht 1 Stunde, aber es fühlt sich an wie 20 Minuten.
|
||||||
|
Die Mitarbeiter helfen uns bei jeder Frage, und wenn sie einmal nicht die Antwort wissen, studieren wir zusammen in der Bibel bis wir endlich die Antwort haben. Ich persönlich finde sowas richtig cool, sich so für Gott in dieser Freizeit Zeit zu nehmen. Danach spielen wir immer wieder im Saal ein Spiel wie z.B. Kennenlernspiele oder Dorfspiele. Diese gehen meistens mehr als 2 Stunden, so dass es schon Zeit für das Abendessen ist. Nach jeder Mahlzeit wird übrigens ein Zimmer ausgewählt, das dann mmit ihren jeweiligen Mitarbeitern Küchendienst hat. Wir haben danach immer eine kleine Pause und anschließend eine Abendandacht mit Gebet und im Anschluss ein Abendspiel, Nachtspiel draußen oder Lagerfeuer. Und als Abschluss werden wir in unsere Zimmer geschickt, um uns bettfertig zu machen. Nun kommt der Mitarbeiter des Zimmers und betet mit uns. Die Meisten reden dann noch relativ laut im Zimmer, deswegen gibt es auch noch Nachtwache von bestimmten Mitarbeitern, die auch manchmal ermahnen müssen. Irgendwann ist es dann aber auch leise...<br />
|
||||||
|
<br />
|
||||||
|
Das war ein Tag in Olfen, und ich hoffe, Ihnen hat meine Beschreibung Spaß beim Lesen gemacht!
|
||||||
|
</p>
|
||||||
|
<p></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -31,10 +31,11 @@
|
|||||||
<div class="collapse navbar-collapse" id="navbarSupportedContent" style="margin-right: 20px">
|
<div class="collapse navbar-collapse" id="navbarSupportedContent" style="margin-right: 20px">
|
||||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||||
<li class="nav-item"><a th:href="@{/ical}" class="btn btn-secondary btn-icon-silent" target="_blank" title="Freizeitdaten als ical herunterladen"><i class="far fa-calendar-alt"></i></a></li>
|
<li class="nav-item"><a th:href="@{/ical}" class="btn btn-secondary btn-icon-silent" target="_blank" title="Freizeitdaten als ical herunterladen"><i class="far fa-calendar-alt"></i></a></li>
|
||||||
<li class="nav-item"><a class="btn btn-icon-silent menufont" th:href="@{/camplist}">Anmeldung</a></li>
|
<li class="nav-item"><a class="btn btn-icon-silent menufont" th:href="@{/camplist}">Freizeiten</a></li>
|
||||||
<li class="nav-item dropdown"><a class="nav-link dropdown-toggle btn-icon-silent menufont" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">Berichte</a>
|
<li class="nav-item dropdown"><a class="nav-link dropdown-toggle btn-icon-silent menufont" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">Berichte</a>
|
||||||
<ul class="dropdown-menu visibledropdown" aria-labelledby="navbarDropdown">
|
<ul class="dropdown-menu visibledropdown" aria-labelledby="navbarDropdown">
|
||||||
<li><a class="dropdown-item menufont" th:href="@{/reports/olfenostern2026}">Osterfreizeit 2026 in Olfen</a></li>
|
<li><a class="dropdown-item menufont" th:href="@{/reports/olfenostern2026}">Osterfreizeit 2026 in Olfen</a></li>
|
||||||
|
<li><a class="dropdown-item menufont" th:href="@{/reports/growup2026}">GrowUp 2026</a></li>
|
||||||
<li><hr class="dropdown-divider"></li>
|
<li><hr class="dropdown-divider"></li>
|
||||||
<li><a class="dropdown-item menufont" th:href="@{/reports/olfenostern2023}">Osterfreizeit 2023 in Olfen</a></li>
|
<li><a class="dropdown-item menufont" th:href="@{/reports/olfenostern2023}">Osterfreizeit 2023 in Olfen</a></li>
|
||||||
<li><hr class="dropdown-divider"></li>
|
<li><hr class="dropdown-divider"></li>
|
||||||
|
|||||||
Reference in New Issue
Block a user