from timApp.admin.replace_in_documents import perform_replace, ReplaceArguments
from timApp.auth.accesstype import AccessType
from timApp.document.docentry import DocEntry
from timApp.document.specialnames import (
TEMPLATE_FOLDER_NAME,
PRINT_FOLDER_NAME,
PREAMBLE_FOLDER_NAME,
)
from timApp.tests.browser.browsertest import BrowserTest
from timApp.tests.server.timroutetest import TimRouteTest
from timApp.timdb.sqa import db
from timApp.user.usergroup import UserGroup
from timApp.util.utils import decode_csplugin, static_tim_doc
# TODO: Logging in as different user does not work in BrowserTest classes
[docs]class MinutesCreation(TimRouteTest):
[docs] def test_minutes_creation(self):
# Tests creation of minutes based on a meeting invitation document
self.login_test1()
knro = 3
d = self.create_doc(settings={"macros": {"knro": knro}})
j = self.upload_file(d, b"GIF87a", "test.jpg")
image_path = j["image"]
minutes_document_path = f"{d.location}/pk/pk{knro}"
self.json_post(
"/minutes/createMinutes",
json_data={
"item_path": minutes_document_path,
"item_title": f"pk{knro}",
"copy": d.id,
},
)
d2 = DocEntry.find_by_path(minutes_document_path)
chg = d2.document.get_changelog()
self.assertEqual(self.get_test_user_1_group_id(), chg.entries[0].group_id)
self.assertTrue(d2.document.get_settings().memo_minutes() == "minutes")
# Files should not get copied to minutes document.
self.test_user_2.grant_access(d2, AccessType.view)
db.session.commit()
self.login_test2()
self.get(f"/images/{image_path}", expect_status=403)
# BrowserTest is required because test needs in-process plugin (timTable) and
# TimRouteTest's testclient is not multithreaded.
[docs]class MinutesHandling(BrowserTest):
[docs] def test_minute_extracts(self):
# Tests creation of extracts from a full minutes document
self.login_test1()
ug1 = UserGroup.create("ittdk18")
ug2 = UserGroup.create("ittdk1")
u = self.current_user
u.groups.append(ug1)
u.groups.append(ug2)
db.session.commit()
knro = 9
d_kokous = self.create_doc(
path=self.get_personal_item_path("tdk/2018/kokous9"),
from_file=static_tim_doc("tdk/memo.md"),
)
d_lait = self.create_doc(
path=self.get_personal_item_path("tdk/lait/lait"),
from_file=static_tim_doc("tdk/lait.md"),
)
d_preamble = self.create_doc(
path=self.get_personal_item_path(
f"tdk/{TEMPLATE_FOLDER_NAME}/{PREAMBLE_FOLDER_NAME}/preamble"
),
from_file=static_tim_doc("tdk/preamble.md"),
)
d_preamble_year = self.create_doc(
path=self.get_personal_item_path(
f"tdk/2018/{TEMPLATE_FOLDER_NAME}/{PREAMBLE_FOLDER_NAME}/preamble"
),
from_file=static_tim_doc("tdk/preamble_year.md"),
)
for d in (d_preamble, d_preamble_year):
perform_replace(d, ReplaceArguments(term="LAIT_ID_HERE", to=f"{d_lait.id}"))
for p in d_kokous.document.get_paragraphs():
if p.get_attr("rd") == "LAIT_ID_HERE":
p.set_attr("rd", str(d_lait.id))
p.save()
self.get(
f"/minutes/createMinuteExtracts/{d_kokous.path_without_lang}",
expect_status=302,
expect_content=f"/view/{d_kokous.location}/otteet/kokous{knro}/kokous{knro}",
)
ote_index = DocEntry.find_by_path(
f"{d_kokous.location}/otteet/kokous{knro}/kokous{knro}"
)
t = self.get(ote_index.url, as_tree=True)
self.assert_content(
t,
[
"Kokoukset | Seuraava esityslista | pdf | Ohjeet | Keskustelu | Ylläpito",
"Pöytäkirjan asiakohtien otteet",
"Lista 1, (PDF) - Ilmoitusasiat\n"
"Lista 2, (PDF) - Jaska Jokusen väitöskirjan arvostelu",
"",
],
)
ote_index.document.clear_mem_cache()
self.assertEqual(
"""## Pöytäkirjan asiakohtien otteet {area="kokous9"}
- [Lista 1](lista1), ([PDF](/print/users/test-user-1/tdk/2018/otteet/kokous9/lista1)) - Ilmoitusasiat
- [Lista 2](lista2), ([PDF](/print/users/test-user-1/tdk/2018/otteet/kokous9/lista2)) - Jaska Jokusen väitöskirjan arvostelu
#- {area_end="kokous9"}
""",
ote_index.document.export_markdown(export_ids=False),
)
ote1 = DocEntry.find_by_path(f"{d_kokous.location}/otteet/kokous{knro}/lista1")
self.assertEqual(
r"""PÖYTÄKIRJANOTE - Lista 1 - Ilmoitusasiat
\
#- {rd="5" ra="ETUSIVU"}
#- {rd="5" rp="dsENZazDtd1Z"}
#- {rd="5" rp="sEj1vkUWmFmG"}
#- {rd="5" rp="ePZZ1MvVVb5S"}
#- {rd="5" rp="RIam8d8VXbQv"}
#- {rd="5" rp="yN0j9XeEOdZG"}
#- {rd="5" rp="PJxELAyKhZuu"}
%%OTE_ALLEKIRJOITUKSET()%%
%%allekirjoitus(olli)%%
""",
ote1.document.export_markdown(export_ids=False),
)
ote_html = self.get(ote1.url, as_tree=True)
self.assert_content(
ote_html,
[
"Kokoukset | Seuraava esityslista | pdf | Ohjeet | Keskustelu | Ylläpito",
"PÖYTÄKIRJANOTE - Lista 1 - Ilmoitusasiat",
"",
"JYVÄSKYLÄN YLIOPISTO\n"
"KOKOUSKUTSU\n"
"\n"
"\n"
"\n"
"\n"
"Informaatioteknologian tiedekunta\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"TIEDEKUNTANEUVOSTON KOKOUS 9/2018\n"
"Aika 11.9.2018 klo 9:00\n"
"Paikka Jossakin Agoralla",
"",
"",
"",
"!================!Page Break!================!\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"JYVÄSKYLÄN YLIOPISTO\n"
"9/2018\n"
"\n"
"\n"
"\n"
"\n"
"Informaatioteknologian tiedekunta\n"
"11.9.2018\n"
"\n"
"\n"
"Tiedekuntaneuvosto\n"
"Lista 1\n"
"\n"
"\n"
"\n"
"\n"
"Asian valmistelija: Yliopistonopettaja Olli Ollinen, puh. 0400123456, "
"olli.ollinen@example.com",
"1. Ilmoitusasiat\n"
"1.1 Dekaanin ja varadekaanin päätökset\n"
"1.1.1 Tutkinnot vuonna 2018 (liite A/ lista 1)",
"",
"Kandidaatin tutkinnot: Toteutunut yhteensä xxx (tavoite 2018: yyy)\n"
"Kauppatieteiden kandidaatin tutkinto: Toteutunut xx\n"
"1.1.2 Arvostellut pro gradu –tutkielmat (liite B/ lista 1)",
"",
"Esitys\nTodetaan ilmoitusasiat.",
"Pöytäkirjanotteen vakuudeksi:\n\n\n\nOlli Ollinen\nYliopistonopettaja",
],
)
plugins = ote_html.cssselect("tim-video")
self.assertEqual(
{
"doclink": "https://tim.jyu.fi/files/xxx/tutkinnot.pdf",
"doctext": ")",
"file": "https://tim.jyu.fi/files/xxx/tutkinnot.pdf",
"height": 600,
"hidetext": "Piilota liite",
"iframe": True,
"open": False,
"stamped-file": None,
"stem": "Tutkinnot vuonna 2018",
"texprint": "- Tutkinnot vuonna 2018 ([LIITE A / lista "
"1](https://tim.jyu.fi/files/xxx/tutkinnot.pdf))",
"text": "Kokous 11.9.2018 \\newline LIITE A / lista 1",
"type": "list",
"videoicon": False,
"videoname": "(LIITE A / lista 1,",
"width": 800,
"xdocicon": False,
},
decode_csplugin(plugins[0]),
)
self.assertEqual(
{
"doclink": "https://tim.jyu.fi/files/yyy/gradut.pdf",
"doctext": ")",
"file": "https://tim.jyu.fi/files/yyy/gradut.pdf",
"height": 600,
"hidetext": "Piilota liite",
"iframe": True,
"open": False,
"stamped-file": None,
"stem": "Arvostellut pro gradu –tutkielmat",
"texprint": "- Arvostellut pro gradu –tutkielmat ([LIITE B / lista "
"1](https://tim.jyu.fi/files/yyy/gradut.pdf))",
"text": "Kokous 11.9.2018 \\newline LIITE B / lista 1",
"type": "list",
"videoicon": False,
"videoname": "(LIITE B / lista 1,",
"width": 800,
"xdocicon": False,
},
decode_csplugin(plugins[1]),
)
DocEntry.create(
f"{TEMPLATE_FOLDER_NAME}/{PRINT_FOLDER_NAME}/runko",
initial_par="""
``` {.latex printing_template=""}
$body$
```""",
)
db.session.commit()
ote1.document.clear_mem_cache()
ote1_tex = self.get_no_warn(
f"/print/{ote1.path}", query_string={"file_type": "latex"}
)
self.assertEqual(
r"""
PÖYTÄKIRJANOTE - Lista 1 - Ilmoitusasiat\\
\strut \\
\begin{tabular}{p{10cm} l}
JYVÄSKYLÄN YLIOPISTO & KOKOUSKUTSU \\
Informaatioteknologian tiedekunta & \\
\end{tabular}
\hypertarget{tiedekuntaneuvoston-kokous-92018}{%
\chapter{TIEDEKUNTANEUVOSTON KOKOUS
9/2018}\label{tiedekuntaneuvoston-kokous-92018}}
Aika 11.9.2018 klo 9:00
Paikka Jossakin Agoralla
\begin{table}[H]
\resizebox{\columnwidth}{!}{%
\begin{tabular}{cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc}
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\cellcolor{lightgray}\fontsize{12}{0}\selectfont{\textcolor{black}{{\textbf{\emph{Jäsen}}}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\cellcolor{lightgray}\fontsize{12}{0}\selectfont{\textcolor{black}{{\textbf{\emph{Läsnä asiat:}}}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\cellcolor{lightgray}\fontsize{12}{0}\selectfont{\textcolor{black}{{\textbf{\emph{Varajäsen:}}}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\cellcolor{lightgray}\fontsize{12}{0}\selectfont{\textcolor{black}{{\textbf{\emph{Läsnä asiat:}}}}}}}
\tabularnewline[20.0pt]
\hhline{~~~~~~~}
\multicolumn{4}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{\emph{Professorit}}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Dekaani, TkT Henki Henkilö}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori, FT Henki Henkilö2}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori, FT Henki Henkilö3}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori, FT Henki Henkilö4}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori, KTT Henki Henkilö5}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori, FT Henki Henkilö6}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori, FT Henki Henkilö7}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori, FT Henki Henkilö8}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Tutkimusprofessori, TkT Henki Henkilö9}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{4}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{4}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{\emph{Muu opetus- ja tutkimushlöstö ja muu hlöstö}}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Projektitutkija, FT Henki Henkilö9}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Lehtori, KTT, LitM Henki Henkilö10}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Lehtori, FT Henki Henkilö11}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Yliopistonopettaja, FT Henki Henkilö12}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Yliopistonopettaja, FT Henki Henkilö12}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Yliopistonopettaja, FT Henki Henkilö13}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{4}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{4}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{\emph{Opiskelijat}}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Henki Henkilö14}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Henki Henkilö15}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Henki Henkilö16}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Henki Henkilö17}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Henki Henkilö18}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Henki Henkilö19}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{4}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{\emph{Ulkopuoliset jäsenet:}}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori Henki Henkilö20}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{TkT Henki Henkilö21}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\end{tabular}%
}
\end{table}
\pagebreak
\begin{tabular}{p{10cm} l}
JYVÄSKYLÄN YLIOPISTO & Asialista 9/2018 \\
Informaatioteknologian tiedekunta & 11.9.2018 \\
Tiedekuntaneuvosto & Lista 1\end{tabular}
{\valmistelija{Asian valmistelija: Yliopistonopettaja Olli Ollinen, puh.
0400123456,
\href{mailto:olli.ollinen@example.com}{\nolinkurl{olli.ollinen@example.com}}}}
\hypertarget{ilmoitusasiat}{%
\section{Ilmoitusasiat}\label{ilmoitusasiat}}
\hypertarget{dekaanin-ja-varadekaanin-puxe4uxe4tuxf6kset}{%
\subsection{Dekaanin ja varadekaanin
päätökset}\label{dekaanin-ja-varadekaanin-puxe4uxe4tuxf6kset}}
\hypertarget{tutkinnot-vuonna-2018-liite-a-lista-1}{%
\subsubsection{Tutkinnot vuonna 2018 (liite A/ lista
1)}\label{tutkinnot-vuonna-2018-liite-a-lista-1}}
\begin{itemize}
\tightlist
\item
Tutkinnot vuonna 2018
(\href{https://tim.jyu.fi/files/xxx/tutkinnot.pdf}{LIITE A / lista 1})
\end{itemize}
Kandidaatin tutkinnot: Toteutunut yhteensä xxx (tavoite 2018: yyy)
Kauppatieteiden kandidaatin tutkinto: Toteutunut xx
\hypertarget{arvostellut-pro-gradu-tutkielmat-liite-b-lista-1}{%
\subsubsection{Arvostellut pro gradu --tutkielmat (liite B/ lista
1)}\label{arvostellut-pro-gradu-tutkielmat-liite-b-lista-1}}
\begin{itemize}
\tightlist
\item
Arvostellut pro gradu --tutkielmat
(\href{https://tim.jyu.fi/files/yyy/gradut.pdf}{LIITE B / lista 1})
\end{itemize}
\textbf{Esitys}
Todetaan ilmoitusasiat.
\bigskip
\hfill\break
\hfill\break
\hfill\break
\hfill\break
Pöytäkirjanotteen vakuudeksi:
\hfill\break
\hfill\break
\hfill\break
Olli Ollinen\\
Yliopistonopettaja\\
""".strip(),
ote1_tex,
)
ote2 = DocEntry.find_by_path(f"{d_kokous.location}/otteet/kokous{knro}/lista2")
ote2_tex = self.get_no_warn(
f"/print/{ote2.path}", query_string={"file_type": "latex"}
)
self.assertEqual(
r"""
PÖYTÄKIRJANOTE - Lista 2 - Jaska Jokusen väitöskirjan arvostelu\\
\strut \\
\begin{tabular}{p{10cm} l}
JYVÄSKYLÄN YLIOPISTO & KOKOUSKUTSU \\
Informaatioteknologian tiedekunta & \\
\end{tabular}
\hypertarget{tiedekuntaneuvoston-kokous-92018}{%
\chapter{TIEDEKUNTANEUVOSTON KOKOUS
9/2018}\label{tiedekuntaneuvoston-kokous-92018}}
Aika 11.9.2018 klo 9:00
Paikka Jossakin Agoralla
\begin{table}[H]
\resizebox{\columnwidth}{!}{%
\begin{tabular}{cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc}
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\cellcolor{lightgray}\fontsize{12}{0}\selectfont{\textcolor{black}{{\textbf{\emph{Jäsen}}}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\cellcolor{lightgray}\fontsize{12}{0}\selectfont{\textcolor{black}{{\textbf{\emph{Läsnä asiat:}}}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\cellcolor{lightgray}\fontsize{12}{0}\selectfont{\textcolor{black}{{\textbf{\emph{Varajäsen:}}}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\cellcolor{lightgray}\fontsize{12}{0}\selectfont{\textcolor{black}{{\textbf{\emph{Läsnä asiat:}}}}}}}
\tabularnewline[20.0pt]
\hhline{~~~~~~~}
\multicolumn{4}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{\emph{Professorit}}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Dekaani, TkT Henki Henkilö}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori, FT Henki Henkilö2}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori, FT Henki Henkilö3}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori, FT Henki Henkilö4}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori, KTT Henki Henkilö5}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori, FT Henki Henkilö6}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori, FT Henki Henkilö7}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori, FT Henki Henkilö8}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Tutkimusprofessori, TkT Henki Henkilö9}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{4}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{4}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{\emph{Muu opetus- ja tutkimushlöstö ja muu hlöstö}}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Projektitutkija, FT Henki Henkilö9}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Lehtori, KTT, LitM Henki Henkilö10}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Lehtori, FT Henki Henkilö11}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Yliopistonopettaja, FT Henki Henkilö12}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Yliopistonopettaja, FT Henki Henkilö12}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Yliopistonopettaja, FT Henki Henkilö13}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{4}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{4}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{\emph{Opiskelijat}}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Henki Henkilö14}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Henki Henkilö15}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Henki Henkilö16}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Henki Henkilö17}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Henki Henkilö18}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Henki Henkilö19}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{4}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{\emph{Ulkopuoliset jäsenet:}}}}}}
\tabularnewline[0pt]
\hhline{~~~~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{Professori Henki Henkilö20}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{TkT Henki Henkilö21}}}}} & \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{*}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}& \multicolumn{1}{l}{\multirow{1}{66.67pt}{\fontsize{12}{0}\selectfont{\textcolor{black}{{}}}}}
\tabularnewline[0pt]
\hhline{~~~~}
\end{tabular}%
}
\end{table}
\pagebreak
\begin{tabular}{p{10cm} l}
JYVÄSKYLÄN YLIOPISTO & Asialista 9/2018 \\
Informaatioteknologian tiedekunta & 11.9.2018 \\
Tiedekuntaneuvosto & Lista 2\end{tabular}
{\valmistelija{Asian valmistelijat: Opintopäällikkö Seppo Sepponen, puh.
0500123456,
\href{mailto:seponasiat@example.com}{\nolinkurl{seponasiat@example.com}},
Yliopistonopettaja Olli Ollinen, puh. 0400123456,
\href{mailto:olli.ollinen@example.com}{\nolinkurl{olli.ollinen@example.com}}}}
\hypertarget{jaska-jokusen-vuxe4ituxf6skirjan-arvostelu}{%
\section{Jaska Jokusen väitöskirjan
arvostelu}\label{jaska-jokusen-vuxe4ituxf6skirjan-arvostelu}}
Jaska Jokunen puolustaa 1.1.2018 julkisessa väitöstilaisuudessa
tietojärjestelmätieteen väitöskirjaansa.
\laki{
}
\laki{
\laki{
Arvostelu, tekstikappale 1.
Arvostelu, tekstikappale 2.
Arvostelu, tekstikappale 3.
}
}
\laki{
}
\begin{itemize}
\tightlist
\item
Vastaväittäjän lausunto
(\href{https://tim.jyu.fi/files/zzz/opponentti.pdf}{LIITE A / lista
2})
\end{itemize}
\textbf{Esitys}
Tiedekuntaneuvosto arvostelee Jaska Jokusen väitöskirjan.
\bigskip
\hfill\break
\hfill\break
\hfill\break
\hfill\break
Pöytäkirjanotteen vakuudeksi:
\hfill\break
\hfill\break
\hfill\break
Seppo Sepponen\\
Opintopäällikkö\\
\hfill\break
\hfill\break
\hfill\break
Olli Ollinen\\
Yliopistonopettaja\\
""".strip(),
ote2_tex,
)
self.assertIsNone(
DocEntry.find_by_path(f"{d_kokous.location}/otteet/kokous{knro}/lista3")
)