From 5d79e48732565dad23a8592eeebc8741972ef5cc Mon Sep 17 00:00:00 2001
From: Radek Czajka
Date: Tue, 18 Nov 2014 12:09:29 +0100
Subject: [PATCH] Update.
---
contact/views.py | 5 +-
curriculum/templatetags/curriculum_tags.py | 2 +-
wtem/fixtures/exercises-2013.json | 418 ++++++++++++++++++
.../management/commands/wtem_generate_keys.py | 8 +-
wtem/static/wtem/edumed.coffee | 2 +-
wtem/static/wtem/edumed.js | 2 +-
wtem/templates/wtem/main.html | 13 +-
wtem/views.py | 4 +-
8 files changed, 441 insertions(+), 13 deletions(-)
create mode 100644 wtem/fixtures/exercises-2013.json
diff --git a/contact/views.py b/contact/views.py
index 6ec18e5..20d28a3 100644
--- a/contact/views.py
+++ b/contact/views.py
@@ -7,12 +7,13 @@ from .forms import contact_forms
from .models import Attachment
-def form(request, form_tag):
+def form(request, form_tag, force_enabled=False):
try:
form_class = contact_forms[form_tag]
except KeyError:
raise Http404
- if getattr(form_class, 'disabled', False):
+ if (getattr(form_class, 'disabled', False) and
+ not (force_enabled and request.user.is_superuser)):
template = getattr(form_class, 'disabled_template', None)
if template:
return render(request, template)
diff --git a/curriculum/templatetags/curriculum_tags.py b/curriculum/templatetags/curriculum_tags.py
index 4e02e04..7757150 100755
--- a/curriculum/templatetags/curriculum_tags.py
+++ b/curriculum/templatetags/curriculum_tags.py
@@ -73,7 +73,7 @@ def course_boxes():
def course_boxes_toc(accusative=False):
last = None, None
object_list = []
- for l in Lesson.curriculum_courses.through.objects.all().order_by(
+ for l in Lesson.curriculum_courses.through.objects.all().select_related('lesson__level', 'curriculumcourse').order_by(
'lesson__level', 'curriculumcourse'):
level, course = l.lesson.level, l.curriculumcourse
if (level, course) == last:
diff --git a/wtem/fixtures/exercises-2013.json b/wtem/fixtures/exercises-2013.json
new file mode 100644
index 0000000..8fc52f7
--- /dev/null
+++ b/wtem/fixtures/exercises-2013.json
@@ -0,0 +1,418 @@
+[
+
+{
+ "id": 1,
+ "type": "edumed_uporzadkuj",
+ "description": ["UÅóż propozycje haseÅ internetowych w kolejnoÅci od najmniej do najbardziej bezpiecznego."],
+ "items": [
+ {"id": "1", "text": "Gdzi3.j3$t.N3m0"},
+ {"id": "2", "text": "abc123"},
+ {"id": "3", "text": "mojazor17"},
+ {"id": "4", "text": "czarnyKotbialyKot"},
+ {"id": "5", "text": "qwerty456"}
+ ],
+ "answer": [2, 5, 3, 4, 1],
+ "points": 1
+},
+
+{
+ "id": 2,
+ "type": "edumed_przyporzadkuj",
+ "hide_default_instruction": 1,
+ "description": ["Rozpoznaj i nazwij typy reklam"],
+ "buckets": [
+ {"id": 1, "title": "lokowanie produktu"},
+ {"id": 2, "title": "baner"},
+ {"id": 3, "title": "infomercial"},
+ {"id": 4, "title": "power content"},
+ {"id": 5, "title": "sponsoring"},
+ {"id": 6, "title": "AdWords"}
+ ],
+ "buckets_name": "typy",
+ "items": [
+ {"id": 1, "text": "1", "img": "1_small.png", "href": "1.png"},
+ {"id": 2, "text": "2", "img": "2_small.png", "href": "2.png"},
+ {"id": 3, "text": "3", "img": "3_small.png", "href": "3.png"}
+ ],
+ "items_name": "reklamy",
+ "items_inline": 1,
+ "items_instruction": "PrzeciÄ
gnij numery zdjÄÄ do odpowiednich szarych pól powyżej; kliknij w obrazek, aby powiÄkszyÄ",
+ "answer": {
+ "1": [2],
+ "4": [3],
+ "6": [1]
+ },
+ "points_per_hit": 1
+},
+
+{
+ "id": 3,
+ "type": "edumed_wybor",
+ "description": ["WykonaÅeÅ/wykonaÅaÅ remiks cudzych utworów. W jakich sytuacjach możesz rozpowszechniÄ swój utwór?"],
+ "options": [
+ {"id": 1, "text": "Mam zgodÄ autora/autorki oryginalnego utworu."},
+ {"id": 2, "text": "MateriaÅy do remiksu zostaÅy ÅciÄ
gniÄte z serwisu do przechowywania plików."},
+ {"id": 3, "text": "Wykorzystane piosenki przesÅaÅa mi na Facebooku koleżanka."},
+ {"id": 4, "text": "Zezwala na to licencja, na której sÄ
opublikowane wykorzystane utwory."},
+ {"id": 5, "text": "Wykorzystane w remiksie utwory sÄ
dostÄpne w domenie publicznej (minÄÅo 70 lat od Åmierci autora)."},
+ {"id": 6, "text": "Utwory użyte w remiksie byÅy udostÄpnione do odsÅuchania na stronach twórców w formie plików mp3."}
+ ],
+ "answer": [1, 4, 5],
+ "points_per_hit": 1
+},
+
+{
+ "id": 4,
+ "type": "edumed_wybor",
+ "description": ["Jedziesz na wakacje do Turcji. Ustal, jaki termin ważnosci musi mieÄ Twój paszport."],
+ "options": [
+ {"id": 1, "text": "3 miesiÄ
ce od daty wyjazdu z Polski"},
+ {"id": 2, "text": "12 miesiÄcy od daty powrotu do Polski"},
+ {"id": 3, "text": "6 miesiÄcy od daty wyjazdu z Polski"},
+ {"id": 4, "text": "nie muszÄ mieÄ paszportu, by wyjechaÄ do Turcji"}
+ ],
+ "answer": [3],
+ "points": 1
+},
+
+{
+ "id": 5,
+ "type": "edumed_przyporzadkuj",
+ "description": ["Który z poniższych tekstów jest informacjÄ
, opiniÄ
, perswazjÄ
?"],
+ "buckets": [
+ {"id": 1, "title": "informacja"},
+ {"id": 2, "title": "opinia"},
+ {"id": 3, "title": "perswazja"}
+ ],
+ "buckets_name": "kategorie",
+ "items": [
+ {"id": 1, "text": "1", "desc": "Serdecznie zapraszamy do udziaÅu w V Festiwalu Poezji Lokalnej im. Zbigniewa Herberta. Przyjdź i zaprezentuj swojÄ
twórczoÅÄ literackÄ
biorÄ
c udziaÅ w tradycyjnym już Turnieju Jednego Wiersza! Dla najlepszych poetów â atrakcyjne nagrody!"},
+ {"id": 2, "text": "2", "desc": "22 grudnia w Domu Kultury Miejskiej przy ul. Wielebskiego 3 uczestniczyliÅmy w kolejnym V Festiwalu Poezji Lokalnej im. Zbigniewa Herberta. Swoje wiersze zaprezentowaÅo blisko 30 poetów, zarówno z naszego miasta jak i przybyÅych goÅci. Tradycyjny już Turniej Jednego Wiersza wygraÅ Jan Kowalski z KrÄtowa."},
+ {"id": 3, "text": "3", "desc": "Atmosfera V Festiwalu Poezji Lokalnej byÅa bardzo podniosÅa. Nie wiedziaÅem, że mamy tak wielu dobrych poetów w naszym mieÅcie i regionie. Uważam, że to jeden z najlepszych tego typu przeglÄ
dów i turniejów literackich w Polsce. Profesjonalnie przygotowany, o wysokim poziomie artystycznym. Warto byÅo przyjechaÄ."}
+ ],
+ "items_name": "źródÅa",
+ "answer": {
+ "1": [2],
+ "2": [3],
+ "3": [1]
+ },
+ "points_per_hit": 1
+},
+
+{
+ "id": 6,
+ "type": "edumed_wybor",
+ "description": ["W jaki sposób zwiÄkszysz niezależnoÅÄ wyników wyszukiwania od wczeÅniej wprowadzanych do wyszukiwarki fraz i przeglÄ
danych stron internetowych?"],
+ "options": [
+ {"id": 1, "text": "ustawiÄ tryb prywatny w przeglÄ
darce (incognito)"},
+ {"id": 2, "text": "wylogujÄ siÄ z serwisu spoÅecznoÅciowego"},
+ {"id": 3, "text": "skorzystam z innej niż zazwyczaj wyszukiwarki"},
+ {"id": 4, "text": "skorzystam z innej niż zazwyczaj przeglÄ
darki"},
+ {"id": 5, "text": "zamknÄ zakÅadkÄ z portalem spoÅecznoÅciowym"},
+ {"id": 6, "text": "usunÄ historiÄ wyszukiwania i ciasteczka"},
+ {"id": 7, "text": "zrestartujÄ przeglÄ
darkÄ"}
+ ],
+ "answer": [1,4,6],
+ "points_per_hit": 1
+},
+
+{
+ "id": 7,
+ "type": "edumed_wybor",
+ "description": ["JesteÅ w Olsztynie na przystanku Plac Roosevelta. Którym autobusem nie dojedziesz bezpoÅrednio na przystanek Szpital Wojewódzki?"],
+ "options": [
+ {"id": 1, "text": "13"},
+ {"id": 2, "text": "6"},
+ {"id": 3, "text": "22"},
+ {"id": 4, "text": "3"}
+ ],
+ "open_part": ["W jaki sposób dotarÅeÅ/aÅ do tej informacji? Wklej adres strony, z której skorzystaÅeÅ/aÅ."],
+ "open_part_rows": 1,
+ "answer": [4],
+ "max_points": 2
+},
+
+{
+ "id": 8,
+ "type": "edumed_wybor",
+ "description": ["KupiÅeÅ pÅytÄ CD z nowym albumem ulubionego zespoÅu. Co możesz z nim zrobiÄ?"],
+ "options": [
+ {"id": 1, "text": "umieÅciÄ pliki w sieci, tak by inni mogli ÅciÄ
gnÄ
Ä album"},
+ {"id": 2, "text": "zgraÄ pliki na swoje urzÄ
dzenia (laptop, smartfon, odtwarzacz mp3 itp.)"},
+ {"id": 3, "text": "skopiowaÄ pÅytÄ najbliższym znajomym i rodzinie"},
+ {"id": 4, "text": "skopiowaÄ pÅytÄ nauczycielce/nauczycielowi, która lubi podobnÄ
muzykÄ"},
+ {"id": 5, "text": "nagraÄ kopie albumu na pÅyty CD i odsprzedaÄ je w szkole zainteresowanym osobom"},
+ {"id": 6, "text": "odsprzedaÄ pÅytÄ z albumem w serwisie aukcyjnym"}
+ ],
+ "answer": [2,3,6],
+ "points_per_hit": 1
+
+},
+
+{
+ "id": 9,
+ "type": "edumed_przyporzadkuj",
+ "description": ["PrzyporzÄ
dkuj poniższe pojÄcia ich definicjom."],
+ "buckets": [
+ {"id": 1, "title": "infotainment"},
+ {"id": 2, "title": "cyfrowe narracje"},
+ {"id": 3, "title": "gatunek"},
+ {"id": 4, "title": "konwencja"},
+ {"id": 5, "title": "remiks"}
+
+ ],
+ "buckets_name": "pojÄcia",
+ "items": [
+ {"id": 1, "text": "1", "desc": "zbiór cech utworów (artystycznych, dziennikarskich itp.) wielokrotnie powtarzany i wykorzystywany. Może byÄ typowy dla jednego twórcy, grupy czy okresu. SkÅadaÄ siÄ na niego mogÄ
różne elementy utworu â zarówno te zwiÄ
zane formÄ
, jak i treÅciÄ
."},
+ {"id": 2, "text": "2", "desc": "utwór, w którym wykorzystano i poÅÄ
czono elementy różnych innych dzieÅ. DziÄki nowemu kontekstowi zmieniajÄ
one swoje znaczenie. Pierwotnie termin ten odnosiÅ siÄ tylko do utworów muzycznych i oznaczaÅ zmianÄ aranżacji piosenki, poÅÄ
czenie jej pierwotnej wersji z innymi elementami dźwiÄkowymi."},
+ {"id": 3, "text": "3", "desc": "zjawisko zacierania różnic pomiÄdzy przekazami informacyjnymi i rozrywkowymi. Obserwujemy je we wspóÅczesnych mediach."},
+ {"id": 4, "text": "4", "desc": "opowieÅÄ w formie multimedialnej. Jej autor przekazuje treÅÄ za pomocÄ
poÅÄ
czenia różnych form przekazu, np. tekstu, animacji, dźwiÄku, obrazu, wideo. Może przybieraÄ formÄ hipertekstu, prezentacji, filmu."},
+ {"id": 5, "text": "5", "desc": "typ, odmiana czegoÅ. W odniesieniu do tekstów kultury: okreÅlony sposób organizacji przekazu, zależny od jego celu. Utwory tego samego gatunku majÄ
zwykle podobÄ
formÄ, wykorzystujÄ
te same konwencje."}
+ ],
+ "items_name": "definicje",
+ "answer": {
+ "1": [3],
+ "2": [4],
+ "3": [5],
+ "4": [1],
+ "5": [2]
+ },
+ "points_per_hit": 0.5
+},
+
+{
+ "id": 10,
+ "type": "edumed_wybor",
+ "description": [" Dlaczego?"],
+ "options": [
+ {"id": 1, "text": "Kolega ma starÄ
wersjÄ przeglÄ
darki, która nie obsÅuguje zaawansowanej grafiki strony."},
+ {"id": 2, "text": "ZostaÅ użyty przycisk âwersja kontrastowaâ, który pomaga osobom sÅabowidzÄ
cym zapoznaÄ siÄ z treÅciÄ
strony."},
+ {"id": 3, "text": "Komputer zostaÅ zaatakowany wirusem typu Trojan."},
+ {"id": 4, "text": "Kolega wyÅwietla stronÄ przygotowanÄ
do wydruku."}
+ ],
+ "answer": [2],
+ "points": 1
+},
+
+{
+ "id": 11,
+ "type": "edumed_wybor",
+ "description": ["Wskaż bezpoÅrednie zagrożenia, które wiÄ
żÄ
siÄ z posiadaniem profilu na portalu spoÅecznoÅciowym."],
+ "options": [
+ {"id": 1, "text": "możliwoÅÄ niekontrolowanego wycieku prywatnych informacji (niedoskonaÅa ochrona danych osobowych)"},
+ {"id": 2, "text": "stalking"},
+ {"id": 3, "text": "zablokowanie komputera"},
+ {"id": 4, "text": "kradzież tożsamoÅci (profilu)"},
+ {"id": 5, "text": "kradzież pieniÄdzy z konta bankowego"},
+ {"id": 6, "text": "phishing"},
+ {"id": 7, "text": "cenzurowanie publikowanych i otrzymywanych treÅci"},
+ {"id": 8, "text": "faÅszerstwo dokumentu tożsamoÅci"},
+ {"id": 9, "text": "Åledzenie aktywnoÅci użytkownika w internecie"}
+ ],
+ "answer": [1,2,4,6,7,9],
+ "points_per_hit": 0.5
+},
+
+{
+ "id": 12,
+ "type": "edumed_przyporzadkuj",
+ "description": ["Do jakiej instytucji zwrócisz siÄ w konkretnej sprawie?"],
+ "buckets": [
+ {"id": 1, "title": "GIODO"},
+ {"id": 2, "title": "UOKiK"},
+ {"id": 3, "title": "RPD"},
+ {"id": 4, "title": "KRRiT"},
+ {"id": 5, "title": "UKE"}
+
+ ],
+ "buckets_name": "instytucje",
+ "items": [
+ {"id": 1, "text": "1", "desc": "sklep internetowy nie chce oddaÄ Ci pieniÄdzy za towar zwrócony w ciÄ
gu 10 dni od daty zakupu"},
+ {"id": 2, "text": "2", "desc": "wiesz, że kolega z mÅodszej klasy jest przeÅladowany w internecie, a lokalne instytucje nie reagujÄ
na problem"},
+ {"id": 3, "text": "3", "desc": "w audycji radiowej prowadzÄ
cy obrażaÅ cudzoziemców mieszkajÄ
cych w Polsce"}
+ ],
+ "items_name": "sprawy",
+ "answer": {
+ "2": [1],
+ "3": [2],
+ "4": [3]
+ },
+ "points_per_hit": 1
+},
+
+{
+ "id": 13,
+ "type": "edumed_wybor",
+ "description": ["Chcesz dowiedzieÄ siÄ, co sklep internetowy robi z Twoimi danymi osobowymi. Gdzie szukasz tej informacji?"],
+ "options": [
+ {"id": 1, "text": "w zakÅadce âO nasâ"},
+ {"id": 2, "text": "w zakÅadce âTwój profilâ"},
+ {"id": 3, "text": "w âPolityce prywatnoÅciâ"},
+ {"id": 4, "text": "w âRegulaminie zakupówâ"}
+ ],
+ "answer": [3],
+ "points": 1
+},
+
+{
+ "id": 14,
+ "type": "edumed_wybor",
+ "description": ["Jak należy oznaczyÄ zdjÄcie ÅciÄ
gniÄte z Wikipedii, które chcesz opublikowaÄ na swoim blogu?"],
+ "options": [
+ {"id": 1, "text": "Należy podaÄ informacjÄ, że zdjÄcie pochodzi z internetu (źródÅo: internet)."},
+ {"id": 2, "text": "Należy podaÄ nazwisko/pseudonim autorki lub autora."},
+ {"id": 3, "text": "Należy podaÄ informacje o licencji, na której opublikowane jest zdjÄcie."},
+ {"id": 4, "text": "Należy podaÄ link do strony, z której ÅciÄ
gniÄto zdjÄcie."}
+ ],
+ "answer": [2,3,4],
+ "answer_mode": "all_or_nothing",
+ "points": 1
+},
+
+{
+ "id": 15,
+ "type": "edumed_wybor",
+ "description": ["Na ostatniej imprezie karaoke zrobiÅaÅ/eÅ Åwietne zdjÄcie swojej koleżanki ÅpiewajÄ
cej przeboje Abby. Wiesz, że pewnie nie bÄdzie siÄ jej podobaÄ, ale chcesz, żeby jak najwiÄcej osób zapamiÄtaÅo ten wieczór. Co robisz?"],
+ "options": [
+ {"id": 1, "text": "wysyÅasz zdjÄcie do wszystkich uczestników imprezy mailem"},
+ {"id": 2, "text": "wrzucasz zdjÄcie na swój publiczny profil w portalu spoÅecznoÅciowym, a potem informujesz o tym koleżankÄ"},
+ {"id": 3, "text": "pytasz koleżankÄ, czy zgadza siÄ na publikacjÄ zdjÄcia, a potem udostÄpniasz je tylko osobom, które byÅy na imprezie"},
+ {"id": 4, "text": "wrzucasz zdjÄcie na swojego bloga, ale zamazujesz twarz koleżanki"}
+ ],
+ "answer": [3],
+ "points": 1
+},
+
+{
+ "id": 16,
+ "type": "edumed_wybor",
+ "description": ["Twój starszy brat chce podczas imprezy urodzinowej w Sopocie puszczaÄ ze znajomymi tzw. chiÅskie lampiony. Jakie zezwolenie jest mu potrzebne?"],
+ "options": [
+ {"id": 1, "text": "zezwolenie PaÅstwowej Straży Pożarnej"},
+ {"id": 2, "text": "zezwolenie Polskiej Agencji Żeglugi Powietrznej"},
+ {"id": 3, "text": "zezwolenie UrzÄdu Miasta"},
+ {"id": 4, "text": "zezwolenie Sanepidu"}
+ ],
+ "answer": [2],
+ "open_part": ["Co wpisaÅeÅ/aÅ w okno wyszukiwarki, żeby znaleÅºÄ tÄ informacjÄ?"],
+ "max_points": 2
+},
+
+{
+ "id": 17,
+ "type": "edumed_wybor",
+ "description": ["Na pulpicie Twojego komputera wyÅwietla siÄ taki komunikat. Komputer faktycznie zostaje zablokowany. Co robisz?",
+ ""
+ ],
+ "options": [
+ {"id": 1, "text": "pokazujesz komunikat rodzicom/opiekunom"},
+ {"id": 2, "text": "sprawdzasz prawdziwoÅÄ zawartych w komunikacie informacji, np. wymienionych artykuÅów prawnych"},
+ {"id": 3, "text": "dokonujesz zalecanej pÅatnoÅci"},
+ {"id": 4, "text": "sprawdzasz w wyszukiwarce internetowej (z telefonu komórkowego lub innego komputera) co należy zrobiÄ w takiej sytuacji"},
+ {"id": 5, "text": "restartujesz komputer"},
+ {"id": 6, "text": "podejrzewasz, że może to byÄ wirus komputerowy i zgÅaszasz to osobie kompetentnej, np. informatykowi"}
+ ],
+ "answer": [1,2,4,6],
+ "points_per_hit": 0.5
+},
+
+{
+ "id": 18,
+ "type": "edumed_przyporzadkuj",
+ "hide_default_instruction": 1,
+ "description": ["Wyobraź sobie, że poniższe zdjÄcia przedstawiajÄ
Twój wizerunek. Jak i gdzie można je wykorzystaÄ? PoÅÄ
cz w pary zdjÄcia i miejsca ich publikacji."],
+ "buckets": [
+ {"id": 1, "title": "dostÄpny dla wszystkich album ze zdjÄciami na towarzyskim portalu spoÅecznoÅciowym"},
+ {"id": 2, "title": "dostÄpny tylko dla najbliższych znajomych album ze zdjÄciami na towarzyskim portalu spoÅecznoÅciowym"},
+ {"id": 3, "title": "avatar na forum dotyczÄ
cym pracy w bankowoÅci"},
+ {"id": 4, "title": "formularz rekrutacyjny na wakacyjnÄ
wymianÄ mÅodzieży"},
+ {"id": 5, "title": "nie publikujÄ tego zdjÄcia w sieci"}
+
+ ],
+ "buckets_name": "miejsca",
+ "items": [
+ {"id": 1, "text": "1", "href_absolute": 1, "href": "http://www.flickr.com/photos/kk/5443214980/sizes/s/in/photostream/", "img": "przyp/1.jpg"},
+ {"id": 2, "text": "2", "href_absolute": 1, "href": "http://www.flickr.com/photos/keithusc/2799394010/sizes/s/in/photostream/","img": "przyp/2.jpg"},
+ {"id": 3, "text": "3", "href_absolute": 1, "href": "http://www.flickr.com/photos/mike-burns/7459087/sizes/s/in/photostream/","img": "przyp/3.jpg"},
+ {"id": 4, "text": "4", "href_absolute": 1, "href": "http://www.flickr.com/photos/76029035@N02/6829334723/sizes/s/in/photostream/","img": "przyp/4.jpg"},
+ {"id": 5, "text": "5", "href_absolute": 1, "href": "http://www.flickr.com/photos/84502900@N00/3502014745", "img": "przyp/5.jpg"}
+ ],
+ "items_name": "zdjÄcia",
+ "items_instruction": "PrzeciÄ
gnij numery zdjÄÄ do odpowiednich szarych poÅ powyżej",
+ "items_inline": 1,
+ "description_after": ["(Wszystkie użyte zdjÄcia dostÄpne na CC-BY-SA - źródÅa/autorzy dostÄpni po klikniÄciu w obrazek)"],
+ "points_per_hit": 0.5,
+ "answer_mode": "possible_buckets_for_item",
+ "answer": {
+ "1": [1,2,3,4],
+ "2": [5],
+ "3": [2,5],
+ "4": [1,2,3,4],
+ "5": [1,2]
+ }
+},
+
+{
+ "id": 19,
+ "type": "edumed_wybor",
+ "description": ["Jaki jest symbol klasyfikacji bibliotecznej najnowszego wydania ksiÄ
żki âEkonomia w jednej lekcjiâ autorstwa Henryâego Hazlitta w zbiorach Biblioteki Uniwersyteckiej w Warszawie?"],
+ "options": [
+ {"id": 1, "text": "HG229 .H39165 2007"},
+ {"id": 2, "text": "1151471"},
+ {"id": 3, "text": "PS3515.A96 T56165 2011"},
+ {"id": 4, "text": "HB171 .H445165 2012"}
+ ],
+ "answer": [4],
+ "points": 1
+},
+
+{
+ "id": 20,
+ "type": "edumed_prawdafalsz",
+ "description": ["Oznacz poniższe zdania jako prawdziwe lub faÅszywe."],
+ "statements": [
+ ["Telewizja TVN finansowana jest ze Årodków pochodzÄ
cych z abonamentu radiowo - telewizyjnego.", false],
+ ["Polskie Radio nie może nadawaÄ Å¼adnych reklam.", false],
+ ["TVP Historia należy do mediów publicznych.", true],
+ ["TVP Kultura nie jest nastawiona na zysk.", true],
+ ["Radiowa Czwórka jest stacjÄ
komercyjnÄ
.", false],
+ ["DziaÅalnoÅÄ mediów publicznych ma charakter misyjny.", true]
+ ],
+ "points_per_hit": 0.5
+},
+
+{
+ "id": 21,
+ "type": "open",
+ "description": ["Przygotuj komunikat na podstawie podanych niżej wiadomoÅci w formie:"],
+ "fields": [
+ {"caption": "1. oficjalnego zaproszenia wysyÅanego mailem", "id": 1},
+ {"caption": "2. sms-a do znajomych, maksymalnie 140 znaków", "id": 2, "max_length": 140, "rows": 2, "input_id": "wtem_sms"},
+ {"caption": "3. informacji prasowej do lokalnej gazety", "id": 3}
+ ],
+ "description_after": [
+ "Twój przyjaciel â Krzysztof GawroÅski, znany w Årodowisku jako Gawron â jest gitarzystÄ
i wokalistÄ
w zespole rockowo-metalowym âThe Urban Jungleâ. 22 stycznia br. o 19. odbÄdzie siÄ koncert zespoÅu w Domu Kultury Miejskiej przy ul. Wielebskiego 3 w KrÄtowie. ZespóŠzagra m.in. covery Metallicy, Black Sabbath, ale też wÅasne utwory. Bilety majÄ
byÄ w cenie 15 zÅ. Oprócz Krzysztofa w zespole grajÄ
także MichaÅ Kordowski na gitarze basowej i Tomasz Bielewski na perkusji. Ostatnio miaÅeÅ okazjÄ siÄ z nimi spotkaÄ i porozmawiaÄ o ich twórczoÅci. PlanujÄ
wystÄp w programie âMust be the musicâ, a wczeÅniej maÅÄ
trasÄ koncertowÄ
po powiecie beÅżeckim, odwiedzajÄ
c â oprócz KrÄtowa â BeÅżec, Wielkie GÅazy i Niechorzów. Gawron zwierzyÅ Ci siÄ, że napisaÅ 2 nowe utwory, które po raz pierwszy zostanÄ
zaprezentowane na koncercie 22 stycznia. JeÅli uda im siÄ zebraÄ pieniÄ
dze (ok. 15 tys. zÅ) chcÄ
zaczÄ
Ä nagrywanie swojej pierwsze pÅyty."
+ ],
+ "max_points": 9
+},
+
+{
+ "id": 22,
+ "type": "file_upload",
+ "description": [
+ "Na podstawie poniższego fragmentu tekstu przygotuj 1 slajd prezentacji przeznaczonej dla uczniów 2 klasy szkoÅy podstawowej. Wykorzystaj też zdjÄcie dostÄpne w interencie, które jest udostÄpnione na licencji umożliwiajÄ
cej jego dalsze przetwarzanie i rozpowszechnianie.",
+ "Zapisz przygotowany slajd na dysku swojego komputera, a nastÄpnie, korzystajÄ
c z poniższego przycisku zaÅÄ
cz go do zadania"
+ ],
+ "description_after": [
+ "Puszcza BiaÅowieska â kompleks leÅny poÅożony na terenie Polski i BiaÅorusi, odznaczajÄ
cy siÄ dużymi walorami przyrodniczymi i historycznymi. W Puszczy BiaÅowieskiej zachowaÅy siÄ ostatnie fragmenty lasu o charakterze pierwotnym. Tutaj mieszka najwiÄksza populacja wolnego żubra na Åwiecie.",
+ "Puszcza BiaÅowieska leży w strefie klimatu umiarkowanego przejÅciowego, stosunkowo chÅodnego i z dominacjÄ
wpÅywów kontynentalnych w zwiÄ
zku z czym w pewnych klasyfikacjach bywa on okreÅlany jako klimat leÅny subkontynentalny strefy umiarkowanie chÅodnej.",
+ "WedÅug danych z BiaÅowieskiego Parku Narodowego Årednia roczna temperatura powietrza w latach 1955-2001 wynosiÅa 6,8 °C. Odnotowane temperatury mieÅciÅy siÄ w zakresie od +34,5 °C do â38,7 °C (rekord zimna w 1950 r.).",
+ "Årednia iloÅÄ opadów wynosi 633 mm na rok, z czego wiÄkszoÅÄ w sezonie wegetacyjnym który wzglÄdem Polski zachodniej jest krótszy o miesiÄ
c i trwa 205 dni. Zima natomiast jest dÅuga, z pokrywÄ
ÅnieżnÄ
utrzymujÄ
cÄ
siÄ Årednio ponad 92 dni.",
+ "Na terenie Puszczy biaÅowieskiej żyje 58 gatunków ssaków co stanowi ponad 70 procent fauny niżowej Polski w obrÄbie tej grupy. Z poÅród wystÄpujÄ
cych tu gatunków 33 podlegajÄ
w Polsce ochronie prawnej, a 12 figuruje w Polskiej Czerwonej KsiÄdze ZwierzÄ
t.",
+ "Å»ródÅo: Puszcza BiaÅowieska, http//pl.wikipedia.org/w/index.php?title=Puszcza_Bia%C5%82owieska&oldid=37917751 (dostÄp 18.11.2013), CC BY-SA"
+ ],
+ "max_points": 9,
+ "max_file_size_string": "5 megabajtów"
+}
+
+]
\ No newline at end of file
diff --git a/wtem/management/commands/wtem_generate_keys.py b/wtem/management/commands/wtem_generate_keys.py
index 8a14ff9..19b9582 100644
--- a/wtem/management/commands/wtem_generate_keys.py
+++ b/wtem/management/commands/wtem_generate_keys.py
@@ -6,11 +6,15 @@ from wtem.models import Submission
class Command(BaseCommand):
- def handle(self, *args, **options):
+ def handle(self, *ids, **options):
new = 0
skipped = 0
- for wtem_contact in Contact.objects.filter(form_tag = 'wtem').order_by('-created_at'):
+ query = Contact.objects.filter(form_tag = 'wtem').order_by('-created_at')
+ if ids:
+ query = query.filter(pk__in=ids)
+
+ for wtem_contact in query:
for student in wtem_contact.body['student']:
if not Submission.objects.filter(email = student['email']).exists():
args = dict()
diff --git a/wtem/static/wtem/edumed.coffee b/wtem/static/wtem/edumed.coffee
index 6d96fb8..ae7aea9 100644
--- a/wtem/static/wtem/edumed.coffee
+++ b/wtem/static/wtem/edumed.coffee
@@ -417,7 +417,7 @@ class Przyporzadkuj extends Exercise
draggable_accept: ($draggable, $droppable) ->
dropped = $droppable.closest("ul, ol").find(".draggable")
- return (super $draggable, $droppable)
+ return (super $draggable, $droppable) && dropped.length == 0
check_question: (question) ->
# subjects placed in predicates
diff --git a/wtem/static/wtem/edumed.js b/wtem/static/wtem/edumed.js
index f44654d..940ca54 100644
--- a/wtem/static/wtem/edumed.js
+++ b/wtem/static/wtem/edumed.js
@@ -546,7 +546,7 @@
Przyporzadkuj.prototype.draggable_accept = function($draggable, $droppable) {
var dropped;
dropped = $droppable.closest("ul, ol").find(".draggable");
- return (Przyporzadkuj.__super__.draggable_accept.call(this, $draggable, $droppable));
+ return (Przyporzadkuj.__super__.draggable_accept.call(this, $draggable, $droppable)) && dropped.length === 0;
};
Przyporzadkuj.prototype.check_question = function(question) {
diff --git a/wtem/templates/wtem/main.html b/wtem/templates/wtem/main.html
index 4fc756b..e338ad4 100644
--- a/wtem/templates/wtem/main.html
+++ b/wtem/templates/wtem/main.html
@@ -1,6 +1,7 @@
{% extends 'base_super.html' %}
{% load compressed %}
{% load static %}
+{% load cache %}
{% block extra_script %}
{% compressed_js 'wtem' %}
@@ -41,28 +42,30 @@
Wielki Turniej Edukacji Medialnej
-RozwiÄ
zania można wysyÅaÄ do godziny {{end_time|default:"17.00"}}. Nie czekaj na ostatniÄ
chwilÄ!
+RozwiÄ
zania można wysyÅaÄ do godziny {{end_time|default:"18.00"}}. Nie czekaj na ostatniÄ
chwilÄ!
-Witamy w I etapie Wielkiego Turnieju Edukacji Medialnej. Na rozwiÄ
zanie zadaÅ masz czas do godz. {{end_time|default:"17.00"}}. Test skÅada siÄ z 22 pytaÅ. Dwa ostatnie majÄ
charakter otwarty - pamiÄtaj, żeby zostawiÄ sobie odpowiedniÄ
iloÅÄ czasu na ich rozwiÄ
zanie.
+Witamy w I etapie Wielkiego Turnieju Edukacji Medialnej. Na rozwiÄ
zanie zadaÅ masz czas do godz. {{end_time|default:"18.00"}}. Test skÅada siÄ z 21 pytaÅ. Niektóre z nich majÄ
charakter otwarty - pamiÄtaj, żeby zostawiÄ sobie odpowiedniÄ
iloÅÄ czasu na ich rozwiÄ
zanie.
Wszelkie aktualnoÅci dotyczÄ
ce Turnieju możesz znaleÅºÄ na edukacjamedialna.edu.pl/wtem.
-Powodzenia!
+
Powodzenia!
ZespóŠEdukacji Medialnej, Fundacja Nowoczesna Polska
-RozwiÄ
zania można wysyÅaÄ do godziny {{end_time|default:"17.00"}}. Nie czekaj na ostatniÄ
chwilÄ!
+RozwiÄ
zania można wysyÅaÄ do godziny {{end_time|default:"18.00"}}. Nie czekaj na ostatniÄ
chwilÄ!
diff --git a/wtem/views.py b/wtem/views.py
index 38a4985..fbef888 100644
--- a/wtem/views.py
+++ b/wtem/views.py
@@ -4,6 +4,7 @@ from django.shortcuts import render
from django.utils import simplejson
from django.conf import settings
from django.http import Http404, HttpResponseForbidden
+from django.views.decorators.cache import never_cache
from django.views.decorators.csrf import csrf_exempt
from .models import Submission, DEBUG_KEY, exercises
@@ -27,11 +28,12 @@ def form_before(request, key):
def form_after(request, key):
return render(request, 'wtem/main_after.html')
+@never_cache
@csrf_exempt
def form_during(request, key):
if WTEM_CONTEST_STAGE != 'during':
- if request.META['REMOTE_ADDR'] != getattr(settings, 'WTEM_CONTEST_IP_ALLOW', 'xxx'):
+ if request.META['REMOTE_ADDR'] not in getattr(settings, 'WTEM_CONTEST_IP_ALLOW', []):
return HttpResponseForbidden('Not allowed')
try:
--
2.20.1