Commit 3eaaba32 authored by Patrick Mischke's avatar Patrick Mischke
parents 28e2090d 8fe89c27
*.ini
__pycache__
tags
test:
except:
- schedules
image: python:3.6-alpine
before_script:
- pacman -Sy --noconfirm python3 python-ldap3
script: python3 bin/module/test.py
- pip install ldap3
script:
- python bin/module/test.py
syntax:
except:
- schedules
image: debian:stretch
before_script:
- pacman -Sy --noconfirm flake8
script: flake8 --exclude .git,__pycache__,bin/module/test.py
- apt update > /dev/null
- apt install -y python-flake8 flake8 > /dev/null
script:
- /usr/bin/flake8 --exclude .git,__pycache__,bin/module/test.py
fallbackfiles:
only:
- schedules
image: python:3.6-alpine
before_script:
- export
- apk add git openssh-client bash
- git config --global user.email "protokoll@fs.physik.uni-kl.de"
- git config --global user.name "Protobot"
- pip install ldap3
- eval $( ssh-agent -s )
- echo -e "$SSH_PRIVATE_KEY" | ssh-add -
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
script:
- python bin/generate_fallback.py
- git add share/fsr share/fsr_extern
- '[ ! -z "$(git status --porcelain)" ] && git commit -m "updated fallbackfiles"'
- git push git@gitlab.rlp.net:fsr_physik_tu_kl/protokoll/protokoll_skript.git HEAD:master
Skript zur halbwegs automatischen Erstellung von FSR-Protokollen
================================================================
================================================================
1. Konfiguration
================
Von normalen Usern koennen folgende Dinge festgelegt werden:
- aktueller Sprecher (=> automatisch Sitzungsleiter)
- aktueller Protokollant (=> Unterschrift)
- Anzahl der Spalten in der Anwesenheitsliste
- Leute in der Anwesenheitsliste
Fuer die ersten drei Punkte muss die Datei "protskript_test.py" in beliebigem Texteditor
geöffnet und die entsprechenden Variablen (im markierten Bereich) geaendert
werden. Fuer den vierten Punkt müssen die Dateien fsr und fsr_extern bearbeitet werden. In diesen
muss in jeder Zeile genau ein Name stehen. Diese Dateien werden automatisch sortiert.
2. Bedienung
============
- ins Verzeichnis wo das Skript liegt wechseln
- "./protskript_test.py" eingeben
- Sitzungsleiter/Protokollant/Datum eingeben bzw. Standardwerte übernehmen
- wenn beim Übersetzen etwas schief ging: Den Fehler beheben und zweimal(!)
"pdflatex <datei>" (natürlich mit passendem Wert für <datei>) eingeben. Wenn
pdflatex nur einmal läuft wird die Seitenzahl falsch ausgegeben.
- Protokoll drucken, rumschicken und aushaengen
3. Bugs
=======
- momentan keine bekannt
- Meldungen an protokoll@fs.physik.uni-kl.de
Installation
---------------
1. git installieren
2. `git clone git@gitlab.rlp.net:fsr_physik_tu_kl/protokoll/protokolle_src.git <dateipfad>`
3. `git submodule init`
4. `git submodule update`
Konfiguration
----------------
Von normalen Usern koennen folgende Dinge festgelegt werden können mehere
Variablen festgelegt werden. Hierzu die datei `bin/generate_ini.py` ausführen.
Voreingestellte Standardwerte sind in `[]` angegeben und können ohne eingabe
übernommen werden. Sollten Werte unbekant sein oder nicht verständlich so solten
zuerst die Standardwerte ausprobiert werden.
Bedienung
------------
1. ins Verzeichnis wo das Skript liegt wechseln
2. `./proto.py` eingeben
3. die gefragten Werte eingeben oder die Standardwerte übernehmen
4. in das Protokoll verzeichnis wechseln und die Vorlage bearbeiten.
5. 3x `pdflatex` ausführen
6. Protokoll drucken, rumschicken und aushaengen
Fallbackfile update
-------------------
Die Fallbackfiles sind dazu da die Anwesenheitslisten zu generieren, wenn
der LDAP-Server der fachschaft nicht ereichbar ist. Um die Fallbackfies zu
updaten führe `bin/generate_fallback.py` aus. Sollte eine Verbindung zum
LDAP-Server der Fachschaft nicht möglich sein werden keine änderungen
vorgenommen. Sollte dies der fall sein frage bitte beim Rechnerreferat nach.
Bugs
-------
Siehe https://gitlab.rlp.net/fsr_physik_tu_kl/protokoll/protokoll_skript/issues
......@@ -3,7 +3,7 @@
"""
Created on Fri Nov 24 15:35:04 2017
@author: lorico
@author: Lorenz Steinert
"""
import os
......
......@@ -11,7 +11,7 @@ if __name__ == "__main__":
RUNDIR = os.path.dirname(os.path.realpath(__file__))
PARSER = argparse.ArgumentParser(description="generate ini file \
for the protokollskript")
for the Protokoll Script")
PARSER.add_argument('-c', '--config',
default=os.path.join(RUNDIR, '../etc/proto.ini'),
help="location of generated config file")
......@@ -19,7 +19,7 @@ if __name__ == "__main__":
CONFIG = get_config(RUNDIR, default=True)
print('Die Werte in [] können ohne eingabe übernommen werden.')
print('Die Werte in [] können ohne Eingabe übernommen werden.')
for i in CONFIG:
print('['+i+']')
......
This diff is collapsed.
This diff is collapsed.
......@@ -33,7 +33,7 @@ def build_parser():
return parser.parse_args()
def gen_head(share_dir, reg, sprecher, protokollant, date):
def gen_header(share_dir, reg, sprecher, protokollant, date):
"""generate the head of the protokoll"""
# look for the name.tex and if not found ignore it
if os.path.isfile(os.path.join(share_dir, 'name.tex')):
......@@ -123,7 +123,7 @@ def gen_attendance_tab(fsr, num_cols=5, ext=False):
return fsr_tab
def gen_foot(share_dir, vollversamlung, reg, sprecher, protokollant, date):
def gen_footer(share_dir, vollversamlung, reg, sprecher, protokollant, date):
"""generate the foot of the protokoll"""
# look for the foot*.tex skripts
# if not found abort
......@@ -212,29 +212,41 @@ if __name__ == "__main__":
OUTDIR = os.path.join(get_path(RUNDIR, CONFIG, OPT.path), DATE[1],
"fsr_physik_vollversamlung_"
+ '-'.join(DATE[1:]))
# Generate the path of the .tex files
OUTFILE_HEADER = os.path.join(OUTDIR, "fsr_physik_protokoll_vv_"
+ '-'.join(DATE[1:]) + "_header.tex")
OUTFILE_BODY = os.path.join(OUTDIR, "fsr_physik_protokoll_vv_"
+ '-'.join(DATE[1:]) + ".tex")
else:
OUTDIR = os.path.join(get_path(RUNDIR, CONFIG, OPT.path), DATE[1],
"fsr_physik_sitzung_" + '-'.join(DATE[1:]))
# Generate the path of the .tex file
OUTFILE_HEADER = os.path.join(OUTDIR, "fsr_physik_protokoll_"
+ '-'.join(DATE[1:]) + "_header.tex")
OUTFILE_BODY = os.path.join(OUTDIR, "fsr_physik_protokoll_"
+ '-'.join(DATE[1:]) + ".tex")
if not os.path.exists(OUTDIR):
os.makedirs(OUTDIR)
# Generate the path of the .tex file
OUTFILE = os.path.join(OUTDIR, "fsr_physik_protokoll_"
+ '-'.join(DATE[1:]) + ".tex")
shutil.copyfile(os.path.join(SHARE_DIR, "FS-Logo.pdf"),
os.path.join(OUTDIR, "FS-Logo.pdf"))
msg = gen_head(SHARE_DIR, REG, SPRECHER, PROTOKOLLANT, DATE)
header = gen_header(SHARE_DIR, REG, SPRECHER, PROTOKOLLANT, DATE)
body = "\\input{" + OUTFILE_HEADER + "}\n"
msg += "~\\newline\n"
body += "~\\newline\n"
if not OPT.Vollversamlung:
msg += gen_attendance_tab(FSR[0], NUM_COLS)
msg += gen_attendance_tab(FSR[1], NUM_COLS_EXT, ext=True)
body += gen_attendance_tab(FSR[0], NUM_COLS)
body += gen_attendance_tab(FSR[1], NUM_COLS_EXT, ext=True)
footer = gen_footer(SHARE_DIR, OPT.Vollversamlung, REG,
SPRECHER, PROTOKOLLANT, DATE)
msg += gen_foot(SHARE_DIR, OPT.Vollversamlung, REG,
SPRECHER, PROTOKOLLANT, DATE)
body += footer
with codecs.open(OUTFILE, 'w', 'utf-8') as fobj_out:
fobj_out.write(msg)
with codecs.open(OUTFILE_HEADER, 'w', 'utf-8') as fobj_out:
fobj_out.write(header)
with codecs.open(OUTFILE_BODY, 'w', 'utf-8') as fobj_out:
fobj_out.write(body)
......@@ -3,8 +3,8 @@ num_cols = 5
num_cols_ext = 5
sprecher = Silvia Hiebel
protokollant = PROTOKOLLANT
path = /home/referate/protokoll
share = /home/referate/protokoll/protokollskript/share
path = ../
share = ./share
[SERVER]
connect_timeout = 10
......
......@@ -23,4 +23,9 @@
\\acro{fsl}[\\textsc FSL]{Fachausschuss für Studium und Lehre}
\\acro{aqp}[\\textsc FPA-AQP]{Fachprüfungsausschuss Advanced Quantum Physics}
\\acro{hhk}[HHK]{Haushaltskommission}
\\acro{vv}[VV]{Vollversammlung}
\\acro{mv}[MV]{Maschinenbau und Verfahrenstechnik}
\\acro{mwwk}[MWWK]{Ministerium für Wissenschaft, Weiterbildung und Kultur}
\\acro{vu}[VU]{Vorlesungsumfrage}
\\acro{hsl}[HSL]{Hochschulleitung}
\\end{acronym}
......@@ -24,3 +24,8 @@
\\newcommand{\\mnu}{\\ac{mnu}\\xspace}
\\newcommand{\\hhk}{\\ac{hhk}\\xspace}
\\newcommand{\\aqp}{\\ac{aqp}\\xspace}
\\newcommand{\\hsl}{\\ac{hsl}\\xspace}
\\newcommand{\\vv}{\\ac{vv}\\xspace}
\\newcommand{\\vu}{\\ac{vu}\\xspace}
\\newcommand{\\mv}{\\ac{mv}\\xspace}
\\newcommand{\\mwwk}{\\ac{mwwk}\\xspace}
Viviane Bauer
Julius Bohm
Ellen Bold
Lukas Bolz
Carsten Dittrich
Luca Haag
Kai Hawerkamp
Marc Hegen
Silvia Hiebel
Katharina Hilgert
Malte Koster
Sarah Anna Kovač
Sarah Kovač
Rutger Kuwertz
Felix Lang
Annika Lesch
Nikolas Longen
Patrick Mischke
Jacqueline Momperé
Kevin Mours
Tarek Moussa
Lukas Neusius
Diana Remmel
Stephanie Roden
Fritz Schnur
Julian Schulz
Hauke Schäfer
Lorenz Steinert
Aaron Thielmann
Christopher Weiß
Kai-Uwe Wolf
Markus Ühlein
Tamara Azevedo
Aaron Eric Gebert
Stefano Galimberti
Tatjana Grün
Maximilian Kiefer
Agnes Koerfer
Nikolas Longen
Christopher Mink
Daniel Muschol
Linda Müller
Stephanie Roden
Matthias Rüb
Marco Tummeley
%In dieser Datei müssen alle \ escapet werden also. \\
%Namensabkuerzungen des ganz aktuellen FSR
\\newcommand{\\marc}{Marc Hegen\\xspace}
\\newcommand{\\aaron}{Aaron Thielmann\\xspace}
\\newcommand{\\tamara}{Tamara Azevedo\\xspace}
\\newcommand{\\kaiu}{Kai-Uwe Wolf\\xspace}
\\newcommand{\\kaiuwe}{Kai-Uwe Wolf\\xspace}
\\newcommand{\\kaiw}{Kai-Uwe Wolf\\xspace}
\\newcommand{\\vbauer}{Viviane Bauer\\xspace}
\\newcommand{\\viviane}{Viviane Bauer\\xspace}
\\newcommand{\\vivi}{Viviane Bauer\\xspace}
......@@ -10,8 +16,12 @@
\\newcommand{\\ebold}{Ellen Bold\\xspace}
\\newcommand{\\lbolz}{Lukas Bolz\\xspace}
\\newcommand{\\lukasb}{Lukas Bolz\\xspace}
\\newcommand{\\sgalimberto}{Stefano Galimberto\\xspace}
\\newcommand{\\stefano}{Stefano Galimberto\\xspace}
\\newcommand{\\sgalimberto}{Stefano Galimberti\\xspace}
\\newcommand{\\stefano}{Stefano Galimberti\\xspace}
\\newcommand{\\sg}{Stefano Galimberti\\xspace}
\\newcommand{\\gs}{Stefano Galimberti\\xspace}
\\newcommand{\\stephano}{Stefano Galimberti\\xspace}
\\newcommand{\\galimberti}{Stefano Galimberti\\xspace}
\\newcommand{\\tatjana}{Tatjana Grün\\xspace}
\\newcommand{\\tgruen}{Tatjana Grün\\xspace}
\\newcommand{\\lhaag}{Luca Haag\\xspace}
......@@ -27,6 +37,7 @@
\\newcommand{\\pk}{Pascale Klaeger\\xspace}
\\newcommand{\\agnes}{Agnes Koerfer\\xspace}
\\newcommand{\\malte}{Malte Koster\\xspace}
\\newcommand{\\koster}{Malte Koster\\xspace}
\\newcommand{\\mk}{Malte Koster\\xspace}
\\newcommand{\\sarah}{Sarah Kova\\v{c}\\xspace}
\\newcommand{\\rutger}{Rutger Kuwertz\\xspace}
......@@ -34,6 +45,7 @@
\\newcommand{\\qwertz}{Rutger Kuwertz\\xspace}
\\newcommand{\\felix}{Felix Lang\\xspace}
\\newcommand{\\annika}{Annika Lesch\\xspace}
\\newcommand{\\lesch}{Annika Lesch\\xspace}
\\newcommand{\\nikolas}{Nikolas Longen\\xspace}
\\newcommand{\\niki}{Nikolas Longen\\xspace}
\\newcommand{\\patrick}{Patrick Mischke\\xspace}
......@@ -53,6 +65,7 @@
\\newcommand{\\danmu}{Daniel Muschol\\xspace}
\\newcommand{\\dm}{Daniel Muschol\\xspace}
\\newcommand{\\lukas}{Lukas Neusius\\xspace}
\\newcommand{\\lukasn}{Lukas Neusius\\xspace}
\\newcommand{\\lneusius}{Lukas Neusius\\xspace}
\\newcommand{\\diana}{Diana Remmel\\xspace}
\\newcommand{\\hauke}{Hauke Schäfer\\xspace}
......@@ -64,7 +77,7 @@
\\newcommand{\\julian}{Julian Schulz\\xspace}
\\newcommand{\\juls}{Julian Schulz\\xspace}
\\newcommand{\\lorenz}{Lorenz Steinert\\xspace}
\\newcommand{\\marco}{Maro Tummeley\\xspace}
\\newcommand{\\marco}{Marco Tummeley\\xspace}
\\newcommand{\\uei}{Markus Ühlein\\xspace}
\\newcommand{\\markus}{Markus Ühlein\\xspace}
\\newcommand{\\sternchen}{Katharina Hilgert\\xspace}
......@@ -75,6 +88,9 @@
\\newcommand{\\carsten}{Carsten Dittrich\\xspace}
\\newcommand{\\cweis}{Christopher Weiß\\xspace}
\\newcommand{\\cweiss}{Christopher Weiß\\xspace}
\\newcommand{\\cw}{Christopher Weiß\\xspace}
\\newcommand{\\weiss}{Christopher Weiß\\xspace}
\\newcommand{\\weis}{Christopher Weiß\\xspace}
\\newcommand{\\decker}{Marco Decker\\xspace}
\\newcommand{\\mdecker}{Marco Decker\\xspace}
......@@ -102,6 +118,7 @@
\\newcommand{\\christopher}{Christopher Mink\\xspace}
\\newcommand{\\chris}{Christopher Mink\\xspace}
\\newcommand{\\mink}{Christopher Mink\\xspace}
\\newcommand{\\cm}{Christopher Mink\\xspace}
\\newcommand{\\zange}{Sebastian Zangerle\\xspace}
\\newcommand{\\zangerle}{Sebastian Zangerle\\xspace}
\\newcommand{\\sz}{Sebastian Zangerle\\xspace}
......@@ -133,8 +150,6 @@
\\newcommand{\\jhe}{Jens Heyens\\xspace}
\\newcommand{\\tim}{Tim Hochdörffer\\xspace}
\\newcommand{\\tho}{Tim Hochdörffer\\xspace}
\\newcommand{\\linda}{Linda Hofherr\\xspace}
\\newcommand{\\lh}{Linda Hofherr\\xspace}
\\newcommand{\\jorg}{Christina Jörg\\xspace}
\\newcommand{\\cjorg}{Christina Jörg\\xspace}
\\newcommand{\\cjoerg}{Christina Jörg\\xspace}
......@@ -190,7 +205,6 @@
\\newcommand{\\miriam}{Miriam Eckl\\xspace}
\\newcommand{\\me}{Miriam Eckl\\xspace}
\\newcommand{\\sandro}{Sandro Gödtel\\xspace}
\\newcommand{\\sg}{Sandro Gödtel\\xspace}
\\newcommand{\\chari}{Chariklia Grammatiki\\xspace}
\\newcommand{\\michael}{Michael Hartelt\\xspace}
\\newcommand{\\hartelt}{Michael Hartelt\\xspace}
......@@ -201,3 +215,5 @@
\\newcommand{\\derkurze}{Markus Kurtz\\xspace}
\\newcommand{\\mathis}{Mathis Petri\\xspace}
\\newcommand{\\matis}{Mathis Petri\\xspace}
\\newcommand{\\lulu}{Florian Schweizer\\xspace}
\\newcommand{\\fred}{Frederik Stegner\\xspace}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment