From: Radek Czajka <radekczajka@nowoczesnapolska.org.pl> Date: Tue, 26 Nov 2013 13:06:52 +0000 (+0100) Subject: Allow setting author for questions and editing some text chunks. X-Git-Url: https://git.mdrn.pl/prawokultury.git/commitdiff_plain/71e8973b1dfead567e58ec8e3e7b80a64865ba5f?ds=sidebyside;hp=f097b79baff0a021c4204124271181a610ec4068 Allow setting author for questions and editing some text chunks. --- diff --git a/chunks/__init__.py b/chunks/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/chunks/admin.py b/chunks/admin.py new file mode 100644 index 0000000..fc45cb7 --- /dev/null +++ b/chunks/admin.py @@ -0,0 +1,17 @@ +from django.contrib import admin +from fnpdjango.utils.models.translation import translated_fields +from .models import Chunk, Attachment + + +class ChunkAdmin(admin.ModelAdmin): + list_display = ('key', 'description',) + search_fields = ('key', ) + translated_fields(('content',)) + +admin.site.register(Chunk, ChunkAdmin) + + +class AttachmentAdmin(admin.ModelAdmin): + list_display = ('key',) + search_fields = ('key',) + +admin.site.register(Attachment, AttachmentAdmin) \ No newline at end of file diff --git a/chunks/locale/de/LC_MESSAGES/django.mo b/chunks/locale/de/LC_MESSAGES/django.mo new file mode 100644 index 0000000..be5f8ae Binary files /dev/null and b/chunks/locale/de/LC_MESSAGES/django.mo differ diff --git a/chunks/locale/de/LC_MESSAGES/django.po b/chunks/locale/de/LC_MESSAGES/django.po new file mode 100644 index 0000000..7fbf84e --- /dev/null +++ b/chunks/locale/de/LC_MESSAGES/django.po @@ -0,0 +1,74 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-19 11:39+0200\n" +"PO-Revision-Date: 2012-04-11 22:56+0100\n" +"Last-Translator: Kamil <kjaklukowski@gmail.com>\n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: models.py:11 models.py:33 +msgid "key" +msgstr "Schlüssel" + +#: models.py:11 +msgid "A unique name for this chunk of content" +msgstr "Die einzigartige Bezeichnung für dieses Chunk von Inhalten" + +#: models.py:12 +msgid "description" +msgstr "Beschreibung" + +#: models.py:13 +msgid "content" +msgstr "Inhalt" + +#: models.py:17 +msgid "chunk" +msgstr "Chunk" + +#: models.py:18 +msgid "chunks" +msgstr "Chunks" + +#: models.py:33 +msgid "A unique name for this attachment" +msgstr "Die einzigartige Bezeichnung für diese Beilage" + +#: models.py:38 +msgid "attachment" +msgstr "Beilage" + +#: models.py:38 +msgid "attachments" +msgstr "Beilagen" + +#~ msgid "title" +#~ msgstr "Titel" + +#~ msgid "slug" +#~ msgstr "Slug" + +#~ msgid "file" +#~ msgstr "Datei" + +#~ msgid "author" +#~ msgstr "Autor" + +#~ msgid "slideshare ID" +#~ msgstr "Dia-ID" + +#~ msgid "HTML" +#~ msgstr "HTML" + +#~ msgid "document" +#~ msgstr "Dokument" diff --git a/chunks/locale/en/LC_MESSAGES/django.mo b/chunks/locale/en/LC_MESSAGES/django.mo new file mode 100644 index 0000000..a81e430 Binary files /dev/null and b/chunks/locale/en/LC_MESSAGES/django.mo differ diff --git a/chunks/locale/en/LC_MESSAGES/django.po b/chunks/locale/en/LC_MESSAGES/django.po new file mode 100644 index 0000000..e81d48a --- /dev/null +++ b/chunks/locale/en/LC_MESSAGES/django.po @@ -0,0 +1,53 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-19 11:39+0200\n" +"PO-Revision-Date: 2012-03-04 20:05+0100\n" +"Last-Translator: xxx <xxx>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: models.py:11 models.py:33 +msgid "key" +msgstr "key" + +#: models.py:11 +msgid "A unique name for this chunk of content" +msgstr "A unique name for this piece of content" + +#: models.py:12 +msgid "description" +msgstr "description" + +#: models.py:13 +msgid "content" +msgstr "content" + +#: models.py:17 +msgid "chunk" +msgstr "piece" + +#: models.py:18 +msgid "chunks" +msgstr "pieces" + +#: models.py:33 +msgid "A unique name for this attachment" +msgstr "A unique name for this attachment" + +#: models.py:38 +msgid "attachment" +msgstr "attachment" + +#: models.py:38 +msgid "attachments" +msgstr "attachments" diff --git a/chunks/locale/es/LC_MESSAGES/django.mo b/chunks/locale/es/LC_MESSAGES/django.mo new file mode 100644 index 0000000..83f03fb Binary files /dev/null and b/chunks/locale/es/LC_MESSAGES/django.mo differ diff --git a/chunks/locale/es/LC_MESSAGES/django.po b/chunks/locale/es/LC_MESSAGES/django.po new file mode 100644 index 0000000..4130ea1 --- /dev/null +++ b/chunks/locale/es/LC_MESSAGES/django.po @@ -0,0 +1,53 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-19 11:39+0200\n" +"PO-Revision-Date: 2012-02-18 13:02+0100\n" +"Last-Translator: Anna Jopp <aniajopp@gmail.com>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: models.py:11 models.py:33 +msgid "key" +msgstr "clave" + +#: models.py:11 +msgid "A unique name for this chunk of content" +msgstr "El nombre único para este elemento del contenido" + +#: models.py:12 +msgid "description" +msgstr "descripción" + +#: models.py:13 +msgid "content" +msgstr "contenido" + +#: models.py:17 +msgid "chunk" +msgstr "elemento" + +#: models.py:18 +msgid "chunks" +msgstr "elementos" + +#: models.py:33 +msgid "A unique name for this attachment" +msgstr "El nombre único para este archivo adjunto" + +#: models.py:38 +msgid "attachment" +msgstr "archivo adjunto" + +#: models.py:38 +msgid "attachments" +msgstr "archivos adjuntos" diff --git a/chunks/locale/fr/LC_MESSAGES/django.mo b/chunks/locale/fr/LC_MESSAGES/django.mo new file mode 100644 index 0000000..1ef6af2 Binary files /dev/null and b/chunks/locale/fr/LC_MESSAGES/django.mo differ diff --git a/chunks/locale/fr/LC_MESSAGES/django.po b/chunks/locale/fr/LC_MESSAGES/django.po new file mode 100644 index 0000000..150a92c --- /dev/null +++ b/chunks/locale/fr/LC_MESSAGES/django.po @@ -0,0 +1,53 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-19 11:39+0200\n" +"PO-Revision-Date: 2012-02-22 20:52+0100\n" +"Last-Translator: Ela Janota <amarillis5@wp.pl>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: models.py:11 models.py:33 +msgid "key" +msgstr "clé" + +#: models.py:11 +msgid "A unique name for this chunk of content" +msgstr "Un nom unique pour ce fragment du contenu" + +#: models.py:12 +msgid "description" +msgstr "description" + +#: models.py:13 +msgid "content" +msgstr "contenu" + +#: models.py:17 +msgid "chunk" +msgstr "fragment" + +#: models.py:18 +msgid "chunks" +msgstr "fragments" + +#: models.py:33 +msgid "A unique name for this attachment" +msgstr "Un nom unique pour cette pièce jointe" + +#: models.py:38 +msgid "attachment" +msgstr "pièce jointe" + +#: models.py:38 +msgid "attachments" +msgstr "pièces jointes" diff --git a/chunks/locale/it/LC_MESSAGES/django.mo b/chunks/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000..a07410f Binary files /dev/null and b/chunks/locale/it/LC_MESSAGES/django.mo differ diff --git a/chunks/locale/it/LC_MESSAGES/django.po b/chunks/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000..4598d53 --- /dev/null +++ b/chunks/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-19 11:39+0200\n" +"PO-Revision-Date: 2012-02-21 16:52+0100\n" +"Last-Translator: xxx\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: models.py:11 models.py:33 +msgid "key" +msgstr "Chiave" + +#: models.py:11 +msgid "A unique name for this chunk of content" +msgstr "un nome unico per questo allegato" + +#: models.py:12 +msgid "description" +msgstr "descrizione" + +#: models.py:13 +msgid "content" +msgstr "contenuto" + +#: models.py:17 +msgid "chunk" +msgstr "blocco" + +#: models.py:18 +msgid "chunks" +msgstr "blocchi" + +#: models.py:33 +msgid "A unique name for this attachment" +msgstr "Un nome unico per questo allegato" + +#: models.py:38 +msgid "attachment" +msgstr "allegato" + +#: models.py:38 +msgid "attachments" +msgstr "allegati" diff --git a/chunks/locale/jp/LC_MESSAGES/django.mo b/chunks/locale/jp/LC_MESSAGES/django.mo new file mode 100644 index 0000000..ad2faa7 Binary files /dev/null and b/chunks/locale/jp/LC_MESSAGES/django.mo differ diff --git a/chunks/locale/jp/LC_MESSAGES/django.po b/chunks/locale/jp/LC_MESSAGES/django.po new file mode 100644 index 0000000..dcc303c --- /dev/null +++ b/chunks/locale/jp/LC_MESSAGES/django.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-19 11:39+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: models.py:11 models.py:33 +msgid "key" +msgstr "" + +#: models.py:11 +msgid "A unique name for this chunk of content" +msgstr "" + +#: models.py:12 +msgid "description" +msgstr "" + +#: models.py:13 +msgid "content" +msgstr "" + +#: models.py:17 +msgid "chunk" +msgstr "" + +#: models.py:18 +msgid "chunks" +msgstr "" + +#: models.py:33 +msgid "A unique name for this attachment" +msgstr "" + +#: models.py:38 +msgid "attachment" +msgstr "" + +#: models.py:38 +msgid "attachments" +msgstr "" diff --git a/chunks/locale/lt/LC_MESSAGES/django.mo b/chunks/locale/lt/LC_MESSAGES/django.mo new file mode 100644 index 0000000..6131fd5 Binary files /dev/null and b/chunks/locale/lt/LC_MESSAGES/django.mo differ diff --git a/chunks/locale/lt/LC_MESSAGES/django.po b/chunks/locale/lt/LC_MESSAGES/django.po new file mode 100644 index 0000000..a78804a --- /dev/null +++ b/chunks/locale/lt/LC_MESSAGES/django.po @@ -0,0 +1,54 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-19 11:39+0200\n" +"PO-Revision-Date: 2012-03-01 16:13+0100\n" +"Last-Translator: Aneta\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Translated-Using: django-rosetta 0.5.3\n" + +#: models.py:11 models.py:33 +msgid "key" +msgstr "raktas" + +#: models.py:11 +msgid "A unique name for this chunk of content" +msgstr "Unikalus Å¡io turinio gabalo pavadnimas" + +#: models.py:12 +msgid "description" +msgstr "apraÅ¡ymas" + +#: models.py:13 +msgid "content" +msgstr "turinys" + +#: models.py:17 +msgid "chunk" +msgstr "gabalas" + +#: models.py:18 +msgid "chunks" +msgstr "gabalai" + +#: models.py:33 +msgid "A unique name for this attachment" +msgstr "Unikalus Å¡io priedo pavadnimas" + +#: models.py:38 +msgid "attachment" +msgstr "priedas" + +#: models.py:38 +msgid "attachments" +msgstr "priedai" diff --git a/chunks/locale/pl/LC_MESSAGES/django.mo b/chunks/locale/pl/LC_MESSAGES/django.mo new file mode 100644 index 0000000..2cc4840 Binary files /dev/null and b/chunks/locale/pl/LC_MESSAGES/django.mo differ diff --git a/chunks/locale/pl/LC_MESSAGES/django.po b/chunks/locale/pl/LC_MESSAGES/django.po new file mode 100644 index 0000000..4e0416a --- /dev/null +++ b/chunks/locale/pl/LC_MESSAGES/django.po @@ -0,0 +1,58 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-11-26 14:00+0100\n" +"PO-Revision-Date: 2013-11-26 14:01+0100\n" +"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Translated-Using: django-rosetta 0.5.3\n" +"X-Generator: Poedit 1.5.4\n" + +#: models.py:13 models.py:39 +msgid "key" +msgstr "klucz" + +#: models.py:13 +msgid "A unique name for this chunk of content" +msgstr "Unikalna nazwa dla tego kawaÅka treÅci" + +#: models.py:14 +msgid "description" +msgstr "opis" + +#: models.py:18 +msgid "chunk" +msgstr "kawaÅek" + +#: models.py:19 +msgid "chunks" +msgstr "kawaÅki" + +#: models.py:33 +msgid "content" +msgstr "zawartoÅÄ" + +#: models.py:34 +msgid "Use <a href=\"http://txstyle.org/\">Textile</a> syntax." +msgstr "Użyj skÅadni <a href=\"http://txstyle.org/\">Textile</a>." + +#: models.py:39 +msgid "A unique name for this attachment" +msgstr "Unikalna nazwa dla tego zaÅÄ cznika" + +#: models.py:44 +msgid "attachment" +msgstr "zaÅÄ cznik" + +#: models.py:44 +msgid "attachments" +msgstr "zaÅÄ czniki" diff --git a/chunks/locale/ru/LC_MESSAGES/django.mo b/chunks/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 0000000..e1d650c Binary files /dev/null and b/chunks/locale/ru/LC_MESSAGES/django.mo differ diff --git a/chunks/locale/ru/LC_MESSAGES/django.po b/chunks/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 0000000..593521f --- /dev/null +++ b/chunks/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,53 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-19 11:39+0200\n" +"PO-Revision-Date: 2012-03-04 22:10+0100\n" +"Last-Translator: xxx <xxx>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: models.py:11 models.py:33 +msgid "key" +msgstr "клÑÑ" + +#: models.py:11 +msgid "A unique name for this chunk of content" +msgstr "УникалÑное Ð¸Ð¼Ñ Ð´Ð»Ñ ÑÑого ÑÑагменÑа ÑодеÑжаниÑ" + +#: models.py:12 +msgid "description" +msgstr "опиÑание" + +#: models.py:13 +msgid "content" +msgstr "ÑодеÑжание" + +#: models.py:17 +msgid "chunk" +msgstr "ÑÑагменÑ" + +#: models.py:18 +msgid "chunks" +msgstr "ÑÑагменÑÑ" + +#: models.py:33 +msgid "A unique name for this attachment" +msgstr "УникалÑное Ð¸Ð¼Ñ Ð´Ð»Ñ ÑÑого пÑиложениÑ" + +#: models.py:38 +msgid "attachment" +msgstr "пÑиложение" + +#: models.py:38 +msgid "attachments" +msgstr "пÑиложениÑ" diff --git a/chunks/locale/uk/LC_MESSAGES/django.mo b/chunks/locale/uk/LC_MESSAGES/django.mo new file mode 100644 index 0000000..7c5388e Binary files /dev/null and b/chunks/locale/uk/LC_MESSAGES/django.mo differ diff --git a/chunks/locale/uk/LC_MESSAGES/django.po b/chunks/locale/uk/LC_MESSAGES/django.po new file mode 100644 index 0000000..edb9b06 --- /dev/null +++ b/chunks/locale/uk/LC_MESSAGES/django.po @@ -0,0 +1,53 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-19 11:39+0200\n" +"PO-Revision-Date: 2012-03-04 17:29+0100\n" +"Last-Translator: xxx <xxx>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: models.py:11 models.py:33 +msgid "key" +msgstr "клÑÑ" + +#: models.py:11 +msgid "A unique name for this chunk of content" +msgstr "УнÑкалÑна назва Ð´Ð»Ñ ÑÑÑÑ ÑаÑÑини змÑÑÑÑ" + +#: models.py:12 +msgid "description" +msgstr "опиÑ" + +#: models.py:13 +msgid "content" +msgstr "змÑÑÑ" + +#: models.py:17 +msgid "chunk" +msgstr "ÑаÑÑина" + +#: models.py:18 +msgid "chunks" +msgstr "ÑаÑÑини" + +#: models.py:33 +msgid "A unique name for this attachment" +msgstr "УнÑкалÑна назва Ð´Ð»Ñ ÑÑого додаÑкÑ" + +#: models.py:38 +msgid "attachment" +msgstr "додаÑок" + +#: models.py:38 +msgid "attachments" +msgstr "додаÑки" diff --git a/chunks/migrations/0001_initial.py b/chunks/migrations/0001_initial.py new file mode 100644 index 0000000..1fd5e1d --- /dev/null +++ b/chunks/migrations/0001_initial.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'Chunk' + db.create_table('chunks_chunk', ( + ('key', self.gf('django.db.models.fields.CharField')(max_length=255, primary_key=True)), + ('description', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)), + ('content_pl', self.gf('markupfield.fields.MarkupField')(rendered_field=True, blank=True)), + ('content_en', self.gf('markupfield.fields.MarkupField')(rendered_field=True, blank=True)), + ('content_pl_markup_type', self.gf('django.db.models.fields.CharField')(default=None, max_length=30, blank=True)), + ('content_en_markup_type', self.gf('django.db.models.fields.CharField')(default=None, max_length=30, blank=True)), + ('_content_pl_rendered', self.gf('django.db.models.fields.TextField')()), + ('_content_en_rendered', self.gf('django.db.models.fields.TextField')()), + )) + db.send_create_signal('chunks', ['Chunk']) + + # Adding model 'Attachment' + db.create_table('chunks_attachment', ( + ('key', self.gf('django.db.models.fields.CharField')(max_length=255, primary_key=True)), + ('attachment', self.gf('django.db.models.fields.files.FileField')(max_length=100)), + )) + db.send_create_signal('chunks', ['Attachment']) + + + def backwards(self, orm): + # Deleting model 'Chunk' + db.delete_table('chunks_chunk') + + # Deleting model 'Attachment' + db.delete_table('chunks_attachment') + + + models = { + 'chunks.attachment': { + 'Meta': {'ordering': "('key',)", 'object_name': 'Attachment'}, + 'attachment': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'primary_key': 'True'}) + }, + 'chunks.chunk': { + 'Meta': {'ordering': "('key',)", 'object_name': 'Chunk'}, + '_content_en_rendered': ('django.db.models.fields.TextField', [], {}), + '_content_pl_rendered': ('django.db.models.fields.TextField', [], {}), + 'content_en': ('markupfield.fields.MarkupField', [], {'rendered_field': 'True', 'blank': 'True'}), + 'content_en_markup_type': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '30', 'blank': 'True'}), + 'content_pl': ('markupfield.fields.MarkupField', [], {'rendered_field': 'True', 'blank': 'True'}), + 'content_pl_markup_type': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '30', 'blank': 'True'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'primary_key': 'True'}) + } + } + + complete_apps = ['chunks'] \ No newline at end of file diff --git a/chunks/migrations/__init__.py b/chunks/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/chunks/models.py b/chunks/models.py new file mode 100644 index 0000000..f16af08 --- /dev/null +++ b/chunks/models.py @@ -0,0 +1,47 @@ +from django.core.cache import cache +from django.db import models +from django.utils.translation import ugettext_lazy as _ +from markupfield.fields import MarkupField +from fnpdjango.utils.models.translation import add_translatable + + +class Chunk(models.Model): + """ + A Chunk is a piece of content associated with a unique key that can be inserted into + any template with the use of a special template tag. + """ + key = models.CharField(_('key'), help_text=_('A unique name for this chunk of content'), primary_key=True, max_length=255) + description = models.CharField(_('description'), blank=True, max_length=255) + + class Meta: + ordering = ('key',) + verbose_name = _('chunk') + verbose_name_plural = _('chunks') + + def __unicode__(self): + return self.key + + def cache_key(self): + return 'chunk_' + self.key + + def save(self, *args, **kwargs): + ret = super(Chunk, self).save(*args, **kwargs) + cache.delete(self.cache_key()) + return ret + +add_translatable(Chunk, { + 'content': MarkupField(_('content'), blank=True, markup_type='textile_pl', + help_text=_('Use <a href="http://txstyle.org/">Textile</a> syntax.')), +}) + + +class Attachment(models.Model): + key = models.CharField(_('key'), help_text=_('A unique name for this attachment'), primary_key=True, max_length=255) + attachment = models.FileField(upload_to='chunks/attachment') + + class Meta: + ordering = ('key',) + verbose_name, verbose_name_plural = _('attachment'), _('attachments') + + def __unicode__(self): + return self.key diff --git a/chunks/templatetags/__init__.py b/chunks/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/chunks/templatetags/chunks.py b/chunks/templatetags/chunks.py new file mode 100644 index 0000000..6231e4f --- /dev/null +++ b/chunks/templatetags/chunks.py @@ -0,0 +1,38 @@ +from django import template +from django.db import models +from django.core.cache import cache +from ..models import Chunk, Attachment + + +register = template.Library() + + +@register.simple_tag +def chunk(key, cache_time=0, raw=False): + try: + cache_key = 'chunk_' + key + c = cache.get(cache_key) + if c is None: + c = Chunk.objects.get(key=key) + cache.set(cache_key, c, int(cache_time)) + content = c.content + except Chunk.DoesNotExist: + n = Chunk(key=key) + n.save() + return '' + return content.raw if raw else content + + +@register.simple_tag +def attachment(key, cache_time=0): + try: + cache_key = 'attachment_' + key + c = cache.get(cache_key) + if c is None: + c = Attachment.objects.get(key=key) + cache.set(cache_key, c, int(cache_time)) + return c.attachment.url + except Attachment.DoesNotExist: + return '' + + diff --git a/prawokultury/settings.d/30-apps.py b/prawokultury/settings.d/30-apps.py index 1e87f11..2acaaf9 100644 --- a/prawokultury/settings.d/30-apps.py +++ b/prawokultury/settings.d/30-apps.py @@ -6,6 +6,7 @@ INSTALLED_APPS = ( 'migdal', 'questions', 'shop', + 'chunks', 'gravatar', 'south', diff --git a/prawokultury/templates/base.html b/prawokultury/templates/base.html index 8260886..906871b 100755 --- a/prawokultury/templates/base.html +++ b/prawokultury/templates/base.html @@ -4,6 +4,7 @@ {% load static from staticfiles %} {% load fnp_common menu_tags migdal_tags events_tags fnp_share fnp_lang %} {% load compressed %} +{% load chunks %} <html prefix="og: http://ogp.me/ns#"> <head> <title>{% block "titleextra" %}{% endblock %}{% trans "Right to Culture" %}</title> @@ -67,7 +68,7 @@ {% events_box %} </div> <div class="sidebar-box" style="text-align: center"> - <a href="/pierwsza-pomoc"><img src="{% static 'img/ask-a-lawyer.png' %}" alt="{% trans "Ask a lawyer" %}" /></a> + {% chunk 'side_promo' %} </div> <div id="sidebar-box-categories" class="sidebar-box"> {% categories 'topics' %} diff --git a/questions/admin.py b/questions/admin.py index 6427bbc..0f1c343 100755 --- a/questions/admin.py +++ b/questions/admin.py @@ -13,6 +13,7 @@ class QuestionAdmin(admin.ModelAdmin): 'approved', 'edited_question', 'answer', + 'answered_by', 'tags', ('answered', 'answered_at'), ('published', 'published_at'), diff --git a/questions/locale/pl/LC_MESSAGES/django.mo b/questions/locale/pl/LC_MESSAGES/django.mo index 43ab53d..ae2bfea 100644 Binary files a/questions/locale/pl/LC_MESSAGES/django.mo and b/questions/locale/pl/LC_MESSAGES/django.mo differ diff --git a/questions/locale/pl/LC_MESSAGES/django.po b/questions/locale/pl/LC_MESSAGES/django.po index ff4c09c..190749c 100644 --- a/questions/locale/pl/LC_MESSAGES/django.po +++ b/questions/locale/pl/LC_MESSAGES/django.po @@ -7,78 +7,105 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-01-14 15:57+0100\n" -"PO-Revision-Date: 2013-01-14 15:59+0100\n" +"POT-Creation-Date: 2013-11-26 13:59+0100\n" +"PO-Revision-Date: 2013-11-26 14:00+0100\n" "Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n" "Language-Team: LANGUAGE <LL@li.org>\n" -"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" +"X-Generator: Poedit 1.5.4\n" -#: models.py:11 +#: models.py:16 +msgid "Name" +msgstr "Nazwa" + +#: models.py:17 +msgid "Slug" +msgstr "Slug" + +#: models.py:20 +msgid "Tag Category" +msgstr "Kategoria tagów" + +#: models.py:21 +msgid "Tag Categories" +msgstr "Kategorie tagów" + +#: models.py:38 +msgid "Tag" +msgstr "Tag" + +#: models.py:39 +msgid "Tags" +msgstr "Tagi" + +#: models.py:47 msgid "contact e-mail" msgstr "e-mail kontaktowy" -#: models.py:12 -#: models.py:29 +#: models.py:48 models.py:68 msgid "question" msgstr "pytanie" -#: models.py:13 +#: models.py:49 msgid "created at" msgstr "utworzone" -#: models.py:14 +#: models.py:50 msgid "changed at" msgstr "zmienione" -#: models.py:15 +#: models.py:51 msgid "approved" msgstr "potwierdzone" -#: models.py:16 +#: models.py:52 msgid "edited question" msgstr "zmienione pytanie" -#: models.py:17 +#: models.py:53 msgid "Leave empty if question doesn't need editing." msgstr "Zostaw puste, jeÅli pytanie nie wymaga zmian." -#: models.py:18 +#: models.py:54 msgid "answer" msgstr "odpowiedź" -#: models.py:19 -msgid "Use <a href=\"http://textile.thresholdstate.com/\">Textile</a> syntax." -msgstr "" +#: models.py:55 +msgid "Use <a href=\"http://txstyle.org/\">Textile</a> syntax." +msgstr "Użyj skÅadni <a href=\"http://txstyle.org/\">Textile</a>." -#: models.py:20 +#: models.py:56 +msgid "answered by" +msgstr "odpowiedzi udzieliÅ/a" + +#: models.py:57 msgid "answered" msgstr "udzielono odpowiedzi" -#: models.py:21 +#: models.py:58 msgid "Check to send the answer to user." msgstr "Zaznacz, by wysÅaÄ odpowiedź użytkownikowi." -#: models.py:22 +#: models.py:59 msgid "answered at" msgstr "udzielono odpowiedzi" -#: models.py:23 +#: models.py:60 msgid "published" msgstr "opublikowane" -#: models.py:24 +#: models.py:61 msgid "Check to display answered question on site." msgstr "Zaznaczy, by odpowiedź ukazaÅa siÄ na stronie." -#: models.py:25 +#: models.py:62 msgid "published at" msgstr "opublikowane" -#: models.py:30 +#: models.py:69 msgid "questions" msgstr "pytania" - diff --git a/questions/migrations/0006_auto__del_unique_tag_name__add_field_question_answered_by.py b/questions/migrations/0006_auto__del_unique_tag_name__add_field_question_answered_by.py new file mode 100644 index 0000000..7f3a452 --- /dev/null +++ b/questions/migrations/0006_auto__del_unique_tag_name__add_field_question_answered_by.py @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Removing unique constraint on 'Tag', fields ['name'] + db.delete_unique('questions_tag', ['name']) + + # Adding field 'Question.answered_by' + db.add_column('questions_question', 'answered_by', + self.gf('django.db.models.fields.CharField')(max_length=127, null=True, blank=True), + keep_default=False) + + if not db.dry_run: + orm.Question.objects.filter(answered=True).update(answered_by=u"dr Krzysztof Siewicz") + + + def backwards(self, orm): + # Adding unique constraint on 'Tag', fields ['name'] + db.create_unique('questions_tag', ['name']) + + # Deleting field 'Question.answered_by' + db.delete_column('questions_question', 'answered_by') + + + models = { + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'questions.question': { + 'Meta': {'ordering': "['-created_at']", 'object_name': 'Question'}, + '_answer_rendered': ('django.db.models.fields.TextField', [], {}), + 'answer': ('markupfield.fields.MarkupField', [], {'rendered_field': 'True', 'blank': 'True'}), + 'answer_markup_type': ('django.db.models.fields.CharField', [], {'default': "'textile_pl'", 'max_length': '30', 'blank': 'True'}), + 'answered': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), + 'answered_at': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'answered_by': ('django.db.models.fields.CharField', [], {'max_length': '127', 'null': 'True', 'blank': 'True'}), + 'approved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'changed_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'edited_question': ('django.db.models.fields.TextField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'published': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), + 'published_at': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'question': ('django.db.models.fields.TextField', [], {'db_index': 'True'}) + }, + 'questions.tag': { + 'Meta': {'object_name': 'Tag'}, + 'category': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'tags'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['questions.TagCategory']"}), + 'click_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'questions.tagcategory': { + 'Meta': {'object_name': 'TagCategory'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'questions.tagitem': { + 'Meta': {'object_name': 'TagItem'}, + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions_tagitem_tagged_items'", 'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'object_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True'}), + 'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'items'", 'to': "orm['questions.Tag']"}) + } + } + + complete_apps = ['questions'] diff --git a/questions/models.py b/questions/models.py index 746ad84..f00afc1 100644 --- a/questions/models.py +++ b/questions/models.py @@ -52,7 +52,8 @@ class Question(models.Model): edited_question = models.TextField(_('edited question'), db_index=True, null=True, blank=True, help_text=_("Leave empty if question doesn't need editing.")) answer = MarkupField(_('answer'), markup_type='textile_pl', blank=True, - help_text=_('Use <a href="http://textile.thresholdstate.com/">Textile</a> syntax.')) + help_text=_('Use <a href="http://txstyle.org/">Textile</a> syntax.')) + answered_by = models.CharField(_('answered by'), max_length=127, null=True, blank=True) answered = models.BooleanField(_('answered'), db_index=True, default=False, help_text=_('Check to send the answer to user.')) answered_at = models.DateTimeField(_('answered at'), null=True, blank=True, db_index=True) diff --git a/questions/templates/questions/ack_mail.html b/questions/templates/questions/ack_mail.html index 23eae4f..632c86b 100755 --- a/questions/templates/questions/ack_mail.html +++ b/questions/templates/questions/ack_mail.html @@ -1,12 +1,9 @@ -{% load i18n %}{% language 'pl' %} +{% load i18n chunks %}{% language 'pl' %} <p>{{ question.created_at }} zarejestrowaliÅmy w serwisie PrawoKultury.pl Twoje pytanie:</p> <blockquote>{{ question.question|linebreaks }}</blockquote> -<p>Dyżur prawnika w serwisie Prawo Kultury odbywa siÄ w Årody, prosimy wiÄc -o cierpliwoÅÄ. Możemy nie byÄ w stanie odpowiedzieÄ na wszystkie pytania. -Odpowiedzi sÄ wysyÅane e-mailem, ale zachÄcamy też do Åledzenia strony -<a href="http://prawokultury.pl">http://PrawoKultury.pl</a>.</p> +{% chunk 'questions_ack_mail_html' %} <p>DziÄkujemy za skontaktowanie siÄ z nami!</p> diff --git a/questions/templates/questions/ack_mail.txt b/questions/templates/questions/ack_mail.txt index 6b0a771..e281d5c 100755 --- a/questions/templates/questions/ack_mail.txt +++ b/questions/templates/questions/ack_mail.txt @@ -1,12 +1,9 @@ -{% load i18n %}{% language 'pl' %}{{ question.created_at }} zarejestrowaliÅmy w serwisie PrawoKultury.pl Twoje pytanie: +{% load i18n chunks %}{% language 'pl' %}{{ question.created_at }} zarejestrowaliÅmy w serwisie PrawoKultury.pl Twoje pytanie: {{ question.question|safe }} -Dyżur prawnika w serwisie Prawo Kultury odbywa siÄ w Årody, prosimy wiÄc -o cierpliwoÅÄ. Możemy nie byÄ w stanie odpowiedzieÄ na wszystkie pytania. -Odpowiedzi sÄ wysyÅane e-mailem, ale zachÄcamy też do Åledzenia strony -http://PrawoKultury.pl +{% chunk 'questions_ack_mail_txt' raw=1 %} DziÄkujemy za skontaktowanie siÄ z nami! diff --git a/questions/templates/questions/question_detail.html b/questions/templates/questions/question_detail.html index b3426e7..b263830 100755 --- a/questions/templates/questions/question_detail.html +++ b/questions/templates/questions/question_detail.html @@ -16,7 +16,7 @@ {{ question.answer }} -<p>dr Krzysztof Siewicz</p> +<p>{{ question.answered_by }}</p> <p><a href="{% url 'questions' %}">WrÃ³Ä do listy pytaÅ.</a></p> diff --git a/questions/templates/questions/question_form.html b/questions/templates/questions/question_form.html index 1a413d0..8f74192 100755 --- a/questions/templates/questions/question_form.html +++ b/questions/templates/questions/question_form.html @@ -1,5 +1,6 @@ {% extends "base.html" %} {% load url from future %} +{% load chunks %} {% block "titleextra" %}Pierwsza pomoc w prawie autorskim: pytanie do prawnika :: {% endblock %} {% block "body" %} @@ -7,23 +8,7 @@ <div class="normal"> -<p>Poniżej znajduje siÄ formularz, za pomocÄ którego możesz zadaÄ pytanie prawnikowi. Wybrane -pytania (w razie potrzeby odpowiednio przeformuÅowane) oraz odpowiedzi na te pytania bÄdÄ -publikowane na stronie <a href="{% url 'questions' %}">prawokultury.pl</a>. Możesz zostawiÄ swoje dane kontaktowe (adres e-mail), -jeżeli chcesz, żebyÅmy wysÅali Ci odpowiedź bezpoÅrednio lub skontaktowali siÄ z TobÄ w przypadku -wÄ tpliwoÅci co do Twojego pytania. Dane kontaktowe nie bÄdÄ publikowane. -</p> - -<p>Możemy nie byÄ w stanie odpowiedzieÄ na wszystkie pytania, -a w przypadku podobnych pytaÅ możemy odsyÅaÄ do <a href="{% url 'questions' %}">wczeÅniejszych odpowiedzi</a>. -Odpowiedzi na pytania nie należy traktowaÄ jak porad prawnych. Nie prowadzimy indywidualnych konsultacji prawnych.</p> - -<p>Administratorem danych osobowych przetwarzanych w zwiÄ zku z funkcjonowaniem -tego serwisu jest Fundacja Nowoczesna Polska [ul. MarszaÅkowska 84/92 lok. 125, -00-514 Warszawa]. Podanie danych osobowych jest dobrowolne. Dane sÄ przetwarzane -w zakresie niezbÄdnym do prowadzenia serwisu. Osobom, których dane sÄ zbierane, -przysÅuguje prawo dostÄpu do treÅci swoich danych oraz ich poprawiania.</p> - +{% chunk 'questions_form_info' %} </div> <form class="submit-form" method="post" action=""> diff --git a/questions/templates/questions/question_list.html b/questions/templates/questions/question_list.html index 3236309..88bd7c2 100755 --- a/questions/templates/questions/question_list.html +++ b/questions/templates/questions/question_list.html @@ -2,31 +2,14 @@ {% load url from future %} {% load pagination_tags fnp_prevnext %} {% load compressed %} +{% load chunks %} {% block "titleextra" %}Pierwsza pomoc w prawie autorskim :: {% endblock %} {% block "body" %} <h1>Pierwsza pomoc w prawie autorskim: zapytaj prawnika</h1> <div class="normal"> -<h2>Zadaj nam pytanie!</h2> -<p>Jeżeli masz pytanie dotyczÄ ce prawa autorskiego, którego nie ma na poniższej liÅcie, i na które nie znalazÅeÅ/znalazÅaÅ -odpowiedzi w <strong><a href="{% url 'migdal_entry_publications' 'pierwsza-pomoc' %}">przewodniku -po prawie autorskim</a></strong>, możesz je nam zadaÄ dzwoniÄ c w każdÄ ÅrodÄ w godz. 15-17 pod numer +48 516 519 697 lub -<strong><a href="{% url 'questions_form' %}">za pomocÄ specjalnego formularza.</a></strong>. - -<p>Na pytania odpowiada dr Krzysztof Siewicz, prawnik -specjalizujÄ cy siÄ w prawnych aspektach przetwarzania informacji. Dr -Siewicz jest pracownikiem Centrum Otwartej Nauki ICM UW, adiunktem w -Katedrze Prawa Informatycznego WPiA UKSW oraz of counsel kancelarii -prawnej GWW LEGAL.</p> - -<p>Dr Krzysztof Siewicz ukoÅczyÅ WydziaÅ Prawa i Administracji -Uniwersytetu Warszawskiego oraz uzyskaÅ dyplom LLM Central European -University w Budapeszcie. Doktorat o ochronie wolnoÅci użytkowników -oprogramowania obroniÅ na Uniwersytecie w Lejdzie (Holandia). Jest -autorem szeregu publikacji naukowych poÅwiÄconych korzystaniu z -technologii informacyjno-komunikacyjnych oraz posiada wieloletnie -doÅwiadczenie doradcze w tej tematyce.</p> +{% chunk 'questions_list_info' %} <div id="questions-filter"> <h2>Filtruj pytania</h2>