X-Git-Url: https://git.mdrn.pl/edumed.git/blobdiff_plain/696b09a80ea8d02f0a9894215f449d70f1c91f73..b1e1600ec1a45327a4bb2e0a1104a17ec5f9a187:/edumed/contact_forms.py?ds=sidebyside diff --git a/edumed/contact_forms.py b/edumed/contact_forms.py index f19d591..29f25b4 100644 --- a/edumed/contact_forms.py +++ b/edumed/contact_forms.py @@ -649,3 +649,292 @@ class CybernauciAnkietaForm(ContactForm): pyt14 = textarea_field( u'14. W jaki sposób na co dzieÅ dbasz o swój rozwój jako trenera/trenerki, ' u'osoby prowadzÄ cej warsztaty czy inne formy szkoleniowe?') + + +def quiz_question(label, choices): + return forms.TypedChoiceField(label=label, choices=choices, coerce=int, widget=forms.RadioSelect) + + +def make_link(text, url): + return u'%s' % (url, text) + + +class SciezkiKopernikaTestForm(ContactForm): + def __init__(self, *args, **kwargs): + super(SciezkiKopernikaTestForm, self).__init__(*args, **kwargs) + self.label_suffix = '' + + result_page = True + form_tag = 'sciezki-kopernika-test' + form_title = u'Test' + submit_label = u'WyÅlij' + + contact = forms.EmailField(label=u'Adres e-mail, na który przyÅlemy informacjÄ o wynikach') + pyt1 = quiz_question( + label=u'1) Na stronie portalu internetowego opublikowano wpis o treÅci ' + u'âNie wszyscy muzuÅmanie to terroryÅci, ale wszyscy terroryÅci to muzuÅmanieâ. ' + u'Komentarz podlega moderacji i powinien:', + choices=[ + (1, u'zostaÄ zachowany, ponieważ jest prywatnÄ opiniÄ korzystajÄ cÄ z wolnoÅci sÅowa,'), + (0, u'zostaÄ zachowany, ponieważ informuje o fakcie,'), + (2, u'zostaÄ usuniÄty, ponieważ jest wprowadzajÄ cÄ w bÅÄ d interpretacjÄ faktów.'), + ]) + pyt2 = quiz_question( + label=u'2) Aby przygotowaÄ podcast, należy posiadaÄ przynajmniej:', + choices=[ + (0, u'póÅprofesjonalny mikrofon radiowy, z wbudowanym interfejsem dźwiÄkowym, ' + u'komercyjne oprogramowanie typu DAW, Årednio-zaawansowane umiejÄtnoÅci cyfrowej obróbki dźwiÄku,'), + (1, u'urzÄ dzenie do nagrywania dźwiÄku, laptop, oprogramowanie dedykowane do tworzenia podcastów,'), + (2, u'urzÄ dzenie do nagrywania dźwiÄku, podstawowe oprogramowanie do edycji dźwiÄku, ' + u'podstawowe umiejÄtnoÅci cyfrowej obróbki dźwiÄku.')]) + pyt3 = quiz_question( + label=u'3) Muzeum cyfrowe chce udostÄpniÄ skan XIV-wiecznego kodeksu. ' + u'Zgodnym z ideÄ domeny publicznej sposobem jego udostÄpnienia bÄdzie:', + choices=[ + (0, u'udostÄpnienie go na licencji Creative Commons,'), + (2, u'udostÄpnienie go bez licencji z czytelnym wskazaniem praw do dowolnego wykorzystania,'), + (1, u'udostÄpnienie go w pliku jakoÅci produkcyjnej.')]) + pyt4 = quiz_question( + label=u'4) Aby uniknÄ Ä możliwoÅci podejrzenia przez niepowoÅane osoby, jakie strony internetowe ' + u'odwiedzaÅeÅ ostatnio, powinieneÅ/powinnaÅ:', + choices=[ + (0, u'ustawiÄ opcjÄ otwierania nowej sesji przeglÄ darki bez wyÅwietlania ostatnio używanych kart ' + u'oraz regularnie czyÅciÄ historiÄ wyszukiwania,'), + (2, u'wylogowywaÄ siÄ lub blokowaÄ ekran za każdym razem, kiedy odchodzisz od komputera, tabletu ' + u'lub odkÅadasz gdzieÅ telefon, regularnie czyÅciÄ dane zgromadzone przez przeglÄ darkÄ internetowÄ ,'), + (1, u'wylogowywaÄ siÄ lub blokowaÄ ekran za każdym razem, kiedy odchodzisz od komputera, tabletu ' + u'lub odkÅadasz gdzieÅ telefon, regularnie czyÅciÄ historiÄ przeglÄ danych stron.')]) + pyt5 = quiz_question( + label=u'5) Komentarz opublikowany w internecie ma takÄ samÄ wartoÅÄ bez wzglÄdu na to, ' + u'czy jest anonimowy czy podpisany imieniem i nazwiskiem:', + choices=[ + (0, u'tak, ze wzglÄdu na zasadÄ wolnoÅci sÅowa,'), + (2, u'to zależy od jego treÅci i kontekstu, w którym go opublikowano,'), + (1, u'tak, z punktu widzenia odpowiedzialnoÅci prawnej. [poprawna]')]) + pyt6 = quiz_question( + label=u'6) Wraz z grupÄ Â osób zamierzasz przygotowaÄ cyfrowÄ opowieÅÄ (narracjÄ) na temat wspóÅczesnych ' + u'nastolatków i ich stosunku do szkoÅy. Å»eby praca byÅa efektywna, a jej rezultat efektowny, warto ' + u'zorganizowaÄ wspólnÄ pracÄ w nastÄpujÄ cych krokach:', + choices=[ + (2, u'przeprowadziÄ wspólnÄ dyskusjÄ odnoÅnie tematu opowieÅci, wybraÄ jeden, ustaliÄ, co należy zrobiÄ, ' + u'podzieliÄ zadania w grupie i przygotowaÄ scenariusz narracji (opisaÄ poszczególne sceny, co siÄ ' + u'w nich znajdzie, co bÄdzie potrzebne do ich przygotowania),'), + (0, u'zgromadziÄ jak najwiÄcej materiaÅów wideo i zdjÄÄ, wybraÄ oprogramowanie do obróbki wideo i wspólnie ' + u'decydowaÄ o kolejnoÅci scen i zawartoÅci opowieÅci,'), + (1, u'wybraÄ temat opowieÅci, zgromadziÄ jak najwiÄcej filmików i zdjÄÄ, podzieliÄ siÄ zadaniami w grupie, ' + u'zmontowaÄ narracjÄ z czÄÅci przygotowanych przez uczestników zespoÅu.')]) + pyt7 = quiz_question( + label=u'7) Firma telekomunikacyjna wykorzystuje boty do automatycznego odpowiadania na pytania klientów ' + u'zadawane przez Facebooka. Boty zwracajÄ siÄ do wszystkich po imieniu. Kiedy użytkownik, który nie ' + u'życzy sobie tego nie życzy, wyraża swoje niezadowolenie z takiej formy rozmowy, firma:', + choices=[ + (2, u'przeprosiÄ użytkownika, szanujÄ c preferowane przez niego reguÅy komunikacji,'), + (0, u'zignorowaÄ użytkownika odwoÅujÄ c siÄ do zasad netykiety,'), + (1, u'zareagowaÄ zgodnie z wypracowanymi wewnÄtrznie zasadami komunikacji.')]) + pyt8 = quiz_question( + label=u'8) JesteÅ czÅonkiem/czÅonkiniÄ grupy, która przygotowuje aplikacjÄ, majÄ cÄ Â uÅatwiÄ osobom ' + u'niepeÅnosprawnym poruszanie siÄ po Twojej miejscowoÅci. Oprogramowanie bÄdzie m.in. informowaÄ, ' + u'czy przy okreÅlonej instytucji, firmie, sklepie, znajdujÄ siÄ miejsca parkingowe ' + u'dla niepeÅnosprawnych i ile ich jest. Aby aplikacja dziaÅaÅa prawidÅowo, powinieneÅ/powinnaÅ:', + choices=[ + (1, u'przygotowaÄ listÄ najważniejszych obiektów w Twoim mieÅcie i skontaktowaÄ siÄ z ich administracjÄ , ' + u'pytajÄ c o liczbÄ miejsc parkingowych,'), + (0, u'poszukaÄ informacji o dostÄpnych miejscach parkingowych na stronach instytucji, firm i sklepów,'), + (2, u'skontaktowaÄ siÄ z administracjÄ obiektów, o których bÄdzie informowaÄ aplikacja, udaÄ siÄ również ' + u'do tych obiektów, aby potwierdziÄ iloÅÄ dostÄpnych miejsc, spróbowaÄ zgromadziÄ informacje o tym, ' + u'jak czÄsto miejsca parkingowe sÄ Â zajmowane przez ludzi peÅnosprawnych.')]) + pyt9 = quiz_question( + label=u'9) PojÄcie âniewidzialnej pracyâ może dotyczyÄ:', + choices=[ + (2, u'moderatorów mediów spoÅecznoÅciowych zatrudnianych w krajach o niskich kosztach pracy, [najlepsze]'), + (1, u'użytkowników serwisów spoÅecznoÅciowych publikujÄ cych codziennie i bez wynagrodzenia wÅasne ' + u'materiaÅy w tym serwisie, [dobre]'), + (0, u'informatyków budujÄ cych rozwiÄ zania IT dla firm. [zÅe]')]) + + pyt10 = quiz_question( + label=u'10) Możesz uważaÄ, że informacje, do których docierasz, sÄ wiarygodne, ponieważ:', + choices=[ + (1, u'pojawiajÄ siÄ w wielu telewizyjnych serwisach informacyjnych, na profilach spoÅecznoÅciowych ' + u'moich znajomych i w różnorodnych internetowych serwisach informacyjnych, wszÄdzie przedstawiane ' + u'sÄ w podobny sposób,'), + (2, u'pojawiajÄ siÄ w wielu serwisach informacyjnych, na profilach moich znajomych, zawierajÄ odnoÅniki ' + u'do oryginalnych źródeÅ, do których można dotrzeÄ,'), + (0, u'pojawiajÄ siÄ na profilach wielu moich znajomych w serwisach spoÅecznoÅciowych i ' + u'w kilku internetowych serwisach informacyjnych.')]) + pyt11 = quiz_question( + label=u'11) W pewnym mieÅcie prokuratura bada umowy z wykonawcami projektów budżetu obywatelskiego. ' + u'Nikomu, jak dotÄ d, nie postawiono zarzutów. Która postaÄ tytuÅu newsa opublikowanego ' + u'na lokalnym portalu internetowym bÄdzie najbardziej zgodna z zasadami etyki dziennikarskiej?', + choices=[ + (1, u'âBudżet obywatelski: niejasne umowy z wykonawcami?â,'), + (2, u'âProkuratura zbada umowy z wykonawcami projektów budżetu obywatelskiego.â,'), + (0, u'âZobacz, które firmy mogÅy obÅowiÄ siÄ na projektach budżetu obywatelskiego!â.')]) + pyt12 = quiz_question( + label=u'12) DoÅÄ czyÅeÅ/-aÅ do grupy, która zbiera informacje o problemach dotyczÄ cych mÅodych ludzi ' + u'w Twojej okolicy. Zamierzacie zaprezentowaÄ zgromadzone informacje w interesujÄ cy sposób, ' + u'tak by zainteresowaÄ lokalne media, sÅużby miejskie, zwykÅych obywateli i waszych rówieÅników. ' + u'Grupa nie ma możliwoÅci regularnego spotykania siÄ, dlatego wybraliÅcie pracÄ wyÅÄ cznie ' + u'przez internet. Który zestaw narzÄdzi pozwoli wam na jak najlepszÄ , wspólnÄ pracÄ?', + choices=[ + (0, u'mail grupowy, komunikator tekstowy (np. Messenger), oprogramowanie do tworzenia podcastów, ' + u'stacjonarne narzÄdzie do tworzenia prezentacji (np. Power Point),'), + (1, u'mail grupowy, komunikator tekstowy zespoÅu (np. Slack), narzÄdzie do kolektywnego tworzenia ' + u'map myÅli (np. Coggle), blog redagowany przez wszystkich uczestników projektu, aplikacja do ' + u'synchronizowania plików w chmurze (np. Dropbox), narzÄdzie do grupowej komunikacji za pomocÄ wideo ' + u'(dyskusyjna) (np. Skype),'), + (2, u'aplikacja do zarzÄ dzania zadaniami zespoÅu i terminami do wykonania (np. Wunderlist), ' + u'narzÄdzie do tworzenia kolektywnych notatek (np. OneNote) lub wspólnej pracy z tekstem ' + u'(np. EtherPad, Google Dokumenty), grupa w serwisie spoÅecznoÅciowym lub tekstowy komunikator ' + u'zespoÅu (np. Messenger lub Slack), narzÄdzia do gromadzenia lub prezentowania materiaÅów ' + u'(np. wspólny blog, kanaÅ w serwisie spoÅecznoÅciowym).')]) + pyt13 = quiz_question( + label=u'13) Poniżej podano wybrane cechy hasÅa opublikowanego w Wikipedii. ' + u'Która z nich jest najbardziej pomocna przy analizie jakoÅci hasÅa?', + choices=[ + (0, u'liczba edycji hasÅa,'), + (1, u'dÅugoÅÄ i struktura hasÅa,'), + (2, u'obecnoÅÄ i jakoÅÄ przypisów.')]) + pyt14 = quiz_question( + label=u'14) Na przeglÄ danej stronie internetowej znalazÅeÅ/-aÅ interesujÄ cÄ grafikÄ, którÄ chciaÅ(a)byÅ ' + u'wykorzystaÄ przygotowywanej cyfrowej narracji. Nie jest ona jednak podpisana. Co robisz?', + choices=[ + (0, u'podpisujÄ grafikÄ adresem strony, na której jÄ Â znalazÅem/-am,'), + (1, u'korzystam z opcji wyszukiwania obrazem w wyszukiwarce grafiki, chcÄ c znaleÅºÄ inne strony, ' + u'gdzie pojawiÅa siÄ grafika,'), + (2, u'korzystam z opcji wyszukiwania obrazem, a jeÅli to siÄ nie powiedzie, skontaktujÄ siÄ ' + u'z administratorem strony, na której znalazÅem/-am grafikÄ, pytajÄ c o autora; przeglÄ dam także ' + u'informacje o stronie, szukajÄ c ewentualnych informacji o zasadach publikacji treÅci; byÄ może ' + u'autor informuje, że wszystkie grafiki sÄ jego autorstwa.')]) + pyt15 = quiz_question( + label=mark_safe( + u'15) W nieistniejÄ cym jÄzyku programowania TEST dana jest funkcja zapisana w nastÄpujÄ cy sposób:' + u'
funkcja f(a) { wyÅwietl a + b;
'
+ u'}
' + u'https://commons.wikimedia.org/wiki/File:Engl-Bürgerkrieg.JPG
' + u'Najbardziej użytecznym dla użytkowników przeszukujÄ cych stronÄ zestawem sÅów kluczowych ' + u'opisujÄ cych ten obiekt bÄdzie:'), + choices=[ + (2, u'Anglia, wojna domowa, karykatura, propaganda,'), + (0, u'komiks, Åmiech, Anglicy, Wielka Brytania, psy,'), + (1, u'Angielska Wojna Domowa 1642-1651, propaganda.')]) + pyt18 = quiz_question( + label=u'18) Podczas wycieczki szkolnej zrobiÅeÅ sporo zdjÄÄ znajomym, w różnych sytuacjach. ' + u'Masz również dostÄp do wielu fotografii, które przygotowali twoi koledzy i koleżanki. ' + u'Zamierzasz niektóre z nich zamieÅciÄ na swoim kanale w serwisie spoÅecznoÅciowym. Możesz opublikowaÄ:', + choices=[ + (0, u'zdjÄcia prezentujÄ ce selfie (o ile nie przedstawiajÄ wiÄcej niż dwóch osób), ' + u'zdjÄcia grupy podczas zwiedzania, zdjÄcia, które ktoÅ zrobiÅ tobie na tle zwiedzanych obiektów, ' + u'zdjÄcia, na których ludzie siÄ uÅmiechajÄ i cieszÄ , że robisz im zdjÄcie,'), + (1, u'zdjÄcia prezentujÄ ce selfie (ale tylko twoje), zdjÄcia pokazujÄ ce w oddali grupÄ na tle ' + u'zwiedzanych obiektów, zdjÄcia, zdjÄcia na których widaÄ tylko ciebie, na tle zwiedzanych obiektów,'), + (2, u'zdjÄcia prezentujÄ ce selfie (na których jesteÅ ty, ale również inne osoby, które potwierdziÅy, ' + u'że możesz opublikowaÄ fotografie), zdjÄcia na których widaÄ tylko ciebie ' + u'i masz zgodÄ na ich publikacjÄ od osoby, która wykonaÅa fotografiÄ, ' + u'wykonane przez ciebie zdjÄcia zwiedzanych obiektów.')]) + pyt19 = quiz_question( + label=u'19) KorzystajÄ c z sieci, natrafiamy na różne interesujÄ ce informacje. ' + u'PojawiajÄ siÄ w wielu serwisach informacyjnych, spoÅecznoÅciowych, w postaci reklam ' + u'doÅÄ czanych do materiaÅów wideo, reklam zamieszczonych w tekstach itp. ' + u'Na co warto zwracaÄ uwagÄ, podczas codziennego korzystania z mediów, ' + u'żeby efektywnie wykorzystaÄ czas spÄdzony w internecie?', + choices=[ + (1, u'zaplanowaÄ czas spÄdzany na korzystaniu z mediów i staraÄ siÄ trzymaÄ swojego planu, ' + u'nie unikasz jednak nagÅych rozmów przez komunikator, oglÄ dania postów, ' + u'zdjÄÄ i filmików dodawanych przez znajomych,'), + (0, u'zaplanowaÄ, co bÄdziesz robiÅ(a), ale traktujesz to jako ramÄ dziaÅania, wiesz, ' + u'że po drodze pojawi siÄ wiele interesujÄ cych informacji, z których skorzystasz,'), + (2, u'zaplanowaÄ czas spÄdzany na korzystaniu z mediów i rejestrowaÄ, co, ' + u'kiedy i przez ile czasu robisz, np. instalujÄ c aplikacjÄ do mierzenia czasu spÄdzanego w sieci. ' + u'NastÄpnie analizujesz zebrane informacje i starasz siÄ okreÅliÄ, co robisz zbyt czÄsto ' + u'i jakie rzeczy odciÄ gajÄ TwojÄ uwagÄ od tych zaplanowanych.')]) + pyt20 = quiz_question( + label=u'20) BlokujÄ ca reklamy wtyczka do przeglÄ darki dziaÅa w nastÄpujÄ cy sposób:', + choices=[ + (0, u'analizuje treÅÄ tekstów oraz obrazków i blokuje te, które zawierajÄ reklamy,'), + (1, u'blokuje wyÅwietlanie plików reklam zanim wyÅwietli je przeglÄ darka,'), + (2, u'blokuje komunikacjÄ przeglÄ darki z serwerami publikujÄ cymi reklamy.')]) + + ANSWER_COMMENTS = [ + (u'dobrze', u'źle', u'najlepiej'), + (u'Årednio', u'gÅupio', u'super'), + (u'sÅabo', u'beznadziejnie', u'ujdzie'), + (u'trója', u'paÅa', u'szóstka'), + (u'dobrze', u'źle', u'najlepiej'), + (u'Årednio', u'gÅupio', u'super'), + (u'sÅabo', u'beznadziejnie', u'ujdzie'), + (u'trója', u'paÅa', u'szóstka'), + (u'dobrze', u'źle', u'najlepiej'), + (u'Årednio', u'gÅupio', u'super'), + (u'sÅabo', u'beznadziejnie', u'ujdzie'), + (u'trója', u'paÅa', u'szóstka'), + (u'dobrze', u'źle', u'najlepiej'), + (u'Årednio', u'gÅupio', u'super'), + (u'sÅabo', u'beznadziejnie', u'ujdzie'), + (u'trója', u'paÅa', u'szóstka'), + (u'dobrze', u'źle', u'najlepiej'), + (u'Årednio', u'gÅupio', u'super'), + (u'sÅabo', u'beznadziejnie', u'ujdzie'), + (u'trója', u'paÅa', u'szóstka'), + ] + + @classmethod + def results(cls, contact): + fields = cls().fields + + def get_idx(choices, answer): + return dict((score, i) for i, (score, text) in enumerate(choices))[answer] + + def question_data(i): + field = 'pyt%s' % i + choices = fields[field].choices + score = contact.body[field] + chosen_idx = get_idx(choices, score) + correct_idx = get_idx(choices, 2) + return { + 'score': score, + 'chosen_idx': chosen_idx, + 'correct_idx': correct_idx, + 'chosen': 'abc'[chosen_idx], + 'correct': 'abc'[correct_idx], + 'label': fields[field].label, + 'comment': cls.ANSWER_COMMENTS[i-1][chosen_idx], + 'answers': [(text, a_score == score, a_score == 2) for a_score, text in choices], + } + question_count = len(fields) - 1 + questions = [question_data(i) for i in xrange(1, question_count + 1)] + points = sum(question['score'] for question in questions) + return {'questions': questions, 'points': points/2., 'total': question_count}