Merge branch 'master' into homepage

This commit is contained in:
marko
2023-03-25 17:02:47 +01:00
29 changed files with 538 additions and 14 deletions

4
.gitmodules vendored
View File

@@ -13,7 +13,3 @@
[submodule "submodules/materialize"]
path = submodules/materialize
url = https://github.com/materializecss/materialize.git
[submodule "submodules/video.js"]
path = submodules/video.js
url = https://github.com/videojs/video.js.git

View File

@@ -0,0 +1,29 @@
---
title: Erinnerung Sommerlager
---
Kurze Erinnerung an das Sommerlager. Bitte gebt mir bis nächste Woche Bescheid, wer noch gerne mitreisen möchte.
# Sommerlager 2023
Unsere Karateka haben uns eingeladen, dieses Jahr gemeinsam mit ihnen ins Sommerlager zu fahren. 10 Plätze ständen für uns zur Verfügung.
- Termin: 9.7.- 14.7.2023
- Kosten: 240,00 €
- [InfoZettel der Karateka][infoZettel] (Bei uns bin ich allerdings der Ansprechpartner und die Teilnehmergrenze ist 10)
- Ort: Bungalowdorf Olganitz
- Zum Bungalowdorf 1
- 04758 Cavertitz / OT Olganitz
- https://schullandheim-olganitz.de/
Unsere Karateka waren schon mehrfach dort und sind von der Umgebung begeistert.
# Anstehende Wettkämpfe
- 2023-03-11 [26. Frühjahrskrümel­randori (U11--)][wk187]
- 2023-03-18 [Bezirkseinzelmeisterschaften U13][bemU13] (noch keine offizielle Ausschreibung, nur der Termin im Kalender des JVS)
[inFozettel]: http://cwsvjudo.bplaced.net/downloads/zettel/Sommerlager-2023.pdf
[bemU13]: https://judoverbandsachsen.de/events/bezirkseinzelmeisterschaften-11/
[wk187]: http://cwsvjudo.bplaced.net/participo/events#187

View File

@@ -0,0 +1,41 @@
---
title: Generationenturnier Halle
---
Am 29.04.2023 findet mit dem Generationenturnier in Halle ein Wettkampf statt, an dem alle Altersklassen des Vereines gemeinsam an den Start gehen können. Es wäre für alle Beteiligten ein besonderes Erlebnis.
Ich hoffe natürlich auf eine möglichst hohe Beteiligung. Bitte tragt in unserem [Wettkamplaner][wk191] ein ob Ihr gerne daran teilnehmen wollt. Auch die Leute, die nicht teilnehmen wollen/können geben mir bitte Bescheid (in dem Falle nicht "als Starter", sondern "keine Teilnahme" auswählen).
Da ich wie gesagt auf eine hohe Beteiligung hoffe, wird auch die Anreise eine Herausforderung. Das Wiegen findet gestaffelt statt. Eine spätere Anreise wäre für einige also denkbar. Auch hier bitte ich um Eure Mithilfe: Bitte gebt mir Bescheid, wer selber fahren kann, wer einen Fahrtplatz benötigt und wer vielleicht sogar noch einen mitnehmen kann.
# [Generationenturnier Halle][wk191]
## Ausschreibung
Link: [13. Generationenturnier des Judo Club Halle][0]
## Wettkampfdaten
- Altersklassen:
- U10 (bis jg. 2014)
- U13 (2011-2013)
- U16 (2008-2010)
- M/F (2007-1994)
- Ü30 (1993-1979)
- Ü45 (1978 und älter)
- Datum: [29.04.2023][wk191]
- Ort: [Sporthalle Brandberge][1], Kreuzvorwerk 30, 06120 Halle
- Wiegen:
- U10/U13: 08.00 Uhr - 09.00 Uhr, Beginn ca. 9.45 Uhr
- Senioren Ü30/Ü45: 10.00 Uhr - 11.00 Uhr, Beginn nach U10 / U13
- U16/Männer/Frauen U30: 11.30 Uhr - 12.30 Uhr, Beginn nach Senioren Ü30/Ü45
In Hoffnung auf eine wirklich große Beteiligung
marko
[0]: http://cwsvjudo.bplaced.net/downloads/Ausschreibungen/Ausschreibungen.2023/13.%20Hallesches%20Generationenturnier.pdf
[1]: https://osm.org/go/0ME6omvwx-
[wk191]: http://cwsvjudo.bplaced.net/participo/events#191

