update to currently used form

This commit is contained in:
Anton Obersteiner 2023-03-28 17:04:55 +02:00
parent 8d3d659898
commit d238744ef3
2 changed files with 195 additions and 85 deletions

View file

@ -1,5 +1,5 @@
% vim: ft=tex % vim: ft=tex
\ProvidesClass{fsrprotokoll}[2018/03/05 Klasse fuer FSR Protokolle v0.2] \ProvidesClass{fsrprotokoll}[2018/03/05 Klasse fuer FSR Protokolle v0.2.1]
\LoadClass{scrartcl} \LoadClass{scrartcl}
\RequirePackage[utf8]{inputenc} \RequirePackage[utf8]{inputenc}
@ -17,6 +17,7 @@
\RequirePackage[autostyle=true,german=quotes]{csquotes} \RequirePackage[autostyle=true,german=quotes]{csquotes}
% https://github.com/AndyClifton/AccessibleMetaClass/blob/master/accessibilityMeta.sty % https://github.com/AndyClifton/AccessibleMetaClass/blob/master/accessibilityMeta.sty
\RequirePackage[tagged]{accessibilityMeta} \RequirePackage[tagged]{accessibilityMeta}
\RequirePackage{xcolor}
\parindent 0pt \parindent 0pt
\parskip 1ex \parskip 1ex
@ -37,6 +38,13 @@
{0pt} {0pt}
{*0.5} {*0.5}
{-5pt} {-5pt}
\titleformat{\subsubsection}
{\normalfont\rmfamily\bfseries}
{}{0em}{}
\titlespacing{\subsubsection}
{0pt}
{*0.5}
{-9pt}
\makeatletter \makeatletter
\newcommand*{\insertheaderrule}{\rlap{\rule[-.5\normalbaselineskip]{\textwidth}{.4pt}}} \newcommand*{\insertheaderrule}{\rlap{\rule[-.5\normalbaselineskip]{\textwidth}{.4pt}}}
@ -77,6 +85,7 @@
} }
\newcommand*{\quorum}[2] { \newcommand*{\quorum}[2] {
Die Sitzungsleitung eröffnet die Sitzung.
\newcount\quorateThreshold \newcount\quorateThreshold
\quorateThreshold=#2 \quorateThreshold=#2
Es sind #1 von #2 Mitgliedern mit aktivem Stimmrecht anwesend. Es sind #1 von #2 Mitgliedern mit aktivem Stimmrecht anwesend.
@ -96,10 +105,12 @@
\vspace*{1cm}% \vspace*{1cm}%
\textbf{\Large Protokoll zur FSR--Sitzung vom \the\date}% \textbf{\Large Protokoll zur FSR--Sitzung vom \the\date}%
Sitzungsleitung: \the\chairperson \,| % Sitzungsleitung: \the\chairperson \, | %
Protokoll: \the\clerks% Protokoll: \the\clerks%
Sitzungsbeginn: \the\meetingStart \,| Sitzungsende: \the\meetingEnd% Sitzungsbeginn: \the\meetingStart \, Uhr | Sitzungsende: \the\meetingEnd \, Uhr%
Sitzungsort: \the\meetingPlace % required by FSO
\end{center}% \end{center}%
\textbf{Anwesende:} \the\attendees% \, (\the\attendeesNumber \, von 17)% \textbf{Anwesende:} \the\attendees% \, (\the\attendeesNumber \, von 17)%
@ -128,8 +139,13 @@
\immediate\write\exportdata{-} \immediate\write\exportdata{-}
\begin{lrbox}{\mybox}\begin{minipage}{.985\textwidth} \begin{lrbox}{\mybox}\begin{minipage}{.985\textwidth}
\newcommand*{\voteNumber}[1]{% \newcommand*{\voteNumber}[1]{%
\immediate\write\exportdata{ decision_id: "\the\year/##1"}% %see section VOTENUMBER at the end
\textbf{\the\year\,/\,##1:}\\% \ifthenelse{\equal{##1}{}}{}{% else (argument is not empty)
\setcounter{votenumber}{##1}%
}%
\immediate\write\exportdata{ decision_id: "\the\year/\thevotenumber"}%
\textbf{\the\year\,/\,\thevotenumber:}\\%
\stepcounter{votenumber}%
}% }%
\newcommand*{\voteMoney}[1]{% \newcommand*{\voteMoney}[1]{%
\ifthenelse{\equal{##1}{}} {% \ifthenelse{\equal{##1}{}} {%
@ -137,7 +153,7 @@
\textbf{Antrag}% \textbf{Antrag}%
} {% } {%
\immediate\write\exportdata{ money_limit: ##1}% \immediate\write\exportdata{ money_limit: ##1}%
\textbf{Finanzantrag}% \textbf{Finanzantrag über \EUR{##1} -- Antrag}%
}% }%
} }
\newcommand{\voteText}[1]{% \newcommand{\voteText}[1]{%
@ -146,66 +162,77 @@
\newcommand*{\voteSubmitter}[1]{% \newcommand*{\voteSubmitter}[1]{%
\immediate\write\exportdata{ submitter: "##1"}% \immediate\write\exportdata{ submitter: "##1"}%
\textbf{Antragsteller\_in: }##1\vspace{\baselineskip}\\}% \textbf{Antragsteller\_in: }##1\vspace{\baselineskip}\\}%
\newcommand*{\voteReason}[1]{%
\immediate\write\exportdata{ rationale: "##1"}%
\ifthenelse{\equal{##1}{}}{}{%
\textbf{Begründung: }##1\vspace{\baselineskip}\\}%
}%
\newcommand*{\voting}[4][]{
\textbf{Abstimmung: }%
\ifthenelse{\equal{##2}{} \AND \equal{##3}{} \AND \equal{##4}{}} {%
\immediate\write\exportdata{ v_yes: 0}%
\immediate\write\exportdata{ v_no: 0}%
\immediate\write\exportdata{ v_neutral: 0}%
\immediate\write\exportdata{ accepted: 1}%
Der Antrag wurde ohne Gegenrede\ifthenelse{\equal{##1}{}}{ }{ ##1 }angenommen.%
} {%
\immediate\write\exportdata{ v_yes: ##2}%
\immediate\write\exportdata{ v_no: ##3}%
\immediate\write\exportdata{ v_neutral: ##4}%
Dafür: ##2, Dagegen: ##3, Enthaltungen: ##4%
\\%
\setcounter{x}{##3+##4}%
\ifnum##2>\arabic{x}%
{%
\immediate\write\exportdata{ accepted: 1}%
Der Antrag wurde ##1 angenommen.
}%
\else%
{
\immediate\write\exportdata{ accepted: 0}%
Der Antrag wurde ##1 abgelehnt.
}%
\fi%
}%
}%
\newcommand*{\voteComment}[1]{%
\immediate\write\exportdata{ comment: "##1"}%
##1
}%
} {
\end{minipage}\end{lrbox}\fbox{\usebox{\mybox}}
}
\newenvironment{vote-two-thirds} {%
\immediate\write\exportdata{-}
\begin{lrbox}{\mybox}\begin{minipage}{.985\textwidth}
\newcommand*{\voteNumber}[1]{%
%see section VOTENUMBER at the end
\ifthenelse{\equal{##1}{}}{}{% else (argument is not empty)
\setcounter{votenumber}{##1}%
}%
\immediate\write\exportdata{ decision_id: "\the\year/\thevotenumber"}%
\textbf{\the\year\,/\,\thevotenumber:}\\%
\stepcounter{votenumber}%
}%
\newcommand*{\voteMoney}[1]{%
\ifthenelse{\equal{##1}{}} {%
\immediate\write\exportdata{ money_limit: NULL}%
\textbf{Antrag}%
} {%
\immediate\write\exportdata{ money_limit: ##1}%
\textbf{Finanzantrag über \EUR{##1} - Antrag}%
}%
}
\newcommand*{\voteText}[1]{%
\immediate\write\exportdata{ text: "##1"}%
##1\vspace{\baselineskip}\\}%
\newcommand*{\voteSubmitter}[1]{%
\immediate\write\exportdata{ submitter: "##1"}%
\textbf{Antragsteller\_in: }##1\vspace{\baselineskip}\\}%
\newcommand*{\voteReason}[1]{% \newcommand*{\voteReason}[1]{%
\immediate\write\exportdata{ rationale: "##1"}% \immediate\write\exportdata{ rationale: "##1"}%
\textbf{Begründung: }##1\vspace{\baselineskip}\\}% \textbf{Begründung: }##1\vspace{\baselineskip}\\}%
\newcommand*{\voting}[3]{\textbf{Abstimmung: }%
\ifthenelse{\equal{##1}{} \AND \equal{##2}{} \AND \equal{##3}{}} {%
\immediate\write\exportdata{ v_yes: 0}%
\immediate\write\exportdata{ v_no: 0}%
\immediate\write\exportdata{ v_neutral: 0}%
\immediate\write\exportdata{ accepted: 1}%
Der Antrag wurde ohne Gegenrede angenommen.%
} {%
\immediate\write\exportdata{ v_yes: ##1}%
\immediate\write\exportdata{ v_no: ##2}%
\immediate\write\exportdata{ v_neutral: ##3}%
Dafür: ##1, Dagegen: ##2, Enthaltungen: ##3%
\\%
\setcounter{x}{##2+##3}%
\ifnum##1>\arabic{x}%
{%
\immediate\write\exportdata{ accepted: 1}%
Der Antrag wurde angenommen.
}%
\else%
{
\immediate\write\exportdata{ accepted: 0}%
Der Antrag wurde abgelehnt.
}%
\fi%
}%
}%
\newcommand*{\voteComment}[1]{%
\immediate\write\exportdata{ comment: "##1"}%
##1
}%
} {
\end{minipage}\end{lrbox}\fbox{\usebox{\mybox}}
}
\newenvironment{vote-two-thirds} {%
\immediate\write\exportdata{-}
\begin{lrbox}{\mybox}\begin{minipage}{.985\textwidth}
\newcommand*{\voteNumber}[1]{%
\immediate\write\exportdata{ decision_id: "\the\year/##1"}%
\textbf{\the\year\,/\,##1:}\\%
}%
\newcommand*{\voteMoney}[1]{%
\ifthenelse{\equal{##1}{}} {%
\immediate\write\exportdata{ money_limit: NULL}%
\textbf{Antrag}%
} {%
\immediate\write\exportdata{ money_limit: ##1}%
\textbf{Finanzantrag}%
}%
}
\newcommand*{\voteText}[1]{%
\immediate\write\exportdata{ text: "##1"}%
##1\vspace{\baselineskip}\\}%
\newcommand*{\voteReason}[1]{%
\immediate\write\exportdata{ rationale: "##1"}%
\textbf{Begründung: }##1\vspace{\baselineskip}\\}%
\newcommand*{\voting}[3]{\textbf{Abstimmung: }% \newcommand*{\voting}[3]{\textbf{Abstimmung: }%
\ifthenelse{\equal{##1}{} \AND \equal{##2}{} \AND \equal{##3}{}} {% \ifthenelse{\equal{##1}{} \AND \equal{##2}{} \AND \equal{##3}{}} {%
\immediate\write\exportdata{ v_yes: 0}% \immediate\write\exportdata{ v_yes: 0}%
@ -223,12 +250,12 @@
\ifnum##1>\arabic{x}% \ifnum##1>\arabic{x}%
{% {%
\immediate\write\exportdata{ accepted: 1}% \immediate\write\exportdata{ accepted: 1}%
Der Antrag wurde mit einer 2/3 Mehrheit angenommen. Der Antrag wurde mit einer 2/3-Mehrheit angenommen.
}% }%
\else% \else%
{ {
\immediate\write\exportdata{ accepted: 0}% \immediate\write\exportdata{ accepted: 0}%
Der Antrag wurde abgelehnt, da keine 2/3 Mehrheit zustande kam. Der Antrag wurde abgelehnt, da keine 2/3-Mehrheit zustande kam.
}% }%
\fi% \fi%
}% }%
@ -254,6 +281,25 @@
\end{minipage}\end{lrbox}\fbox{\usebox{\mybox}} \end{minipage}\end{lrbox}\fbox{\usebox{\mybox}}
} }
% election command - not an environment!
\newcommand{\election}[3] {%
\begin{lrbox}{\mybox}\begin{minipage}{.985\textwidth}
\ifthenelse{\isempty{#1}}{}{%
\textbf{#1. Wahlgang:}\\[7pt]
}
\begin{tabularx}{\linewidth}{p{.275\linewidth}|c|c|c|l}
\textbf{Kandidat\_in} & \textbf{Dafür} & \textbf{Dagegen} &
\textbf{Enthaltungen} & \textbf{Ergebnis} \\
\hline
#2
\end{tabularx}%
\ifthenelse{\isempty{#3}}{}{%
\\[7pt]
#3
}
\end{minipage}\end{lrbox}\fbox{\usebox{\mybox}}
}
\newcommand*{\away}[1] { \newcommand*{\away}[1] {
\ifthenelse{\the\numexpr \countInlineItems{#1} > 1} {% \ifthenelse{\the\numexpr \countInlineItems{#1} > 1} {%
\textit{[#1 verlassen die Sitzung]}% \textit{[#1 verlassen die Sitzung]}%
@ -268,13 +314,30 @@
\textit{[#1 erscheint zur Sitzung]}% \textit{[#1 erscheint zur Sitzung]}%
} }
} }
\newcommand*{\meetingBreak}[1] {
\textit{Die Sitzung wird für #1 Minuten unterbrochen.}%
}
\newcommand*{\signature} { \newcommand*{\signature} {
\vfill \vfill
\noindent\rule{6.5cm}{0.3pt} \hfill \noindent\rule{6.5cm}{0.3pt} \noindent\rule{6.5cm}{0.3pt} \hfill \noindent\rule{6.5cm}{0.3pt}
\noindent\makebox[6.5cm][l]{Sitzungsleitung} \hfill \noindent\makebox[6.5cm][l]{Protokoll} \noindent\makebox[6.5cm][l]{Sitzungsleitung} \hfill \noindent\makebox[6.5cm][l]{Protokoll}
} }
\definecolor{MyWhite}{HTML}{FFFFFF}
\newcommand{\invisible}[1]{\textcolor{MyWhite}{#1}}
\newcommand{\warning}[1]{\textbf{\textsc{\textcolor{red}{#1}}}}
\newcommand{\warn}{\warning{warn}}
%see section VOTENUMBER at the end
\newcommand*{\initVoteNumber}[1] {
\setcounter{votenumber}{#1}
}
\AtBeginDocument{% \AtBeginDocument{%
%see section VOTENUMBER at the end
\newcounter{votenumber}
\immediate\newwrite\exportdata% \immediate\newwrite\exportdata%
\immediate\openout\exportdata=tmp.txt\relax \immediate\openout\exportdata=tmp.txt\relax
} }
@ -291,6 +354,7 @@
\newtoks\clerks \newtoks\clerks
\newtoks\meetingStart \newtoks\meetingStart
\newtoks\meetingEnd \newtoks\meetingEnd
\newtoks\meetingPlace
\newtoks\attendees \newtoks\attendees
\newtoks\excused \newtoks\excused
\newtoks\unexcused \newtoks\unexcused
@ -298,3 +362,13 @@
\newtoks\guests \newtoks\guests
\endinput \endinput
%documentation on VOTENUMBERS (version 0.2 -> 0.2.1, Author: Anton Obersteiner)
%votes are numbered within one year. use \initVoteCount{num} at the beginning
%of your protocol to set this counter to num, otherwise the counter starts at 0.
%each vote is automatically numbered 20YY / <votenumber> and then
%increments the counter *if you call \voteNumber{} in your vote environment*.
%if you call votenumber with an argument: \voteNumber{num}, the counter is reset to that value
%and increments from there in the votes after.
%for backwards compatibility, the argument is not optional (would require \voteNumber[] syntax),
%but the argument to the {} is ignored if empty.

View file

@ -9,59 +9,94 @@
% außerdem unter latest verlinkt. % außerdem unter latest verlinkt.
% Revision:
% hier mit Datum und Anmerkungen eintragen, wenn ihr drübergelesen habt
\begin{document} \begin{document}
%%!sitzungsleitung,protokoll: Das Protokoll ist fertig und kann unterschrieben werden! :) %%!sitzungsleitung,protokoll: Das Protokoll ist fertig und kann unterschrieben werden! :)
\date{} % DD.MM.YYYY \date{} % DD.MM.YYYY
\attendeesNumber{} % Anzahl anwesender Mitglieder % \attendeesNumber{} % Anzahl anwesender Mitglieder Automatisches Zählen in \quorate funkioniert nicht, ist egal
\chairperson{} \chairperson{} % Sitzungsleitung
\clerks{} \clerks{} % Protokoll
\meetingStart{} % HH:MM \meetingStart{18:45} % HH:MM
\meetingEnd{} % HH:MM \meetingEnd{} % HH:MM
\meetingPlace{Online via BBB, zusätzlich im APB/1004} % Raum der Sitzung, per Default der Ratssaal
\initVoteNumber{10000} %Nummer des letzten Antrags aus dem letztem Protokoll + 1, sonst \initVoteNumber des letzten Protokolls kopieren
% Liste anwesender Mitglieder % Liste anwesender Mitglieder
\attendees{} \attendees{%
Hamdaan Shaikh,
Helene Hausmann,
Himanshu Kaloni,
Jakob Steinberg,
Joachim Stramke,
Johanna Berger,
Johanna Schmidt,
Jonas Frei,
Fabian Naumann,
Lucas Fugmann,
Lydia Will,
Macy Schreiber,
Marco Lehner,
Rajasekar Sankar,
Reiner Stolle,
Rouven Seifert,
Tom Fiedler,
Vincent Kruse,
Wolfgang Walter
}
\excused{} \excused{}
\unexcused{} \unexcused{}
% Liste Ruhender % Liste Ruhender
\resting{} \resting{}
% Liste anwesender Gäste % Liste anwesender Gäste
\guests{Matthias Stuhlbein} \guests{%
Matthias Stuhlbein,
Jonas Gaffke,
Anton Obersteiner
}
\maketitle \maketitle
Die Sitzungsleitung eröffnet die Sitzung. \quorum{}{} % Feststellung der Beschlussfähigkeit {#Anwesende}{#NichtRuhende = 19 - #Ruhende}
\quorum{}{} % Feststellung der Beschlussfähigkeit {#Anwesende}{#NichtRuhende}
\section{Protokollkontrolle und Überprüfung gefasster Beschlüsse} \section{Protokollkontrolle und Überprüfung gefasster Beschlüsse}
% Es gibt nichts zu beanstanden, das Protokoll vom XX.YY.ZZZZ wird bestätigt. % Es gibt nichts zu beanstanden, das Protokoll vom DD.MM.YYYY wird bestätigt.
%\section{Gäste} %\section{Gäste}
\section{Berichte der Ämter} \section{Berichte der Ämter}
\subsection{Sprecher\_innen} \subsection{Sprecher\_innen}
\subsection{Struktur} \subsection{Strukturer\_innen}
\subsection{Finanzer\_innen} \subsection{Finanzer\_innen}
\section{Berichte der Arbeitsgruppen}
\section{Berichte der Arbeitsgruppen}
\subsection{AG Lehre} \subsection{AG Lehre}
\subsection{AG Nachhaltigkeit} \subsection{AG Nachhaltigkeit}
\subsection{AG Öffentlichkeitsarbeit} \subsection{AG Öffentlichkeitsarbeit}
% \section{Berichte aus den Gremien} % \section{Berichte aus den Gremien}
% \subsection{Studierendenrat (StuRa)} % \subsection{Studierendenrat (StuRa)}
% \subsection{Fakultätsrat (FR)} % \subsection{Fakultätsrat (FakRat)}
% \subsection{Studienkommission (StuKo)}
\section{Stand der Veranstaltungen} \section{Stand der Veranstaltungen}
\section{Weitere anstehende Termine} \section{Weitere anstehende Termine}
\section{Kanboard Aufgaben}
\section{Sonstiges} \section{Sonstiges}
\signature \signature
@ -70,8 +105,8 @@ Die Sitzungsleitung eröffnet die Sitzung.
% % Die Reihenfolge muss beibehalten werden. % % Die Reihenfolge muss beibehalten werden.
% \begin{vote} % \begin{vote}
% \voteMoney{} % {Betrag (ohne \EUR)} nur bei Finanzantrag, sonst leer lassen % \voteMoney{} % {Betrag (ohne \EUR)} nur bei Finanzantrag, sonst leer lassen
% \voteNumber{} % {#Antrag} % \voteNumber{} % {#Antrag}, leer lassen für automatisches Hochzählen
% \voteText{} % \voteText{} % Bei Finanzanträgen auch im Text die Summe angeben
% \voteSubmitter{} % optional % \voteSubmitter{} % optional
% \voteReason{} % \voteReason{}
% \voting{}{}{} % {#Dafür}{#Dagegen}{#Enth.}, leer lassen für 'ohne Gegenrede angenommen' % \voting{}{}{} % {#Dafür}{#Dagegen}{#Enth.}, leer lassen für 'ohne Gegenrede angenommen'
@ -80,8 +115,8 @@ Die Sitzungsleitung eröffnet die Sitzung.
% \begin{vote-two-thirds} % \begin{vote-two-thirds}
% \voteMoney{} % {Betrag (ohne \EUR)} nur bei Finanzantrag, sonst leer lassen % \voteMoney{} % {Betrag (ohne \EUR)} nur bei Finanzantrag, sonst leer lassen
% \voteNumber{} % {#Antrag} % \voteNumber{} % {#Antrag}, leer lassen für automatisches Hochzählen
% \voteText{} % \voteText{} % Bei Finanzanträgen auch im Text die Summe angeben
% \voteSubmitter{} % optional % \voteSubmitter{} % optional
% \voteReason{} % \voteReason{}
% \voting{}{}{} % {#Dafür}{#Dagegen}{#Enth.}, leer lassen für 'ohne Gegenrede angenommen' % \voting{}{}{} % {#Dafür}{#Dagegen}{#Enth.}, leer lassen für 'ohne Gegenrede angenommen'
@ -90,11 +125,12 @@ Die Sitzungsleitung eröffnet die Sitzung.
% \begin{poll} % \begin{poll}
% \pollText{} % \pollText{}
% \voting{}{} % {#Dafür}{#Dagegen} % \voting{}{} % {#Dafür}{#Dagegen} In Meinungsbildern gibt es kein Enthalten
% \end{poll} % \end{poll}
% \appear{eintreffende Person(en)} % \appear{eintreffende Person(en)} % Komma für Plural nötig
% \away{Sitzung verlassende Person(en)} % \away{Sitzung verlassende Person(en)} % Komma für Plural nötig
% \meetingBreak{Länge der Sitzungspause in Minuten}
% \EUR{#Betrag} <- Bitte ausschließlich so Geldbeträge in Euro angeben % \EUR{#Betrag} <- Bitte ausschließlich so Geldbeträge in Euro angeben
% KEIN \emph, \textbf, o.ä. in (sub)section titles! (breaks accessibilityMeta package) % KEIN \emph, \textbf, o.ä. in (sub)section titles! (breaks accessibilityMeta package)