From d238744ef37e7c274119f00dd35a345cdc955626 Mon Sep 17 00:00:00 2001 From: AntonObersteiner Date: Tue, 28 Mar 2023 17:04:55 +0200 Subject: [PATCH] update to currently used form --- protokoll/fsrprotokoll.cls | 204 +++++++++++++++++++++++++------------ protokoll/protokoll.tex | 76 ++++++++++---- 2 files changed, 195 insertions(+), 85 deletions(-) diff --git a/protokoll/fsrprotokoll.cls b/protokoll/fsrprotokoll.cls index f51e259..97987fc 100644 --- a/protokoll/fsrprotokoll.cls +++ b/protokoll/fsrprotokoll.cls @@ -1,5 +1,5 @@ % 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} \RequirePackage[utf8]{inputenc} @@ -17,6 +17,7 @@ \RequirePackage[autostyle=true,german=quotes]{csquotes} % https://github.com/AndyClifton/AccessibleMetaClass/blob/master/accessibilityMeta.sty \RequirePackage[tagged]{accessibilityMeta} +\RequirePackage{xcolor} \parindent 0pt \parskip 1ex @@ -37,6 +38,13 @@ {0pt} {*0.5} {-5pt} +\titleformat{\subsubsection} + {\normalfont\rmfamily\bfseries} + {}{0em}{} +\titlespacing{\subsubsection} + {0pt} + {*0.5} + {-9pt} \makeatletter \newcommand*{\insertheaderrule}{\rlap{\rule[-.5\normalbaselineskip]{\textwidth}{.4pt}}} @@ -77,6 +85,7 @@ } \newcommand*{\quorum}[2] { + Die Sitzungsleitung eröffnet die Sitzung. \newcount\quorateThreshold \quorateThreshold=#2 Es sind #1 von #2 Mitgliedern mit aktivem Stimmrecht anwesend. @@ -96,10 +105,12 @@ \vspace*{1cm}% \textbf{\Large Protokoll zur FSR--Sitzung vom \the\date}% - Sitzungsleitung: \the\chairperson \,| % + Sitzungsleitung: \the\chairperson \, | % 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}% \textbf{Anwesende:} \the\attendees% \, (\the\attendeesNumber \, von 17)% @@ -128,8 +139,13 @@ \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:}\\% + %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}{}} {% @@ -137,7 +153,7 @@ \textbf{Antrag}% } {% \immediate\write\exportdata{ money_limit: ##1}% - \textbf{Finanzantrag}% + \textbf{Finanzantrag über \EUR{##1} -- Antrag}% }% } \newcommand{\voteText}[1]{% @@ -146,66 +162,77 @@ \newcommand*{\voteSubmitter}[1]{% \immediate\write\exportdata{ submitter: "##1"}% \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]{% \immediate\write\exportdata{ rationale: "##1"}% \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: }% \ifthenelse{\equal{##1}{} \AND \equal{##2}{} \AND \equal{##3}{}} {% \immediate\write\exportdata{ v_yes: 0}% @@ -223,12 +250,12 @@ \ifnum##1>\arabic{x}% {% \immediate\write\exportdata{ accepted: 1}% - Der Antrag wurde mit einer 2/3 Mehrheit angenommen. + Der Antrag wurde mit einer 2/3-Mehrheit angenommen. }% \else% { \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% }% @@ -254,6 +281,25 @@ \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] { \ifthenelse{\the\numexpr \countInlineItems{#1} > 1} {% \textit{[#1 verlassen die Sitzung]}% @@ -268,13 +314,30 @@ \textit{[#1 erscheint zur Sitzung]}% } } + +\newcommand*{\meetingBreak}[1] { + \textit{Die Sitzung wird für #1 Minuten unterbrochen.}% +} + \newcommand*{\signature} { \vfill \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} } +\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{% + %see section VOTENUMBER at the end + \newcounter{votenumber} \immediate\newwrite\exportdata% \immediate\openout\exportdata=tmp.txt\relax } @@ -291,6 +354,7 @@ \newtoks\clerks \newtoks\meetingStart \newtoks\meetingEnd +\newtoks\meetingPlace \newtoks\attendees \newtoks\excused \newtoks\unexcused @@ -298,3 +362,13 @@ \newtoks\guests \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 / 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. + diff --git a/protokoll/protokoll.tex b/protokoll/protokoll.tex index de9428e..32849d8 100644 --- a/protokoll/protokoll.tex +++ b/protokoll/protokoll.tex @@ -9,59 +9,94 @@ % außerdem unter latest verlinkt. +% Revision: +% hier mit Datum und Anmerkungen eintragen, wenn ihr drübergelesen habt + + + \begin{document} %%!sitzungsleitung,protokoll: Das Protokoll ist fertig und kann unterschrieben werden! :) \date{} % DD.MM.YYYY -\attendeesNumber{} % Anzahl anwesender Mitglieder -\chairperson{} -\clerks{} -\meetingStart{} % HH:MM +% \attendeesNumber{} % Anzahl anwesender Mitglieder – Automatisches Zählen in \quorate funkioniert nicht, ist egal +\chairperson{} % Sitzungsleitung +\clerks{} % Protokoll +\meetingStart{18:45} % 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 -\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{} \unexcused{} % Liste Ruhender \resting{} % Liste anwesender Gäste -\guests{Matthias Stuhlbein} +\guests{% + Matthias Stuhlbein, + Jonas Gaffke, + Anton Obersteiner +} \maketitle -Die Sitzungsleitung eröffnet die Sitzung. - -\quorum{}{} % Feststellung der Beschlussfähigkeit {#Anwesende}{#NichtRuhende} +\quorum{}{} % Feststellung der Beschlussfähigkeit {#Anwesende}{#NichtRuhende = 19 - #Ruhende} \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{Berichte der Ämter} \subsection{Sprecher\_innen} -\subsection{Struktur} +\subsection{Strukturer\_innen} \subsection{Finanzer\_innen} -\section{Berichte der Arbeitsgruppen} +\section{Berichte der Arbeitsgruppen} \subsection{AG Lehre} \subsection{AG Nachhaltigkeit} \subsection{AG Öffentlichkeitsarbeit} + % \section{Berichte aus den Gremien} % \subsection{Studierendenrat (StuRa)} -% \subsection{Fakultätsrat (FR)} +% \subsection{Fakultätsrat (FakRat)} + +% \subsection{Studienkommission (StuKo)} + \section{Stand der Veranstaltungen} \section{Weitere anstehende Termine} +\section{Kanboard Aufgaben} + \section{Sonstiges} \signature @@ -70,8 +105,8 @@ Die Sitzungsleitung eröffnet die Sitzung. % % Die Reihenfolge muss beibehalten werden. % \begin{vote} % \voteMoney{} % {Betrag (ohne \EUR)} nur bei Finanzantrag, sonst leer lassen -% \voteNumber{} % {#Antrag} -% \voteText{} +% \voteNumber{} % {#Antrag}, leer lassen für automatisches Hochzählen +% \voteText{} % Bei Finanzanträgen auch im Text die Summe angeben % \voteSubmitter{} % optional % \voteReason{} % \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} % \voteMoney{} % {Betrag (ohne \EUR)} nur bei Finanzantrag, sonst leer lassen -% \voteNumber{} % {#Antrag} -% \voteText{} +% \voteNumber{} % {#Antrag}, leer lassen für automatisches Hochzählen +% \voteText{} % Bei Finanzanträgen auch im Text die Summe angeben % \voteSubmitter{} % optional % \voteReason{} % \voting{}{}{} % {#Dafür}{#Dagegen}{#Enth.}, leer lassen für 'ohne Gegenrede angenommen' @@ -90,11 +125,12 @@ Die Sitzungsleitung eröffnet die Sitzung. % \begin{poll} % \pollText{} -% \voting{}{} % {#Dafür}{#Dagegen} +% \voting{}{} % {#Dafür}{#Dagegen} In Meinungsbildern gibt es kein Enthalten % \end{poll} -% \appear{eintreffende Person(en)} -% \away{Sitzung verlassende Person(en)} +% \appear{eintreffende Person(en)} % Komma für Plural nötig +% \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 % KEIN \emph, \textbf, o.ä. in (sub)section titles! (breaks accessibilityMeta package)