View File

@@ -0,0 +1,18 @@
[
{
"id": "1",
"loginName": "marko",
"eMail": [
"cwsvjudo@arcor.de",
"marko.bunzel@arcor.de",
"cwsvjudo@gmail.com"
]
},
{
"id": "94",
"loginName": "elternBritvin",
"eMail": [
"luidmyla60@gmail.com"
]
}
]

View File

@@ -0,0 +1,54 @@
[
{
"id": "1",
"loginName": "marko",
"eMail": [
"cwsvjudo@arcor.de",
"marko.bunzel@arcor.de",
"cwsvjudo@gmail.com"
]
},
{
"id": "77",
"loginName": "elternHaeuberer",
"eMail": [
"julia.haeuberer@gmx.de",
"norman.haeuberer@gmail.com"
]
},
{
"id": "85",
"loginName": "elternGerlach",
"eMail": [
"manja.bunzel@gmx.de"
]
},
{
"id": "91",
"loginName": "elternMeier",
"eMail": [
"meier.andrej@web.de"
]
},
{
"id": "96",
"loginName": "elternMaiatska",
"eMail": [
"ice_0605@i.ua"
]
},
{
"id": "101",
"loginName": "elternKraft",
"eMail": [
"a-kraft-@gmx.net"
]
},
{
"id": "103",
"loginName": "elternBoehme",
"eMail": [
"jeannette.boehme@mail.de"
]
}
]

View File

