From cd7d2e5171bebc3b447f24878cb8f56caefe1e58 Mon Sep 17 00:00:00 2001 From: Jan Szejko Date: Fri, 16 Nov 2018 18:51:07 +0100 Subject: [PATCH] new test + archived old test --- wtem/fixtures/exercises-2017.json | 769 +++++++++++++++++++++++++++ wtem/models.py | 25 +- wtem/static/wtem/img/emoji.png | Bin 0 -> 35000 bytes wtem/templates/wtem/main_before.html | 2 +- wtem/views.py | 2 + 5 files changed, 791 insertions(+), 7 deletions(-) create mode 100644 wtem/fixtures/exercises-2017.json create mode 100644 wtem/static/wtem/img/emoji.png diff --git a/wtem/fixtures/exercises-2017.json b/wtem/fixtures/exercises-2017.json new file mode 100644 index 0000000..d4068bd --- /dev/null +++ b/wtem/fixtures/exercises-2017.json @@ -0,0 +1,769 @@ +[ +{ + "id": 1, + "type": "edumed_wybor", + "description": ["Tagowanie, czyli kategoryzowanie treści cyfrowych, określamy również jako:"], + "options": [ + {"id": 1, "text": "społeczne indeksowanie,"}, + {"id": 2, "text": "gromadzenie indeksowe,"}, + {"id": 3, "text": "społeczne klasyfikowanie,"}, + {"id": 4, "text": "społeczne komunikowanie,"}, + {"id": 5, "text": "folksonomie,"}, + {"id": 6, "text": "żadne z powyższych."} + ], + "answer": [1, 3, 5], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 2, + "type": "edumed_wybor", + "description": ["Google Scholar…"], + "options": [ + {"id": 1, "text": "…to specjalistyczna wyszukiwarka Google dedykowana materiałom naukowym,"}, + {"id": 2, "text": "…to narzędzie pozwalające na ustalenie, kto cytował daną publikację,"}, + {"id": 3, "text": "…to biblioteka cyfrowa oferująca jedynie pełne teksty publikacji,"}, + {"id": 4, "text": "pozwala na znajdowanie informacji patentowych."} + ], + "answer": [1, 2, 4], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 3, + "type": "edumed_wybor", + "description": ["W Otwartym Dostępie (ang. Open Access) znajdziesz:"], + "options": [ + {"id": 1, "text": "publikacje, do których przez pierwszy miesiąc masz dostęp, potem musisz wykupić subskrypcje,"}, + {"id": 2, "text": "publikacje, które możesz czytać, kopiować, drukować,"}, + {"id": 3, "text": "publikacje, których autorzy zrzekli się swoich praw autorskich,"}, + {"id": 4, "text": "publikacje, do których masz wolny dostęp tylko jeśli uczysz się lub studiujesz,"}, + {"id": 5, "text": "żadne z powyższych."} + ], + "answer": [2], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 4, + "type": "edumed_wybor", + "description": ["Chcesz wyszukać w wyszukiwarce internetowej Google.com informacje na temat wizyty prezydenta Trumpa w Warszawie w 2017 r. Która z poniższych instrukcji wyszukiwania NIE jest prawidłowa?"], + "options": [ + {"id": 1, "text": "Trump OR prezydent USA AND (Warszawa OR 2017)"}, + {"id": 2, "text": "(Trump OR Donald) AND Warszawa AND 2017"}, + {"id": 3, "text": "„Donald Trump” AND Warszawa AND 2017"}, + {"id": 4, "text": "Trump AND Warszawa AND 2017"}, + {"id": 5, "text": "Trump AND Warszawa OR 2017"} + ], + "answer": [1, 2, 5], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 5, + "type": "edumed_wybor", + "description": ["Publikacja komentarzy pod artykułem w internecie i wysyłanie wiadomości mających na celu wywołanie jedynie bezcelowej dyskusji, to:"], + "options": [ + {"id": 1, "text": "trollowanie,"}, + {"id": 2, "text": "hotlinkowanie,"}, + {"id": 3, "text": "phishing,"}, + {"id": 4, "text": "cyberbullying."} + ], + "answer": [1], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 6, + "type": "edumed_wybor", + "description": ["Twój starszy kuzyn wraz z kolegami założyli zespół rockowy. Ich piosenki opublikowane w sieci stały się dość popularne. Kuzyn w rozmowie z Tobą mówi, że w przyszłym roku zespół chce wydać pierwszą płytę, pozyskując środki finansowe na zasadzie finansowania społecznościowego. Jak nazywamy tego typu internetowe pozyskiwanie środków na realizację projektu od dużej liczby osób wpłacających małe kwoty?"], + "options": [ + {"id": 1, "text": "crowdsourcing,"}, + {"id": 2, "text": "crowdfunding,"}, + {"id": 3, "text": "outsourcing,"}, + {"id": 4, "text": "żadne z powyższych."} + ], + "answer": [2], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 7, + "type": "edumed_wybor", + "description": ["Do mediów społecznościowych zaliczamy:"], + "options": [ + {"id": 1, "text": "blogi,"}, + {"id": 2, "text": "portale społecznościowe,"}, + {"id": 3, "text": "fora,"}, + {"id": 4, "text": "czaty,"}, + {"id": 5, "text": "społecznościowe gry sieciowe,"}, + {"id": 6, "text": "serwisy crowdfundingowe."} + ], + "answer": [1, 2, 3, 4, 5, 6], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 8, + "type": "edumed_wybor", + "description": ["Wskaż cechy opowieści transmedialnej:"], + "options": [ + {"id": 1, "text": "jest wielowątkowa,"}, + {"id": 2, "text": "dzieje się na jednej platformie medialnej,"}, + {"id": 3, "text": "cechuje ją zjawisko przenikania wielu mediów,"}, + {"id": 4, "text": "jest intertekstualna,"}, + {"id": 5, "text": "nie istnieje."} + ], + "answer": [1, 3, 4], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 9, + "type": "edumed_wybor", + "description": ["Wpływ na kompozycję kadru filmowego ma:"], + "options": [ + {"id": 1, "text": "praca aktora,"}, + {"id": 2, "text": "oświetlenie,"}, + {"id": 3, "text": "montaż,"}, + {"id": 4, "text": "kadrowanie,"}, + {"id": 5, "text": "ostrość,"}, + {"id": 6, "text": "scenopis."} + ], + "answer": [2, 4, 5], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 10, + "type": "edumed_wybor", + "description": ["Product placement:"], + "options": [ + {"id": 1, "text": "jest narzędziem marketingowym,"}, + {"id": 2, "text": "odwołuje się do świadomości i podświadomości widza,"}, + {"id": 3, "text": "jest przekazem, który w Polsce i w całej Unii musi być odpowiednio oznaczony,"}, + {"id": 4, "text": "jest przekazem, który w Polsce nie musi być oznaczony,"}, + {"id": 5, "text": "jest przekazem, który poza Unią musi być oznaczony,"}, + {"id": 6, "text": "nie jest żadnym przekazem."} + ], + "answer": [1, 2, 3], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 11, + "type": "edumed_wybor", + "description": ["Termin leksja ma związek z:"], + "options": [ + {"id": 1, "text": "hipertekstem,"}, + {"id": 2, "text": "ze środkami masowego przekazu,"}, + {"id": 3, "text": "z gatunkiem infotainment,"}, + {"id": 4, "text": "z istotą edukacji przez zabawę (edutainment),"}, + {"id": 5, "text": "z interfejsem graficznym,"}, + {"id": 6, "text": "z żadnym z powyższych."} + ], + "answer": [1], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 12, + "type": "edumed_wybor", + "description": ["Częsta manipulacja stosowana w wykresach i infografikach, która sugeruje znacznie większe różnice w danych niż w rzeczywistości polega na:"], + "options": [ + {"id": 1, "text": "zastosowaniu skali nie od zera,"}, + {"id": 2, "text": "zastosowaniu wykresu skumulowanego,"}, + {"id": 3, "text": "unikaniu stosowania perspektywy 3D w wykresie,"}, + {"id": 4, "text": "zastosowaniu skali od zera."} + ], + "answer": [1], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 13, + "type": "edumed_wybor", + "description": ["Tytuł artykułu prasowego brzmiący „Lewandowscy znowu to zrobili” lub „Nie uwierzysz, co znana piosenkarka miała pod sukienką…” to przykłady tzw.:"], + "options": [ + {"id": 1, "text": "ghostingu,"}, + {"id": 2, "text": "clickbaitu,"}, + {"id": 3, "text": "fake news,"}, + {"id": 4, "text": "storytellingu."} + ], + "answer": [2], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 14, + "type": "edumed_wybor", + "description": ["Osoba śledząca forum internetowe, ale nie biorąca udziału w dyskusjach to:"], + "options": [ + {"id": 1, "text": "sub,"}, + {"id": 2, "text": "troll,"}, + {"id": 3, "text": "lurker,"}, + {"id": 4, "text": "stalker."} + ], + "answer": [3], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 15, + "type": "edumed_wybor", + "description": ["TLS ma związek z:"], + "options": [ + {"id": 1, "text": "szyfrowaniem asymetrycznym,"}, + {"id": 2, "text": "szyfrowaniem symetrycznym,"}, + {"id": 3, "text": "SSL Record,"}, + {"id": 4, "text": "poufnością transmisji danych,"}, + {"id": 5, "text": "uwierzytelnieniem serwera,"}, + {"id": 6, "text": "żadnym z powyższych."} + ], + "answer": [1, 4, 5], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 16, + "type": "edumed_wybor", + "description": ["Aplikacja Facebook zainstalowana na smartfonie domyślnie ma dostęp do:"], + "options": [ + {"id": 1, "text": "odczytywania wiadomości tekstowych (SMS-ów, MMS-ów),"}, + {"id": 2, "text": "odczytywania rejestru połączeń,"}, + {"id": 3, "text": "pobierania plików bez powiadomienia,"}, + {"id": 4, "text": "zmieniania ustawień dźwięków,"}, + {"id": 5, "text": "renderowania na innych aplikacjach,"}, + {"id": 6, "text": "żadne z powyższych."} + ], + "answer": [1, 2, 3, 4, 5], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 17, + "type": "edumed_wybor", + "description": ["Skuteczna anonimizacja danych na zdjęciu to:"], + "options": [ + {"id": 1, "text": "rozpikselowanie,"}, + {"id": 2, "text": "użycie filtru Gaussa,"}, + {"id": 3, "text": "zasłonięcie ich blokiem jednolitego koloru w bitmapie,"}, + {"id": 4, "text": "zasłonięcie ich i zapis w pliku wektorowym."} + ], + "answer": [3], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 18, + "type": "edumed_wybor", + "description": ["W jaki sposób aplikacje fotograficzne mogą ujawnić Twoją lokalizację?"], + "options": [ + {"id": 1, "text": "przez dostęp do danych z żyroskopu i akcelerometru,"}, + {"id": 2, "text": "przez dostęp do danych kontaktowych,"}, + {"id": 3, "text": "przez dostęp do lokalizacji na bazie GPS,"}, + {"id": 4, "text": "przez dostęp do lokalizacji na bazie WiFi i 3G/LTE,"}, + {"id": 5, "text": "przez zapisanie danych w pliku EXIF zdjęcia."} + ], + "answer": [3, 4, 5], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 19, + "type": "edumed_wybor", + "description": ["Grupa zainfekowanych złośliwym oprogramowaniem komputerów, która służy m.in. do dalszego rozsyłania złośliwego oprogramowania lub prowadzenia ataków na strony, to:"], + "options": [ + {"id": 1, "text": "DDOS,"}, + {"id": 2, "text": "ransomware,"}, + {"id": 3, "text": "Bitlocker,"}, + {"id": 4, "text": "botnet."} + ], + "answer": [4], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 20, + "type": "edumed_wybor", + "description": ["Według najnowszych przepisów dot. ochrony danych osobowych w Unii Europejskiej, zgoda na przetwarzanie danych osobowych musi być:"], + "options": [ + {"id": 1, "text": "podpisana cyfrowo,"}, + {"id": 2, "text": "dobrowolna,"}, + {"id": 3, "text": "jednoznaczna,"}, + {"id": 4, "text": "na konkretny cel,"}, + {"id": 5, "text": "wyraźnie wyodrębniona,"}, + {"id": 6, "text": "dosłowna."} + ], + "answer": [2, 3, 4, 5], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 21, + "type": "edumed_wybor", + "description": ["Jedna z metod śledzenia aktywności użytkowników w sieci (np. otwieranie reklam zamieszczanych w newsletterze), która działa w oparciu o pobieranie miniaturowego obrazka, to:"], + "options": [ + {"id": 1, "text": "cookies (ciasteczka),"}, + {"id": 2, "text": "pixel tracking (śledzący piksel),"}, + {"id": 3, "text": "Do Not Track,"}, + {"id": 4, "text": "browser fingerprinting (odcisk palca przeglądarki)."} + ], + "answer": [2], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 22, + "type": "edumed_wybor", + "description": ["Wolnością słowa nazywamy prawo do publicznego wyrażania swojego zdania, poglądów, opinii. Które z poniższych zdań są prawdziwe?"], + "options": [ + {"id": 1, "text": "W Polsce wolność słowa nie jest w żaden sposób ograniczona."}, + {"id": 2, "text": "W Polsce wolność słowa ograniczona jest w wielu przypadkach, takich jak m.in. publikacja rysunków przedstawiających seks z osobami nieletnimi czy publiczne zaprzeczanie, że w Katyniu doszło do zbrodni na polskich oficerach."}, + {"id": 3, "text": "Większość krajów na świecie nie ogranicza wolności słowa w żaden sposób."}, + {"id": 4, "text": "Większość krajów na świecie w różnym stopniu ogranicza wolność słowa."}, + {"id": 5, "text": "Istnieją takie treści, które są niedozwolone w każdym kraju na świecie."}, + {"id": 6, "text": "Nie ma treści nielegalnych na całym świecie, zawsze w jakimś kraju dozwolona będzie ich publikacja."} + ], + "answer": [2, 4, 6], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 23, + "type": "edumed_wybor", + "description": ["„Każdy ma trzy życia: publiczne, prywatne i sekretne” – powiedział Gabriel Garcia Márquez. Zaznacz te formy aktywności, które z całą pewnością należą do sfery publicznej:"], + "options": [ + {"id": 1, "text": "rozmowa z dziennikarzem w telewizji publicznej,"}, + {"id": 2, "text": "rozmowa z dziennikarzem w telewizji prywatnej,"}, + {"id": 3, "text": "rozmowa z lekarzem w przychodni,"}, + {"id": 4, "text": "rozmowa z przyjaciółmi w domu,"}, + {"id": 5, "text": "rozmowa z przyjaciółmi w klubie,"}, + {"id": 6, "text": "rozmowa z wyborcami na spotkaniu wyborczym."} + ], + "answer": [1, 2, 6], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 24, + "type": "edumed_wybor", + "description": ["Nie zawsze precyzyjnie rozróżniamy, co jest prywatne od tego, co jest publiczne. Zaznacz te formy komunikacji, które nie zapewniają prywatności naszych rozmów:"], + "options": [ + {"id": 1, "text": "rozmowa przez telefon komórkowy,"}, + {"id": 2, "text": "komentarz do wpisu w serwisie społecznościowym,"}, + {"id": 3, "text": "wiadomość wysłana do konkretnego użytkownika poprzez serwis społecznościowy,"}, + {"id": 4, "text": "nieszyfrowany email,"}, + {"id": 5, "text": "szyfrowany email,"}, + {"id": 6, "text": "rozmowa „twarzą w twarz”."} + ], + "answer": [1, 2, 3, 4], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 25, + "type": "edumed_wybor", + "description": ["W odniesieniu do internetu tak zwane prawo do zapomnienia to:"], + "options": [ + {"id": 1, "text": "prawo niewysłania w Unii Europejskiej e-maila z potwierdzeniem udziału bez podania przyczyny,"}, + {"id": 2, "text": "prawo niewysłania w Unii Europejskiej e-maila z potwierdzeniem udziału z podaniem zapomnienia jako przyczyny,"}, + {"id": 3, "text": "prawo każdego obywatela Unii Europejskiej do zażądania usunięcia jego imienia i nazwiska z wyszukiwarki internetowej,"}, + {"id": 4, "text": "prawo każdego obywatela Unii Europejskiej do założenia konta w serwisie społecznościowym,"}, + {"id": 5, "text": "prawo każdego obywatela Unii Europejskiej do zapomnienia adresu wyszukiwarki internetowej albo serwisu społecznościowego,"}, + {"id": 6, "text": "żadne z powyższych."} + ], + "answer": [3], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 26, + "type": "edumed_wybor", + "description": ["Osoba X otrzymała wezwanie do zapłaty za udostępnianie w internecie pewnego utworu. Policja przekazała wzywającemu adres IP komputera osoby X, z którego miał być udostępniany utwór. Sam adres IP:"], + "options": [ + {"id": 1, "text": "jest wystarczającym dowodem, aby skazać kogokolwiek – niekonieczne jest udowodnienie, że to osoba X dokonała na danym komputerze konkretnej operacji,"}, + {"id": 2, "text": "nie jest wystarczającym dowodem, aby skazać kogokolwiek – konieczne jest udowodnienie, że to osoba X dokonała na danym komputerze konkretnej operacji,"}, + {"id": 3, "text": "jest dowodem złych zamiarów,"}, + {"id": 4, "text": "jest anonimowy,"}, + {"id": 5, "text": "żadne z powyższych."} + ], + "answer": [2], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 27, + "type": "edumed_wybor", + "description": ["Patenty przyznawane są na okres:"], + "options": [ + {"id": 1, "text": "5 lat,"}, + {"id": 2, "text": "10 lat,"}, + {"id": 3, "text": "20 lat,"}, + {"id": 4, "text": "50 lat,"}, + {"id": 5, "text": "70 lat,"}, + {"id": 6, "text": "bezterminowo."} + ], + "answer": [3], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 28, + "type": "edumed_wybor", + "description": ["Ochroną praw obywateli zajmuje się wiele instytucji państwowych. Są to między innymi:"], + "options": [ + {"id": 1, "text": "Rzecznik Praw Obywatelskich,"}, + {"id": 2, "text": "Rzecznik Praw Dziecka,"}, + {"id": 3, "text": "Krajowy Rejestr Sądowy,"}, + {"id": 4, "text": "Główny Inspektor Ochrony Danych Osobowych,"}, + {"id": 5, "text": "Urząd Ochrony Konkurencji i Konsumenta,"}, + {"id": 6, "text": "Helsińska Fundacja Praw Człowieka."} + ], + "answer": [1, 2, 4, 5], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 29, + "type": "edumed_wybor", + "description": ["Umowy ustne są w Polsce:"], + "options": [ + {"id": 1, "text": "ważne, choć często przed sądem trudno udowodnić, że faktycznie zostały zawarte,"}, + {"id": 2, "text": "ważne, ale pod warunkiem, że zostały zawarte przy świadkach,"}, + {"id": 3, "text": "ważne, ale pod warunkiem, że zostały zawarte w obecności notariusza,"}, + {"id": 4, "text": "ważne, choć w niektórych przypadkach wymagana jest forma pisemna,"}, + {"id": 5, "text": "nieważne, umowy muszą być zawsze w formie pisemnej,"}, + {"id": 6, "text": "nieważne, umowy muszą być zawsze w formie pisemnej i potwierdzone przez notariusza."} + + ], + "answer": [1, 4], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 30, + "type": "edumed_wybor", + "description": ["Prowadzisz popularnego wideobloga. Zwraca się do ciebie firma kosmetyczna z korzystną propozycją: góra pieniędzy w zamian za nagranie odcinka, w którym smarujesz się ich kremem. Stawiają jednak warunek: nikt nie może się dowiedzieć, że odcinek jest sponsorowany. Taka propozycja jest:"], + "options": [ + {"id": 1, "text": "legalna i etyczna,"}, + {"id": 2, "text": "nielegalna i etyczna,"}, + {"id": 3, "text": "legalna i nieetyczna,"}, + {"id": 4, "text": "nielegalna i nieetyczna,"}, + {"id": 5, "text": "prawo nie rozstrzyga tej kwestii."} + ], + "answer": [4], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 31, + "type": "edumed_wybor", + "description": ["Autorskie prawa osobiste chronią twórców utworów bezterminowo i bezwarunkowo. Zaliczamy do nich:"], + "options": [ + {"id": 1, "text": "prawo do oznaczania utworu imieniem i nazwiskiem twórcy,"}, + {"id": 2, "text": "zakaz parodiowania utworu bez zgody twórcy,"}, + {"id": 3, "text": "prawo do zachowania integralności utworu (czyli np. obowiązek wiernego cytowania),"}, + {"id": 4, "text": "prawo do wycofania utworu z obiegu,"}, + {"id": 5, "text": "prawo do decyzji o pierwszym rozpowszechnieniu utworu,"}, + {"id": 6, "text": "zakaz kopiowania utworu bez zgody twórcy."} + + ], + "answer": [1, 3, 5], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 32, + "type": "edumed_wybor", + "description": ["Wikipedia utrzymuje się z:"], + "options": [ + {"id": 1, "text": "reklam,"}, + {"id": 2, "text": "darowizn,"}, + {"id": 3, "text": "opłat za umieszczenie artykułu,"}, + {"id": 4, "text": "żadne z powyższych."} + ], + "answer": [2], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 33, + "type": "edumed_wybor", + "description": ["Facebook jest dostępny za darmo, ponieważ:"], + "options": [ + {"id": 1, "text": "zarabia na reklamach, które wyświetlają się wszystkim użytkownikom,"}, + {"id": 2, "text": "zarabia na profilowaniu swoich użytkowników i zbieraniu ich danych na potrzeby indywidualnych kampanii reklamowych,"}, + {"id": 3, "text": "zarabia na opłatach za docieranie z treściami wydawców (takich jak internetowe czasopisma, gazety, itp.),"}, + {"id": 4, "text": "istnieje, aby służyć ludzkości pro bono,"}, + {"id": 5, "text": "utrzymuje się z darowizn od osób prywatnych,"}, + {"id": 6, "text": "utrzymuje się ze sponsoringu fundacji."} + ], + "answer": [1, 2, 3], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 34, + "type": "edumed_wybor", + "description": ["Projekty open source, takie jak WordPress.org, czy Linux:"], + "options": [ + {"id": 1, "text": "co do zasady są całkowicie niedochodowe,"}, + {"id": 2, "text": "zarabiają na sprzedaży licencji,"}, + {"id": 3, "text": "zarabiają na usługach wdrożeniowych i obsłudze (np. utrzymanie serwisu, instalacja),"}, + {"id": 4, "text": "utrzymują się z reklam."} + ], + "answer": [3], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 35, + "type": "edumed_wybor", + "description": ["Przygotowałeś/aś cover piosenki ulubionego wykonawcy. Zamierzasz opublikować ją w serwisie społecznościowym. Potrzebujesz:"], + "options": [ + {"id": 1, "text": "pisemnej zgody rodziców, jeśli nie jesteś pełnoletni/a,"}, + {"id": 2, "text": "oświadczenia przesłanego do serwisu, że nie będziesz wykorzystywać swojej wersji piosenki do celów komercyjnych,"}, + {"id": 3, "text": "zgody piosenkarza/piosenkarki, którego/której utwór wykonujesz,"}, + {"id": 4, "text": "zgody właścicieli majątkowych praw autorskich do wykonywanego utworu,"}, + {"id": 5, "text": "oznaczenia opublikowanego utworu odpowiednim zestawem hashtagów,"}, + {"id": 6, "text": "dodania informacji, kto jest autorem piosenki."} + ], + "answer": [4, 6], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 36, + "type": "edumed_wybor", + "description": ["", "Czy powyższe zdjęcie:"], + "options": [ + {"id": 1, "text": "jest przykładem niedozwolonych treści w internecie,"}, + {"id": 2, "text": "jest przykładem sztuki nieetycznej,"}, + {"id": 3, "text": "jest przykładem remiksu,"}, + {"id": 4, "text": "przedstawia graffiti,"}, + {"id": 5, "text": "jest przykładem sztuki ulicznej,"}, + {"id": 6, "text": "żadnym z powyższych."} + ], + "answer": [3, 4, 5], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 37, + "type": "edumed_wybor", + "description": ["Dostałeś zadanie umieszczenia hasła o swojej ulicy w Wikipedii. Chcesz je przygotować jak najpełniej. W tym celu:"], + "options": [ + {"id": 1, "text": "sięgasz tylko po informacje zawarte w internecie, bo w Wikipedii trzeba podać linki,"}, + {"id": 2, "text": "sięgasz po informacje zawarte w internecie i w innych źródłach, np. książkach i gazetach, mapach, przewodnikach,"}, + {"id": 3, "text": "nie sięgasz po żadne inne informacje niż te, które już znasz, bo inni zawsze mogą uzupełnić wpis,"}, + {"id": 4, "text": "nie sięgasz po informacje zawarte w gazetach, bo są przestarzałe,"}, + {"id": 5, "text": "nie sięgasz po informacje zawarte w internecie, bo może je pisać każdy, a encyklopedia musi opierać się na informacjach od ekspertów,"}, + {"id": 6, "text": "żadne z powyższych."} + ], + "answer": [2], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 38, + "type": "edumed_wybor", + "description": ["Z podanych poniżej stwierdzeń wybierz wszystkie, które w sposób prawdziwy określają tzw. „szary internet”:"], + "options": [ + {"id": 1, "text": "„szary internet” to strony www, zawierające nielegalne treści,"}, + {"id": 2, "text": "„szary internet” to strony www, zawierające bazy danych i książki elektroniczne,"}, + {"id": 3, "text": "„szary internet” to strony www, zawierające dane osobowe użytkowników na zasadzie książki telefonicznej,"}, + {"id": 4, "text": "zasoby „szarego internetu” można przeszukiwać korzystając ze specjalistycznych dedykowanych serwisów np. Europeana,"}, + {"id": 5, "text": "zasoby „szarego internetu” nie są jeszcze dostępne w języku polskim,"}, + {"id": 6, "text": "zasoby „szarego internetu” można przeszukiwać korzystając jedynie z wyszukiwarki Google."} + ], + "answer": [2, 4], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 39, + "type": "edumed_wybor", + "description": ["Na tworzenie zjawiska „bańki informacyjnej” wpływają:"], + "options": [ + {"id": 1, "text": "przepustowość domowego łącza internetowego,"}, + {"id": 2, "text": "przyzwyczajenie użytkownika do przeglądania tych samych portali np. informacyjnych,"}, + {"id": 3, "text": "mechanizmy działania wyszukiwarek internetowych,"}, + {"id": 4, "text": "dominujące linie redakcyjne np. gazet, portali,"}, + {"id": 5, "text": "folksonomie,"}, + {"id": 6, "text": "żadne z powyższych."} + ], + "answer": [2, 3, 4], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 40, + "type": "edumed_wybor", + "description": ["Aby wspólna praca nad dokumentem tekstowym lub prezentacją była jak najbardziej bezpieczna i efektywna, warto:"], + "options": [ + {"id": 1, "text": "udostępnić link do pliku z możliwością anonimowej edycji przez wszystkich zainteresowanych.,"}, + {"id": 2, "text": "ustalić tryb pracy, plan działania i podzielić się zadaniami w zespole,"}, + {"id": 3, "text": "zdecydować, kto jest liderem zespołu i ma możliwość ostatecznego zatwierdzania zmian,"}, + {"id": 4, "text": "udostępnić plik określonym osobom, wysyłając zaproszenie na podane wcześniej adresy e-mail,"}, + {"id": 5, "text": "wybrać wspólny kanał komunikowania do omawiania dyskusyjnych kwestii,"}, + {"id": 6, "text": "żadne z powyższych."} + + ], + "answer": [2, 4, 5], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 41, + "type": "edumed_wybor", + "description": ["Podczas wakacji wykonałeś ciekawe zdjęcie wschodu słońca. Chciałbyś opublikować je w sieci, korzystając z licencji Creative Commons. Zakładasz, że może ono być dowolnie modyfikowane i rozpowszechniane, ale chciałbyś, aby zawsze oznaczano, że to Ty jesteś autorem pierwowzoru. Która z poniższych licencji na to pozwoli:"], + "options": [ + {"id": 1, "text": ""}, + {"id": 2, "text": ""}, + {"id": 3, "text": ""}, + {"id": 4, "text": ""} + ], + "answer": [4], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 42, + "type": "edumed_wybor", + "description": ["Kupiłeś/aś sobie czytnik e-booków, a następnie kupiłeś/aś licencję na książkę cyfrową Rok 1984 George’a Orwella. Po jakimś czasie sklep zdalnie skasował książkę z dysku twojego urządzenia oraz zwrócił wydane przez ciebie pieniądze. To działanie jest:"], + "options": [ + {"id": 1, "text": "legalne, bo sklep wypowiedział licencję, ale też zwrócił ci pieniądze, a więc nie poniosłeś żadnej straty,"}, + {"id": 2, "text": "nielegalne, bo sklep ingerował w działanie twojego urządzenia bez twojej zgody,"}, + {"id": 3, "text": "etyczne, bo sklep wypowiedział licencję, ale też zwrócił ci pieniądze, a więc nie poniosłeś żadnej straty,"}, + {"id": 4, "text": "nieetyczne, bo sklep ingerował w działanie twojego urządzenia bez twojej zgody."} + ], + "answer": [1, 4], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 43, + "type": "edumed_wybor", + "description": ["Zauważyłeś/aś rażący błąd w treści artykułu w Wikipedii, który przez Wikipedystów określany jest jako wandalizm. W jaki sposób możesz zareagować, by pomóc kolejnym czytelnikom Wikipedii uniknąć lektury artykułu zawierającego błąd?"], + "options": [ + {"id": 1, "text": "nie możesz pomóc w takiej sytuacji, ponieważ nie jesteś Wikipedystą,"}, + {"id": 2, "text": "piszesz o błędzie w serwisie społecznościowym, żartując z niskiej jakości internetowej encyklopedii,"}, + {"id": 3, "text": "edytujesz błąd i bierzesz udział w dyskusji z autorem błędu uzasadniając swoją zmianę,"}, + {"id": 4, "text": "próbujesz utworzyć nowy artykuł."} + ], + "answer": [3], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 44, + "type": "edumed_wybor", + "description": ["Peer-to-peer (P2P) to taki model komunikacji w sieci komputerowej, który:"], + "options": [ + {"id": 1, "text": "umożliwia współdzielenie plików w internecie,"}, + {"id": 2, "text": "charakteryzuje się tym, że każdy węzeł pełni rolę klienta i serwera,"}, + {"id": 3, "text": "daje różnym hostom różne uprawnienia,"}, + {"id": 4, "text": "charakteryzuje się zmiennością liczby węzłów,"}, + {"id": 5, "text": "pracuje się na nim wydajniej niż z użyciem innych modeli komunikacji,"}, + {"id": 6, "text": "charakteryzuje się stałą liczbą węzłów."} + ], + "answer": [1, 2, 4], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 45, + "type": "edumed_wybor", + "description": ["W których z poniższych sytuacji możemy wykorzystać kompetencje cyfrowe?"], + "options": [ + {"id": 1, "text": "robiąc zakupy,"}, + {"id": 2, "text": "umawiając się na spotkanie towarzyskie,"}, + {"id": 3, "text": "ucząc się,"}, + {"id": 4, "text": "w pracy zawodowej,"}, + {"id": 5, "text": "płacąc rachunki,"}, + {"id": 6, "text": "rozwijając pasję, zainteresowania."} + ], + "answer": [1, 2, 3, 4, 5, 6], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 46, + "type": "edumed_wybor", + "description": ["Wskaż wszystkie poprawne sformułowania. WCAG to:"], + "options": [ + {"id": 1, "text": "zbiór dokumentów zawierających wytyczne dotyczące ułatwień w dostępie do treści publikowanych w internecie,"}, + {"id": 2, "text": "wytyczne zawierające wskazówki na temat tego, jak budować serwisy internetowe dostępne dla wszystkich,"}, + {"id": 3, "text": "skrót od nazwy instytucji zajmującej się badaniem poziomu kompetencji cyfrowych wśród Europejczyków,"}, + {"id": 4, "text": "skrót od nazwy badania – diagnozy kompetencji cyfrowych wśród Europejczyków,"}, + {"id": 5, "text": "„przewodnik” dotyczący poziomu dostępności informacji znajdujących się w przestrzeni cyfrowej dla osób z niepełnosprawnościami."} + ], + "answer": [1, 2, 5], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 47, + "type": "edumed_wybor", + "description": ["Językiem programowania nie jest:"], + "options": [ + {"id": 1, "text": "Java,"}, + {"id": 2, "text": "Kompilator,"}, + {"id": 3, "text": "Python,"}, + {"id": 4, "text": "Scratch,"}, + {"id": 5, "text": "C++,"}, + {"id": 6, "text": "JavaScript."} + + ], + "answer": [2], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 48, + "type": "edumed_wybor", + "description": ["Zaznacz poprawne stwierdzenia:"], + "options": [ + {"id": 1, "text": "aplikacje mobilne nie mogą działać bez połączenia internetowego,"}, + {"id": 2, "text": "aplikacje mobilne instalowane są na urządzeniach mobilnych typu tablet, smartfon, smartwatch,"}, + {"id": 3, "text": "wszystkie aplikacje mobilne są płatne,"}, + {"id": 4, "text": "zakup aplikacji mobilnych w specjalnie do tego przeznaczonych sklepach internetowych zawsze wymaga od użytkownika podania danych karty kredytowej,"}, + {"id": 5, "text": "aplikacje mobilne zawsze żądają dostępu do kontaktów użytkownika."} + ], + "answer": [2], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 49, + "type": "edumed_wybor", + "description": ["Cyfrowy ślad to:"], + "options": [ + {"id": 1, "text": "podpis elektroniczny,"}, + {"id": 2, "text": "informacje o miejscu, w którym znajduje się urządzenie, z którego korzystamy z internetu,"}, + {"id": 3, "text": "informacje o parametrach urządzenia zalogowanego do sieci,"}, + {"id": 4, "text": "baza danych wszystkich użytkowników Internetu,"}, + {"id": 5, "text": "faksymile,"}, + {"id": 6, "text": "informacje dotyczące ruchów użytkownika w cyberprzestrzeni."} + ], + "answer": [2, 3, 6], + "answer_mode": "multi", + "points": 1 +}, +{ + "id": 50, + "type": "edumed_wybor", + "description": ["Z okazji Dnia Nauczyciela chcecie z grupą koleżanek i kolegów z klasy przygotować zabawną prezentację o nauczycielach uczących w Waszej szkole. W tym celu zapraszacie nauczycieli na sesję fotograficzną, a zrobione na niej zdjęcia chcecie wykorzystać do przygotowania memów. O co należy zadbać przed przystąpieniem do tworzenia prezentacji?"], + "options": [ + {"id": 1, "text": "o uzyskanie zgody od nauczycieli na wykorzystanie ich wizerunku w prezentacji,"}, + {"id": 2, "text": "o wyjaśnienie nauczycielom, czym jest mem i jaka jest jego specyfika,"}, + {"id": 3, "text": "o nie obrażanie w memach osób, które stały się ich tematem,"}, + {"id": 4, "text": "o wniesienie do ZAIKS opłaty za korzystanie z praw autorskich do zdjęć wykorzystanych w prezentacji,"}, + {"id": 5, "text": "o podanie autorstwa utworu pierwotnego, na bazie którego tworzony jest mem oraz podpisanie się pod powstałą pracą."} + ], + "answer": [1, 2, 3, 5], + "answer_mode": "multi", + "points": 1 +} +] \ No newline at end of file diff --git a/wtem/models.py b/wtem/models.py index 4139efc..1146770 100644 --- a/wtem/models.py +++ b/wtem/models.py @@ -19,11 +19,24 @@ from django.utils import timezone from django.utils.translation import ugettext as _ from jsonfield import JSONField -from contact.models import Contact -f = file(os.path.dirname(__file__) + '/fixtures/exercises.json') -exercises = json.loads(f.read()) -f.close() +def prepare_exercises(): + f = file(os.path.dirname(__file__) + '/fixtures/exercises.json') + exercises = json.loads(f.read()) + for i, exercise in enumerate(exercises, 1): + exercise['id'] = i + if exercise['type'] == 'edumed_wybor' and exercise['answer_mode'] == 'multi': + answer = [] + for j, option in enumerate(exercise['options'], 1): + option['id'] = j + if option['answer']: + answer.append(j) + exercise['answer'] = answer + f.close() + return exercises + + +exercises = prepare_exercises() DEBUG_KEY = 'smerfetka159' @@ -72,7 +85,7 @@ class CompetitionState(models.Model): class Submission(models.Model): - contact = models.ForeignKey(Contact, null=True) + contact = models.ForeignKey('contact.Contact', null=True) key = models.CharField(max_length=30, unique=True) first_name = models.CharField(max_length=100) last_name = models.CharField(max_length=100) @@ -266,7 +279,7 @@ class Assignment(models.Model): class AbstractConfirmation(models.Model): - contact = models.ForeignKey(Contact, null=True) + contact = models.ForeignKey('contact.Contact', null=True) key = models.CharField(max_length=30) confirmed = models.BooleanField(default=False) diff --git a/wtem/static/wtem/img/emoji.png b/wtem/static/wtem/img/emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..651f77a1f94d288416ec679fe7953a9a88b8a8a7 GIT binary patch literal 35000 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 literal 0 HcmV?d00001 diff --git a/wtem/templates/wtem/main_before.html b/wtem/templates/wtem/main_before.html index 5b3cd00..6031228 100644 --- a/wtem/templates/wtem/main_before.html +++ b/wtem/templates/wtem/main_before.html @@ -7,7 +7,7 @@

Witamy w I etapie Olimpiady Cyfrowej.

Test składa z 50 pytań, które otrzymasz w losowej kolejności. Po udzieleniu odpowiedzi na dane pytanie nie ma możliwości powrotu do niego i zmiany odpowiedzi. Uwaga: część pytań ma jedną, a część kilka poprawnych odpowiedzi.

Podczas rozwiązywania testu możesz korzystać z internetu.

-

Test rozpocznie się w czwartek 23 listopada o godzinie 10:00 i będzie trwał do godziny 11:00.

+

Test rozpocznie się we wtorek 20 listopada o godzinie 10:00 i będzie trwał do godziny 11:00.

Powodzenia!

Zespół Olimpiady Cyfrowej
diff --git a/wtem/views.py b/wtem/views.py index d786846..be78eb5 100644 --- a/wtem/views.py +++ b/wtem/views.py @@ -46,6 +46,8 @@ def form(request, submission_id, key): state = CompetitionState.get_state() if state == CompetitionState.DURING: state = 'single' + if request.META['REMOTE_ADDR'] in getattr(settings, 'WTEM_CONTEST_IP_ALLOW', []): + state = 'single' return globals()['form_' + state](request, submission_id, key) -- 2.20.1