2b2ac7e3c97fcb39f3a17082445aa72f4a5dfcdd
[edumed.git] / edumed / contact_forms.py
1 # -*- coding: utf-8 -*-
2 import re
3
4 from django import forms
5 from django.forms.formsets import BaseFormSet
6 from django.utils.safestring import mark_safe
7 from markdown2 import Markdown
8
9 from contact.fields import HeaderField
10 from contact.forms import ContactForm
11 from django.core.mail import send_mail
12 from django.core.exceptions import ValidationError
13 from django.core.validators import validate_email
14 from django.template.loader import render_to_string
15 from django.utils.translation import ugettext_lazy as _
16
17 LINK_PATTERNS = [
18     (re.compile(r'((http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,;@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)'),
19      r'\1')
20 ]
21
22 markdown = Markdown(extras=["link-patterns", 'code-friendly'], link_patterns=LINK_PATTERNS)
23
24 WOJEWODZTWA = (
25     u'dolnośląskie',
26     u'kujawsko-pomorskie',
27     u'lubelskie',
28     u'lubuskie',
29     u'łódzkie',
30     u'małopolskie',
31     u'mazowieckie',
32     u'opolskie',
33     u'podkarpackie',
34     u'podlaskie',
35     u'pomorskie',
36     u'śląskie',
37     u'świętokrzyskie',
38     u'warmińsko-mazurskie',
39     u'wielkopolskie',
40     u'zachodniopomorskie',
41 )
42
43 WOJEWODZTWO_CHOICES = [(u'', u'(wybierz)')] + [(w, w) for w in WOJEWODZTWA]
44
45
46 class RegistrationForm(ContactForm):
47     form_tag = 'sugestie'
48     form_title = u"Zgłoś sugestię"
49     admin_list = ['podpis', 'contact', 'temat']
50
51     contact = forms.EmailField(label=u'E-mail', max_length=128, required=False)
52     podpis = forms.CharField(label=u'Podpis', max_length=128, required=False)
53     temat = forms.CharField(label=u'Temat zgłoszenia', max_length=255)
54     tresc = forms.CharField(label=u'Treść', widget=forms.Textarea, max_length=1800)
55
56
57 class CooperateForm(ContactForm):
58     form_tag = 'wspolpraca'
59     form_title = u"Bądź z nami w kontakcie"
60     admin_list = ['podpis', 'contact']
61
62     podpis = forms.CharField(label=u'Imię i nazwisko', max_length=128)
63     contact = forms.EmailField(label=u'E-mail', max_length=128)
64     instytucja = forms.CharField(
65         label=u'Instytucja (nazwa, adres)', widget=forms.Textarea, max_length=1000, required=False)
66     uwagi = forms.CharField(label=u'Uwagi', widget=forms.Textarea, max_length=1800, required=False)
67         
68     zajecia_przedszkole = forms.BooleanField(label=u'Prowadzę zajęcia z dziećmi w wieku przedszkolnym', required=False)
69     zajecia_sp13 = forms.BooleanField(label=u'Prowadzę zajęcia z dziećmi z SP kl. 1-3', required=False)
70     zajecia_sp46 = forms.BooleanField(label=u'Prowadzę zajęcia z dziećmi z SP kl. 4-6', required=False)
71     zajecia_gimnazjum = forms.BooleanField(label=u'Prowadzę zajęcia z młodzieżą w wieku gimnazjalnym', required=False)
72     zajecia_ponadgimnazjalne = forms.BooleanField(
73         label=u'Prowadzę zajęcia z młodzieżą ze szkół ponadgimnazjalnych', required=False)
74     zajecia_wyzsze = forms.BooleanField(label=u'Prowadzę zajęcia w szkole wyższej', required=False)
75     zajecia_dorosli = forms.BooleanField(label=u'Prowadzę zajęcia dla dorosłych', required=False)
76     zajecia_seniorzy = forms.BooleanField(label=u'Prowadzę zajęcia dla seniorów', required=False)
77     zgoda_dane = forms.BooleanField(
78         label=u'Oświadczam, że wyrażam zgodę na przetwarzanie moich danych osobowych zawartych '
79               u'w niniejszym formularzu zgłoszeniowym przez Fundację Nowoczesna Polska '
80               u'(administratora danych) z siedzibą w Warszawie (00-514) przy ul. Marszałkowskiej 84/92 '
81               u'lok. 125 w celu otrzymywania newslettera Edukacja medialna. Jednocześnie oświadczam, '
82               u'że zostałam/em poinformowana/y o tym, że mam prawo wglądu w treść swoich danych '
83               u'i możliwość ich poprawiania oraz że ich podanie jest dobrowolne, ale niezbędne '
84               u'do dokonania zgłoszenia.')
85
86
87 class ContestForm(ContactForm):
88     form_tag = 'konkurs'
89     form_title = u"Zgłoś się do konkursu"
90     admin_list = ['nazwisko', 'instytucja', 'tytul']
91
92     nazwisko = forms.CharField(label=u'Imię i nazwisko', max_length=128)
93     contact = forms.EmailField(label=u'Adres e-mail', max_length=128)
94     instytucja = forms.CharField(label=u'Instytucja (nazwa, adres)', widget=forms.Textarea, max_length=1000)
95     tytul = forms.CharField(
96         label=u'Tytuł przeprowadzonej lekcji',
97         help_text=u'proszę wymienić wszystkie, jeśli zostały przeprowadzone więcej niż jedne zajęcia',
98         widget=forms.Textarea, max_length=1000)
99     uczestnicy = forms.CharField(label=u'Liczba uczestników', max_length=64)
100     trudnosci = forms.CharField(
101         label=u'Czy w trakcie zajęć pojawiły się jakieś trudności? Jeśli tak, to jakie?',
102         widget=forms.Textarea, max_length=2000)
103     pomocne = forms.CharField(
104         label=u'Co w materiałach okazało się najbardziej pomocne w przygotowaniu i prowadzeniu lekcji?',
105         widget=forms.Textarea, max_length=2000)
106     nieprzydatne = forms.CharField(
107         label=u'Co w materiałach okazało się nieprzydatne w przygotowaniu i prowadzeniu lekcji?',
108         widget=forms.Textarea, max_length=2000)
109     poprawic = forms.CharField(
110         label=u'Jak możemy poprawić serwis edukacjamedialna.edu.pl?',
111         widget=forms.Textarea, max_length=2000, required=False)
112     inne = forms.CharField(label=u'Inne uwagi i komentarze', widget=forms.Textarea, max_length=2000, required=False)
113     zgoda_regulamin = forms.BooleanField(
114         label=u'Znam i akceptuję regulamin konkursu Medialog.',
115         help_text=u'Zobacz <a href="/media/chunks/attachment/Regulamin_konkursu_MediaLog_1.pdf">'
116                   u'regulamin konkursu MediaLog</a>.')
117     zgoda_informacje = forms.BooleanField(
118         label=u'Wyrażam zgodę na otrzymywanie informacji od Fundacji Nowoczesna Polska związanych z edukacją medialną.',
119         required=False
120     )
121
122
123 class UdzialForm(ContactForm):
124     form_tag = 'udzial'
125     form_title = u"Udział"
126     admin_list = ['nazwisko', 'miejscowosc', 'instytucja']
127
128     nazwisko = forms.CharField(label=u'Imię i nazwisko', max_length=128)
129     miejscowosc = forms.CharField(label=u'Miejscowość', max_length=128)
130     instytucja = forms.CharField(label=u'Nazwa organizacji/instytucji', max_length=128)
131     contact = forms.EmailField(label=u'Adres e-mail', max_length=128)
132     telefon = forms.CharField(label=u'Telefon', max_length=32)
133     uczestnicy = forms.IntegerField(label=u'Przewidywana liczba uczestników zajęć')
134
135
136 class WTEMStudentForm(forms.Form):
137     first_name = forms.CharField(label=u'Imię', max_length=128)
138     last_name = forms.CharField(label=u'Nazwisko', max_length=128)
139     email = forms.EmailField(label=u'Adres e-mail', max_length=128)
140     form_tag = "student"
141
142
143 class NonEmptyBaseFormSet(BaseFormSet):
144     """
145     Won't allow formset_factory to be submitted with no forms
146     """
147     def clean(self):
148         for form in self.forms:
149             if form.cleaned_data:
150                 return
151         forms.ValidationError(u"Proszę podać dane przynajmniej jednej osoby.")
152
153
154 class WTEMForm(ContactForm):
155     disabled = True
156     disabled_template = 'wtem/disabled_contact_form.html'
157     form_tag = "wtem"
158     form_title = u"WTEM - rejestracja uczestników"
159     submit_label = u"Wyślij zgłoszenie"
160     admin_list = ['imie', 'nazwisko', 'institution']
161     form_formsets = {
162         'student': forms.formsets.formset_factory(
163             WTEMStudentForm, formset=NonEmptyBaseFormSet, max_num=5, validate_max=True, extra=5),
164     }
165
166     contact = forms.EmailField(label=u'Adres e-mail opiekuna/opiekunki', max_length=128)
167     imie = forms.CharField(label=u'Imię', max_length=128)
168     nazwisko = forms.CharField(label=u'Nazwisko', max_length=128)
169     function = forms.CharField(label=u'Pełniona funkcja', max_length=255)
170     institution = forms.CharField(label=u'Nazwa instytucji', max_length=255)
171     institution_address = forms.CharField(label=u'Adres instytucji', widget=forms.Textarea, max_length=1000)
172     institution_email = forms.EmailField(label=u'Adres e-mail instytucji', max_length=128)
173     institution_phone = forms.CharField(label=u'Telefon do instytucji', max_length=32)
174     institution_www = forms.URLField(label=u'Strona WWW instytucji', max_length=255, required=False)
175
176     zgoda_regulamin = forms.BooleanField(
177         label=u'Znam i akceptuję regulamin Wielkiego Turnieju Edukacji Medialnej.',
178         help_text=u'Zobacz <a href="/media/chunks/attachment/regulamin_III_edycja.pdf">'
179                   u'regulamin Wielkiego Turnieju Edukacji Medialnej</a>.'
180     )
181     zgoda_dane = forms.BooleanField(
182         label=u'Wyrażam zgodę na przetwarzanie moich danych osobowych oraz danych osobowych moich podopiecznych.',
183         # help_text=u'Zobacz <a href="/media/chunks/attachment/Oswiadczenie_o_danych_osobowych.pdf">'
184         # 'pełną treść oświadczenia</a>.'
185     )
186
187     potw_uczniowie = forms.BooleanField(
188         label=u'Potwierdzam, że zgłoszeni Uczestnicy/Uczestniczki w chwili rejestracji są '
189               u'uczniami/uczennicami szkoły ponadgimnazjalnej.',
190     )
191     zgoda_informacje = forms.BooleanField(
192         label=u'Wyrażam zgodę na otrzymywanie informacji od Fundacji Nowoczesna Polska '
193               u'związanych z edukacją medialną.',
194         required=False
195     )
196
197     extract_types = (dict(slug='extended', label=_('extended')),)
198
199     @staticmethod
200     def get_extract_fields(contact, extract_type_slug):
201         fields = contact.body.keys()
202         fields.pop(fields.index('student'))
203         fields.extend(['contact', 'student_first_name', 'student_last_name', 'student_email'])
204         return fields
205
206     @staticmethod
207     def get_extract_records(keys, contact, extract_type_slug):
208         toret = [dict()]
209         for field_name in keys:
210             if field_name.startswith('student_'):
211                 continue
212             if field_name == 'contact':
213                 val = contact.contact
214             else:
215                 val = contact.body[field_name]
216             toret[0][field_name] = val
217         
218         current = toret[0]
219         for student in contact.body['student']:
220             for attr in ('first_name', 'last_name', 'email'):
221                 current['student_' + attr] = student[attr]
222             if current not in toret:
223                 toret.append(current)
224             current = dict()
225         return toret
226
227     def save(self, request, formsets=None):
228         contact = super(WTEMForm, self).save(request, formsets)
229
230         mail_subject = render_to_string('contact/wtem/student_mail_subject.html').strip()
231         mail_body = render_to_string('contact/wtem/student_mail_body.html')
232         for formset in formsets or []:
233             for f in formset.forms:
234                 email = f.cleaned_data.get('email', None)
235                 try:
236                     validate_email(email)
237                 except ValidationError:
238                     pass
239                 else:
240                     send_mail(mail_subject, mail_body, 'edukacjamedialna@nowoczesnapolska.org.pl', [email],
241                               fail_silently=True)
242
243         return contact
244
245
246 class CommissionForm(forms.Form):
247     name = forms.CharField(label=u'Imię i nazwisko Członka Komisji', max_length=128)
248     form_tag = "commission"
249
250
251 class OlimpiadaForm(ContactForm):
252     disabled = True
253     disabled_template = 'wtem/disabled_contact_form.html'
254     form_tag = "olimpiada"
255     form_title = u"Olimpiada Cyfrowa - Elektroniczny System Zgłoszeń"
256     submit_label = u"Wyślij zgłoszenie"
257     admin_list = ['nazwisko', 'school']
258     form_formsets = {
259         'student': forms.formsets.formset_factory(WTEMStudentForm, formset=NonEmptyBaseFormSet),
260         'commission': forms.formsets.formset_factory(CommissionForm, formset=BaseFormSet),
261     }
262
263     contact = forms.EmailField(label=u'Adres e-mail Przewodniczącego/Przewodniczącej', max_length=128)
264     przewodniczacy = forms.CharField(label=u'Imię i nazwisko Przewodniczącego/Przewodniczącej', max_length=128)
265     school = forms.CharField(label=u'Nazwa szkoły', max_length=255)
266     school_address = forms.CharField(label=u'Adres szkoły', widget=forms.Textarea, max_length=1000)
267     school_email = forms.EmailField(label=u'Adres e-mail szkoły', max_length=128)
268     school_phone = forms.CharField(label=u'Numer telefonu szkoły', max_length=32)
269     school_www = forms.URLField(label=u'Strona WWW szkoły', max_length=255, required=False)
270
271     zgoda_regulamin = forms.BooleanField(
272         label=u'Znam i akceptuję Regulamin Olimpiady Cyfrowej.',
273         help_text=u'Zobacz <a href="https://olimpiadacyfrowa.pl/regulamin/" target="_blank">'
274                   u'regulamin Olimpiady Cyfrowej</a>.'
275     )
276     zgoda_dane = forms.BooleanField(
277         label=u'Oświadczam, że wyrażam zgodę na przetwarzanie danych osobowych zawartych w niniejszym formularzu '
278               u'zgłoszeniowym przez Fundację Nowoczesna Polska (administratora danych) z siedzibą w Warszawie (00-514) '
279               u'przy ul. Marszałkowskiej 84/92 lok. 125 na potrzeby organizacji Olimpiady Cyfrowej. Jednocześnie '
280               u'oświadczam, że zostałam/em poinformowana/y o tym, że mam prawo wglądu w treść swoich danych '
281               u'i możliwość ich poprawiania oraz że ich podanie jest dobrowolne, ale niezbędne do dokonania '
282               u'zgłoszenia.')
283
284     extract_types = (dict(slug='extended', label=_('extended')),)
285
286     @staticmethod
287     def get_extract_fields(contact, extract_type_slug):
288         fields = contact.body.keys()
289         if 'student' in fields:
290             fields.remove('student')
291         fields.extend(['contact', 'student_first_name', 'student_last_name', 'student_email'])
292         return fields
293
294     @staticmethod
295     def get_extract_records(keys, contact, extract_type_slug):
296         toret = [{}]
297         for field_name in keys:
298             if field_name.startswith('student_'):
299                 continue
300             if field_name == 'contact':
301                 val = contact.contact
302             else:
303                 val = contact.body[field_name]
304             toret[0][field_name] = val
305
306         current = toret[0]
307         if 'student' in contact.body:
308             for student in contact.body['student']:
309                 for attr in ('first_name', 'last_name', 'email'):
310                     current['student_' + attr] = student[attr]
311                 if current not in toret:
312                     toret.append(current)
313                 current = {}
314         return toret
315
316     def save(self, request, formsets=None):
317         contact = super(OlimpiadaForm, self).save(request, formsets)
318
319         mail_subject = render_to_string('contact/olimpiada/student_mail_subject.html').strip()
320         mail_body = render_to_string('contact/olimpiada/student_mail_body.html')
321         for formset in formsets or []:
322             if formset.prefix == 'student':
323                 for f in formset.forms:
324                     email = f.cleaned_data.get('email', None)
325                     try:
326                         validate_email(email)
327                     except ValidationError:
328                         pass
329                     else:
330                         send_mail(mail_subject, mail_body, 'edukacjamedialna@nowoczesnapolska.org.pl', [email],
331                                   fail_silently=True)
332
333         return contact
334
335
336 class MILForm(ContactForm):
337     form_tag = 'mil'
338     form_title = _('Share your thoughts on the "Media and information literacy competencies catalogue"')
339     submit_label = _('Submit')
340     base_template = 'base_mil.html'
341     site_name = site_domain = 'katalog.nowoczesnapolska.org.pl'
342
343     name = forms.CharField(label=_('Name and Surname'), max_length=255)
344     contact = forms.EmailField(label=_('E-mail'), max_length=255)
345
346     institution = forms.CharField(label=_('Institution'), widget=forms.Textarea, max_length=8192)
347
348     question_stages = forms.CharField(
349         label=_('What do you think about the proposed educational stages classification?'),
350         widget=forms.Textarea,
351         max_length=255,
352         required=False)
353
354     question_fields = forms.CharField(
355         label=_('What do you think about the proposed thematic fields?'),
356         widget=forms.Textarea,
357         max_length=255,
358         required=False)
359
360     question_left_out = forms.CharField(
361         label=_('What important areas of media and information literacy have been left out?'),
362         widget=forms.Textarea,
363         max_length=255,
364         required=False)
365
366     other = forms.CharField(
367         label=_('Other suggestions and comments'),
368         widget=forms.Textarea,
369         max_length=255,
370         required=False)
371
372
373 class TEMForm(ContactForm):
374     form_tag = 'tem'
375     form_title = u"TEM - szkolenie dla trenerów edukacji medialnej"
376     admin_list = ['imie', 'nazwisko', 'instytucja', 'contact']
377
378     imie = forms.CharField(label=u'Imię', max_length=128)
379     nazwisko = forms.CharField(label=u'Nazwisko', max_length=128)
380     contact = forms.EmailField(label=u'E-mail', max_length=128)
381     telefon = forms.CharField(label=u'Tel. kontaktowy', max_length=128)
382     instytucja = forms.CharField(label=u'Instytucja', max_length=256)
383     adres = forms.CharField(label=u'Adres', widget=forms.Textarea, max_length=1000)
384     stanowisko = forms.CharField(label=u'Stanowisko', max_length=256)
385     doswiadczenie = forms.CharField(
386         label=u'Jakie jest Pani/Pana doświadczenie w zakresie edukacji medialnej?',
387         widget=forms.Textarea, max_length=500, help_text=u'(max 500 znaków)')
388     dlaczego = forms.CharField(
389         label=u'Dlaczego chce Pani/Pan wziąć udział w szkoleniu?',
390         widget=forms.Textarea, max_length=500, help_text=u'(max 500 znaków)')
391     jak_wykorzystac = forms.CharField(
392         label=u'Jak zamierza Pan/Pani wykorzystać wiedzę zdobytą w czasie szkolenia?',
393         widget=forms.Textarea, max_length=500, help_text=u'(max 500 znaków)')
394
395     zajecia = forms.BooleanField(
396         label=u'W okresie wrzesień-październik 2015 r. przeprowadzę min. 2 godziny zajęć edukacji medialnej '
397               u'z wybraną grupą dzieci lub młodzieży.', required=True)
398     zgoda_informacje = forms.BooleanField(
399         label=u'Wyrażam zgodę na otrzymywanie informacji od Fundacji Nowoczesna Polska '
400               u'związanych z edukacją medialną.', required=False)
401
402
403 class SuperwizjaForm(ContactForm):
404     form_tag = 'superwizja'
405     form_title = u"Informacje o zajęciach"
406     admin_list = ['nazwisko', 'contact', 'skype', 'temat']
407     submit_label = u'Wyślij'
408
409     nazwisko = forms.CharField(label=u'Imię i nazwisko', max_length=1024)
410     contact = forms.CharField(label=u'E-mail kontaktowy', required=False)
411     skype = forms.CharField(label=u'Nazwa użytkownika Skype', max_length=255)
412     temat = forms.CharField(label=u'Temat zajęć', max_length=1024)
413     termin = forms.CharField(label=u'Termin zajęć', max_length=1024)
414     czas_trwania = forms.CharField(label=u'Czas trwania zajęć', max_length=1024)
415     miejsce = forms.CharField(label=u'Miejsce prowadzenia zajęć', max_length=1024)
416     rodzaj = forms.ChoiceField(
417         label=u'Rodzaj zajęć', widget=forms.RadioSelect,
418         choices=[('jednorazowe', 'jednorazowe'), ('w ramach cyklu', 'w ramach cyklu')])
419     cykl = forms.CharField(label=u'Jeśli w ramach cyklu, to podaj jego temat i czas trwania', required=False)
420     sposob = forms.ChoiceField(
421         label=u'Sposób prowadzenia zajęć', widget=forms.RadioSelect,
422         choices=[('samodzielnie', 'samodzielnie'), (u'z drugą osobą', 'z drugą osobą')])
423     wrazenia = forms.CharField(
424         label=u'Opisz Twoje ogólne wrażenia po warsztacie.', widget=forms.Textarea, max_length=4096)
425     opiekun = forms.CharField(
426         label=u'Czy opiekun grupy był obecny podczas zajęć? Jeśli tak, opisz krótko jego rolę.',
427         widget=forms.Textarea, max_length=4096)
428     grupa = forms.CharField(
429         label=u'Opisz krótko grupę uczestników zajęć (wiek, liczba osób, czy to pierwszy kontakt z grupą).',
430         widget=forms.Textarea, max_length=4096)
431     cel = forms.CharField(
432         label=u'Jaki był założony cel zajęć? Dlaczego wybrałaś/eś taki cel?', widget=forms.Textarea, max_length=4096)
433     ewaluacja = forms.CharField(
434         label=u'W jaki sposób sprawdziłeś/aś, czy cel zajęć został zrealizowany? Opisz krótko efekty zajęć.',
435         widget=forms.Textarea, max_length=4096)
436     # header
437     przygotowania = forms.CharField(
438         label=u'Opisz w punktach proces przygotowania się do zajęć.', widget=forms.Textarea, max_length=4096)
439     przygotowania_trudnosci = forms.CharField(
440         label=u'Co na etapie przygotowań sprawiło Ci największą trudność?', widget=forms.Textarea, max_length=4096)
441     przygotowania_pomoc = forms.CharField(
442         label=u'Co było pomocne w przygotowaniu zajęć? '
443               u'(Czy korzystałaś/eś z materiałów z serwisu edukacjamedialna.edu.pl? Jeśli tak, to jakich?)',
444         widget=forms.Textarea, max_length=4096)
445     narzedzia = forms.CharField(
446         label=u'Jakie narzędzie/a planowałaś/eś wykorzystać, a jakie wykorzystałaś/eś?',
447         widget=forms.Textarea, max_length=4096)
448     struktura = forms.CharField(
449         label=u'Opisz w punktach strukturę zajęć. '
450               u'Zaznacz ile czasu planowałaś/eś na każdą część, a ile czasu faktycznie Ci to zajęło.',
451         widget=forms.Textarea, max_length=4096)
452     prowadzenie_trudnosci = forms.CharField(
453         label=u'Co sprawiało Ci trudność w prowadzeniu zajęć?', widget=forms.Textarea, max_length=4096)
454     prowadzenie_pomoc = forms.CharField(
455         label=u'Co było pomocne w prowadzeniu zajęć?', widget=forms.Textarea, max_length=4096)
456     kontrakt = forms.CharField(
457         label=u'W jakiej formie został zawarty kontrakt z uczestnikami? Jakie zasady zostały przyjęte? '
458               u'Czy w trakcie zajęć Ty bądź uczestnicy odwoływaliście się do kontraktu?',
459         widget=forms.Textarea, max_length=4096)
460     trudne_sytuacje = forms.CharField(
461         label=u'Czy podczas zajęć miały miejsce tzw. „trudne sytuacje”. '
462               u'Jak na nie zareagowałaś/eś? Czy potrzebowałabyś/łbyś czegoś w związku z nimi?',
463         widget=forms.Textarea, max_length=4096)
464     informacje_zwrotne = forms.CharField(
465         label=u'Czy zbierałaś/eś informacje zwrotne od uczestników? Jeśli tak, na co zwrócili uwagę? '
466               u'W jaki sposób zbierałaś/eś informacje zwrotne?', widget=forms.Textarea, max_length=4096)
467
468     mocne_strony = forms.CharField(
469         label=u'Opisz w punktach mocne strony przeprowadzonych zajęć.', widget=forms.Textarea, max_length=4096)
470     zmiany = forms.CharField(
471         label=u'Opisz w punktach, co byś zmienił(a) na przyszłość.', widget=forms.Textarea, max_length=4096)
472     potrzeby = forms.CharField(
473         label=u'Czy potrzebowałbyś/łbyś czegoś przed następnymi zajęciami?', widget=forms.Textarea, max_length=4096)
474     uwagi = forms.CharField(label=u'Inne uwagi', widget=forms.Textarea, max_length=4096, required=False)
475
476
477 def textarea_field(label, max_length=500):
478     return forms.CharField(
479         label=label, widget=forms.Textarea, max_length=max_length, help_text=u'(do %s znaków)' % max_length)
480
481
482 class CybernauciForm(ContactForm):
483     disabled = True
484     disabled_template = 'contact/disabled_contact_form.html'
485     form_tag = 'trenerzy-cybernauci2017'
486     form_title = u"Cybernauci – szkolenie dla trenerów"
487     admin_list = ['nazwisko', 'instytucja', 'contact']
488     submit_label = u'Wyślij'
489
490     nazwisko = forms.CharField(label=u'Imię i nazwisko', max_length=1024)
491     adres = forms.CharField(label=u'Adres zamieszkania')
492     wojewodztwo = forms.ChoiceField(label=u'Województwo', choices=WOJEWODZTWO_CHOICES)
493     contact = forms.CharField(label=u'Adres e-mail')
494     telefon = forms.CharField(label=u'Telefon kontaktowy', max_length=32)
495     dlaczego = textarea_field(
496         label=u'Proszę opisać, dlaczego chce Pan/Pani zostać Emisariuszem Bezpiecznego Internetu.')
497     grupy = forms.MultipleChoiceField(
498         label=u'Proszę wskazać, dla których grup realizował Pan/realizowała Pani zajęcia warsztatowe',
499         widget=forms.CheckboxSelectMultiple,
500         choices=[
501             ('Uczniowie klas 1-3', 'Uczniowie klas 1-3'),
502             ('Uczniowie klas 4-6', 'Uczniowie klas 4-6'),
503             ('Uczniowie szkół gimnazjalnych', 'Uczniowie szkół gimnazjalnych'),
504             ('Uczniowie szkół ponadgimnazjalnych', 'Uczniowie szkół ponadgimnazjalnych'),
505             ('Nauczyciele', 'Nauczyciele'),
506             ('Rodzice', 'Rodzice'),
507         ])
508     doswiadczenie_grupy = textarea_field(
509         label=u'Proszę opisać swoje doświadczenie w pracy warsztatowej z grupami docelowymi Projektu '
510               u'(dziećmi, młodzieżą, osobami dorosłymi: nauczycielami, rodzicami).',
511         max_length=750)
512     doswiadczenie_edumed = textarea_field(
513         label=u'Jakie jest Pana/Pani doświadczenie w zakresie edukacji medialnej, '
514               u'zwłaszcza w zakresie bezpieczeństwa w Internecie i korzystania z TIK? '
515               u'Skąd czerpie Pan/Pani wiedzę w tym zakresie? W jakich projektach brał '
516               u'Pan/brała Pani udział dotychczas?',
517         max_length=750)
518     szkolenia = textarea_field(
519         label=u'Proszę wymienić studia, szkolenia albo kursy (maks. 5 najważniejszych) '
520               u'powiązane z tematyką Projektu, w których Pan/Pani uczestniczył/ła, '
521               u'w tym dane na temat instytucji czy osoby prowadzącej (z JEDNOZDANIOWYM '
522               u'omówieniem i terminami, w których się odbyły).')
523     realizacje = textarea_field(
524         label=u'Proszę opisać swoje doświadczenie w zakresie realizacji działań w lokalnym środowisku '
525               u'szkolnym (np. na terenie gminy/powiatu/województwa).')
526     cel = textarea_field(
527         label=u'Proszę opisać, jaką wiedzę i umiejętności chce Pan/Pani zdobyć '
528               u'lub doskonalić poprzez uczestnictwo w Szkoleniu trenerskim.')
529     skad = forms.CharField(label=u'Skąd dowiedział/dowiedziała się Pan/Pani o projekcie „Cybernauci”?')
530     zgoda_regulamin = forms.BooleanField(
531         label=u'Oświadczam, że zapoznałem/zapoznałam się z Regulaminem Rekrutacji '
532               u'i Uczestnictwa w Projekcie „Cybernauci – kompleksowy projekt '
533               u'kształtowania bezpiecznych zachowań w sieci” i akceptuję jego warunki.',
534         help_text=u'Zobacz <a href="https://cybernauci.edu.pl/wp-content/uploads/2017/04/'
535                   u'regulamin_Cybernauci_szkolenie_trenerskie_2017.pdf">regulamin</a>.')
536     zgoda_dane = forms.BooleanField(
537         label=u'Wyrażam zgodę na przetwarzanie moich danych osobowych zawartych '
538               u'w niniejszym dokumencie dla potrzeb niezbędnych do realizacji Projektu '
539               u'„Cybernauci – kompleksowy projekt kształtowania bezpiecznych zachowań '
540               u'w sieci”  zgodnie z ustawą z dnia 29.08.1997 roku o Ochronie Danych '
541               u'Osobowych (Dz. U. z 2002 r. Nr 101, poz. 926 z późniejszymi zmianami).')
542     zgoda_niekaralnosc = forms.BooleanField(
543         label=u'W przypadku zakwalifikowania się na kurs zobowiązuję się '
544               u'do dostarczenia świadectwa o niekaralności – najpóźniej w dniu rozpoczęcia Szkolenia.')
545     zgoda_newsletter = forms.BooleanField(
546         required=False,
547         label=u'Chcę otrzymywać newsletter Edukacja Medialna.')
548     cv = forms.FileField(
549         label=u'Wgraj plik CV.',
550         help_text=u'Prosimy o nazwanie pliku swoim imieniem i nazwiskiem. Preferowany format: PDF.')
551
552
553 class WLEMForm(ContactForm):
554     disabled = True
555     form_tag = 'wlem'
556     form_title = u"WLEM - szkolenie dla warszawskich liderów edukacji medialnej"
557     admin_list = ['nazwisko', 'instytucja', 'contact']
558     submit_label = u'Wyślij'
559
560     nazwisko = forms.CharField(label=u'Imię i nazwisko', max_length=128)
561     contact = forms.CharField(label=u'Adres e-mail')
562     telefon = forms.CharField(label=u'Tel. kontaktowy', max_length=32)
563     instytucja = forms.CharField(label=u'Instytucja', max_length=128)
564     instytucja_adres = forms.CharField(label=u'Adres (instytucji)', max_length=1024)
565     stanowisko = forms.CharField(label=u'Stanowisko', max_length=256)
566     doswiadczenie = forms.CharField(
567         label=u'Jakie jest Pani/Pana doświadczenie w zakresie edukacji medialnej?',
568         widget=forms.Textarea, max_length=4096)
569     dlaczego = forms.CharField(
570         label=u'Dlaczego chce Pani/Pan wziąć udział w szkoleniu?',
571         widget=forms.Textarea, max_length=4096)
572     cel = forms.CharField(
573         label=u'Jaką wiedzę i umiejętności chce Pan/Pani zdobyć lub doskonalić poprzez uczestnictwo w szkoleniu?',
574         widget=forms.Textarea, max_length=4096)
575     jak_wykorzystac = forms.CharField(
576         label=u'Jak zamierza Pan/Pani wykorzystać wiedzę i umiejętności zdobyte w czasie szkolenia?',
577         widget=forms.Textarea, max_length=4096)
578     zgoda_zajecia = forms.BooleanField(
579         label=u'W okresie lipiec-październik 2016 r. przeprowadzę min. 2 godziny zajęć '
580               u'edukacji medialnej z grupą warszawiaków.')
581     zgoda_dane = forms.BooleanField(
582         label=u'Wyrażam zgodę na przetwarzanie moich danych osobowych zawartych '
583               u'w niniejszym dokumencie dla potrzeb niezbędnych do realizacji Projektu '
584               u'„Warszawscy Liderzy Edukacji Medialnej” zgodnie z ustawą z dnia 29.08.1997 '
585               u'roku o Ochronie Danych Osobowych (Dz. U. z 2002 r. Nr 101, poz. 926 '
586               u'z późniejszymi zmianami).')
587     zgoda_newsletter = forms.BooleanField(
588         required=False,
589         label=u'Wyrażam zgodę na otrzymywanie informacji od Fundacji Nowoczesna Polska '
590               u'związanych z edukacją medialną.')
591
592
593 def ordered_textarea_field(start, pre_label=u'', label=u'', max_length=500):
594     return textarea_field(
595         mark_safe(u'%s<ol type="a" start="%s"><li>%s</li></ol>' % (pre_label, start, label)),
596         max_length=max_length)
597
598
599 def simple_choices(*choices):
600     return tuple((choice, choice) for choice in choices)
601
602
603 class CybernauciAnkietaForm(ContactForm):
604     def __init__(self, *args, **kwargs):
605         super(CybernauciAnkietaForm, self).__init__(*args, **kwargs)
606         self.label_suffix = ''
607
608     form_tag = 'cybernauci-ankieta-trenera-2017'
609     form_title = u"Cybernauci – ankieta trenerska"
610     nazwisko = forms.CharField(label=u'Imię i nazwisko', max_length=128)
611     contact = forms.CharField(label=u'Adres e-mail')
612     pyt1a = ordered_textarea_field(
613         1, pre_label=u'1. W kontekście planowanego szkolenia jakie są Twoje oczekiwania w zakresie:',
614         label=u'przekazywanej wiedzy')
615     pyt1b = ordered_textarea_field(2, label=u'tematyki szkoleń z bezpieczeństwa w sieci')
616     pyt1c = ordered_textarea_field(3, label=u'materiałów dydaktycznych')
617     pyt1d = ordered_textarea_field(4, label=u'organizacji  i prowadzenia szkoleń w projekcie')
618     pyt1e = ordered_textarea_field(5, label=u'umiejętności trenerskich')
619     pyt1f = ordered_textarea_field(6, label=u'inne, jakie?')
620     pyt2 = textarea_field(u'2. W których tematach z obszaru bezpieczeństwa w sieci czujesz się najpewniej? '
621                           u'Dlaczego?')
622     pyt3 = textarea_field(u'3. Które z tematów znasz słabej lub których nie znasz zupełnie?')
623     pyt4 = textarea_field(u'4. Jakie są Twoje mocne strony jako osoby prowadzącej warsztaty?')
624     pyt5 = textarea_field(u'5. Nad jakimi elementami pracy trenerskiej chciałbyś/chciałabyś popracować?')
625     pyt6 = textarea_field(u'6. Co jest dla Ciebie najważniejsze w pracy z grupą? '
626                           u'Na co zwracasz uwagę w tym obszarze jako osoba prowadząca warsztaty?')
627     pyt7 = textarea_field(
628         u'7. Jakie są Twoje największe obawy wobec realizacji szkoleń w placówkach oświatowych?')
629     pyt8a = ordered_textarea_field(
630         1, pre_label=u'8. Opisz szczegółowo doświadczenie z różnymi grupami:', label=u'rodzice')
631     pyt8b = ordered_textarea_field(2, label=u'nauczyciele')
632     pyt8c = ordered_textarea_field(3, label=u'młodzież ponadgimnazjalna')
633     pyt8d = ordered_textarea_field(4, label=u'młodzież gimnazjalna')
634     pyt8e = ordered_textarea_field(5, label=u'dzieci i młodzież szkół podstawowych')
635     pyt9 = textarea_field(
636         u'9. Z jakimi grupami wiekowymi najlepiej Ci się współpracuje? '
637         u'Umiejętności w zakresie pracy z którą grupą najbardziej chciałabyś/chciałbyś zdobyć/doskonalić?')
638     pyt10 = textarea_field(
639         u'10. W jaki sposób na co dzień dbasz o swój rozwój jako trenera/trenerki, '
640         u'osoby prowadzącej warsztaty czy inne formy szkoleniowe?')
641     pyt11 = textarea_field(u'11. Jakie są Twoje potrzeby żywieniowe?')
642     pyt12 = forms.ChoiceField(
643         label=u'12. Jak przyjedziesz do Wilgi?',
644         widget=forms.RadioSelect,
645         choices=simple_choices(
646             u'publiczna komunikacja do/z Warszawy (i wesoły bus do/z Wilgi)',
647             u'publiczna komunikacja do/z Wilgi',
648             u'samochód prywatny'))
649
650
651 class SciezkiKopernikaForm(ContactForm):
652     form_tag = 'sciezki-kopernika'
653     form_title = u'Formularz zgłoszeniowy na warsztaty'
654     disabled = True
655
656     nazwisko = forms.CharField(label=u'Imię i nazwisko uczestnika/uczestniczki', max_length=128)
657     rok_urodzenia = forms.IntegerField(label=u'Rok urodzenia')
658     adres_dom = forms.CharField(label=u'Adres zamieszkania – ulica i numer', max_length=128)
659     adres_poczta = forms.CharField(label=u'Adres zamieszkania – kod pocztowy i miejscowość', max_length=128)
660     contact = forms.EmailField(label=u'Adres e-mail')
661     szkola = forms.CharField(label=u'Nazwa szkoły', max_length=128)
662     adres_szkola = forms.CharField(label=u'Adres szkoły – ulica i numer', max_length=128)
663     poczta_szkola = forms.CharField(label=u'Adres szkoły – kod pocztowy i miejscowość', max_length=128)
664     opiekun = forms.CharField(label=u'Imię i nazwisko rodzica/opiekuna', max_length=128)
665     adres_opiekun = forms.CharField(label=u'Adres zamieszkania rodzica/opiekuna – ulica i numer', max_length=128)
666     poczta_opiekun = forms.CharField(
667         label=u'Adres zamieszkania rodzica/opiekuna – kod pocztowy i miejscowość', max_length=128)
668     telefon_opiekun = forms.CharField(label=u'Numer telefonu rodzica/opiekuna', max_length=32)
669     email_opiekun = forms.EmailField(label=u'Adres e-mail rodzica/opiekuna', max_length=32)
670     specjalne_potrzeby = forms.ChoiceField(
671         label=u'Czy uczestnik/uczestniczka ma specjalne potrzeby wynikające z niepełnosprawności', required=True,
672         choices=[('tak', 'tak'), ('nie', 'nie')], widget=forms.RadioSelect)
673     zgoda_regulamin = forms.BooleanField(
674         label=mark_safe(
675             u'Oświadczam, że zapoznałem/am się z <a href="/media/chunks/attachment/Regulamin.pdf" target="_blank">'
676             u'Regulaminem udziału w projekcie</a> '
677             u'i spełniam kryteria kwalifikowalności do udziału w projekcie.'))
678
679
680 def quiz_question(label, choices):
681     return forms.TypedChoiceField(label=label, choices=choices, coerce=int, widget=forms.RadioSelect)
682
683
684 def make_link(text, url):
685     return u'<a href="%s">%s</a>' % (url, text)
686
687
688 ODMOWA_CHOICES = [
689     ('nie', u'Nie'),
690     ('tak', u'Tak'),
691     ('odmowa', u'Odmowa odpowiedzi'),
692 ]
693
694 YESNO_CHOICES = [
695     ('nie', u'Nie'),
696     ('tak', u'Tak'),
697 ]
698
699
700 class SciezkiKopernikaTestForm(ContactForm):
701     def __init__(self, *args, **kwargs):
702         super(SciezkiKopernikaTestForm, self).__init__(*args, **kwargs)
703         self.label_suffix = ''
704
705     result_page = True
706     form_tag = 'sciezki-kopernika-test'
707     form_title = u'Test wiedzy w zakresie edukacji medialnej i cyfrowej'
708     submit_label = u'Wyślij'
709
710     pyt1 = quiz_question(
711         label=u'1. Na stronie portalu internetowego pod jednym z artykułów opublikowano komentarz o treści '
712               u'„Nie wszyscy muzułmanie to terroryści, ale wszyscy terroryści to muzułmanie”. '
713               u'Komentarz podlega moderacji i powinien:',
714         choices=[
715             (1, u'zostać zachowany, ponieważ jest prywatną opinią korzystającą z wolności słowa,'),
716             (0, u'zostać zachowany, ponieważ informuje o fakcie,'),
717             (2, u'zostać usunięty, ponieważ jest wprowadzającą w błąd interpretacją faktów.'),
718         ])
719     pyt2 = quiz_question(
720         label=u'2. Aby przygotować podcast, należy posiadać przynajmniej:',
721         choices=[
722             (0, u'półprofesjonalny mikrofon radiowy, z wbudowanym interfejsem dźwiękowym, '
723                 u'komercyjne oprogramowanie typu DAW, średnio-zaawansowane umiejętności cyfrowej obróbki dźwięku,'),
724             (1, u'urządzenie do nagrywania dźwięku, laptop, oprogramowanie dedykowane do tworzenia podcastów,'),
725             (2, u'urządzenie do nagrywania dźwięku, podstawowe oprogramowanie do edycji dźwięku, '
726                 u'podstawowe umiejętności cyfrowej obróbki dźwięku.')])
727     pyt3 = quiz_question(
728         label=u'3. Muzeum cyfrowe chce udostępnić skan XIV-wiecznego kodeksu. '
729               u'Zgodnym z ideą domeny publicznej sposobem jego udostępnienia będzie:',
730         choices=[
731             (0, u'udostępnienie go na licencji Creative Commons,'),
732             (2, u'udostępnienie go bez licencji z czytelnym wskazaniem praw do dowolnego wykorzystania,'),
733             (1, u'udostępnienie go w pliku jakości produkcyjnej.')])
734     pyt4 = quiz_question(
735         label=u'4. Aby uniknąć możliwości podejrzenia przez niepowołane osoby, jakie strony internetowe '
736               u'odwiedzałaś/eś ostatnio, powinieneś/powinnaś:',
737         choices=[
738             (0, u'ustawić opcję otwierania nowej sesji przeglądarki bez wyświetlania ostatnio używanych kart '
739                 u'oraz regularnie czyścić historię wyszukiwania,'),
740             (2, u'wylogowywać się lub blokować ekran za każdym razem, kiedy odchodzisz od komputera, tabletu '
741                 u'lub odkładasz gdzieś telefon, regularnie czyścić dane zgromadzone przez przeglądarkę internetową,'),
742             (1, u'wylogowywać się lub blokować ekran za każdym razem, kiedy odchodzisz od komputera, tabletu '
743                 u'lub odkładasz gdzieś telefon, regularnie czyścić historię przeglądanych stron.')])
744     pyt5 = quiz_question(
745         label=u'5. Komentarz opublikowany w Internecie ma taką samą wartość bez względu na to, '
746               u'czy jest anonimowy czy podpisany imieniem i nazwiskiem:',
747         choices=[
748             (0, u'tak, ze względu na zasadę wolności słowa,'),
749             (2, u'to zależy od jego treści i kontekstu, w którym go opublikowano,'),
750             (1, u'tak, z punktu widzenia odpowiedzialności prawnej.')])
751     pyt6 = quiz_question(
752         label=u'6. Wraz z grupą osób zamierzasz przygotować cyfrową opowieść (narrację) na temat współczesnych '
753               u'nastolatków i ich stosunku do szkoły. Żeby praca była efektywna, a jej rezultat efektowny, warto '
754               u'zorganizować wspólną pracę w następujących krokach:',
755         choices=[
756             (2, u'przeprowadzić wspólną dyskusję odnośnie możliwych tematów opowieści, wybrać jeden, ustalić, '
757                 u'co należy zrobić, podzielić zadania w grupie i przygotować scenariusz narracji '
758                 u'(opisać poszczególne sceny, co się w nich znajdzie, co będzie potrzebne do ich przygotowania),'),
759             (0, u'zgromadzić jak najwięcej materiałów wideo i zdjęć, wybrać oprogramowanie do obróbki wideo i wspólnie '
760                 u'decydować o kolejności scen i zawartości opowieści,'),
761             (1, u'wybrać temat opowieści, zgromadzić jak najwięcej filmików i zdjęć, podzielić się zadaniami w grupie, '
762                 u'zmontować narrację z części przygotowanych przez uczestników zespołu.')])
763     pyt7 = quiz_question(
764         label=u'7. Firma telekomunikacyjna wykorzystuje boty do automatycznego odpowiadania na pytania klientów '
765               u'zadawane w serwisie społecznościowym. Boty zwracają się do wszystkich po imieniu. Kiedy użytkownik, '
766               u'który sobie tego nie życzy, wyraża swoje niezadowolenie z takiej formy rozmowy, firma powinna:',
767         choices=[
768             (2, u'przeprosić użytkownika, szanując preferowane przez niego reguły komunikacji,'),
769             (0, u'zignorować użytkownika odwołując się do zasad netykiety,'),
770             (1, u'zareagować zgodnie z wypracowanymi wewnętrznie zasadami komunikacji.')])
771     pyt8 = quiz_question(
772         label=u'8. Jesteś członkiem/członkinią grupy, która przygotowuje aplikację mającą ułatwić osobom '
773               u'z niepełnosprawnościami poruszanie się po Twojej miejscowości. Oprogramowanie będzie m.in. informować, '
774               u'czy przy określonej instytucji, firmie, sklepie, znajdują się miejsca parkingowe dla osób '
775               u'z niepełnosprawnościami i ile ich jest. Aby aplikacja działała prawidłowo, powinieneś/powinnaś:',
776         choices=[
777             (1, u'przygotować listę najważniejszych obiektów w Twoim mieście i skontaktować się z ich administracją, '
778                 u'pytając o liczbę miejsc parkingowych,'),
779             (0, u'poszukać informacji o dostępnych miejscach parkingowych na stronach instytucji, firm i sklepów,'),
780             (2, u'skontaktować się z administracją obiektów, o których będzie informować aplikacja, udać się również '
781                 u'do tych obiektów, aby potwierdzić ilość dostępnych miejsc, spróbować zgromadzić informacje o tym, '
782                 u'jak często miejsca parkingowe są zajmowane przez ludzi pełnosprawnych.')])
783     pyt9 = quiz_question(
784         label=u'9. Pojęcie „niewidzialnej pracy” może dotyczyć:',
785         choices=[
786             (2, u'moderatorów mediów społecznościowych zatrudnianych w krajach o niskich kosztach pracy,'),
787             (1, u'użytkowników serwisów społecznościowych publikujących codziennie i bez wynagrodzenia własne '
788                 u'materiały w tym serwisie,'),
789             (0, u'informatyków budujących rozwiązania IT dla firm.')])
790
791     pyt10 = quiz_question(
792         label=u'10. Możesz uważać, że informacje, do których docierasz, są wiarygodne, ponieważ:',
793         choices=[
794             (1, u'pojawiają się w wielu telewizyjnych serwisach informacyjnych, na profilach społecznościowych '
795                 u'moich znajomych i w różnorodnych internetowych serwisach informacyjnych, wszędzie przedstawiane '
796                 u'są w podobny sposób,'),
797             (2, u'pojawiają się w wielu serwisach informacyjnych, na profilach moich znajomych, zawierają odnośniki '
798                 u'do oryginalnych źródeł, do których można dotrzeć,'),
799             (0, u'pojawiają się na profilach wielu moich znajomych w serwisach społecznościowych i '
800                 u'w kilku internetowych serwisach informacyjnych.')])
801     pyt11 = quiz_question(
802         label=u'11. W pewnym mieście prokuratura bada umowy z wykonawcami projektów budżetu obywatelskiego. '
803               u'Nikomu, jak dotąd, nie postawiono zarzutów. Która postać tytułu newsa opublikowanego '
804               u'na lokalnym portalu internetowym będzie najbardziej zgodna z zasadami etyki dziennikarskiej?',
805         choices=[
806             (1, u'„Budżet obywatelski: niejasne umowy z wykonawcami?”,'),
807             (2, u'„Prokuratura zbada umowy z wykonawcami projektów budżetu obywatelskiego.”,'),
808             (0, u'„Zobacz, które firmy mogły obłowić się na projektach budżetu obywatelskiego!”.')])
809     pyt12 = quiz_question(
810         label=u'12. Dołączyłeś/aś do grupy, która zbiera informacje o problemach dotyczących młodych ludzi '
811               u'w Twojej okolicy. Zamierzacie zaprezentować zgromadzone informacje w interesujący sposób, '
812               u'tak by zainteresować lokalne media, służby miejskie, zwykłych obywateli i Waszych rówieśników. '
813               u'Grupa nie ma możliwości regularnego spotykania się, dlatego wybraliście pracę wyłącznie '
814               u'przez Internet. Który zestaw narzędzi pozwoli Wam na jak najlepszą, wspólną pracę?',
815         choices=[
816             (0, u'mail grupowy, komunikator tekstowy (np. Messenger), oprogramowanie do tworzenia podcastów, '
817                 u'stacjonarne narzędzie do tworzenia prezentacji (np. Power Point),'),
818             (1, u'mail grupowy, komunikator tekstowy zespołu (np. Slack), narzędzie do kolektywnego tworzenia '
819                 u'map myśli (np. Coggle), blog redagowany przez wszystkich uczestników projektu, aplikacja do '
820                 u'synchronizowania plików w chmurze (np. Dropbox), narzędzie do grupowej komunikacji za pomocą wideo '
821                 u'(np. Skype),'),
822             (2, u'aplikacja do zarządzania zadaniami zespołu i terminami do wykonania (np. Wunderlist), '
823                 u'narzędzie do tworzenia kolektywnych notatek (np. OneNote) lub wspólnej pracy z tekstem '
824                 u'(np. EtherPad, Google Dokumenty), grupa w serwisie społecznościowym lub tekstowy komunikator '
825                 u'zespołu (np. Messenger lub Slack), narzędzia do gromadzenia lub prezentowania materiałów '
826                 u'(np. wspólny blog, kanał w serwisie społecznościowym).')])
827     pyt13 = quiz_question(
828         label=u'13. Poniżej podano wybrane cechy hasła opublikowanego w Wikipedii. '
829               u'Która z nich jest najbardziej pomocna przy analizie jakości hasła?',
830         choices=[
831             (0, u'liczba edycji hasła,'),
832             (1, u'długość i struktura hasła,'),
833             (2, u'obecność i jakość przypisów.')])
834     pyt14 = quiz_question(
835         label=u'14. Na przeglądanej stronie internetowej znalazłeś/aś interesującą grafikę, którą chciał(a)byś '
836               u'wykorzystać w przygotowywanej cyfrowej narracji. Nie jest ona jednak podpisana. Co robisz?',
837         choices=[
838             (0, u'podpisuję grafikę adresem strony, na której ją znalazłem/am,'),
839             (1, u'korzystam z opcji wyszukiwania obrazem w wyszukiwarce grafiki, chcąc znaleźć inne strony, '
840                 u'gdzie pojawiła się grafika,'),
841             (2, u'korzystam z opcji wyszukiwania obrazem, a jeśli to się nie powiedzie, skontaktuję się '
842                 u'z administratorem strony, na której znalazłem/am grafikę, pytając o autora; przeglądam także '
843                 u'informacje o stronie, szukając ewentualnych informacji o zasadach publikacji treści; być może '
844                 u'autor informuje, że wszystkie grafiki są jego autorstwa.')])
845     pyt15 = quiz_question(
846         label=mark_safe(
847             u'15. W nieistniejącym języku programowania TEST dana jest funkcja zapisana w następujący sposób:'
848             u'<p><code>funkcja f(a) { wyświetl a + b;<br>'
849             u'}</code></p>'
850             u'<strong>Przeczytaj uważnie kod i zastanów się, jak działa ta funkcja.'
851             u'Główną wadą tego kodu jest przetwarzanie brakującego argumentu:</strong>'),
852         choices=[
853             (2, u'b,'),
854             (1, u'b będącego dowolną liczbą,'),
855             (0, u'f.')])
856     pyt16 = quiz_question(
857         label=u'16. Przygotowujesz teledysk do utworu nagranego przez Twój zespół. Efekt swojej pracy opublikujesz '
858               u'na kanale zespołu na YouTube. Teledysk nie może łamać praw autorskich, w przeciwnym razie zostanie '
859               u'usunięty z serwisu. W teledysku możesz wykorzystać zdjęcia, ikony, fragmenty filmów:',
860         choices=[
861             (1, mark_safe(
862                 u'znalezionych w wyszukiwarce serwisu Flickr na licencji %s, przygotowanych przez Ciebie, '
863                 u'ściągniętych z serwisu %s,' % (
864                     make_link(u'CC BY-SA', 'https://www.flickr.com/creativecommons/by-sa-2.0/'),
865                     make_link(u'The Noun Project', 'https://thenounproject.com')))),
866             (2, mark_safe(
867                 u'znalezionych w wyszukiwarce serwisu Flickr na licencji %s, przygotowanych przez Ciebie, '
868                 u'ściągniętych z %s,' % (
869                     make_link(u'CC-BY', 'https://www.flickr.com/creativecommons/by-2.0/'),
870                     make_link(u'serwisu ze zdjęciami NASA',
871                               'https://www.nasa.gov/multimedia/imagegallery/index.html')))),
872             (0, mark_safe(
873                 u'znalezionych w wyszukiwarce serwisu Flickr na licencji %s, przygotowanych przez Ciebie, '
874                 u'ściągniętych z wyszukiwarki grafiki Google.' %
875                 make_link('CC-BY-NC', 'https://www.flickr.com/creativecommons/by-nc-2.0/')))])
876     pyt17 = quiz_question(
877         label=mark_safe(
878             u'17. Muzeum cyfrowe udostępniło skan druku propagandowego z pierwszej połowy XVII w. '
879             u'w humorystyczny sposób przedstawiający strony angielskiej wojny domowej (trwającej z przerwami '
880             u'między 1642 a 1651 rokiem):'
881             u'<p><a href="https://commons.wikimedia.org/wiki/File:Engl-Bürgerkrieg.JPG">'
882             u'<img src="https://upload.wikimedia.org/wikipedia/commons/c/c6/Engl-B%C3%BCrgerkrieg.JPG"></a></p>'
883             u'<p><a href="https://commons.wikimedia.org/wiki/File:Engl-Bürgerkrieg.JPG">'
884             u'https://commons.wikimedia.org/wiki/File:Engl-Bürgerkrieg.JPG</a></p>'
885             u'<strong>Najlepszym zestawem tagów dla osoby katalogującej pliki cyfrowe w muzeum, '
886             u'a równocześnie najbardziej użytecznym dla użytkowników przeszukujących stronę '
887             u'zestawem słów kluczowych opisujących ten obiekt będzie:</strong>'),
888         choices=[
889             (2, u'Anglia, wojna domowa, karykatura, propaganda,'),
890             (0, u'komiks, śmiech, Anglicy, Wielka Brytania, psy,'),
891             (1, u'Angielska Wojna Domowa 1642-1651, propaganda.')])
892     pyt18 = quiz_question(
893         label=u'18. Podczas wycieczki szkolnej zrobiłaś/eś sporo zdjęć znajomym, w różnych sytuacjach. '
894               u'Masz również dostęp do wielu fotografii, które przygotowali Twoi koledzy i koleżanki. '
895               u'Zamierzasz niektóre z nich zamieścić na swoim kanale w serwisie społecznościowym. Możesz opublikować:',
896         choices=[
897             (0, u'zdjęcia prezentujące selfie (o ile nie przedstawiają więcej niż dwóch osób), '
898                 u'zdjęcia grupy podczas zwiedzania, zdjęcia, które ktoś zrobił Tobie na tle zwiedzanych obiektów, '
899                 u'zdjęcia, na których ludzie się uśmiechają i cieszą, że robisz im zdjęcie,'),
900             (1, u'zdjęcia prezentujące selfie (ale tylko Twoje), zdjęcia pokazujące w oddali grupę na tle '
901                 u'zwiedzanych obiektów, zdjęcia, zdjęcia na których widać tylko Ciebie, na tle zwiedzanych obiektów,'),
902             (2, u'zdjęcia prezentujące selfie (na których jesteś Ty, ale również inne osoby, które potwierdziły, '
903                 u'że możesz opublikować fotografie), zdjęcia na których widać tylko Ciebie '
904                 u'i masz zgodę na ich publikację od osoby, która wykonała fotografię, '
905                 u'wykonane przez Ciebie zdjęcia zwiedzanych obiektów.')])
906     pyt19 = quiz_question(
907         label=u'19. Korzystając z sieci, natrafiamy na różne interesujące informacje. '
908               u'Pojawiają się w wielu serwisach informacyjnych, społecznościowych, w postaci reklam '
909               u'dołączanych do materiałów wideo, reklam zamieszczonych w tekstach itp. '
910               u'Na co warto zwracać uwagę, podczas codziennego korzystania z mediów, '
911               u'żeby efektywnie wykorzystać czas spędzony w Internecie?',
912         choices=[
913             (1, u'zaplanować czas spędzany na korzystaniu z mediów i starać się trzymać swojego planu, '
914                 u'nie unikasz jednak nagłych rozmów przez komunikator, oglądania postów, '
915                 u'zdjęć i filmików dodawanych przez znajomych,'),
916             (0, u'zaplanować, co będziesz robił(a), ale traktujesz to jako ramę działania, wiesz, '
917                 u'że po drodze pojawi się wiele interesujących informacji, z których skorzystasz,'),
918             (2, u'zaplanować czas spędzany na korzystaniu z mediów i rejestrować, co, '
919                 u'kiedy i przez ile czasu robisz, np. instalując aplikację do mierzenia czasu spędzanego w sieci. '
920                 u'Następnie analizujesz zebrane informacje i starasz się określić, co robisz zbyt często '
921                 u'i jakie rzeczy odciągają Twoją uwagę od tych zaplanowanych.')])
922     pyt20 = quiz_question(
923         label=u'20. Blokująca reklamy wtyczka do przeglądarki działa w następujący sposób:',
924         choices=[
925             (0, u'analizuje treść tekstów oraz obrazków i blokuje te, które zawierają reklamy,'),
926             (1, u'blokuje wyświetlanie plików reklam zanim wyświetli je przeglądarka,'),
927             (2, u'blokuje komunikację przeglądarki z serwerami publikującymi reklamy.')])
928     contact = forms.EmailField(label=u'Adres e-mail, na który przyślemy informację o wynikach')
929     head1 = HeaderField(
930         label=u'Test powstał w ramach projektu "Collegium Młodych - media i technologie" realizowany w ramach '
931               u'III Osi priorytetowej: Szkolnictwo wyższe dla gospodarki i rozwoju, Działanie 3.1 Kompetencje '
932               u'w szkolnictwie wyższym Programu Operacyjnego Wiedza Edukacja Rozwój, współfinansowanego przez '
933               u'Unię Europejską w ramach Europejskiego Funduszu Społecznego. Nr umowy POWR.03.01.00-00-C078/16-00.')
934     head2 = HeaderField(
935         label=u'Dane zbierane są wyłącznie na potrzeby realizacji projektu „Collegium Młodych – media i technologie”,'
936               u' w szczególności potwierdzenia kwalifikowalności wydatków, udzielenia wsparcia, monitoringu, '
937               u'ewaluacji, kontroli, audytu i sprawozdawczości oraz działań informacyjno-promocyjnych w ramach '
938               u'PO WER.')
939     imie = forms.CharField(label=u'Imię')
940     nazwisko = forms.CharField(label=u'Nazwisko')
941     PESEL = forms.CharField(label=u'PESEL', required=False, help_text=u'zostawić pusty w przypadku braku')
942     plec = forms.ChoiceField(
943         label=u'Płeć', widget=forms.RadioSelect,
944         choices=[('k', u'kobieta'), ('m', u'mężczyzna')])
945     wiek = forms.IntegerField(label='Wiek')
946     wyksztalcenie = forms.ChoiceField(
947         label=u'Wykształcenie',
948         choices=[
949             (u'Niższe niż podstawowe', u'Niższe niż podstawowe'),
950             (u'Podstawowe', u'Podstawowe'),
951             (u'Gimnazjalne', u'Gimnazjalne'),
952             (u'Ponadgimnazjalne', u'Ponadgimnazjalne'),
953             (u'Policealne', u'Policealne'),
954             (u'Wyższe', u'Wyższe'),
955         ])
956     wojewodztwo = forms.ChoiceField(label=u'Województwo', choices=WOJEWODZTWO_CHOICES)
957     powiat = forms.CharField(label=u'Powiat')
958     gmina = forms.CharField(label=u'Gmina')
959     miejscowosc = forms.CharField(label=u'Miejscowość')
960     ulica = forms.CharField(label=u'Ulica', required=False)
961     numer = forms.CharField(label=u'Nr budynku')
962     lokal = forms.CharField(label=u'Nr lokalu', required=False)
963     kod = forms.CharField(label=u'Kod pocztowy')
964     telefon = forms.CharField(label=u'Telefon kontaktowy')
965     status = forms.ChoiceField(
966         label=u'Status na rynku pracy',
967         choices=[
968             (u'uczeń', u'osoba bierna zawodowo ucząca się'),
969             (u'nieuczeń', u'osoba bierna zawodowo nieuczestnicząca w kształceniu'),
970             (u'bezrobotna-up', u'Osoba bezrobotna zarejestrowana w ewidencji UP'),
971             (u'bezrobotna-nie-up', u'Osoba bezrobotna nie zarejestrowana w ewidencji UP'),
972             (u'pracująca', u'Osoba pracująca'),
973             (u'inne', u'inne'),
974         ])
975     typ_szkoly = forms.CharField(label=u'Typ szkoły (ponadgimnazjalna; inna, jaka?)', required=False)
976     mniejszosc = forms.ChoiceField(
977         label=u'Osoba należąca do mniejszości narodowej lub etnicznej, migrant, osoba obcego pochodzenia',
978         choices=ODMOWA_CHOICES)
979     bezdomna = forms.ChoiceField(
980         label=u'Osoba bezdomna lub dotknięta wykluczeniem z dostępu do mieszkań', choices=YESNO_CHOICES)
981     niepelnosprawna = forms.ChoiceField(
982         label=u'Osoba z niepełnosprawnościami',
983         choices=ODMOWA_CHOICES)
984     pytanie4 = forms.ChoiceField(
985         label=u'Osoba przebywająca w gospodarstwie domowym bez osób pracujących',
986         choices=YESNO_CHOICES)
987     pytanie5 = forms.ChoiceField(
988         label=u'Osoba przebywająca w gospodarstwie domowym z dziećmi pozostającymi na utrzymaniu',
989         choices=YESNO_CHOICES)
990     pytanie6 = forms.ChoiceField(
991         label=u'Osoba żyjąca w gospodarstwie składającym się z jednej osoby dorosłej i dzieci '
992               u'pozostających na utrzymaniu',
993         choices=YESNO_CHOICES)
994     pytanie7 = forms.ChoiceField(
995         label=u'Osoba żyjąca w innej niekorzystnej sytuacji społecznej (inne niż wymienione powyżej)',
996         choices=ODMOWA_CHOICES)
997
998     ANSWER_COMMENTS = [
999         (
1000             u"Stwierdzenie „Nie wszyscy muzułmanie to terroryści, ale wszyscy terroryści to muzułmanie” nie "
1001             u"odzwierciedla faktów. O ile prawdą jest, że „Nie wszyscy muzułmanie to terroryści”, to błędnym "
1002             u"założeniem jest, że „wszyscy terroryści są muzułmanami”. Terroryzm jako akt agresji fizycznej wymierzony"
1003             u" przeciwko innym osobom nie jest domeną tej, czy innej religii. Wynika on często z fundamentalistycznych "
1004             u"postaw i może pojawić się w różnych kontekstach politycznych i społecznych, a nie tylko religijnych. "
1005             u"Z drugiej strony, każdemu użytkownikowi Internetu przysługuje wolność słowa, która oznacza prawo "
1006             u"do publicznego wyrażania własnych poglądów w przestrzenie publicznej. Zachęca do tego zwłaszcza możliwość"
1007             u" zostawiania komentarzy pod różnego rodzaju artykułami. Należy liczyć się z tym, że część z nich może "
1008             u"wprowadzać w błąd. Jeśli przyjmiemy interpretację, zgodnie z którą wpis użytkownika na portalu "
1009             u"internetowym jest opinią, to mamy prawo do jego zachowania.\n"
1010             u"Jeśli chcesz pogłębić swoją wiedzę na temat „terroryzmu” możesz przeczytać artykuł "
1011             u"pt. „Zjawisko terroryzmu”: "
1012             u"http://www.ies.krakow.pl/wydawnictwo/prokuratura/pdf/2012/07-08/11resztak.pdf.\n"
1013             u"\n"
1014             u"O prawie do wolności wypowiedzi w Internecie i zagrożeniach związanych z jego ograniczeniem możesz "
1015             u"przeczytać w komentarzu prawnika pt. „Masz prawo swobodnie wypowiadać się w Internecie, tak samo jak "
1016             u"wyjść z domu i chodzić po ulicach!”: "
1017             u"http://prawokultury.pl/newsy/masz-prawo-swobodnie-wypowiadac-sie-w-internecie-t/.",
1018
1019             u"Stwierdzenie „Nie wszyscy muzułmanie to terroryści, ale wszyscy terroryści to muzułmanie” nie "
1020             u"odzwierciedla faktów. W tym przypadku należy odróżnić fakt, czyli coś co naprawdę się wydarzyło, "
1021             u"od opinii, która określa nasz sąd na temat wybranych przez nas kwestii. O ile prawdą jest, że "
1022             u"„Nie wszyscy muzułmanie to terroryści”, to błędnym założeniem jest, że „wszyscy terroryści są "
1023             u"muzułmanami”. Terroryzm jako akt agresji fizycznej wymierzony przeciwko innym osobom nie jest domeną "
1024             u"tej, czy innej religii. Wynika on często z fundamentalistycznych postaw i może pojawić się w różnych "
1025             u"kontekstach politycznych i społecznych, a nie tylko religijnych. Zachowanie wpisu zawierającego powyższą "
1026             u"treść może wprowadzać w błąd jego czytelników ponieważ nie odnosi się do faktów, dlatego najlepszą opcją "
1027             u"jest jego usunięcie.\n"
1028             u"\n"
1029             u"Jeśli chcesz pogłębić swoją wiedzę na temat „terroryzmu” możesz przeczytać artykuł "
1030             u"pt. „Zjawisko terroryzmu”: "
1031             u"http://www.ies.krakow.pl/wydawnictwo/prokuratura/pdf/2012/07-08/11resztak.pdf.",
1032
1033             u"Stwierdzenie „Nie wszyscy muzułmanie to terroryści, ale wszyscy terroryści to muzułmanie” "
1034             u"nie odzwierciedla faktów i jest błędną ich interpretacją W tym przypadku należy odróżnić fakt, "
1035             u"czyli coś, co naprawdę się wydarzyło, od opinii, która określa nasz sąd na temat wybranych przez nas "
1036             u"kwestii. O ile prawdą jest, że „Nie wszyscy muzułmanie to terroryści”, to błędnym założeniem jest, że "
1037             u"„wszyscy terroryści są muzułmanami”. Terroryzm jako akt agresji fizycznej wymierzony przeciwko innym "
1038             u"osobom nie jest domeną tej, czy innej religii. Wynika on często z fundamentalistycznych postaw i może "
1039             u"pojawić się w różnych kontekstach politycznych i społecznych, a nie tylko religijnych. Zachowanie wpisu "
1040             u"zawierającego powyższą treść może wprowadzać w błąd jego czytelników, dlatego najlepszą opcją jest jego "
1041             u"usunięcie.\n"
1042             u"\n"
1043             u"Jeśli chcesz pogłębić swoją wiedzę na temat „terroryzmu” możesz przeczytać artykuł "
1044             u"pt. „Zjawisko terroryzmu”: "
1045             u"http://www.ies.krakow.pl/wydawnictwo/prokuratura/pdf/2012/07-08/11resztak.pdf."),
1046         (
1047             u"Wymienione narzędzia i umiejętności brzmią bardzo profesjonalnie, a ich wartość wydaje się być "
1048             u"bardzo wysoka. Jeśli każdy zakładałby, że wszystkie one są potrzebne do rozpoczęcia nagrywania audycji, "
1049             u"nigdy by tego nie zrobił.\n"
1050             u"\n"
1051             u"Tak jak nie od razu Rzym zbudowano, tak nie od razu trzeba nagrywać w profesjonalnym studio. Nawet "
1052             u"zawodowi podcasterzy od czegoś musieli zacząć – w większości od mikrofonu wbudowanego w komputer. Prawie "
1053             u"każdy młody człowiek ma w ręku znacznie doskonalsze narzędzie, jakim jest smartfon. W Internecie można "
1054             u"łatwo znaleźć darmowe oprogramowanie do obróbki dźwięku i tutoriale, które pomogą w tworzeniu podcastu.\n"
1055             u"\n"
1056             u"O tym, jak zacząć tworzyć podcast, nie wydając nawet złotówki przeczytasz tu: "
1057             u"https://malawielkafirma.pl/wlasny-podcast-za-darmo/.",
1058
1059             u"Wymienione narzędzia i umiejętności brzmią profesjonalnie, nie wszyscy mogą pozwolić sobie na taki "
1060             u"zakup. Ale czy faktycznie jest to konieczne? Jeśli każdy zakładałby, że wszystkie one są potrzebne do "
1061             u"rozpoczęcia nagrywania audycji, nigdy by tego nie zrobił. Do przygotowania podcastu nie trzeba "
1062             u"wykorzystywać komputera. Potrzebne jest urządzenie, które pozwoli na nagrywanie dźwięku i jego "
1063             u"podstawową obróbkę (może to być zatem także smartfon).\n"
1064             u"\n"
1065             u"O tym, jak zacząć tworzyć podcast nie wydając nawet złotówki przeczytasz tu: "
1066             u"https://malawielkafirma.pl/wlasny-podcast-za-darmo/.",
1067
1068             u"Urządzenie do nagrywania dźwięku i możliwość jego podstawowej edycji (zarówno jeśli chodzi o dostępne "
1069             u"oprogramowanie, jak i posiadane umiejętności), to wystarczający początek. Z czasem, jeśli tworzenie "
1070             u"podcastu okaże się pasją, można zdecydować się na poszerzenie wachlarza narzędzi, którymi będzie się "
1071             u"posługiwać.\n"
1072             u"\n"
1073             u"O tym, jak zacząć tworzyć podcast nie wydając nawet złotówki przeczytasz tu: "
1074             u"https://malawielkafirma.pl/wlasny-podcast-za-darmo/."),
1075         (
1076             u"Utwory powstałe w czasach kiedy nie obowiązywały prawa autorskie należą do tak zwanej domeny publicznej. "
1077             u"Domeną publiczną oznaczany tę twórczość i te utwory, do których wygasły majątkowe prawa autorskie, "
1078             u"więc żadna licencja nie ma w tym przypadku zastosowania. Poprzez publikowanie utworu na licencjach "
1079             u"Creative Commons przekazujemy informację o tym, że chcemy dzielić się swoimi utworami (w szerszym bądź "
1080             u"węższym zakresie). Zasada ta nie dotyczy wszystkich licencji CC. Tą, która dają największą dowolność "
1081             u"korzystania z utworu, jest licencja CC BY (Creative Commons Uznanie Autorstwa).\n"
1082             u"Mówiąc inaczej, łatwiej nam jest wykorzystywać zdjęcia, obrazy, czy też muzykę na licencji CC "
1083             u"do własnych celów (np. w prezentacji lub na swojej stronie internetowej), ponieważ nie musimy prosić "
1084             u"autora o pozwolenie na ich użytkowanie – wszystko oczywiście zależy od rodzaju licencji CC, a tych jest "
1085             u"kilka. Warto wcześniej się z nimi zapoznać na stronie: https://creativecommons.pl.\n"
1086             u"\n"
1087             u"Z definicją domeny publicznej można zapoznać się na stronie: "
1088             u"http://domenapubliczna.org/co-to-jest-domena-publiczna/.\n"
1089             u"\n"
1090             u"Więcej o prawach autorskich można przeczytać w Ustawie z dnia 4 lutego 1994 r. o prawie autorskich "
1091             u"i prawach pokrewnych: "
1092             u"http://isap.sejm.gov.pl/Download?id=WDU19940240083&type=3 "
1093             u"oraz na stronie http://prawokultury.pl.",
1094
1095             u"XIV-wieczny kodeks powstał w czasach, w których nie obowiązywały tak zwane prawa autorskie. "
1096             u"Z tego względu jego udostępnienie i rozpowszechnianie w jakikolwiek sposób jest dozwolone bez podawania "
1097             u"licencji, ponieważ kodeks ten należy już do domeny publicznej. Prawa autorskie to zbiór reguł "
1098             u"dotyczących praw osobistych i majątkowych, jakie nam przysługują przy utworach (np. zdjęciach, muzyce), "
1099             u"który stworzyliśmy osobiście. Z kolei domeną publiczną określamy tę twórczość i te utwory, z których "
1100             u"możemy korzystać w dowolny sposób, ponieważ prawa autorskie wygasły (minęło 70 lat od śmierci ich "
1101             u"twórców) lub utwory powstały wtedy, kiedy prawa autorskie nie istniały.\n"
1102             u"\n"
1103             u"O idei udostępniania utworów na zasadach licencji Creative Commons można przeczytać na stronie: "
1104             u"https://creativecommons.pl.\n"
1105             u"\n"
1106             u"Z definicją domeny publicznej można zapoznać się na stronie: "
1107             u"http://domenapubliczna.org/co-to-jest-domena-publiczna/.\n"
1108             u"\n"
1109             u"Więcej o prawa autorskich można przeczytać w Ustawie z dnia 4 lutego 1994 r. o prawie autorskich "
1110             u"i prawach pokrewnych: http://isap.sejm.gov.pl/Download?id=WDU19940240083&type=3 oraz na stronie "
1111             u"http://prawokultury.pl.",
1112
1113             u"Ważne jest, aby wszystkie dokumenty o znaczeniu historycznym udostępnianie były odbiorcom w jak "
1114             u"najlepszej jakości produkcyjnej. W przypadku XIV-wiecznego kodeksu oznacza to, że muzeum cyfrowe powinno "
1115             u"postarać się o zeskanowanie dokumenty w wysokiej rozdzielczości, która umożliwi dokładne zaznajomienie "
1116             u"się z jego treścią szerokim rzeszom odbiorców. Jednak idea domeny publicznej zakłada przede wszystkim "
1117             u"możliwość korzystania z udostępnianego utworu bez ograniczeń wynikających z praw autorskich. Domeną "
1118             u"publiczną określamy tę twórczość i te utwory, z których możemy korzystać w dowolny sposób, ponieważ "
1119             u"prawa autorskie dawno wygasły lub powstały wtedy, kiedy prawa autorskie nie istniały. Prawa autorskie to "
1120             u"zbiór reguł dotyczących praw jakie nam przysługują przy utworach (np. zdjęciach, muzyce), które "
1121             u"stworzyliśmy osobiście. Na przykład jedną z ważniejszych kwestii dotyczących praw autorskich jest "
1122             u"pobieranie opłat za każdorazowe użycie skomponowanego przez nas utworu.\n"
1123             u"\n"
1124             u"O idei udostępniania utworów na zasadach licencji Creative Commons można przeczytać na stronie: "
1125             u"https://creativecommons.pl.\n"
1126             u"\n"
1127             u"Z definicją domeny publicznej można zapoznać się na stronie: "
1128             u"http://domenapubliczna.org/co-to-jest-domena-publiczna/.\n"
1129             u"\n"
1130             u"Więcej o prawa autorskich można przeczytać w Ustawie z dnia 4 lutego 1994 r. o prawie autorskich "
1131             u"i prawach pokrewnych: http://isap.sejm.gov.pl/Download?id=WDU19940240083&type=3 oraz na stronie "
1132             u"http://prawokultury.pl."),
1133         (
1134             u"Zastosowanie takich metod ochrony swojej prywatności nie gwarantuje skutecznego działania. "
1135             u"Komputer odnotowuje nasze działania na różne sposoby – historia odwiedzanych stron to tylko jeden "
1136             u"z nich. Dane zapisane w formularzach, „ciasteczka” (niewielkie informacje, wysyłane przez serwis "
1137             u"internetowy, który odwiedzamy i zapisywane na urządzeniu końcowym – komputerze, laptopie, smartfonie – "
1138             u"z którego korzystamy podczas przeglądania stron internetowych: http://wszystkoociasteczkach.pl/) "
1139             u"pozwolą zainteresowanej osobie ustalić, co robiłeś. Ważne jest także chronienie swoich kont i ich danych,"
1140             u" zawsze pamiętaj o wylogowaniu się i zablokowaniu komputera, jeśli odchodzisz od niego na chwilę.\n"
1141             u"\n"
1142             u"Pamiętaj także, że jeśli korzystasz ze swojego konta Google na wielu urządzeniach, sam serwis tworzy "
1143             u"synchronizowaną historię aktywności. Jak ją usunąć, dowiesz się tu:\n"
1144             u"https://support.google.com/websearch/answer/54068?hl=pl&ref_topic=1638123.\n"
1145             u"\n"
1146             u"Więcej o ochronie prywatności w Internecie dowiesz się tu: https://panoptykon.org/ i tu: "
1147             u"http://www.saferinternet.pl/pl/ochrona-prywatnosci.",
1148
1149             u"Kompleksowe stosowanie różnych metod ochrony swojej prywatności pozwala nam na zachowanie prywatności w "
1150             u"Internecie. Pamiętanie o tym, że komputer odnotowuje nasze działania na różne sposoby – historia "
1151             u"odwiedzanych stron to tylko jeden z nich – to istotny element skutecznej ochrony. Dane zapisane w "
1152             u"formularzach, „ciasteczka” (niewielkie informacje, wysyłane przez serwis internetowy, który odwiedzamy i "
1153             u"zapisywane na urządzeniu końcowym – komputerze, laptopie, smartfonie – z którego korzystamy podczas "
1154             u"przeglądania stron internetowych: http://wszystkoociasteczkach.pl/) pozwolą zainteresowanej osobie "
1155             u"ustalić, co robiłeś, dlatego usuwanie historii i wszystkich pozostałych danych gromadzonych przez "
1156             u"przeglądarkę to czynności, które są niezbędne. Ważne jest także chronienie swoich kont i ich danych, "
1157             u"zawsze pamiętaj o wylogowaniu się i zablokowaniu komputera, jeśli odchodzisz od niego na chwilę.\n"
1158             u"\n"
1159             u"Pamiętaj także, że jeśli korzystasz ze swojego konta Google na wielu urządzeniach, sam serwis Google "
1160             u"tworzy synchronizowaną historię aktywności. Jak ją usunąć, dowiesz się tu:\n"
1161             u"https://support.google.com/websearch/answer/54068?hl=pl&ref_topic=1638123.\n"
1162             u"\n"
1163             u"\n"
1164             u"Więcej o ochronie prywatności w Internecie dowiesz się tu:\n"
1165             u"http://www.saferinternet.pl/pl/ochrona-prywatnosci.",
1166
1167             u"Kompleksowe stosowanie różnych metod ochrony swojej prywatności pozwala nam na zachowanie prywatności "
1168             u"w Internecie. Pamiętanie o tym, że komputer odnotowuje nasze działania na różne sposoby – historia "
1169             u"odwiedzanych stron to tylko jeden z nich – to istotny element skutecznej ochrony. Dane zapisane "
1170             u"w formularzach, „ciasteczka” (niewielkie informacje, wysyłane przez serwis internetowy, który odwiedzamy "
1171             u"i zapisywane na urządzeniu końcowym – komputerze, laptopie, smartfonie – z którego korzystamy podczas "
1172             u"przeglądania stron internetowych: http://wszystkoociasteczkach.pl/) pozwolą zainteresowanej osobie "
1173             u"ustalić, co robiłeś. Dlatego usuwanie historii nie wystarczy, konieczne jest kasowanie wszystkich "
1174             u"pozostałych danych gromadzonych przez przeglądarkę. Ważne jest także chronienie swoich kont i ich "
1175             u"danych, zawsze pamiętaj o wylogowaniu się i zablokowaniu komputera, jeśli odchodzisz od niego na chwilę."
1176             u"\n"
1177             u"\n"
1178             u"Pamiętaj także, że jeśli korzystasz ze swojego konta Google na wielu urządzeniach, sam serwis Google "
1179             u"tworzy synchronizowaną historię aktywności. Jak ją usunąć, dowiesz się tu:\n"
1180             u"https://support.google.com/websearch/answer/54068?hl=pl&ref_topic=1638123.\n"
1181             u"\n"
1182             u"Więcej o ochronie prywatności w Internecie dowiesz się tu:\n"
1183             u"http://www.saferinternet.pl/pl/ochrona-prywatnosci."),
1184         (
1185             u"Wolność słowa oznacza przede wszystkim nasze prawo do wyrażania swoich własnych poglądów i w przypadku "
1186             u"skorzystania z tej wolności nie ma większego znaczenia czy swoje poglądy wyrażamy anonimowo, "
1187             u"czy też podpisujemy się pod nimi imieniem i nazwiskiem. Wolność słowa nie ma związku z wartością "
1188             u"komentarzy w Internecie. Z drugiej strony jednak należy pamiętać, że korzystanie z wolności słowa "
1189             u"nie oznacza, że nie możemy czuć się odpowiedzialni za swoje opinie wyrażane w Internecie i publikować "
1190             u"na przykład obraźliwe komentarze. Poza tym pełna anonimowość w sieci nie istnieje – jeśli zrobimy coś "
1191             u"złego w Internecie, to łatwo będzie można nas namierzyć.\n"
1192             u"\n"
1193             u"Z tematem problematyki wolności w Internecie można zapoznać się w artykule "
1194             u"pt. „Problem wolności w Internecie”: "
1195             u"http://www.ujk.edu.pl/infotezy/ojs/index.php/infotezy/about/submissions#authorGuidelines.",
1196
1197             u"To, czy wartość komentarza opublikowanego w Internecie zależy od jego podpisania przez autora, wynika "
1198             u"z kontekstu, treści i często miejsca, w którym się ten komentarz znajduje. Wartość komentarza możemy "
1199             u"na przykład łatwo ocenić wtedy, kiedy jesteśmy w stanie zidentyfikować osobę, która go umieszcza w "
1200             u"Internecie. Ma to szczególne znaczenie, jeśli dana osoba jest uznanym ekspertem w dziedzinie, w której "
1201             u"się wypowiada. Bywają jednak sytuacje, w których anonimowe komentarze bywają również wartościowe. "
1202             u"Można to zaobserwować w sytuacjach, w których anonimowy komentarz dostarcza nam informacji, które "
1203             u"nie mogłyby zostać rozpowszechnione w inny sposób, jak tylko właśnie anonimowo – na przykład "
1204             u"udostępnienie informacji w Internecie o trudnych warunkach pracy w pewnej firmie pod imieniem "
1205             u"i nazwiskiem mogłoby zaszkodzić autorowi, który prawdopodobnie straciłby pracę. Pamiętajmy jednak "
1206             u"o tym, aby każdy komentarz w Internecie weryfikować we własnym zakresie i że nigdy nie istnieje pełna "
1207             u"anonimowość w sieci.\n"
1208             u"\n"
1209             u"Z tematem problematyki wolności w Internecie można zapoznać się w artykule "
1210             u"pt. „Problem wolności w Internecie”: "
1211             u"http://www.ujk.edu.pl/infotezy/ojs/index.php/infotezy/about/submissions#authorGuidelines.",
1212
1213             u"Odpowiedzialność prawna to konsekwencje, jakie możemy ponieść w wyniku złamania prawa. Z punktu widzenia "
1214             u"odpowiedzialności prawnej nie ma znaczenia czy komentarz w Internecie jest anonimowy, czy też podpisany "
1215             u"imieniem i nazwiskiem. Na przykład za pomówienie kogoś w Internecie kodeks karny przewiduje różnego "
1216             u"rodzaju kary, w tym więzienie. Jeśli osoba pomawiająca dokonała tego czynu używając anonimowych danych, "
1217             u"to i tak na wniosek prokuratury prowadzącej śledztwo administrator strony, na której doszło do "
1218             u"pomówienia ma obowiązek udostępnić adres IP użytkownika (numer służący identyfikacji komputerów i innych "
1219             u"urządzeń w sieci). A stąd już prosta droga do uzyskania dokładnych danych adresowych osoby pomawiającej."
1220             u"\n"
1221             u"\n"
1222             u"Na temat odpowiedzialności prawnej za komentarze umieszczane w Internecie można przeczytać w artykule "
1223             u"pt. „Ten komentarz mnie obraża. Co mam zrobić?” "
1224             u"https://panoptykon.org/wiadomosc/ten-komentarz-mnie-obraza-co-mam-zrobic."),
1225         (
1226             u"Oryginalny pomysł i scenariusz – oparte na własnych odczuciach, czyli „twórcze, a nie odtwórcze” to "
1227             u"najważniejszy etap opowiadania historii. Im więcej własnych idei i koncepcji włożycie w opowiadaną "
1228             u"historię, tym będzie Wam bliższa, i tym lepiej będzie przemawiała do jej odbiorców. I, co także bardzo "
1229             u"ważne, historia, którą wymyślicie sami, na pewno nie będzie naruszać niczyich praw autorskich…\n"
1230             u"\n"
1231             u"Ważne są także kolejne kroki, które podejmiecie. Po wyborze tematu musicie podzielić się zadaniami, "
1232             u"aby każdy element zadania był wykonany. Jeśli tego nie zrobicie, w grupie szybko zapanuje chaos – "
1233             u"jednymi sprawami zajmie się kilka osób, a innymi – nikt. Warto też opracować harmonogram, aby ze "
1234             u"wszystkim zdążyć na czas. Podczas realizacji zadania bądźcie w stałym kontakcie, żeby na bieżąco "
1235             u"wymieniać się uwagami na temat wspólnej pracy.\n"
1236             u"\n"
1237             u"Więcej o tym, jak zorganizować wspólną pracę, znaleźć można tutaj: "
1238             u"https://edukacjamedialna.edu.pl/lekcje/sieciowa-wspolpraca/ i tutaj: "
1239             u"https://edukacjamedialna.edu.pl/lekcje/dokumentacja-i-narracje-cyfrowe/.",
1240
1241             u"Jeśli nie zaczniecie pracy od zastanowienia się nad tym, jaką historię chcecie opowiedzieć, nie dacie "
1242             u"sobie szansy, aby opowiadała ona o rzeczach ważnych dla Was. Stworzycie – zamiast własnej historii – "
1243             u"zbitek cudzych opowieści. Oryginalny pomysł i scenariusz – oparte na własnych odczuciach, czyli "
1244             u"„twórcze, a nie odtwórcze” to najważniejszy etap opowiadania historii. Im więcej własnych idei "
1245             u"i koncepcji włożycie w opowiadaną historię, tym będzie Wam bliższa, i tym lepiej będzie przemawiała "
1246             u"do jej odbiorców. I, co także bardzo ważne, historia, którą wymyślicie sami, na pewno nie będzie "
1247             u"naruszać niczyich praw autorskich…\n"
1248             u"\n"
1249             u"Ważne są także kolejne kroki, które podejmiecie. Po wyborze tematu musicie podzielić się zadaniami, "
1250             u"aby każdy element zadania był wykonany. Jeśli tego nie zrobicie, w grupie szybko zapanuje chaos – "
1251             u"jednymi sprawami zajmie się kilka osób, a innymi – nikt. Warto też opracować harmonogram, aby ze "
1252             u"wszystkim zdążyć na czas. Podczas realizacji zadania bądźcie w stałym kontakcie, aby na bieżąco "
1253             u"wymieniać się uwagami na temat wspólnej pracy.\n"
1254             u"\n"
1255             u"Więcej o tym, jak zorganizować wspólną pracę, znaleźć można tutaj: "
1256             u"https://edukacjamedialna.edu.pl/lekcje/sieciowa-wspolpraca/ i tutaj: "
1257             u"https://edukacjamedialna.edu.pl/lekcje/dokumentacja-i-narracje-cyfrowe/.",
1258
1259             u"Temat opowieści, który wybieracie razem, jest jednocześnie jej początkiem. Jeśli zrodzi się w dyskusji "
1260             u"między Wami, to dacie sobie możliwość opowiedzenia własnej historii. Jeśli jednak na tym "
1261             u"poprzestaniecie, wykorzystując cudze filmiki i zdjęcia, nie będzie ona wyłącznie Wasza, bowiem będziecie "
1262             u"opowiadać cudzymi słowami i obrazami. Oryginalny pomysł i scenariusz – oparte na własnych pomysłach, "
1263             u"czyli „twórcze, a nie odtwórcze” to najważniejszy etap opowiadania historii. Im więcej własnych idei "
1264             u"i koncepcji włożycie w opowiadaną historię, tym będzie Wam bliższa, i tym lepiej będzie przemawiała "
1265             u"do jej odbiorców. I, co także bardzo ważne, historia, którą wymyślicie sami, na pewno nie będzie "
1266             u"naruszać niczyich praw autorskich…\n"
1267             u"\n"
1268             u"Ważne są także kolejne kroki, które podejmiecie. Po wyborze tematu musicie podzielić się zadaniami, "
1269             u"aby każdy element zadania był wykonany. Jeśli tego nie zrobicie, w grupie szybko zapanuje chaos – "
1270             u"jednymi sprawami zajmie się kilka osób, a innymi – nikt. Warto też opracować harmonogram, aby ze "
1271             u"wszystkim zdążyć na czas. Podczas realizacji zadania bądźcie w stałym kontakcie, aby na bieżąco "
1272             u"wymieniać się uwagami na temat wspólnej pracy.\n"
1273             u"\n"
1274             u"Więcej o tym, jak zorganizować wspólną pracę, znaleźć można tutaj: "
1275             u"https://edukacjamedialna.edu.pl/lekcje/sieciowa-wspolpraca/ i tutaj: "
1276             u"https://edukacjamedialna.edu.pl/lekcje/dokumentacja-i-narracje-cyfrowe/."),
1277         (
1278             u"Korzystając z Internetu i komunikując się z innymi użytkownikami możemy odnieść wrażenie, że użytkownicy "
1279             u"zwracają się do siebie w bardzo bezpośredni sposób. Nie można jednak nikogo zmuszać do zaakceptowania "
1280             u"powszechnych reguł komunikacji w Internecie, jeśli w rzeczywistości na co dzień dana osoba nie stosuje "
1281             u"nieformalnej komunikacji w kontaktach z nieznajomymi, w tym również przedstawicielami różnych firm "
1282             u"i organizacji. Trudno nam sobie w rzeczywistości niewirtualnej wyobrazić pracownika jakiejś firmy, "
1283             u"który po imieniu odpowiada nam na zadane przez nas pytania. Najlepszą reakcja firmy na zaistniały "
1284             u"problem jest więc przeproszenie użytkownika za bezpośredni i nieformalny zwrot po imieniu.\n"
1285             u"\n"
1286             u"Prof. Jerzy Bralczyk o netykiecie: https://www.youtube.com/watch?v=thwUHPXbBoo.\n"
1287             u"\n"
1288             u"O zwracaniu się w Internecie do innych użytkowników per „pani” / „pan” można posłuchać na kanale "
1289             u"„Czas Gentelmanów”: https://www.youtube.com/watch?v=A8qznS7LjQY.",
1290
1291             u"Korzystając z Internetu i komunikując się z innymi użytkownikami możemy odnieść wrażenie, że użytkownicy "
1292             u"zwracają się do siebie w bardzo bezpośredni sposób. Nie można jednak nikogo zmuszać do zaakceptowania "
1293             u"powszechnych reguł komunikacji w Internecie, zwłaszcza, jeśli w rzeczywistości na co dzień dana osoba "
1294             u"nie stosuje nieformalnej komunikacji w kontaktach z nieznajomymi, w tym również przedstawicielami "
1295             u"różnych firm i organizacji. Trudno nam w rzeczywistości niewirtualnej wyobrazić sobie pracownika "
1296             u"jakiejś firmy, który po imieniu odpowiada nam na zadane przez nas pytania. Najlepszą reakcją firmy "
1297             u"na zaistniały problem jest więc przeproszenie użytkownika za bezpośredni formalny zwrot po imieniu. "
1298             u"Pod żadnym pozorem nie powinna ignorować użytkownika odwołując się do zasady netykiety, czyli zbioru "
1299             u"zasad porozumiewania się w Internecie. Chociaż zgodnie z jej zasadami, przyjęte jest zwracanie się "
1300             u"do siebie po imieniu, to nie możemy innym narzucać własnych reguł komunikacji. Dotyczy to przede "
1301             u"wszystkim firm, które komunikują się w Internecie ze swoimi klientami.\n"
1302             u"\n"
1303             u"Prof. Jerzy Bralczyk o netykiecie: https://www.youtube.com/watch?v=thwUHPXbBoo.\n"
1304             u"\n"
1305             u"O zwracaniu się w Internecie do innych użytkowników per „pani” / „pan” można posłuchać na kanale "
1306             u"„Czas Gentelmanów”: https://www.youtube.com/watch?v=A8qznS7LjQY.",
1307
1308             u"Korzystając z Internetu i komunikując się z innymi użytkownikami możemy odnieść wrażenie, że użytkownicy "
1309             u"zwracają się do siebie w bardzo bezpośredni sposób. Nie można jednak nikogo zmuszać do zaakceptowania "
1310             u"powszechnych reguł komunikacji w Internecie, jeśli w rzeczywistości na co dzień dana osoba stosuje "
1311             u"formalna komunikację w kontaktach z osobami nieznajomymi, w tym również przedstawicielami różnych firm "
1312             u"i organizacji. Trudno nam sobie w rzeczywistości niewirtualnej wyobrazić pracownika jakiejś firmy, "
1313             u"który po imieniu odpowiada nam na zadane przez nas pytania. Poprawną reakcją firmy na zaistniały problem "
1314             u"w komunikacji internetowej jest działanie zgodne z wypracowanymi wewnętrznie zasadami komunikacji. "
1315             u"Stanowią one coś na wzór kodeksu opracowanego przez daną firmę, który mówi pracownikom firmy, "
1316             u"jak należy zachowywać się w kontaktach z klientami. Niezależnie od zasad obowiązujących w firmie, "
1317             u"najlepszym rozwiązaniem będzie przeproszenie urażonego użytkownika.\n"
1318             u"\n"
1319             u"Prof. Jerzy Bralczyk o netykiecie: https://www.youtube.com/watch?v=thwUHPXbBoo.\n"
1320             u"\n"
1321             u"O zwracaniu się w Internecie do innych użytkowników per „pani” / „pan” można posłuchać na kanale "
1322             u"„Czas Gentelmanów”: https://www.youtube.com/watch?v=A8qznS7LjQY."),
1323         (
1324             u"Krytyczne podejście do informacji to jedna z najważniejszych umiejętności we współczesnym świecie, "
1325             u"w którym informacja otacza nas i dociera zewsząd. Przy tworzeniu aplikacji warto skontaktować się "
1326             u"z administracją, aby ustalić liczbę dostępnych miejsc. Pamiętaj jednak, że osoba udzielająca informacji "
1327             u"może nie mieć pełnej wiedzy – lub popełnić błąd. Dobrze byłoby zweryfikować otrzymane informacje "
1328             u"osobiście (aby Twoje dane pochodziły z więcej niż jednego źródła).\n"
1329             u"\n"
1330             u"Więcej o tym, dlaczego warto weryfikować informacje, dowiesz się tu:\n"
1331             u"https://www.youtube.com/watch?v=ZHHmEi9VAbY.\n"
1332             u"\n"
1333             u"Więcej o weryfikacji informacji w Internecie dowiesz się stąd:\n"
1334             u"http://www.heuristic.pl/blog/internet/Wiarygodnosc-informacji-zamieszczanych-w-Internecie;204.html.",
1335
1336             u"Krytyczne podejście do informacji to jedna z najważniejszych umiejętności we współczesnym świecie, "
1337             u"w którym informacja otacza nas i dociera zewsząd. Ważne jest, aby uzyskana przez Ciebie informacja była "
1338             u"aktualna i najlepiej, aby pochodziła z więcej niż jednego źródła. Dlatego optymalnym rozwiązaniem byłoby "
1339             u"sprawdzenie danych ze strony (która mogła dawno nie być aktualizowana), na przykład poprzez kontakt "
1340             u"z administracją oraz osobiste udanie się na miejsce i sprawdzenie uzyskanych odpowiedzi.\n"
1341             u"\n"
1342             u"Więcej o tym, dlaczego warto weryfikować informacje dowiesz się tu:\n"
1343             u"https://www.youtube.com/watch?v=ZHHmEi9VAbY.\n"
1344             u"\n"
1345             u"Więcej o weryfikacji informacji w Internecie dowiesz się stąd:\n"
1346             u"http://www.heuristic.pl/blog/internet/Wiarygodnosc-informacji-zamieszczanych-w-Internecie;204.html.",
1347
1348             u"Krytyczne podejście do informacji to jedna z najważniejszych umiejętności we współczesnym świecie, "
1349             u"w którym informacja otacza nas i dociera zewsząd. Ważne jest, aby uzyskana przez Ciebie informacja była "
1350             u"aktualna, wiarygodna i wyczerpująca. Dlatego optymalnym rozwiązaniem jest właśnie kontakt "
1351             u"z administracją oraz osobiste udanie się na miejsce i sprawdzenie uzyskanych odpowiedzi. Ważne jest "
1352             u"także sprawdzenie, jakie okoliczności mogą wpływać na stan „formalny” badanej rzeczywistości – "
1353             u"częstotliwość łamania przepisów przez pełnosprawnych kierowców stanowi taką incydentalną okoliczność, "
1354             u"której częste występowanie może całkowicie zniweczyć sens używania aplikacji, jeśli nie zostanie "
1355             u"uwzględnione w jej działaniu.\n"
1356             u"\n"
1357             u"Więcej o tym, dlaczego warto weryfikować informacje dowiesz się tu:\n"
1358             u"https://www.youtube.com/watch?v=ZHHmEi9VAbY.\n"
1359             u"\n"
1360             u"Więcej o weryfikacji informacji w Internecie dowiesz się tu:\n"
1361             u"http://www.heuristic.pl/blog/internet/Wiarygodnosc-informacji-zamieszczanych-w-Internecie;204.html."),
1362         (
1363             u"Niewidzialna praca to między innymi praca wykonywana na rzecz swojej rodziny / wolontariat. Chociaż "
1364             u"zazwyczaj kojarzona jest z pracą w domu (na przykład kobiety opiekujące się dziećmi), to odnosi się też "
1365             u"do „szarych pracowników” wielkich korporacji, którzy stoją za sukcesem tych przedsiębiorstw, w tym "
1366             u"moderatorów mediów społecznościowych, których rola jest niezastąpiona i niezbędna dla sprawnego "
1367             u"funkcjonowania biznesu.\n"
1368             u"„Niewidzialną pracą” można nazwać również aktywność użytkowników mediów społecznościowych, którzy "
1369             u"poprzez komentarze pod wpisami i newsami podtrzymują zainteresowanie innych użytkowników, a co za tym "
1370             u"idzie zwiększają zainteresowanie potencjalnych reklamodawców.\n"
1371             u"\n"
1372             u"O niewidzialnej pracy można przeczytać w artykule pt. „Niewidzialna praca o wielkiej mocy”: "
1373             u"http://www.praca.pl/poradniki/rynek-pracy/niewidzialna-praca-o-wielkiej-mocy_pr-1711.html.",
1374
1375             u"Niewidzialna praca to między innymi praca wykonywana na rzecz swojej rodziny / wolontariat. Chociaż "
1376             u"zazwyczaj kojarzona jest z pracą w domu (na przykład kobiety opiekujące się dziećmi), to odnosi się też "
1377             u"do „szarych pracowników” wielkich korporacji, którzy stoją za sukcesem tych przedsiębiorstw, w tym "
1378             u"moderatorów mediów społecznościowych, których rola jest niezastąpiona i niezastąpiona i niezbędna dla "
1379             u"sprawnego funkcjonowania biznesu.\n"
1380             u"„Niewidzialną pracą” można nazwać również aktywność użytkowników mediów społecznościowych, którzy "
1381             u"poprzez komentarze pod wpisami i newsami oraz udostępnianie różnego rodzaju treści podtrzymują "
1382             u"zainteresowanie innych użytkowników, a co za tym idzie zwiększają zainteresowanie potencjalnych "
1383             u"reklamodawców.\n"
1384             u"\n"
1385             u"O niewidzialnej pracy można przeczytać w artykule pt. „Niewidzialna praca o wielkiej mocy”: "
1386             u"http://www.praca.pl/poradniki/rynek-pracy/niewidzialna-praca-o-wielkiej-mocy_pr-1711.html.",
1387
1388             u"Niewidzialna praca to między innymi praca wykonywana na rzecz swojej rodziny / wolontariat. Chociaż "
1389             u"zazwyczaj kojarzona jest z pracą w domu (na przykład kobiety opiekujące się dziećmi), to odnosi się "
1390             u"też do „szarych pracowników” wielkich korporacji, którzy stoją za sukcesem tych przedsiębiorstw, "
1391             u"w tym moderatorów mediów społecznościowych, których rola jest niezastąpiona i niezbędna dla sprawnego "
1392             u"funkcjonowania biznesu.\n"
1393             u"„Niewidzialną pracą” można nazwać również aktywność użytkowników mediów społecznościowych, którzy "
1394             u"poprzez komentarze pod wpisami i newsami podtrzymują zainteresowanie innych użytkowników, a co za tym "
1395             u"idzie zwiększają zainteresowanie potencjalnych reklamodawców.\n"
1396             u"Z całą pewnością informatycy budujący rozwiązania IT dla firm nie są osobami wykonującymi „niewidzialną "
1397             u"pracę”, chociażby z tego względu, że swoją pracę wykonują najczęściej poza domem, jej efekty są "
1398             u"dostrzegane i doceniane oraz pobierają za nią wysokie wynagrodzenia (pracownicy IT są jedną z najlepiej "
1399             u"opłacanych grup zawodowych na całym świecie).\n"
1400             u"\n"
1401             u"O niewidzialnej pracy można przeczytać w artykule pt. „Niewidzialna praca o wielkiej mocy”: "
1402             u"http://www.praca.pl/poradniki/rynek-pracy/niewidzialna-praca-o-wielkiej-mocy_pr-1711.html."),
1403         (
1404             u"Informacja nazywana jest we współczesnym świecie „zasobem strategicznym”. Pozwala działać, planować, "
1405             u"podejmować decyzje w świadomy sposób – i z prawdopodobieństwem osiągnięcia dobrych skutków. Jednak, "
1406             u"aby informacja spełniała takie funkcje, musi być wiarygodna, aktualna, kompletna. Jej wiarygodność "
1407             u"należy zatem sprawdzać i weryfikować. Jeśli pojawia się w więcej niż jednym źródle, rośnie "
1408             u"prawdopodobieństwo, że nie jest manipulacją ani dezinformacją. Czasami zdarza się, że kolejne media "
1409             u"bezmyślnie powtarzają informację za tym, kto podał ją jako pierwszy, i trafia ona do wielu odbiorców, "
1410             u"ostatecznie okazuje się nieprawdziwa. Bez dotarcia do jej właściwego, oryginalnego źródła, trudno mieć "
1411             u"100-procentową pewność, że mamy do czynienia z wartościową informacją.",
1412
1413             u"Informacja nazywana jest we współczesnym świecie „zasobem strategicznym”. Pozwala działać, planować, "
1414             u"podejmować decyzje w świadomy sposób – i z prawdopodobieństwem osiągnięcia dobrych skutków. Jednak, aby "
1415             u"informacja spełnia takie funkcje, musi być wiarygodna, aktualna, kompletna. Jej wiarygodność należy "
1416             u"zatem sprawdzać i weryfikować. Jeśli pojawia się w więcej niż jednym źródle, rośnie prawdopodobieństwo, "
1417             u"że nie jest manipulacją ani dezinformacją. Jeśli dodatkowo informacja potwierdzona jest możliwością "
1418             u"dotarcia do oryginalnego jej źródła, zamiast opracowania lub interpretacji, można z wysokim "
1419             u"prawdopodobieństwem zakładać, że jest prawdziwa.",
1420
1421             u"Informacja nazywana jest we współczesnym świecie „zasobem strategicznym”. Pozwala działać, planować, "
1422             u"podejmować decyzje w świadomy sposób – i z prawdopodobieństwem osiągnięcia dobrych skutków. Jednak, aby "
1423             u"informacja spełnia takie funkcje, musi być wiarygodna, aktualna, kompletna. Informacja pochodząca "
1424             u"jedynie z serwisów społecznościowych i nielicznych portali informacyjnych, a także nie można ustalić jej "
1425             u"oryginalnego źródła, nie wolno zakładać, że jest prawdziwa. Możemy pozwolić wprowadzić się w błąd – "
1426             u"a nasi znajomi, na których profilach społecznościowych będziemy się opierać, mogą nawet nie mieć "
1427             u"świadomości, że rozprzestrzeniają nieprawdziwe informacje.\n"
1428             u"\n"
1429             u"O potencjalnych konsekwencjach fałszywych informacji w prawdziwym świecie przeczytasz tu:\n"
1430             u"https://www.wprost.pl/swiat/10030588/"
1431             u"Facebook-wplynal-na-wynik-amerykanskich-wyborow-Zuckerberg-komentuje.html."),
1432         (
1433             u"Samo podjęcie czynności kontrolnych przez prokuraturę nie musi oznaczać, że umowy podpisywane "
1434             u"z wykonawcami budżetu obywatelskiego odbyły się z naruszeniem prawa. Każdy z nas może paść ofiarą "
1435             u"niesłusznych oskarżeń, dlatego powinno unikać się ocen dotyczących ewentualnej winy. Dopóki zarzuty "
1436             u"postawione przez prokuraturę (jeśli w ogóle zostaną postawione) nie zostaną uprawomocnione wyrokiem "
1437             u"sądowym, obowiązuje tzw. domniemanie niewinności. Tytuł zastosowanego newsa jest akceptowalny, ponieważ "
1438             u"nie rozstrzyga ewentualnej winy wykonawców budżetu obywatelskiego. Niestety, z drugiej strony "
1439             u"sformułowanie „niejasne umowy” sugeruje pewnego rodzaju nieprawidłowości. Dziennikarze tworzący newsy "
1440             u"powinni działać zgodnie z etyką zawodową. Są oni zobowiązani do rzetelnego informowania o faktach "
1441             u"i unikaniu prasowych przekłamań, nie tylko w treści newsów, ale również w ich tytułach. Bywa jednak tak, "
1442             u"że dziennikarze tworzący tytuły wiadomości manipulują nami, aby podstępnie zmusić nas do zaznajomienia "
1443             u"się z ich treścią. Robią to najczęściej w celu wygenerowania dodatkowych zysków z reklam, które "
1444             u"pojawiają się obok treści wiadomości. To zjawisko nosi nazwę „clickbait”.\n"
1445             u"\n"
1446             u"Jeśli chcesz dowiedzieć się czym jest dokładnie „clickbait” posłuchaj audycji pt. „Clickbait w sieci, "
1447             u"czyli kto chce cię oszukać”: "
1448             u"http://www.polskieradio.pl/9/3850/Artykul/1665036,Clickbait-w-sieci-czyli-kto-chce-cie-oszukac.\n"
1449             u"\n"
1450             u"W celu zapoznania się ze standardami pracy dziennikarskiej warto przeczytać:\n"
1451             u"Kartę Etyczną Mediów: http://www.dziennikarzerp.pl/wp-content/uploads/2010/06/karta_dziennikarzy.pdf.\n"
1452             u"Kodeks etyki dziennikarskiej Stowarzyszenia Dziennikarzy Polskich: "
1453             u"http://sdp.pl/s/kodeks-etyki-dziennikarskiej-sdp.\n"
1454             u"Dziennikarski kodeks obyczajowy Stowarzyszenia Dziennikarzy RP: "
1455             u"http://www.dziennikarzerp.pl/wp-content/uploads/2010/06/kodeks.pdf.",
1456
1457             u"Zastosowanie takiego tytułu jest najlepsze, ponieważ stwierdza tylko pewien fakt, a jednocześnie "
1458             u"nie przesądza o rezultatach działań kontrolnych prokuratury. Samo podjęcie czynności kontrolnych "
1459             u"przez prokuraturę nie musi oznaczać, że umowy podpisywane z wykonawcami budżetu obywatelskiego odbyły "
1460             u"się z naruszeniem prawa. Każdy z nas może paść ofiarą niesłusznych oskarżeń, dlatego powinno unikać się "
1461             u"skrajnych ocen dotyczących ewentualnej winy. Dopóki zarzuty postawione przez prokuraturę (jeśli w ogóle "
1462             u"zostaną postawione) nie zostaną uprawomocnione wyrokiem sądowym obowiązuje tzw. domniemanie niewinności. "
1463             u"Tytuł zastosowanego newsa jest poprawny i zgodny z etyką zawodową dziennikarza. Pamiętajmy, "
1464             u"że dziennikarze zobowiązani są do rzetelnego informowania o faktach i unikaniu prasowych przekłamań, "
1465             u"nie tylko w treści newsów, ale również w ich tytułach.\n"
1466             u"\n"
1467             u"W celu zapoznania się ze standardami pracy dziennikarskiej warto przeczytać:\n"
1468             u"Kartę Etyczną Mediów: http://www.dziennikarzerp.pl/wp-content/uploads/2010/06/karta_dziennikarzy.pdf.\n"
1469             u"Kodeks etyki dziennikarskiej Stowarzyszenia Dziennikarzy Polskich: "
1470             u"http://sdp.pl/s/kodeks-etyki-dziennikarskiej-sdp.\n"
1471             u"Dziennikarski kodeks obyczajowy Stowarzyszenia Dziennikarzy RP: "
1472             u"http://www.dziennikarzerp.pl/wp-content/uploads/2010/06/kodeks.pdf.",
1473
1474             u"Zastosowanie takiego tytułu wprowadza tylko niepotrzebny zamęt i nosi znamiona manipulacji skierowanej "
1475             u"wobec czytelników. Taki tytuł może być krzywdzący dla wykonawców, ponieważ wprost sugeruje ich winę. "
1476             u"Samo podjęcie czynności kontrolnych przez prokuraturę nie musi oznaczać, że umowy podpisywane "
1477             u"z wykonawcami budżetu obywatelskiego odbyły się z naruszeniem prawa. Każdy z nas może paść ofiarą "
1478             u"niesłusznych oskarżeń, dlatego powinno unikać się skrajnych ocen dotyczących ewentualnej winy. "
1479             u"Dopóki zarzuty postawione przez prokuraturę (jeśli w ogóle zostaną postawione) nie zostaną "
1480             u"uprawomocnione wyrokiem sądowym obowiązuje tzw. domniemanie niewinności. Tytuł zastosowanego newsa jest "
1481             u"nieakceptowalny, ponieważ zakłada winę, której nie udowodniono. Dziennikarze tworzący newsy powinni "
1482             u"działać zgodnie z etyką zawodową. Są oni zobowiązani do rzetelnego informowania o faktach i unikaniu "
1483             u"prasowych przekłamań, nie tylko w treści newsów, ale również w ich tytułach. Bywa jednak tak, że "
1484             u"dziennikarze tworzący tytuły wiadomości manipulują nami, aby podstępnie zmusić nas do zaznajomienia się "
1485             u"z ich treścią. Robią to najczęściej w celu wygenerowania dodatkowych zysków z reklam, które pojawiają "
1486             u"się obok treści wiadomości. To zjawisko nosi nazwę „clickbait”.\n"
1487             u"\n"
1488             u"Jeśli chcesz dowiedzieć się czym jest dokładnie „clickbait” posłuchaj audycji pt. „Clickbait w sieci, "
1489             u"czyli kto chce cię oszukać”: "
1490             u"http://www.polskieradio.pl/9/3850/Artykul/1665036,Clickbait-w-sieci-czyli-kto-chce-cie-oszukac.\n"
1491             u"\n"
1492             u"W celu zapoznania się ze standardami pracy dziennikarskiej warto przeczytać:\n"
1493             u"Kartę Etyczną Mediów: http://www.dziennikarzerp.pl/wp-content/uploads/2010/06/karta_dziennikarzy.pdf.\n"
1494             u"Kodeks etyki dziennikarskiej Stowarzyszenia Dziennikarzy Polskich: "
1495             u"http://sdp.pl/s/kodeks-etyki-dziennikarskiej-sdp.\n"
1496             u"Dziennikarski kodeks obyczajowy Stowarzyszenia Dziennikarzy RP: "
1497             u"http://www.dziennikarzerp.pl/wp-content/uploads/2010/06/kodeks.pdf."),
1498         (
1499             u"Wymienione w odpowiedzi narzędzia służą raczej dystrybucji informacji i prezentowaniu własnych wniosków "
1500             u"/ przemyśleń (Power Point lub podcast), a nie pracy w grupie. Stosowane przy realizacji projektu "
1501             u"narzędzia muszą pozwalać na komunikację zwrotną, wymianę myśli i ustalenia – a także wprowadzanie "
1502             u"zmian w tworzonych treściach (muszą zatem pozwalać na tworzenie treści w formie wspólnie realizowanego "
1503             u"procesu, a nie prezentować je statycznie).\n"
1504             u"\n"
1505             u"Informacje o komunikacji w projektach znajdziesz tu:\n"
1506             u"http://www.ptzp.org.pl/files/konferencje/kzz/artyk_pdf_2017/T1/t1_200.pdf.",
1507
1508             u"Wymienione w odpowiedzi narzędzia służą wspólnej pracy nad projektem, mogą jednak nie pozwalać "
1509             u"na przykład na pełne śledzenie chronologii wypowiedzi i ustaleń (Coggle) lub też odnotowanie efektów "
1510             u"i ustaleń (Skype). Stosowane przy realizacji Waszego projektu narzędzia muszą pozwalać na komunikację "
1511             u"zwrotną, wymianę myśli i ustalenia – a także wprowadzanie zmian w tworzonych treściach (muszą zatem "
1512             u"pozwalać na tworzenie treści w formie wspólnie realizowanego procesu, a nie prezentować je statycznie) "
1513             u"i umożliwiać śledzenie historii dokonywanych ustaleń i wprowadzanych zmian.\n"
1514             u"\n"
1515             u"Informacje o komunikacji w projektach znajdziesz tu:\n"
1516             u"http://www.ptzp.org.pl/files/konferencje/kzz/artyk_pdf_2017/T1/t1_200.pdf.",
1517
1518             u"Wybrane narzędzia powinny doskonale odpowiedzieć na potrzeby współpracy przy realizacji projektu. "
1519             u"Pozwalają zarówno na zarządzanie wewnątrz projektu (Wunderlist), jak i wspólne tworzenie koncepcji "
1520             u"opracowywanego dzieła (OneNote, Google Docs). Szybka, grupowa komunikacja, uwzględniająca wszystkich "
1521             u"uczestników projektu, zachowująca historię konwersacji, pozwala nie tylko na dokonywanie ustaleń, "
1522             u"ale i odnoszenie się do nich w przyszłości.\n"
1523             u"\n"
1524             u"Informacje o komunikacji w projektach znajdziesz tu:\n"
1525             u"http://www.ptzp.org.pl/files/konferencje/kzz/artyk_pdf_2017/T1/t1_200.pdf."),
1526         (
1527             u"Liczba edycji hasła na Wikipedii nie jest wskaźnikiem jego jakości. Przy niektórych hasłach, szczególnie "
1528             u"społecznie drażliwych i kontrowersyjnych, liczba edycji może wynikać z braku zgody społeczności "
1529             u"wikipedystów co do jednej neutralnej definicji. Przyczyną dużej liczby edycji bywa również zamierzone "
1530             u"i złośliwe działanie internautów, którzy stosując tzw. trolling zmieniają znaczenie danego hasła, "
1531             u"obniżając jego wartość merytoryczną lub przedstawiając skrajny punkt widzenia. Liczba edycji może "
1532             u"wynikać też ze zmieniającej się stale wiedzy na temat danego zjawiska.\n"
1533             u"\n"
1534             u"Na temat oceny jakości haseł tworzonych na Wikipedii można przeczytać tutaj: "
1535             u"https://pl.wikipedia.org/wiki/Wikipedia:Ocena_jakości.",
1536
1537             u"Długość hasła na Wikipedii może być dobry miernikiem jego jakości, ale też niewystarczającym. "
1538             u"Podobnie z jego strukturą. Nawet jeśli hasło zawiera odpowiedni wstęp definicyjny oraz dalsze "
1539             u"skonkretyzowanie omawianej problematyki, nie oznacza to automatycznie, że mamy do czynienia z hasłem "
1540             u"wysokiej jakości. Długość i odpowiednia struktura nie będą niosły ze sobą wartości, jeśli hasło "
1541             u"nie będzie zawierało odpowiednich przypisów i odnośników do innych rzetelnych źródeł, w których "
1542             u"potwierdzone są tezy i informacje zawarte w opisie hasła. Po zapoznaniu się z interesującym hasłem "
1543             u"warto zawsze sprawdzić źródła, do których się ono odnosi. Sama obecność odnośników nie oznacza, że są "
1544             u"one aktualne i rzetelne.\n"
1545             u"\n"
1546             u"Na temat oceny jakości haseł tworzonych na Wikipedii można przeczytać tutaj: "
1547             u"https://pl.wikipedia.org/wiki/Wikipedia:Ocena_jakości.",
1548
1549             u"Ani liczba edycji hasła, ani jego długość i struktura nie ma znaczenia dla jego jakości, jeśli w opisie "
1550             u"hasła nie znajdziemy odpowiednich przypisów. To źródła, do których odnosi się opis hasła, stanowią "
1551             u"przede wszystkim o jego wartości merytorycznej. Należy jednak pamiętać, że sama obecność odnośników "
1552             u"jeszcze nic nie znaczy, warto samemu sprawdzić, czy są one aktualne i odnoszą do rzetelnej wiedzy.\n"
1553             u"Na temat oceny jakości haseł tworzonych na Wikipedii można przeczytać tutaj: "
1554             u"https://pl.wikipedia.org/wiki/Wikipedia:Ocena_jakości."),
1555         (
1556             u"Ochrona praw autorskich oraz przestrzeganie przepisów i norm związanych z tymi prawami jest szczególnie "
1557             u"istotna w cyfrowym świecie, w którym skopiowanie cudzego pomysłu wymaga często jedynie zastosowanie "
1558             u"funkcji „Kopiuj – Wklej”. Wykorzystanie podpisanej grafiki z podaniem jedynie adresu strony nie "
1559             u"gwarantuje ochrony praw jej autora – grafika mogła znaleźć się na stronie w sposób niezgodny z prawem, "
1560             u"z naruszeniem praw jej autora, poza tym autor interesującej nas grafiki ma prawo do bycia docenionym "
1561             u"poprzez podanie imienia i nazwiska lub pseudonimu. Dlatego, jeśli masz wątpliwości, zrób co możesz, "
1562             u"aby ustalić jej pierwotne źródło i autora i sprawdzić, czy pozwolił on na jej wykorzystywanie przez inne "
1563             u"osoby.\n"
1564             u"\n"
1565             u"O tym, że nawet wielkie firmy popełniają plagiaty przeczytasz tu:\n"
1566             u"http://noizz.pl/lifestyle/"
1567             u"zara-kopiuje-grafiki-artystki-my-jestesmy-znani-a-ty-nie-odpowiadaja-prawnicy-firmy/p9y17wp.\n"
1568             u"\n"
1569             u"O ochronie praw autorskich więcej dowiesz się tu: http://prawokultury.pl.",
1570
1571             u"Ochrona praw autorskich oraz przestrzeganie przepisów i norm związanych z tymi prawami jest szczególnie "
1572             u"istotna w cyfrowym świecie, w którym skopiowanie cudzego pomysłu wymaga często jedynie zastosowanie "
1573             u"funkcji „Kopiuj – Wklej”. Wykorzystanie podpisanej grafiki z podaniem jedynie adresu strony "
1574             u"nie gwarantuje ochrony praw jej autora – grafika mogła znaleźć się na stronie w sposób niezgodny "
1575             u"z prawem, z naruszeniem praw jej autora. Z takiego jednego naruszenia mogą rodzić się kolejne – "
1576             u"grafika może być zamieszczana przez administratorów kolejnych stron. Dlatego, jeśli masz wątpliwości, "
1577             u"zrób co możesz, aby ustalić jej pierwotne źródło i autora i sprawdzić, czy pozwolił on na jej "
1578             u"wykorzystywanie przez inne osoby.\n"
1579             u"\n"
1580             u"O ochronie praw autorskich więcej dowiesz się tu: http://prawokultury.pl.",
1581
1582             u"Ochrona praw autorskich oraz przestrzeganie przepisów i norm związanych z tymi prawami jest szczególnie "
1583             u"istotna w cyfrowym świecie, w którym skopiowanie cudzego pomysłu wymaga często jedynie zastosowanie "
1584             u"funkcji „Kopiuj – Wklej”. Wykorzystanie podpisanej grafiki z podaniem jedynie adresu strony "
1585             u"nie gwarantuje ochrony praw jej autora – grafika mogła znaleźć się na stronie w sposób niezgodny "
1586             u"z prawem, z naruszeniem praw jej autora. Zrobienie wszystkiego, co możliwe, aby ustalić jej pierwotne "
1587             u"źródło i autora i sprawdzić, czy pozwolił on na jej wykorzystywanie przez inne osoby, sprawia, "
1588             u"że zachowujemy się nie tylko fair w stosunku do autora, ale także przestrzegamy obowiązujących w tym "
1589             u"zakresie przepisów.\n"
1590             u"\n"
1591             u"O ochronie praw autorskich więcej dowiesz się tu: http://prawokultury.pl."),
1592         (
1593             u"Przedstawiona w kodzie funkcja zawiera niepełną listę argumentów. Zadaniem funkcji f(a) jest "
1594             u"wyświetlenie sumy argumentu „a” oraz argumentu „b”. Niestety, sama funkcja pozwala określić wyłącznie "
1595             u"argument „a” – z tego względu jej zapis jest niezgodny z zadaniem, które ma zrealizować. Główną wadą "
1596             u"tego kodu jest więc przetwarzanie brakującego argumentu „b”.",
1597
1598             u"Przedstawiona w kodzie funkcja zawiera niepełną listę argumentów. Zadaniem funkcji f(a) jest "
1599             u"wyświetlenie sumy argumentu „a” oraz argumentu „b”. Niestety, sama funkcja pozwala określić wyłącznie "
1600             u"argument „a” – z tego względu jej zapis jest niezgodny z zadaniem, które ma zrealizować. Odpowiedź ta "
1601             u"jest niepoprawna, ponieważ funkcja nie określa, czy argument zarówno „a” jak i „b” muszą mieć charakter "
1602             u"liczbowy. Mogą mieć również charakter łańcuchowy (tj. tekstowy).",
1603
1604             u"Jest to błędna odpowiedź, ponieważ litera „f” w podanym kodzie nie oznacza argumentów funkcji. Argument "
1605             u"funkcji oznaczony jest literą „a” i znajduje się w nawiasie. Litera „f” oznacza funkcje, która w tym "
1606             u"przypadku przetwarza argument „a”. Ponadto przedstawiona w kodzie funkcja zawiera niepełną listę "
1607             u"argumentów. Zadaniem przedstawione funkcji f(a) jest wyświetlenie sumy argumentu „a” oraz argumentu „b”. "
1608             u"Niestety, sama funkcja pozwala określić wyłącznie argument „a” – z tego względu jej zapis jest niezgodny "
1609             u"z zadaniem, które ma zrealizować.\n"
1610             u"\n"
1611             u"O definicji funkcji na przykładzie języka programowania C można przeczytać tutaj: "
1612             u"https://pl.wikibooks.org/wiki/C/Funkcje#cite_note-1."),
1613         (
1614             u"Licencje Creative Commons pozwalają zastąpić tradycyjny model ochrony praw autorskich „Wszystkie prawa "
1615             u"zastrzeżone” zasadą „Pewne prawa zastrzeżone” – przy jednoczesnym poszanowaniu zasad prawa autorskiego "
1616             u"(http://creativecommons.pl/poznaj-licencje-creative-commons/). Licencja CC-BY-SA pozwala na kopiowanie, "
1617             u"zmienianie, rozprowadzanie, przedstawianie i wykonywanie utworu oraz utworów zależnych, które muszą być "
1618             u"opublikowane na tej samej licencji. Musisz jednak zwrócić uwagę na to, jaka licencja obowiązuje "
1619             u"dla materiałów ściągniętych z serwisu The Noun Project, aby nie naruszyć praw ich autorów.",
1620
1621             u"Licencje Creative Commons pozwalają zastąpić tradycyjny model ochrony praw autorskich „Wszystkie prawa "
1622             u"zastrzeżone” zasadą „Pewne prawa zastrzeżone” – przy jednoczesnym poszanowaniu zasad prawa autorskiego "
1623             u"(http://creativecommons.pl/poznaj-licencje-creative-commons/). Licencja CC-BY pozwala na kopiowanie, "
1624             u"zmienianie, rozprowadzanie, przedstawianie i wykonywanie utworu jedynie pod warunkiem oznaczenia "
1625             u"autorstwa i gwarantuje najszersze swobody licencjobiorcy. Materiały z serwisu NASA należą natomiast – "
1626             u"jak wszystkie dzieła stworzone przez rząd federalny USA – do domeny publicznej, która daje wszystkim "
1627             u"nieograniczone prawo do dzieł, których wykorzystanie nie podlega restrykcjom i ograniczeniom, ponieważ "
1628             u"prawa majątkowe do twórczości wygasły lub twórczość ta nigdy nie była lub nie jest przedmiotem prawa "
1629             u"autorskiego (http://domenapubliczna.org/co-to-jest-domena-publiczna/).",
1630
1631             u"Wykorzystanie materiałów ściągniętych z wyszukiwarki grafiki Google, bez sprawdzenia ich pochodzenia, "
1632             u"udzielonej przez twórcę licencji oraz bez znajomości praw, jakie przysługują przy ich użyciu, w znacznej "
1633             u"większości mogą narazić Cię na zarzut nieuprawnionego wykorzystania cudzej twórczości, a zatem "
1634             u"naruszenia praw autorskich. Wyszukiwarka Google umożliwia filtrowanie wyników m.in. na podstawie "
1635             u"licencji, na jakiej zostały udostępnione materiały. Opcję tę znajdziesz w zakładce Narzędzia – Prawa do "
1636             u"użytkowania."),
1637         (
1638             u"Podczas wyszukiwaniu w Internecie obiektów takich jak zdjęcia lub grafiki istotna jest nie tyle liczba "
1639             u"słów kluczowych, co ich trafność. Wybrane przez Ciebie słowa kluczowe zawierają odniesienie do "
1640             u"wydarzenia historycznego, miejsca, formy przekazu – są więc one wyczerpujące i pozwolą otrzymać "
1641             u"najlepsze rezultaty odnoszące się do poszukiwanego przez nas obiektu.",
1642
1643             u"Podczas wyszukiwaniu w Internecie obiektów takich jak zdjęcia lub grafiki istotna jest nie tyle liczba "
1644             u"słów kluczowych, co ich trafność. Wybrane przez Ciebie słowa kluczowe zawierają odniesienia wyłącznie "
1645             u"do miejsca związanego z wydarzeniem oraz jego zawartości wizualnej – są więc one niewyczerpujące i "
1646             u"nie pozwolą uzyskać najlepszych rezultatów odnoszących się do poszukiwanego przez nas obiektu. Brakuje "
1647             u"przede wszystkim odniesienia do samego wydarzenia, czyli angielskiej wojny domowej w latach 1642-1651.",
1648
1649             u"Podczas wyszukiwaniu w Internecie obiektów takich jak zdjęcia lub grafiki istotna jest nie tyle liczba "
1650             u"słów kluczowych, co ich trafność. Wybrane przez Ciebie słowa kluczowe zawierają odniesienia do miejsca "
1651             u"związanego z wydarzeniem, okresu oraz jego formy – są one trafne, a co za tym idzie powinniśmy uzyskać "
1652             u"rezultat odnoszący się do poszukiwanego przez nas obiektu. Warto jednak poszerzyć zakres słów kluczowych "
1653             u"o dodatkowe informacje, na przykład użyć hasła „karykatura”. Dodatkowe słowa mogą zwiększyć skuteczność "
1654             u"naszych poszukiwań."),
1655         (
1656             u"Ochrona praw jednostki w Internecie dotyczy różnych aspektów naszego funkcjonowania w przestrzeni "
1657             u"cyfrowej. Jedną z nich jest ochrona naszych praw do stworzonego dzieła, a zatem naszych praw autorskich. "
1658             u"Nie można zatem wykorzystywać bez pozwolenia niczyich zdjęć do tworzenia własnej relacji z wydarzeń, "
1659             u"nawet organizowanych i przeżytych wspólnie.\n"
1660             u"\n"
1661             u"Co więcej, ludzie mają prawo do samodzielnego decydowania o tym, w jaki sposób ich wizerunek będzie "
1662             u"upubliczniony. Dlatego zanim zamieścisz zdjęcie innej osoby, nawet wspólne selfie, upewnij się, "
1663             u"że sfotografowana osoba wyraża zgodę na zamieszczenie zdjęcia w Internecie.\n"
1664             u"\n"
1665             u"Więcej o ochronie wizerunku dowiesz się tu:\n"
1666             u"https://portal.uw.edu.pl/web/ado/ochrona-wizerunku.",
1667
1668             u"Ochrona praw jednostki w Internecie dotyczy różnych aspektów naszego funkcjonowania w przestrzeni "
1669             u"cyfrowej. Jedną z nich jest ochrona naszych praw do stworzonego dzieła, a zatem naszych praw autorskich. "
1670             u"Nie można zatem wykorzystywać bez pozwolenia niczyich zdjęć do tworzenia własnej relacji z wydarzeń, "
1671             u"nawet organizowanych i przeżytych wspólnie. Zanim wykorzystasz czyjeś zdjęcie – nawet takie, na którym "
1672             u"jesteś – zapytaj o zgodę jego autorkę / autora o możliwość jego wykorzystania.",
1673
1674             u"Ochrona praw jednostki w Internecie dotyczy różnych aspektów naszego funkcjonowania w przestrzeni "
1675             u"cyfrowej. Jedną z nich jest ochrona naszych praw do stworzonego dzieła, a zatem naszych praw autorskich. "
1676             u"Nie można zatem wykorzystywać bez pozwolenia niczyich zdjęć do tworzenia własnej relacji z wydarzeń, "
1677             u"nawet organizowanych i przeżytych wspólnie. Jeśli jednak uzyskałeś zgodę autorki / autora na "
1678             u"publikowanie zdjęć, możesz to bez wahania zrobić. Co więcej, ludzie mają prawo do samodzielnego "
1679             u"decydowania o tym, w jaki sposób ich wizerunek będzie upubliczniony. Jeśli jednak przed publikacją "
1680             u"zdjęcia upewniłeś się, że sfotografowana osoba wyraża na zamieszczenie zdjęcia w Internecie zgodę, "
1681             u"również możesz bez wątpliwości zamieścić zdjęcie.\n"
1682             u"\n"
1683             u"Więcej o ochronie wizerunku dowiesz się tu:\n"
1684             u"https://portal.uw.edu.pl/web/ado/ochrona-wizerunku."),
1685         (
1686             u"Internet to niemal nieskończone źródło informacji, edukacji, rozrywki. Często trudno jest zapanować nad "
1687             u"otwieraniem kolejnych, coraz bardziej interesujących (jak się może zdawać), stron. Zachowanie dyscypliny "
1688             u"i świadomości własnych działań – oraz świadomości upływającego czasu – pozwala na zarządzanie własnym "
1689             u"czasem i efektywne wykorzystanie narzędzia, jakim jest światowa sieć. Warto pamiętać, że taka dyscyplina "
1690             u"bywa trudna, szczególnie jeśli bez żadnego zastanowienia będziesz pozwalać na to, aby kolejne bodźce "
1691             u"odrywały Cię od realizowania zaplanowanych działań.\n"
1692             u"\n"
1693             u"Więcej o zarządzaniu czasem dowiesz się tu:\n"
1694             u"http://michalpasterski.pl/2012/06/zarzadzanie-czasem-w-5-cwiczeniach/.\n"
1695             u"\n"
1696             u"Co nas denerwuje i rozprasza i jak sobie z tym radzić? Zajrzyj tu:\n"
1697             u"http://gazetapraca.pl/gazetapraca/1,95288,13425980,Co_nas_denerwuje__co_nas_rozprasza.html.\n"
1698             u"\n"
1699             u"Pomidor pomoże? Prosty sposób na zarządzanie czasem znajdziesz tu:\n"
1700             u"http://projektantczasu.pl/technika-pomodoro-pommodoro-pomidora/.",
1701
1702             u"Internet to niemal nieskończone źródło informacji, edukacji, rozrywki. Często trudno jest zapanować nad "
1703             u"otwieraniem kolejnych, coraz bardziej interesujących (jak się może zdawać), stron. Zachowanie dyscypliny "
1704             u"i świadomości własnych działań – oraz świadomości upływającego czasu – pozwala na zarządzanie własnym "
1705             u"czasem i efektywne wykorzystanie narzędzia, jakim jest światowa sieć. Jeśli nie narzucisz sam sobie "
1706             u"granic i nie będziesz świadomie panował nad podejmowanymi działaniami, Twój plan nigdy się nie ziści.\n"
1707             u"\n"
1708             u"Więcej o zarządzaniu czasem dowiesz się tu:\n"
1709             u"http://michalpasterski.pl/2012/06/zarzadzanie-czasem-w-5-cwiczeniach/.\n"
1710             u"\n"
1711             u"Co nas denerwuje i rozprasza i jak sobie z tym radzić? Zajrzyj tu:\n"
1712             u"http://gazetapraca.pl/gazetapraca/1,95288,13425980,Co_nas_denerwuje__co_nas_rozprasza.html.\n"
1713             u"\n"
1714             u"Pomidor pomoże? Prosty sposób na zarządzanie czasem znajdziesz tu:\n"
1715             u"http://projektantczasu.pl/technika-pomodoro-pommodoro-pomidora/.",
1716
1717             u"Internet to niemal nieskończone źródło informacji, edukacji, rozrywki. Często trudno jest zapanować nad "
1718             u"otwieraniem kolejnych, coraz bardziej interesujących (jak się może zdawać), stron. Zachowanie dyscypliny "
1719             u"i świadomości własnych działań – oraz świadomości upływającego czasu – pozwala na zarządzanie własnym "
1720             u"czasem i efektywne wykorzystanie narzędzia, jakim jest światowa sieć. Wykorzystanie zewnętrznych "
1721             u"narzędzi, które pozwalają nam obiektywnie oceniać własne zachowania i dokonywać ich stosownej korekty – "
1722             u"jeśli to niezbędne – to sposób nie tylko na efektywne działanie, ale i na zwiększenie prawdopodobieństwa "
1723             u"osiągnięcia sukcesu w podejmowanych przedsięwzięciach.\n"
1724             u"\n"
1725             u"Więcej o zarządzaniu czasem dowiesz się tu:\n"
1726             u"http://michalpasterski.pl/2012/06/zarzadzanie-czasem-w-5-cwiczeniach/.\n"
1727             u"\n"
1728             u"Co nas denerwuje i rozprasza i jak sobie z tym radzić? Zajrzyj tu:\n"
1729             u"http://gazetapraca.pl/gazetapraca/1,95288,13425980,Co_nas_denerwuje__co_nas_rozprasza.html.\n"
1730             u"\n"
1731             u"Pomidor pomoże? Prosty sposób na zarządzanie czasem znajdziesz tu:\n"
1732             u"http://projektantczasu.pl/technika-pomodoro-pommodoro-pomidora/."),
1733         (
1734             u"Wtyczki do przeglądarek, których zadaniem jest blokowanie reklam, nie analizują treści zawartych "
1735             u"na stronach internetowych. Jeśli posiadałyby taką funkcjonalność, to zapewne odczulibyśmy spowolnienie "
1736             u"w działaniu przeglądarki internetowej. Wtyczki blokujące reklamy działają w oparciu o listę plików "
1737             u"graficznych, animacji i wyskakujących okien. To przede wszystkim sam użytkownik decyduje, jakie elementy "
1738             u"strony mają podlegać zablokowaniu w oparciu o zdefiniowane obiekty.\n"
1739             u"\n"
1740             u"O mechanizmie blokowania reklam można przeczytać na stronie producenta najpopularniejszej wtyczki "
1741             u"Adblock Plus: https://adblockplus.org/en/about.",
1742
1743             u"Faktycznie, korzystając z wtyczki blokującej reklamy zauważymy, że reklamy te nie wyświetlają się nam "
1744             u"podczas użytkowania przeglądarki. Co więcej nasza przeglądarka nie tylko nie wyświetla nam zablokowanych "
1745             u"reklam, ale wcześniej przerywa komunikację z serwerami, które odpowiadają za ich publikacje. Za to, jaki "
1746             u"serwer powinien być niedopuszczony do komunikacji z przeglądarką, odpowiada sam użytkownik. Wtyczki "
1747             u"blokujące reklamy działają bowiem w oparciu o listę plików graficznych, animacji i wyskakujących okien. "
1748             u"To przede wszystkim sam użytkownik decyduje, jakie elementy strony mają znaleźć się na stronie i "
1749             u"podlegać zablokowaniu.\n"
1750             u"\n"
1751             u"O mechanizmie blokowania reklam można przeczytać na stronie producenta najpopularniejszej wtyczki "
1752             u"Adblock Plus: https://adblockplus.org/en/about.",
1753
1754             u"Przeglądarka internetowa z zainstalowaną wtyczką nie tylko nie wyświetla nam zablokowane reklamy, "
1755             u"ale przede wszystkim blokuję komunikację z serwerami, które odpowiadają za ich publikacje. Za to, "
1756             u"jaki serwer powinien być niedopuszczony do komunikacji z przeglądarką, odpowiada sam użytkownik. Wtyczki "
1757             u"blokujące reklamy działają bowiem w oparciu o listę plików graficznych, animacji i wyskakujących okien. "
1758             u"To przede wszystkim sam użytkownik decyduje, jakie elementy strony mają znaleźć się na stronie "
1759             u"i podlegać zablokowaniu. Wtyczka nie tylko zablokuje te elementy, ale również nie dopuści do komunikacji "
1760             u"z serwerami odpowiedzialnymi za ich treść.\n"
1761             u"\n"
1762             u"O mechanizmie blokowania reklam można przeczytać na stronie producenta najpopularniejszej wtyczki "
1763             u"Adblock Plus: https://adblockplus.org/en/about."),
1764     ]
1765
1766     @classmethod
1767     def results(cls, contact):
1768         fields = cls().fields
1769
1770         def get_idx(choices, answer):
1771             return dict((score, i) for i, (score, text) in enumerate(choices))[answer]
1772
1773         def question_data(i):
1774             field = 'pyt%s' % i
1775             choices = fields[field].choices
1776             score = contact.body[field]
1777             chosen_idx = get_idx(choices, score)
1778             correct_idx = get_idx(choices, 2)
1779             return {
1780                 'score': score,
1781                 'chosen_idx': chosen_idx,
1782                 'correct_idx': correct_idx,
1783                 'chosen': 'abc'[chosen_idx],
1784                 'correct': 'abc'[correct_idx],
1785                 'label': fields[field].label,
1786                 'comment': mark_safe(markdown.convert(cls.ANSWER_COMMENTS[i-1][chosen_idx])),
1787                 'answers': [(text, a_score == score, a_score == 2) for a_score, text in choices],
1788             }
1789         question_count = 20
1790         questions = [question_data(i) for i in xrange(1, question_count + 1)]
1791         points = sum(question['score'] for question in questions)
1792         return {'questions': questions, 'points': points/2., 'total': question_count}