@@ -29,13 +29,6 @@
"stephanie.brittnacher@gmail.com"
]
},
{
"id": "31",
"loginName": "elternFriedrich",
"eMail": [
"akf21182@aol.com"
]
},
{
"id": "50",
"loginName": "elternCuric",

View File

@@ -0,0 +1,32 @@
---
title: Landeseinzelmeisterschaften 2023
---
Hier erstmal der Link zu den Bildern/Videos der Bezirkseinzelmeisterschaft:
- Link: https://magentacloud.de/s/5D8scWBrqqMzcrF
- Passwort: qCCzxp4N
Mit seiner Platzierung zur Bezirksmeisterschaft hat sich Hlib für die Landesmeisterschaften am 01.04. qualifiziert. Ich hoffe, es passt in Euren Zeitplan. Falls es bei der Organisation der An-/Abreise Probleme gibt, bitte lasst mich wissen, ob und wie ich helfen kann.
# [Landeseinzelmeisterschaften 2023][wk193]
Ausschreibung zur [Landeseinzelmeisterschaften U13 2023][0] (Nur zur Info, die Meldung beim Veranstalter erfolgt automatisch durch die Qualifikation bei der Bezirkseinzelmeisterschaft)
## Wettkampfdaten
- Altersklassen: Jg. 2011 / 2012 / 2013
- Datum: [01.04.2023][wk182]
- Ort: [Turnhalle des Gymnasiums Pieschen][1], Erfurter Str. 17, 01127 Dresden
- Passkontrolle: 9:00 bis 09:20 Uhr
- Erwärmung: 09:30 Uhr
- Wettkampferöffnung: ca. 10:00 Uhr
MsG marko
[0]: http://cwsvjudo.bplaced.net/downloads/Ausschreibungen/Ausschreibungen.2023/167026642420230401_Ausschreibung_LEMU13.pdf
[1]: https://osm.org/go/0MLkDtqD1-
[wk182]: http://cwsvjudo.bplaced.net/participo/events#182

View File

@@ -0,0 +1,12 @@
---
title: Neujahrsturnier MediaSharing
---
Hier der Link zu den Bildern/Videos von des Neujahrsturnieres zum Sammeln und Tauschen:
- Link: https://magentacloud.de/s/g5tdtiS7Fka3nwn
- Passwort: iDxkDjyR
Vielleicht kann noch jemand die fehlenden Kämpfe beisteuern...
MsG marko

View File

@@ -0,0 +1,12 @@
---
title: Frühjahrskrümelrandori MediaSharing
---
Hier der Link zu den Bildern/Videos von des Frühjahrskrümelrandori zum Sammeln und Tauschen:
- Link: https://magentacloud.de/s/XAkS7FTkXXpMTf2
- Passwort: WXoz3QgB
Vielleicht kann noch jemand die fehlenden Kämpfe beisteuern...
MsG marko

View File

@@ -0,0 +1,44 @@
---
title: Frühjahrskrümelrandori 2023
---
# [Frühjahrskrümelrandori 2023][wk187]
Wir haben den Bus des Stadtsportbundes zur Verfügung. Dessen Sitzplätze würde ich auch gerne voll auslasten.
Ausschreibung zum [Frühjahrskrümelrandori 2023][0] (Nur zur Info, die Meldung beim Veranstalter habe ich bereits erledigt)
## Wettkampfdaten
- Altersklassen: Jg. 2013 bis 2017
- Datum: [11.03.2023][wk187]
- Ort: [Dreifelder-TH der Goethe-Oberschule Breitenbrunn, Dorfberg 10, 08359 Breitenbrunn][1]
- Wiegen: 9:00--9:45 Uhr
- Wettkampferöffnung: ca. 10:30 Uhr
## Treffpunkt
- Ort: [P+R Parkplatz Südring/Stollberger Straße][2]
- Abfahrt: 7:15 Uhr
- Kindersitz (die Mitfahrer im Bus) nicht vergessen!
## Nicht vergessen
- Judopass
- Judogi (d. h. Jacke, Hose und Gürtel)
- *Hallenschuhe* (Auch die Fans!)
- Essen/Trinken
- Warme Socken und Pullover
Das Betreten der Sportstätten in Straßenschuhen ist (auch den Fans)
nicht gestattet. Bitte Ersatzschuhe (Badelatschen/Hallenschuhe)
mitbringen. Sonst muss in Socken gegangen werden!
MsG marko
[0]: http://cwsvjudo.bplaced.net/downloads/Ausschreibungen/Ausschreibungen.2023/HKR-2023.pdf
[1]: https://osm.org/go/0JdSSbdXV
[2]: https://osm.org/go/0MIYgsQn7
[wk187]: http://cwsvjudo.bplaced.net/participo/events#187

View File

@@ -0,0 +1,12 @@
---
title: Neujahrsturnier MediaSharing
---
Hier der Link zu den Bildern/Videos von des Neujahrsturnieres zum Sammeln und Tauschen:
- Link: https://magentacloud.de/s/g5tdtiS7Fka3nwn
- Passwort: iDxkDjyR
Vielleicht kann noch jemand die fehlenden Kämpfe beisteuern...
MsG marko

View File

@@ -0,0 +1,39 @@
---
title: Bezirkseinzelmeisterschaft 2023
---
# [Bezirkseinzelmeisterschaft 2023][wk193]
Ausschreibung zur [Bezirkseinzelmeisterschaft U13 2023][0] (Nur zur Info, die Meldung beim Veranstalter habe ich bereits erledigt)
## Wettkampfdaten
- Altersklassen: Jg. 2011 / 2012 / 2013
- Datum: [18.03.2023][wk193]
- Ort: [Zentraldojo CPSC BUDO e.V.][1], Sportforum Chemnitz, Einfahrt Südring, Reichenhainer Straße 254, 09125 Chemnitz
- Passkontrolle: 8:45 bis 09:15 Uhr
- Wettkampferöffnung: ca. 10:00 Uhr
## Treffpunkt
Entweder am Wettkampfort oder an unserem Dojo
## Nicht vergessen
- Judopass
- Judogi (d. h. Jacke, Hose und Gürtel)
- *Hallenschuhe* (Auch die Fans!)
- Essen/Trinken
- Warme Socken und Pullover
Das Betreten der Sportstätten in Straßenschuhen ist (auch den Fans)
nicht gestattet. Bitte Ersatzschuhe (Badelatschen/Hallenschuhe)
mitbringen. Sonst muss in Socken gegangen werden!
MsG marko
[0]: https://judoverbandsachsen.de/fileadmin/kalender/2023/maerz/2023-03-18_C_Ausschreibung_BEM_U13_2023.pdf
[1]: https://osm.org/go/0MIYij9F-
[wk193]: http://cwsvjudo.bplaced.net/participo/events#193

View File

@@ -0,0 +1,6 @@
| Name | Vorname | Geb.dat. | Geb.ort | Nat. | Passbild | bestellt am | Passnummer |
| :------- | :------ | :--------- | :---------- | :--------- | :------- | ----------: | ---------: |
| Kraft | Nataly | 2013-10-11 | Chemnitz | deutsch | [x] | 2023-03-25 | |
| Maiatska | Mariia | 2015-02-24 | Tschernihiw | ukrainisch | [x] | 2023-03-25 | |
| Kraft | Alesya | 2015-03-14 | Chemnitz | deutsch | [x] | 2023-03-25 | |
| Böhme | Hanna | 2016-01-26 | Chemnitz | deutsch | [x] | 2023-03-25 | |

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@@ -1,14 +1,17 @@
include passwords
.PHONY: updateSubmodules
updateSubmodules:
updateSubmodules: checkoutSubmodulesDefaultBranches
git submodule foreach git pull
.PHONY:
checkoutSubmodulesDefaultBranches:
git -C lite-youtube-embed checkout master
git -C materialize checkout main
git -C parsedown checkout master
git -C spyc checkout master
git -C zopfli checkout master
git submodule foreach git pull
.PHONY: buildMaterialize
buildMaterialize: updateSubmodules

1
submodules/wkOrg Submodule

Submodule submodules/wkOrg added at 41fe0c5a45

14
wkOrg/Makefile Executable file
View File

@@ -0,0 +1,14 @@
.PHONY: all
all: dlCheck
# Download der Ausschreibungen und ablegen im Downloadordner
.PHONY: download
download:
python wkScraper-JvsCal.py
.PHONY: dlCheck
dlCheck: download
./newNoticeCheck.py
.PHONY: clean
clean:

82
wkOrg/checkDownloads.py Executable file
View File

@@ -0,0 +1,82 @@
#! /usr/bin/env python3
# Python Script zum testen, ob neue Ausschreibungen hinzugekommen sind, oder bereits vorhandene sich geändert haben (kein herunterladen, es wird im Downloadordner wkOrgConfig.downpath gesucht)
# Name und Pfad der Datenbank als Variablen
import wkOrgConfig
import wkOrgAssis
import os
import os.path
import sqlite3
# Init der Datenbankverbindung
if os.path.isfile(wkOrgConfig.db['pathname']+wkOrgConfig.db['filename']):
dbConn = sqlite3.connect(
wkOrgConfig.db['pathname']+wkOrgConfig.db['filename'])
dbConn.text_factory = str
dbCur = dbConn.cursor()
else:
print("Keine Datenbank vorhanden!")
exit(-1)
# Hole Liste der Dateinamen im downloadVerzeichnis
filenames = os.listdir(wkOrgConfig.downPath)
# print filenames
# Für jeden Dateinamen:
for filename in filenames:
# Finde alle Einträge (id, dateiname, sha256 , wkID) zu diesen Dateinamen in der downloadTabelle -> dlList
dbCur.execute(
'SELECT id, dateiname, sha512 , wkID FROM downloads WHERE dateiname=?', (filename, ))
ausschr = dbCur.fetchall()
# Falls dlList leer: (heißt ausschreibung wurde noch nicht zugeordnet)
if ausschr == []:
# füge Ausschreibung zur downloadTabelle hinzu (merke dir die ID)
ausschrID = wkOrgAssis.dbAddDownload(
dbCur, filename, wkOrgAssis.aFilesSHA512(wkOrgConfig.downPath+filename))
dbConn.commit()
# füge Wettkämpfe zur wkTabelle hinzu, merke die wkIDs
print("Ausschreibung: "+filename)
os.system('mupdf "'+wkOrgConfig.downPath +
filename + '" >/dev/null 2>/dev/null &')
wkIDs = wkOrgAssis.dbAddWks(dbCur, ausschrID)
dbConn.commit()
# update die wkIDs in der Ausschreibung in der downloadTabelle
dbCur.execute('UPDATE downloads SET wkID=? WHERE id=?',
(' '.join(str(wkIDs)), ausschrID))
dbConn.commit()
# Sonst:
else:
# (auch wenn mehrere dl mit diesem Dateinamen in der
# downloadDatenbank gefunden werden, wir nehmen immer nur den
# ersten)
# Falls wkID == NULL:
if ausschr[0][3] == 'NULL':
# füge Wettkämpfe zur wkTabelle hinzu, merke die wkIDs
wkIDs = dbAddWks(dbCur, ausschr[0][0])
# update die wkIDs dieser Ausschreibung
dbCur.execute('UPDATE downloads SET wkIDs=? WHERE id=?',
(' '.join(wkIDs), ausschr[0][0]))
dbConn.commit()
# Sonst:
else:
# Falls wkID != 0:
if ausschr[0][3] != '0':
# Falls sich der Hash geändert hat:
if ausschr[0][2] != wkOrgAssis.aFilesSHA512(wkOrgConfig.downPath+filename):
# Finde alle wkEinträge, die diese AusschreibungsID haben:
dbCur.execute(
'SELECT (wkId) FROM downloads WHERE dateiname=?', (filename,))
wkListList = dbCur.fetchall()
# Für jeden diesen Eintrag:
for wkList in wkListList:
# Berichtige die Wettkampfdaten
for wk in wkList:
print("Ups: kein dbUpdateWk")
# wkOrgAssis.dbUpdateWk(wk)
# Aufräumen
dbConn.commit()
dbConn.close()

55
wkOrg/getCSV.py Executable file
View File

@@ -0,0 +1,55 @@
#! /usr/bin/env python3
# Python Script zum exportieren der anstehenden Wettkämpfe als cvs
# und Kopieren der Ausschreibungen in das zugehörige Verzeichnis zur
# Synchro mit dem online download ordner
# Name und Pfad der Datenbank als Variablen
import wkOrgConfig
import wkOrgAssis
import os
import os.path
import sqlite3
import time
import shutil
import dateutil.parser
import sys
# Init der Datenbankverbindung
if os.path.isfile(wkOrgConfig.db['pathname']+wkOrgConfig.db['filename']):
dbConn = sqlite3.connect(wkOrgConfig.db['pathname']+wkOrgConfig.db['filename'])
dbConn.text_factory = str
dbCur = dbConn.cursor()
else:
print ("Keine Datenbank vorhanden!")
exit(-1)
# Abfrage aller anstehenden Wettkämpfe
dbCur.execute('SELECT id FROM wk WHERE datum>=?', (time.strftime("%Y-%m-%d"), ) )
wkIds = dbCur.fetchall()
for wkId in wkIds:
dbCur.execute('SELECT name, datum, ak, adrID, dlID FROM wk WHERE id=?', (wkId[0], ) )
wkInfos = dbCur.fetchall()
dbCur.execute('SELECT dateiname FROM downloads WHERE id=?', (wkInfos[0][4], ))
ausschr = dbCur.fetchall()
dbCur.execute('SELECT ort, lat, lon FROM adressen WHERE id=?', (wkInfos[0][3], ))
addr = dbCur.fetchall()
if not addr:
addr = [["","",""]]
# Schreibweisen korrigieren
ausschrFilename = ausschr[0][0]
ausschrFilename = ausschrFilename.replace(" ", "%20")
sys.stderr.write("wkInfos: "+str(wkInfos)+"\n")
# Reihenfolge der Spalten auf dem Server:
# lfdeNr Datum Veranstaltung Altersklassen Ort Ausschreibung Routenplaner
print ("0," + wkInfos[0][1] + "," + wkInfos[0][0] + "," + wkInfos[0][2] + "," + addr[0][0] + "," + "/downloads/Ausschreibungen/Ausschreibungen." + str(dateutil.parser.parse(wkInfos[0][1]).year) + "/" + ausschrFilename + "," + "http://www.openstreetmap.org/directions?&route=50.80722%2C12.88236%3B" + addr[0][1] + "%2C" + addr[0][2] + ",," )
if not os.path.exists('Ausschreibungen/Ausschreibungen.'+str(dateutil.parser.parse(wkInfos[0][1]).year)):
os.makedirs('Ausschreibungen/Ausschreibungen.'+str(dateutil.parser.parse(wkInfos[0][1]).year))
shutil.copyfile('download/'+ausschr[0][0], 'Ausschreibungen/Ausschreibungen.'+str(dateutil.parser.parse(wkInfos[0][1]).year)+'/'+ausschr[0][0])

41
wkOrg/newNoticeCheck.py Executable file
View File

@@ -0,0 +1,41 @@
#! /usr/bin/env python3
# Python Script zum testen, ob neue Ausschreibungen hinzugekommen sind, oder bereits vorhandene sich geändert haben (kein herunterladen, es wird im Downloadordner wkOrgConfig.downpath gesucht)
# Name und Pfad der Datenbank als Variablen
import wkOrgConfig
import wkOrgAssis
import os
import os.path
import sqlite3
# Init der Datenbankverbindung
if os.path.isfile(wkOrgConfig.db['pathname']+wkOrgConfig.db['filename']):
dbConn = sqlite3.connect(wkOrgConfig.db['pathname']+wkOrgConfig.db['filename'])
dbConn.text_factory = str
dbCur = dbConn.cursor()
else:
print ("Keine Datenbank vorhanden!")
exit(-1)
# Hole Liste der Dateinamen im downloadVerzeichnis
filenames = os.listdir(wkOrgConfig.downPath)
#print filenames
# Für jeden Dateinamen:
for filename in filenames:
# Finde alle Einträge (id, dateiname, sha256 , wkID) zu diesen Dateinamen in der downloadTabelle -> dlList
dbCur.execute('SELECT id, dateiname, sha512 , wkID FROM downloads WHERE dateiname=?', (filename, ) )
ausschr = dbCur.fetchall()
# Falls dlList leer: (heißt ausschreibung wurde noch nicht zugeordnet)
if ausschr == []:
print("Neue Auschreibung: {}".format(filename))
# Sonst:
else:
continue
# Aufräumen
dbConn.commit()
dbConn.close()

40
wkOrg/readMe.md Executable file
View File

@@ -0,0 +1,40 @@
Python Scripts zur Verwaltung von Wettkampfterminen in einer SQLite Datenbank
Die einzelnen "Programme"
- download.sh
- Skript zum Herunterladen der Ausschreibungen
- checkDownloads.py
- sucht, welche Downloaddateien noch nicht in der Datenbank erfasst sind, und lässt sie den Benutzer hinzufügen (oder zum ignorieren vormerken)
- getCVS.py
- gibt die kommenden Wettkämpfe als csv aus zum Import in die Onlinedatenbank
- die offline Datenbank kennt nicht:
- die laufenden Nummern der Wettkämpfe in der Onlinedatenbank
- den Inhalt der Onlinedatenbank
Deshalb müssen:
- die Reihenfolge der Spaltennamen muss beim Import in phpmyadmin manuell mit angegeben werden (Datum, Veranstaltung, Altersklassen, Ort, Ausschreibung, Routenplaner)
- schon in der Onlinedatenbank vorhandene Wettkämpfe entfernt werden (wird auch so bleiben müssen, bis ich eine 'Synchronisation' der beiden Datenbanken hinbekomme)
Datenbankstruktur:
Tabellen:
- downloads (Tabelle für alle Ausschreibungen im Downloadverzeichnis
- id INTEGER PRIMARY KEY ASC
- dateiname TEXT
- sha256 TEXT
- wkID TEXT (die IDs der Wettkämpfe dieser Ausschreibung per Whitespace getrennt)
- adressen (Tabelle für die Addressen der Wettkampforte)
- id INTEGER PRIMARY KEY ASC
- verein TEXT
- ort TEXT
- plz TEXT
- straße TEXT
- hausnr TEXT
- lat TEXT
- lon TEXT
- wk (Tabelle für die Wettkämpfe)
- id INTEGER PRIMARY KEY ASC
- name TEXT
- datum TEXT
- ak TEXT
- adrID TEXT
- ausschrID TEXT (id der ausschreibung in der downloadliste zum Wettkampf)

1
wkOrg/wkScraper-JvsCal.py Symbolic link
View File

@@ -0,0 +1 @@
../submodules/wkOrg/src/wkScraper/wkScraper-JvsCal.py