+
{time > 0 && (
<>
diff --git a/src/data/motion.json b/src/data/motion.json
index e7b658d..fbc7132 100644
--- a/src/data/motion.json
+++ b/src/data/motion.json
@@ -50,7 +50,7 @@
},
{
"lang": "pl",
- "motion": "W Polsce należy wprowadzić test preferencji politycznych.",
+ "motion": "W\u00a0Polsce należy wprowadzić test preferencji politycznych.",
"adinfo": "Na potrzeby debaty test preferencji politycznych stanowi test składający się z\u00a0pytań dotyczących określonych polityk, poglądów oraz wartości. Po wypełnieniu testu, system ustala do którego z\u00a0kandydatów głosujący ma najbardziej zbliżone odpowiedzi i\u00a0oddaje na niego automatycznie głos.",
"source": "Turniej Debat Oksfordzkich o\u00a0Tematyce Społeczno-Prawnej 2023, Eliminacje",
"type": "Teza o\u00a0działaniu"
@@ -71,7 +71,7 @@
},
{
"lang": "pl",
- "motion": "W Polsce należy wprowadzić możliwość głosowania negatywnego.",
+ "motion": "W\u00a0Polsce należy wprowadzić możliwość głosowania negatywnego.",
"adinfo": "Na potrzeby debaty głosowanie negatywne to sposób głosowania w\u00a0wyborach, polegający na odjęciu głosu od partii/osoby kandydującej. Liczy się on tak samo jak zwykły głos i\u00a0wyklucza głosowanie „za” jakąkolwiek inną partią lub osobą kandydująca.",
"source": "Turniej Debat Oksfordzkich o\u00a0Tematyce Społeczno-Prawnej 2023, Eliminacje",
"type": "Teza o\u00a0działaniu"
@@ -85,7 +85,7 @@
},
{
"lang": "pl",
- "motion": "W Polsce należy wprowadzić „natychmiastową demokrację” sprawowaną przez obywateli za pomocą technologii X.",
+ "motion": "W\u00a0Polsce należy wprowadzić „natychmiastową demokrację” sprawowaną przez obywateli za pomocą technologii X.",
"adinfo": "Na potrzeby debaty przyjmij, że istnieje technologia X. Polega ona na tym, że każdy obywatel w\u00a0chwili uzyskania czynnego prawa wyborczego otrzymuje małe urządzenie, które pozwala mu co miesiąc oddać głos na którąś z\u00a0partii politycznych. Comiesięczne głosowanie wpływa na skład parlamentu, w\u00a0taki sposób, że w\u00a0przypadku kiedy to partia miałaby stracić lub zyskać mandat w\u00a0parlamencie, sama decyduje o\u00a0osobie, której ten mandat przyznaje. Urządzenie głosujące jest zabezpieczone biometrycznie, w\u00a0taki sposób, że nikt inny poza danym obywatelem nie jest w\u00a0stanie go użyć. Urządzenia nie da się zhackować.",
"source": "Turniej Debat Oksfordzkich o\u00a0Tematyce Społeczno-Prawnej 2023, Eliminacje",
"type": "Teza o\u00a0działaniu"
@@ -106,7 +106,7 @@
},
{
"lang": "pl",
- "motion": "W Polsce należy wprowadzić kadencyjność posłów.",
+ "motion": "W\u00a0Polsce należy wprowadzić kadencyjność posłów.",
"adinfo": "",
"source": "Turniej Debat Oksfordzkich o\u00a0Tematyce Społeczno-Prawnej 2023, Eliminacje",
"type": "Teza o\u00a0działaniu"
@@ -141,7 +141,7 @@
},
{
"lang": "pl",
- "motion": "W krajach, w\u00a0których obowiązuje powszechna służba wojskowa powinna dotyczyć ona również kobiet.",
+ "motion": "W\u00a0krajach, w\u00a0których obowiązuje powszechna służba wojskowa powinna dotyczyć ona również kobiet.",
"adinfo": "",
"source": "Turniej Debat Oksfordzkich o\u00a0Tematyce Społeczno-Prawnej 2022, Eliminacje",
"type": "Teza powinnościowa"
@@ -225,10 +225,10 @@
},
{
"lang": "pl",
- "motion": "W interesie Polski leży działanie na rzecz dołączenia Ukrainy do Unii Europejskiej.",
+ "motion": "W\u00a0interesie Polski leży działanie na rzecz dołączenia Ukrainy do Unii Europejskiej.",
"adinfo": "",
"source": "Turniej Debat Oksfordzkich o\u00a0Tematyce Społeczno-Prawnej 2021, Eliminacje",
- "type": "motionPlInterest"
+ "type": "W\u00a0interesie…"
},
{
"lang": "pl",
@@ -246,7 +246,7 @@
},
{
"lang": "pl",
- "motion": "Politykę „grubej kreski” zastosowanej w\u00a0Polsce po 1989 należy ocenić negatywnie.",
+ "motion": "Politykę „grubej kreski” zastosowanej w\u00a0Polsce po 1989\u00a0należy ocenić negatywnie.",
"adinfo": "",
"source": "Turniej Debat Oksfordzkich o\u00a0Tematyce Społeczno-Prawnej 2021, Eliminacje",
"type": "Teza oceniająca"
@@ -274,7 +274,7 @@
},
{
"lang": "pl",
- "motion": "Czesław Michniewicz powinien zostać selekcjonerem reprezentacji Polski w\u00a0mistrzostwach świata w\u00a02022 roku.",
+ "motion": "Czesław Michniewicz powinien zostać selekcjonerem reprezentacji Polski w\u00a0mistrzostwach świata w\u00a02022\u00a0roku.",
"adinfo": "",
"source": "Poznańska Noc Debaty 2023, Faza grupowa",
"type": "Teza powinnościowa"
@@ -282,7 +282,7 @@
{
"lang": "pl",
"motion": "Rząd Stanów Zjednoczonych powinien być zorganizowany nomadycznie.",
- "adinfo": "W rządzie zorganizowanym nomadycznie przedstawiciele rządu nie mają swojej stałej siedziby i\u00a0wspólnie podróżują po kraju, stale pozostając w\u00a0ruchu.",
+ "adinfo": "W\u00a0rządzie zorganizowanym nomadycznie przedstawiciele rządu nie mają swojej stałej siedziby i\u00a0wspólnie podróżują po kraju, stale pozostając w\u00a0ruchu.",
"source": "Poznańska Noc Debaty 2023, Ćwierćfinał",
"type": "Teza o\u00a0działaniu"
},
@@ -380,7 +380,7 @@
{
"lang": "en",
"motion": "In the 21st century, the war on terrorism has caused more instability in the world than terrorism would have caused itself.",
- "adinfo": "The September 11 attacks in New York and Washington in 2001 brought the issue of terrorism to the front line of Western security thinking and resulted in the declaration of a\u00a0global \"war on terror\" by the Bush administration (the so-called \"Bush doctrine\"). Consequently, this rhetoric paved the way for the regular wars \"against\" regimes that were supposed to harbour terrorists or behave like them (i.e. Afghanistan and Iraq).",
+ "adinfo": "The September 11\u00a0attacks in New York and Washington in 2001\u00a0brought the issue of terrorism to the front line of Western security thinking and resulted in the declaration of a\u00a0global \"war on terror\" by the Bush administration (the so-called \"Bush doctrine\"). Consequently, this rhetoric paved the way for the regular wars \"against\" regimes that were supposed to harbour terrorists or behave like them (i.e. Afghanistan and Iraq).",
"source": "Musketeers of Words – Polish Oxford Debates Championships in English 2021, Group phase",
"type": "Motion of fact"
},
@@ -405,13 +405,6 @@
"source": "Musketeers of Words – Polish Oxford Debates Championships in English 2021, Group phase",
"type": "Motion of fact"
},
- {
- "lang": "pl",
- "motion": "W interesie UE leży wprowadzenie proponowanych zmian traktatowych.",
- "adinfo": "Proponowane zmiany traktatowe w\u00a0UE dotyczą spraw przegłosowanych w\u00a0Parlamencie Europejskim podczas drugiej sesji plenarnej w\u00a0listopadzie 2023 r.",
- "source": "Tezownicy",
- "type": "motionPlInterest"
- },
{
"lang": "pl",
"motion": "Jako nastoletni obywatel Polski swoją aktywność społeczną realizowałbym w\u00a0młodzieżowych partiach politycznych.",
@@ -421,24 +414,24 @@
},
{
"lang": "pl",
- "motion": "Z perspektywy przeciętnego Europejczyka żałowałbym Brexitu.",
+ "motion": "Z\u00a0perspektywy przeciętnego Europejczyka żałowałbym Brexitu.",
"adinfo": "",
"source": "Kujawsko-Pomorska Liga Debat, Toruń, 5.04.2022",
"type": "Teza pierwszoosobowa"
},
{
"lang": "pl",
- "motion": "Z perspektywy obywatela UE ważniejszy jest dla mnie proces integracji wewnętrznej niż wspólna polityka zagraniczna.",
+ "motion": "Z\u00a0perspektywy obywatela UE ważniejszy jest dla mnie proces integracji wewnętrznej niż wspólna polityka zagraniczna.",
"adinfo": "",
"source": "Kujawsko-Pomorska Liga Debat, Toruń, 5.04.2022",
"type": "Teza pierwszoosobowa"
},
{
"lang": "pl",
- "motion": "W interesie Polski leży federalizacja UE.",
+ "motion": "W\u00a0interesie Polski leży federalizacja UE.",
"adinfo": "",
"source": "Kujawsko-Pomorska Liga Debat, Toruń, 5.04.2022",
- "type": "motionPlInterest"
+ "type": "W\u00a0interesie…"
},
{
"lang": "pl",
@@ -449,25 +442,18 @@
},
{
"lang": "pl",
- "motion": "W interesie Polski leży wprowadzenie bezwarunkowego dochodu podstawowego.",
+ "motion": "W\u00a0interesie Polski leży wprowadzenie bezwarunkowego dochodu podstawowego.",
"adinfo": "",
"source": "Poznańska Liga Debat, 7.11.2022",
- "type": "motionPlInterest"
+ "type": "W\u00a0interesie…"
},
{
"lang": "pl",
- "motion": "Z perspektywy państwa polskiego, 31\u00a0sierpnia 1939\u00a0r. Polska była gotowa do wojny.",
+ "motion": "Z\u00a0perspektywy państwa polskiego, 31\u00a0sierpnia 1939\u00a0r. Polska była gotowa do wojny.",
"adinfo": "",
"source": "Porozmawiajmy o\u00a0II Wojnie Światowej, październik 2022",
"type": "Teza pierwszoosobowa"
},
- {
- "lang": "pl",
- "motion": "W interesie Polski leży wprowadzenie bezwarunkowego dochodu podstawowego.",
- "adinfo": "",
- "source": "Debata pokazowa, czerwiec 2022",
- "type": "motionPlInterest"
- },
{
"lang": "pl",
"motion": "Jako Elon Musk zaangażowałbym się w\u00a0walkę z\u00a0kryzysem klimatycznym kosztem programu kosmicznego.",
@@ -477,14 +463,14 @@
},
{
"lang": "pl",
- "motion": "Z perspektywy edukacji historycznej komedie wojenne przynoszą więcej szkody niż pożytku.",
+ "motion": "Z\u00a0perspektywy edukacji historycznej komedie wojenne przynoszą więcej szkody niż pożytku.",
"adinfo": "",
"source": "AD VOCEM, maj 2021",
"type": "Teza deskryptywna"
},
{
"lang": "pl",
- "motion": "Jako intelektualista żyjący w\u00a0Polsce w\u00a01975 roku podpisałbym tzw. List 59.",
+ "motion": "Jako intelektualista żyjący w\u00a0Polsce w\u00a01975\u00a0roku podpisałbym tzw. List 59.",
"adinfo": "",
"source": "AD VOCEM, grudzień 2022",
"type": "Teza pierwszoosobowa"
@@ -512,14 +498,14 @@
},
{
"lang": "pl",
- "motion": "W interesie Palestyńczyków leży popieranie rozwiązania jednopaństwowego.",
+ "motion": "W\u00a0interesie Palestyńczyków leży popieranie rozwiązania jednopaństwowego.",
"adinfo": "",
"source": "Toruńsko-Inowrocławska Liga Debat, listopad 2023",
- "type": "motionPlInterest"
+ "type": "W\u00a0interesie…"
},
{
"lang": "pl",
- "motion": "Jako uczeń/uczennica szkoły ponadpodstawowej wołał(a)bym realizować swój obowiązek szkolny w\u00a0\"szkole w\u00a0chmurze\" niż w\u00a0tradycyjnej szkole.",
+ "motion": "Jako uczeń/uczennica szkoły ponadpodstawowej wołał(a)bym realizować swój obowiązek szkolny w\u00a0„szkole w\u00a0chmurze” niż w\u00a0tradycyjnej szkole.",
"adinfo": "",
"source": "Kwidzyńskie Debaty Oksfordzkie, październik 2023",
"type": "Teza pierwszoosobowa"
@@ -540,16 +526,16 @@
},
{
"lang": "pl",
- "motion": "W interesie Polski leży całkowita rezygnacja z\u00a0gotówki na rzecz płatności bezgotówkowych.",
+ "motion": "W\u00a0interesie Polski leży całkowita rezygnacja z\u00a0gotówki na rzecz płatności bezgotówkowych.",
"adinfo": "",
"source": "Poznańska Liga Debat, listopad 2023",
- "type": "motionPlInterest"
+ "type": "W\u00a0interesie…"
},
{
"lang": "pl",
- "motion": "Z perspektywy mieszkańców ośrodków miejskich korzystną jest prywatyzacja przedsiębiorstw wodociągowych.",
+ "motion": "Z\u00a0perspektywy mieszkańców ośrodków miejskich korzystną jest prywatyzacja przedsiębiorstw wodociągowych.",
"adinfo": "",
- "source": "",
+ "source": "Tezownicy",
"type": "Teza pierwszoosobowa"
},
{
@@ -708,7 +694,7 @@
},
{
"lang": "pl",
- "motion": "W dobie kryzysu energetycznego państwa powinny inwestować w\u00a0OZE nawet kosztem dobrobytu swoich obywateli.",
+ "motion": "W\u00a0dobie kryzysu energetycznego państwa powinny inwestować w\u00a0OZE, nawet kosztem dobrobytu swoich obywateli.",
"adinfo": "",
"source": "Poznańska Liga Debat, 16.12.2022",
"type": "Teza o\u00a0działaniu"
@@ -757,7 +743,7 @@
},
{
"lang": "pl",
- "motion": "W szkolnych sklepikach i\u00a0automatach z\u00a0jedzeniem i\u00a0piciem każdy ma prawo kupować to, na co ma ochotę.",
+ "motion": "W\u00a0szkolnych sklepikach i\u00a0automatach z\u00a0jedzeniem i\u00a0piciem każdy ma prawo kupować to, na co ma ochotę.",
"adinfo": "",
"source": "Poznańska Liga Debat, 29.03.2022",
"type": "Teza o\u00a0wartościach"
@@ -778,7 +764,7 @@
},
{
"lang": "pl",
- "motion": "Gospodarka 4.0 niesie za sobą więcej szans niż zagrożeń.",
+ "motion": "Gospodarka 4.0\u00a0niesie za sobą więcej szans niż zagrożeń.",
"adinfo": "",
"source": "Poznańska Liga Debat, 17.12.2021",
"type": "Teza deskryptywna"
@@ -827,14 +813,14 @@
},
{
"lang": "pl",
- "motion": "W projektowaniu przestrzeni dla dzieci ich zdanie powinno być decydujące, nawet jeżeli jest to sprzeczne z\u00a0wizją dorosłych.",
+ "motion": "W\u00a0projektowaniu przestrzeni dla dzieci ich zdanie powinno być decydujące, nawet jeżeli jest to sprzeczne z\u00a0wizją dorosłych.",
"adinfo": "",
"source": "Poznańska Liga Debat, 27.03.2021",
"type": "Teza powinnościowa"
},
{
"lang": "pl",
- "motion": "W protestach społecznych osoby niepełnoletnie powinny brać udział tylko za zgodą swoich rodziców lub opiekunów.",
+ "motion": "W\u00a0protestach społecznych osoby niepełnoletnie powinny brać udział tylko za zgodą swoich rodziców lub opiekunów.",
"adinfo": "",
"source": "Poznańska Liga Debat, 27.03.2021",
"type": "Teza powinnościowa"
@@ -850,19 +836,19 @@
"lang": "pl",
"motion": "Długofalowo praca zdalna jest bardziej opłacalna dla sektora prywatnego niż stacjonarna.",
"adinfo": "",
- "source": "Poznańska Liga Debat, 18 grudnia 2020",
+ "source": "Poznańska Liga Debat, 18\u00a0grudnia 2020",
"type": "Teza porównawcza"
},
{
"lang": "pl",
- "motion": "Uzyskanie praw wyborczych przez kobiety w\u00a0Polsce w\u00a01918 r. było głównie ich efektem wcześniejszego zaangażowania w\u00a0działalność niepodległościową.",
+ "motion": "Uzyskanie praw wyborczych przez kobiety w\u00a0Polsce w\u00a01918\u00a0r. było głównie ich efektem wcześniejszego zaangażowania w\u00a0działalność niepodległościową.",
"adinfo": "",
"source": "Poznańska Liga Debat, marzec 2020",
"type": "Teza faktograficzna"
},
{
"lang": "pl",
- "motion": "Wprowadzenie tzw. \"dochodu naleźnego\" nie zrównoważy negatywnych skutków społecznych dalszej automatyzacji i\u00a0robotyzacji produkcji.",
+ "motion": "Wprowadzenie tzw. „dochodu naleźnego” nie zrównoważy negatywnych skutków społecznych dalszej automatyzacji i\u00a0robotyzacji produkcji.",
"adinfo": "",
"source": "Poznańska Liga Debat, listopad 2019",
"type": "Teza faktograficzna"
@@ -946,25 +932,18 @@
},
{
"lang": "pl",
- "motion": "W polskiej szkole system ocen zachowania przynosi więcej szkód niż pożytków.",
+ "motion": "W\u00a0polskiej szkole system ocen zachowania przynosi więcej szkód niż pożytków.",
"adinfo": "",
"source": "Poznańska Liga Debat, styczeń 2023",
"type": "Teza deskryptywna"
},
{
"lang": "pl",
- "motion": "Jako młody absolwent studiów w\u00a0polsce wolałbym otworzyć własną działalność gospodarczą niż pracować na etacie.",
+ "motion": "Jako młody absolwent studiów w\u00a0Polsce wolałbym otworzyć własną działalność gospodarczą niż pracować na etacie.",
"adinfo": "",
"source": "Poznańska Liga Debat, październik 2022",
"type": "Teza pierwszoosobowa"
},
- {
- "lang": "pl",
- "motion": "W interesie polski jest wprowadzenie bezwarunkowego dochodu podstawowego.",
- "adinfo": "",
- "source": "Poznańska Liga Debat, październik 2022",
- "type": "motionPlInterest"
- },
{
"lang": "pl",
"motion": "Metoda d'Hondta przynosi więcej szkód niż pożytków polskiemu systemowi wyborczemu.",
@@ -1030,7 +1009,7 @@
},
{
"lang": "pl",
- "motion": "Powinno się przywrócić przedmiot \"wiedza o\u00a0kulturze\" w\u00a0szkołach średnich.",
+ "motion": "Powinno się przywrócić przedmiot „wiedza o\u00a0kulturze” w\u00a0szkołach średnich.",
"adinfo": "",
"source": "Wielkopolska Liga Debat, luty 2024",
"type": "Teza powinnościowa"
@@ -1086,7 +1065,7 @@
},
{
"lang": "pl",
- "motion": "W Polsce należy obniżyć czynne prawo wyborcze do 16 roku życia.",
+ "motion": "W\u00a0Polsce należy obniżyć czynne prawo wyborcze do 16.\u00a0roku życia.",
"adinfo": "",
"source": "Tezownicy",
"type": "Teza powinnościowa"
@@ -1150,14 +1129,14 @@
{
"lang": "pl",
"adinfo": "",
- "motion": "W odniesieniu do wycinki drzew rosnących w\u00a0mieście, interes społeczny powinien być nadrzędny wobec prawa własności.",
+ "motion": "W\u00a0odniesieniu do wycinki drzew rosnących w\u00a0mieście, interes społeczny powinien być nadrzędny wobec prawa własności.",
"source": "Poznańska Liga Debat, Finał, październik 2020",
"type": "Teza powinnościowa"
},
{
"lang": "pl",
"adinfo": "",
- "motion": "Anglia i\u00a0Francja postąpiły zgodnie ze swoją racją stanu, nie pomagając Polsce w\u00a0trakcie kampanii polskiej 1939 r.",
+ "motion": "Anglia i\u00a0Francja postąpiły zgodnie ze swoją racją stanu, nie pomagając Polsce w\u00a0trakcie kampanii polskiej 1939\u00a0r.",
"source": "Porozmawiajmy o\u00a0II Wojnie Światowej, październik 2022",
"type": "Teza faktograficzna"
},
@@ -1166,7 +1145,7 @@
"adinfo": "",
"motion": "Zaangażowanie duchownych w\u00a0konspirację antykomunistyczną nie było w\u00a0interesie Kościoła Katolickiego w\u00a0Polsce.",
"source": "Odzyskani bohaterowie, kwiecień 2022",
- "type": "motionPlInterest"
+ "type": "W\u00a0interesie…"
},
{
"lang": "pl",
@@ -1306,7 +1285,7 @@
"adinfo": "",
"motion": "Prowadzenie radykalnej polityki antyreligijnej nie było w\u00a0interesie władz Związku Sowieckiego.",
"source": "Porozmawiajmy o\u00a0II Wojnie Światowej, Gdańsk, grudzień 2023",
- "type": "motionPlInterest"
+ "type": "W\u00a0interesie…"
},
{
"lang": "pl",
@@ -1339,7 +1318,7 @@
{
"lang": "pl",
"adinfo": "",
- "motion": "Polska Rzeczpospolita Ludowa w\u00a0latach 1956-1989 nie była państwem totalitarnym.",
+ "motion": "Polska Rzeczpospolita Ludowa w\u00a0latach 1956-1989\u00a0nie była państwem totalitarnym.",
"source": "AD VOCEM, marzec 2021",
"type": "Teza faktograficzna"
},
@@ -1360,14 +1339,14 @@
{
"lang": "pl",
"adinfo": "",
- "motion": "Do odzyskania niepodległości przez Polskę w\u00a01918 roku bardziej przyczyniły się działania dyplomatyczne niż zbrojne.",
+ "motion": "Do odzyskania niepodległości przez Polskę w\u00a01918\u00a0roku bardziej przyczyniły się działania dyplomatyczne niż zbrojne.",
"source": "AD VOCEM, listopad 2022",
"type": "Teza porównawcza"
},
{
"lang": "pl",
"adinfo": "",
- "motion": "Lepszym rozwiązaniem dla Polski byłby stanowczy opór opozycji względem władz PRL niż kompromis z\u00a01989 roku.",
+ "motion": "Lepszym rozwiązaniem dla Polski byłby stanowczy opór opozycji względem władz PRL niż kompromis z\u00a01989\u00a0roku.",
"source": "AD VOCEM, listopad 2022",
"type": "Teza porównawcza"
},
@@ -1395,14 +1374,14 @@
{
"lang": "pl",
"adinfo": "",
- "motion": "Ustawowa ochrona pamięci, taka jak w\u00a0ustawie z\u00a0dnia 7\u00a0kwietnia 1938 roku o\u00a0ochronie imienia Józefa Piłsudskiego, jest uzasadniona.",
+ "motion": "Ustawowa ochrona pamięci, taka jak w\u00a0ustawie z\u00a0dnia 7\u00a0kwietnia 1938\u00a0roku o\u00a0ochronie imienia Józefa Piłsudskiego, jest uzasadniona.",
"source": "AD VOCEM, kwiecień 2023",
"type": "Teza faktograficzna"
},
{
"lang": "pl",
"adinfo": "",
- "motion": "Konstytucja marcowa zawierała lepsze rozwiązania ustrojowe dla Polski w\u00a0latach 1935-39 niż konstytucja kwietniowa.",
+ "motion": "Konstytucja marcowa zawierała lepsze rozwiązania ustrojowe dla Polski w\u00a0latach 1935-39\u00a0niż konstytucja kwietniowa.",
"source": "AD VOCEM, kwiecień 2023",
"type": "Teza porównawcza"
},
@@ -1423,7 +1402,7 @@
{
"lang": "pl",
"adinfo": "",
- "motion": "Obowiązek dbania o\u00a0gatunki chronione na terenach przemysłowych powinien spoczywać na przedsiębiorstwach, a\u00a0nie na samorządach czy państwie. ",
+ "motion": "Obowiązek dbania o\u00a0gatunki chronione na terenach przemysłowych powinien spoczywać na przedsiębiorstwach, a\u00a0nie na samorządach czy państwie.",
"source": "Liga Debat Fundacji ORLEN, 16.11.2022",
"type": "Teza powinnościowa"
},
@@ -1465,7 +1444,7 @@
{
"lang": "pl",
"adinfo": "",
- "motion": "W dzisiejszych czasach tradycyjne biblioteki są nam niepotrzebne.",
+ "motion": "W\u00a0dzisiejszych czasach tradycyjne biblioteki są nam niepotrzebne.",
"source": "Kwidzyńskie Debaty Oksfordzkie, październik 2022",
"type": "Teza faktograficzna"
},
@@ -1500,7 +1479,7 @@
{
"lang": "pl",
"adinfo": "",
- "motion": "Pamięć o\u00a0losach partnerek i\u00a0partnerów upamiętnionych osób, zamordowanych w\u00a0latach 1944-1956 w\u00a0ramach represji komunistycznych jest niewystarczająca.",
+ "motion": "Pamięć o\u00a0losach partnerek i\u00a0partnerów upamiętnionych osób, zamordowanych w\u00a0latach 1944-1956\u00a0w\u00a0ramach represji komunistycznych jest niewystarczająca.",
"source": "Odzyskani bohaterowie, kwiecień 2023",
"type": "Teza faktograficzna"
},
@@ -1514,14 +1493,14 @@
{
"lang": "pl",
"adinfo": "",
- "motion": "Z punktu widzenia interesów polskiego społeczeństwa korzystniejsze były propozycje Aleksandra Wielopolskiego niż dążenia zwolenników powstania.",
+ "motion": "Z\u00a0punktu widzenia interesów polskiego społeczeństwa korzystniejsze były propozycje Aleksandra Wielopolskiego niż dążenia zwolenników powstania.",
"source": "Odzyskani bohaterowie, marzec 2023",
"type": "Teza porównawcza"
},
{
"lang": "pl",
"adinfo": "",
- "motion": "We wrześniu 1939 r. generał Władysław Langner nie powinien kapitulować przed Armią Czerwoną.",
+ "motion": "We wrześniu 1939\u00a0r. generał Władysław Langner nie powinien kapitulować przed Armią Czerwoną.",
"source": "Odzyskani bohaterowie, marzec 2023",
"type": "Teza powinnościowa"
},
@@ -1543,14 +1522,14 @@
"lang": "pl",
"adinfo": "",
"motion": "Dla wschodniej Polski komunizm był bardziej zbrodniczym systemem niż nazizm.",
- "source": "Historia w\u00a0Trasie, 2022",
+ "source": "Historia w\u00a0Trasie 2022",
"type": "Teza porównawcza"
},
{
"lang": "pl",
"adinfo": "",
"motion": "Słuszniejszym byłoby nazwanie Jana Klemensa Branickiego najrządniejszym z\u00a0polskich magnatów niż miękkim sybarytą.",
- "source": "Historia w\u00a0Trasie, 2022",
+ "source": "Historia w\u00a0Trasie 2022",
"type": "Teza porównawcza"
},
{
@@ -1591,22 +1570,22 @@
{
"lang": "pl",
"adinfo": "",
- "motion": "Polacy wygrali Bitwę pod Gniewem w\u00a01626 roku.",
- "source": "Historia w\u00a0Trasie, 2023",
+ "motion": "Polacy wygrali Bitwę pod Gniewem w\u00a01626\u00a0roku.",
+ "source": "Historia w\u00a0Trasie 2023",
"type": "Teza faktograficzna"
},
{
"lang": "pl",
"adinfo": "",
"motion": "Polska była państwem zwycięskim w\u00a0II wojnie światowej.",
- "source": "Historia w\u00a0Trasie, 2023",
+ "source": "Historia w\u00a0Trasie 2023",
"type": "Teza faktograficzna"
},
{
"lang": "pl",
"adinfo": "",
- "motion": "W budowaniu tożsamości społeczności zamieszkujących Ziemie Odzyskane rząd RP powinien opierać się na dorobku kulturowym przesiedleńców niż na dziedzictwie ich dawnych mieszkańców.",
- "source": "Historia w\u00a0Trasie, 2023",
+ "motion": "W\u00a0budowaniu tożsamości społeczności zamieszkujących Ziemie Odzyskane rząd RP powinien opierać się na dorobku kulturowym przesiedleńców niż na dziedzictwie ich dawnych mieszkańców.",
+ "source": "Historia w\u00a0Trasie 2023",
"type": "Teza porównawcza"
},
{
@@ -1619,7 +1598,7 @@
{
"lang": "pl",
"adinfo": "",
- "motion": "W szkołach w\u00a0Polsce powinien być osobny przedmiot dotyczący zmian klimatycznych.",
+ "motion": "W\u00a0szkołach w\u00a0Polsce powinien być osobny przedmiot dotyczący zmian klimatycznych.",
"source": "Debata pokazowa, Poznań, luty 2023",
"type": "Teza powinnościowa"
},
@@ -1647,7 +1626,7 @@
{
"lang": "en",
"adinfo": "Post-Soviet countries refer to the independent nations that emerged following the dissolution of the Soviet Union in 1991. UE post-soviet countries are Poland, Hungary, Czech Republic, Slovakia, Estonia, Latvia, and Lithuania. As a\u00a0parent from these countries, you've seen rock bottom, work struggle and education chasing. For the first time in your life, you can describe yourself as a\u00a0successful person in a\u00a0good financial situation.",
- "motion": "As a\u00a0parent in 2015-2024 in the UE post soviet countries I\u00a0would raise my child using \"a tiger parent\" method.",
+ "motion": "As a\u00a0parent in 2015-2024\u00a0in the UE post soviet countries I\u00a0would raise my child using \"a\u00a0tiger parent\" method.",
"source": "Musketeers of Words – Polish Oxford Debates Championships in English 2024, Group phase",
"type": "First-person motion"
},
@@ -1674,7 +1653,7 @@
},
{
"lang": "en",
- "adinfo": "For this debate assume you have an opportunity to take a\u00a0pill that irreversibly changes your life. After taking it, you will not be lied to again. Once you learn (hear in conversation, read, etc.) new information, there will be an automatic confirmation of truth or warning in your brain that it is a\u00a0lie. The \"technical\" side of the pill working will not annoy you nor hinder your daily functioning, it will keep working until you die. You are certain there are no health side effects. At the time of the decision you must be 18 years old, and once the choice is made it is final.",
+ "adinfo": "For this debate assume you have an opportunity to take a\u00a0pill that irreversibly changes your life. After taking it, you will not be lied to again. Once you learn (hear in conversation, read, etc.) new information, there will be an automatic confirmation of truth or warning in your brain that it is a\u00a0lie. The \"technical\" side of the pill working will not annoy you nor hinder your daily functioning, it will keep working until you die. You are certain there are no health side effects. At the time of the decision you must be 18\u00a0years old, and once the choice is made it is final.",
"motion": "We decide to take a\u00a0pill.",
"source": "Musketeers of Words – Polish Oxford Debates Championships in English 2024, Runners-up",
"type": "First-person motion"
@@ -1696,7 +1675,7 @@
{
"lang": "pl",
"adinfo": "Mieszkalnictwo społeczne to budowa dostępnych mieszkań na wynajem przez gminy i\u00a0inne organizacje nienastawione na zysk (np. towarzystwa budownictwa społecznego, kooperatywy mieszkaniowe). Mieszkalnictwo deweloperskie to budowa mieszkań przeznaczonych na sprzedaż na warunkach komercyjnych, nabywanych na własne potrzeby z\u00a0kredytu mieszkaniowego lub w\u00a0celach inwestycyjnych (lokowanie oszczędności).",
- "motion": "W interesie polskich miast leży polityka rozwoju mieszkalnictwa społecznego kosztem ograniczenia mieszkalnictwa deweloperskiego.",
+ "motion": "W\u00a0interesie polskich miast leży polityka rozwoju mieszkalnictwa społecznego kosztem ograniczenia mieszkalnictwa deweloperskiego.",
"source": "Poznańska Liga Debat, 08.02.2024",
"type": "Teza porównawcza"
},
diff --git a/src/data/strings.json b/src/data/strings.json
index b86ab8f..9c6a813 100644
--- a/src/data/strings.json
+++ b/src/data/strings.json
@@ -424,5 +424,10 @@
"en": "and",
"pl": "i",
"de": "und"
+ },
+ "debateFinishedEnthusiastic": {
+ "en": "Debate finished!",
+ "pl": "Debata zakończona!",
+ "de": "Debatte geendet!"
}
-}
\ No newline at end of file
+}
diff --git a/tailwind.config.ts b/tailwind.config.ts
index e9a0944..6bfd0c8 100644
--- a/tailwind.config.ts
+++ b/tailwind.config.ts
@@ -13,6 +13,15 @@ const config: Config = {
"gradient-conic":
"conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))",
},
+ keyframes: {
+ wiggle: {
+ "0%, 100%": { transform: "rotate(-3deg)" },
+ "50%": { transform: "rotate(3deg)" },
+ },
+ },
+ animation: {
+ wiggle: "wiggle 1s ease-in-out infinite",
+ },
},
},
plugins: [],
diff --git a/tests/unit-tests/motions.test.ts b/tests/unit-tests/motions.test.ts
new file mode 100644
index 0000000..b3ff317
--- /dev/null
+++ b/tests/unit-tests/motions.test.ts
@@ -0,0 +1,40 @@
+import { motion } from "@/types/motion";
+import motions from "@/data/motion.json";
+import {
+ containsNonBreakingSpaces,
+ endsWithPeriod,
+ hasClosingBrackets,
+ hasCorrectlyNestedQuotationMarks,
+ hasLanguageCompatibleQuotationMarks,
+ isNotEmpty,
+ startsWithCapitalLetter,
+} from "./motionsValidationHelperFunctions.test";
+
+motions.forEach((motion) => {
+ describe(`${motion.motion}`, () => {
+ test("quotation marks", () => {
+ expect(hasLanguageCompatibleQuotationMarks(motion)).toBe(true);
+ });
+
+ test("fields ending with periods", () => {
+ expect(endsWithPeriod(motion.adinfo) || motion.adinfo == "").toBe(true);
+ expect(endsWithPeriod(motion.motion)).toBe(true);
+ expect(endsWithPeriod(motion.source)).toBe(false);
+ expect(endsWithPeriod(motion.type)).toBe(false);
+ });
+
+ for (const [key, value] of Object.entries(motion)) {
+ test(`${key}`, () => {
+ expect(containsNonBreakingSpaces(value)).toBe(true);
+ expect(hasCorrectlyNestedQuotationMarks(value)).toBe(true);
+ expect(hasClosingBrackets(value)).toBe(true);
+ if (key != "lang") {
+ expect(startsWithCapitalLetter(value) || value == "").toBe(true);
+ }
+ if (key != "adinfo") {
+ expect(isNotEmpty(value)).toBe(true);
+ }
+ });
+ }
+ });
+});
diff --git a/tests/unit-tests/motionsValidationHelperFunctions.test.ts b/tests/unit-tests/motionsValidationHelperFunctions.test.ts
new file mode 100644
index 0000000..eeb24db
--- /dev/null
+++ b/tests/unit-tests/motionsValidationHelperFunctions.test.ts
@@ -0,0 +1,248 @@
+import { motion } from "@/types/motion";
+
+describe("non-breaking spaces function", () => {
+ test("numbers", () => {
+ expect(containsNonBreakingSpaces("12 days of Christmas")).toBe(false);
+ expect(containsNonBreakingSpaces("12\u00a0days of Christmas")).toBe(true);
+ expect(containsNonBreakingSpaces("1 000 000")).toBe(false);
+ expect(containsNonBreakingSpaces("1\u00a0000\u00a0000")).toBe(true);
+ });
+
+ test("single letters mid-sentence", () => {
+ expect(containsNonBreakingSpaces("that's a must")).toBe(false);
+ expect(containsNonBreakingSpaces("that's a\u00a0must")).toBe(true);
+ expect(containsNonBreakingSpaces("klaszczę i śmieję się")).toBe(false);
+ expect(containsNonBreakingSpaces("klaszczę i\u00a0śmieję się")).toBe(true);
+ });
+
+ test("single letters at the start of the string", () => {
+ expect(containsNonBreakingSpaces("i may not live to see our glory")).toBe(
+ false
+ );
+ expect(
+ containsNonBreakingSpaces("i\u00a0may not live to see our glory")
+ ).toBe(true);
+ expect(containsNonBreakingSpaces("a 3-hours-long commute")).toBe(false);
+ expect(containsNonBreakingSpaces("a\u00a03-hours-long commute")).toBe(true);
+ expect(containsNonBreakingSpaces("i śmieci")).toBe(false);
+ expect(containsNonBreakingSpaces("i\u00a0śmieci")).toBe(true);
+ expect(
+ containsNonBreakingSpaces(
+ "W interesie Polski leży wprowadzenie bezwarunkowego dochodu podstawowego."
+ )
+ ).toBe(false);
+ expect(
+ containsNonBreakingSpaces(
+ "W\u00a0interesie Polski leży wprowadzenie bezwarunkowego dochodu podstawowego."
+ )
+ ).toBe(true);
+ });
+});
+
+describe("quotation marks functions", () => {
+ const badEnglishMotionPolishQuotes: motion = {
+ lang: "en",
+ adinfo: "no info",
+ motion: "This motion I have made up. I call it „The test motion.”",
+ source: "i made it up, 12.30.2005",
+ type: "yes",
+ };
+
+ const goodEnglishMotion: motion = {
+ lang: "en",
+ adinfo: "no info",
+ motion: 'This motion I have made up. I call it "The test motion."',
+ source: "i made it up 01.20.2005",
+ type: "yes",
+ };
+
+ const badPolishMotionEnglishQuotes: motion = {
+ lang: "pl",
+ adinfo: "brak",
+ motion: 'To jest "niekoniecznie poprawna polska teza"',
+ source: "IDZD, 12.30.2005",
+ type: "owszem",
+ };
+
+ const goodPolishMotionNoQuotationMarks: motion = {
+ lang: "pl",
+ adinfo: "brak",
+ motion: "To jest teza bez cudzysłowów.",
+ source: "IDZD, 12.30.2005",
+ type: "owszem",
+ };
+
+ test("language-compatible question marks", () => {
+ expect(hasLanguageCompatibleQuotationMarks(goodEnglishMotion)).toBe(true);
+ expect(
+ hasLanguageCompatibleQuotationMarks(goodPolishMotionNoQuotationMarks)
+ ).toBe(true);
+
+ expect(
+ hasLanguageCompatibleQuotationMarks(badEnglishMotionPolishQuotes)
+ ).toBe(false);
+ expect(
+ hasLanguageCompatibleQuotationMarks(badPolishMotionEnglishQuotes)
+ ).toBe(false);
+ });
+
+ test("nested quotation marks", () => {
+ expect(
+ hasCorrectlyNestedQuotationMarks(
+ "To są „poprawnie zagnieżdżone «cudzysłowy»”."
+ )
+ ).toBe(true);
+ expect(
+ hasCorrectlyNestedQuotationMarks(
+ "To są „niepoprawnie zagnieżdżone „cudzysłowy”, wiesz o tym?”."
+ )
+ ).toBe(false);
+ });
+
+ test("closing quotation marks", () => {
+ expect(hasClosingQuotationMarks('"This is a correct quote".')).toBe(true);
+ expect(hasClosingQuotationMarks('"Two correct quotes". "Bang".')).toBe(
+ true
+ );
+ expect(hasClosingQuotationMarks("„Oto poprawny polski cytat”.")).toBe(true);
+ expect(
+ hasClosingQuotationMarks("„Tu są nawet” „dwa prawie poprawne cytaty”.")
+ ).toBe(true);
+
+ expect(hasClosingQuotationMarks('"This is not a proper quote.')).toBe(
+ false
+ );
+ expect(hasClosingQuotationMarks('Neither is this one".')).toBe(false);
+ expect(
+ hasClosingQuotationMarks('"This one is correct" "But only to an extent.')
+ ).toBe(false);
+ expect(
+ hasClosingQuotationMarks("„Tutaj mamy wyłącznie otwarcie nawiasu.")
+ ).toBe(false);
+ expect(hasClosingQuotationMarks("A tu tylko zamknięcie”.")).toBe(false);
+ expect(
+ hasClosingQuotationMarks(
+ "„Tutaj komuś dobrze szło”, ale „passa się skończyła."
+ )
+ ).toBe(false);
+ });
+});
+
+describe("other single-sentence functions", () => {
+ test("'not empty function'", () => {
+ expect(isNotEmpty("")).toBe(false);
+ expect(isNotEmpty(undefined)).toBe(false);
+ expect(isNotEmpty(null)).toBe(false);
+ expect(isNotEmpty("bajojajo")).toBe(true);
+ });
+
+ test("'ends with a period' function", () => {
+ expect(endsWithPeriod("This sentence is properly ended.")).toBe(true);
+ expect(endsWithPeriod("This sentence is not")).toBe(false);
+ });
+
+ test("'starts with a capital letter' function", () => {
+ expect(startsWithCapitalLetter("This sentence is properly started.")).toBe(
+ true
+ );
+ expect(startsWithCapitalLetter("this sentence is not")).toBe(false);
+ });
+ expect(
+ startsWithCapitalLetter("ówcześnie wiele zdań zaczyna się małą literą")
+ ).toBe(false);
+
+ test("'has closing brackets' function", () => {
+ expect(
+ hasClosingBrackets("This is a correct usage of brackets (of course).")
+ ).toBe(true);
+ expect(hasClosingBrackets("This one (is) (cool).")).toBe(true);
+
+ expect(hasClosingBrackets("This one (is uncool.")).toBe(false);
+ expect(hasClosingBrackets("Such as this one).")).toBe(false);
+ expect(hasClosingBrackets("This one is (partially) (correct.")).toBe(false);
+ });
+});
+
+function containsNonBreakingSpaces(sentence: string): boolean {
+ const numbersPattern = new RegExp(/\d+ [ąężśźćół\w]+/, "ig");
+ const lettersMidSentencePattern = new RegExp(/ \w [ąężśźćół\w]+/, "ig");
+ const letterAtTheStartPattern = new RegExp(/^\w [ąężśźćół\w]+/, "ig");
+
+ if (sentence.match(numbersPattern)) return false;
+ if (sentence.match(lettersMidSentencePattern)) return false;
+ if (sentence.match(letterAtTheStartPattern)) return false;
+ return true;
+}
+
+function hasLanguageCompatibleQuotationMarks(motion: motion): boolean {
+ let badQuotationMarksPattern = undefined;
+ if (motion.lang == "pl") {
+ badQuotationMarksPattern = new RegExp(/"/, "ig");
+ } else {
+ badQuotationMarksPattern = new RegExp(/[„”]/, "ig");
+ }
+ for (const [key, value] of Object.entries(motion)) {
+ if (value.match(badQuotationMarksPattern)) {
+ return false;
+ }
+ }
+ return true;
+}
+
+function hasCorrectlyNestedQuotationMarks(sentence: string): boolean {
+ const incorrectlyNestedQuotesPattern = /(„.*[”„"].*”)/;
+ if (sentence.match(incorrectlyNestedQuotesPattern)) {
+ return false;
+ }
+ return true;
+}
+
+function hasClosingQuotationMarks(sentence: string): boolean {
+ const missingQuotationMarksPattern =
+ /„[^”]*$|^[^„]*”|^([^"]|"[^"]+")*"[^"]*$/;
+ if (sentence.match(missingQuotationMarksPattern)) {
+ return false;
+ }
+ return true;
+}
+
+function isNotEmpty(sentence?: string | null): boolean {
+ if (sentence == "" || sentence == undefined || sentence == null) {
+ return false;
+ }
+ return true;
+}
+
+function endsWithPeriod(sentence: string): boolean {
+ const endsWithPeriodPattern = /\.$/;
+ if (!sentence.match(endsWithPeriodPattern)) {
+ return false;
+ }
+ return true;
+}
+
+function startsWithCapitalLetter(sentence: string): boolean {
+ const lowercaseBeginningPattern = /^[a-ząęśćźżół]/;
+ if (sentence.match(lowercaseBeginningPattern)) {
+ return false;
+ }
+ return true;
+}
+
+function hasClosingBrackets(sentence: string): boolean {
+ const missingQuotationMarksPattern = /(\([^()]*$|^[^(]*\))/;
+ if (sentence.match(missingQuotationMarksPattern)) {
+ return false;
+ }
+ return true;
+}
+
+export {
+ containsNonBreakingSpaces,
+ hasLanguageCompatibleQuotationMarks,
+ hasCorrectlyNestedQuotationMarks,
+ isNotEmpty,
+ endsWithPeriod,
+ startsWithCapitalLetter,
+ hasClosingBrackets,
+};