Fixed #621: theme management in admin, highlight noncanon themes
authorRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Thu, 1 Jul 2010 09:59:03 +0000 (11:59 +0200)
committerRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Thu, 1 Jul 2010 09:59:03 +0000 (11:59 +0200)
12 files changed:
apps/wiki/admin.py [new file with mode: 0644]
apps/wiki/fixtures/initial_themes.yaml [new file with mode: 0644]
apps/wiki/migrations/0001_initial.py [new file with mode: 0644]
apps/wiki/migrations/0002_auto__add_theme.py [new file with mode: 0644]
apps/wiki/migrations/__init__.py [new file with mode: 0644]
apps/wiki/models.py
apps/wiki/views.py
redakcja/static/css/html.css
redakcja/static/js/wiki/loader.js
redakcja/static/js/wiki/view_editor_wysiwyg.js
redakcja/static/js/wiki/xslt.js
redakcja/urls.py

diff --git a/apps/wiki/admin.py b/apps/wiki/admin.py
new file mode 100644 (file)
index 0000000..1a61b66
--- /dev/null
@@ -0,0 +1,5 @@
+from django.contrib import admin
+
+from wiki import models
+
+admin.site.register(models.Theme)
diff --git a/apps/wiki/fixtures/initial_themes.yaml b/apps/wiki/fixtures/initial_themes.yaml
new file mode 100644 (file)
index 0000000..fc0b773
--- /dev/null
@@ -0,0 +1,1246 @@
+- fields: {name: Alkohol}
+  model: wiki.theme
+  pk: 1
+- fields: {name: Ambicja}
+  model: wiki.theme
+  pk: 2
+- fields: {name: "Anio\u0142"}
+  model: wiki.theme
+  pk: 3
+- fields: {name: Antysemityzm}
+  model: wiki.theme
+  pk: 4
+- fields: {name: Arkadia}
+  model: wiki.theme
+  pk: 5
+- fields: {name: Artysta}
+  model: wiki.theme
+  pk: 6
+- fields: {name: "Bezdomno\u015B\u0107"}
+  model: wiki.theme
+  pk: 7
+- fields: {name: "Bezpiecze\u0144stwo"}
+  model: wiki.theme
+  pk: 8
+- fields: {name: Bieda}
+  model: wiki.theme
+  pk: 9
+- fields: {name: Bijatyka}
+  model: wiki.theme
+  pk: 10
+- fields: {name: Bogactwo}
+  model: wiki.theme
+  pk: 14
+- fields: {name: Brat}
+  model: wiki.theme
+  pk: 16
+- fields: {name: Bunt}
+  model: wiki.theme
+  pk: 17
+- fields: {name: Buntownik}
+  model: wiki.theme
+  pk: 18
+- fields: {name: Burza}
+  model: wiki.theme
+  pk: 19
+- fields: {name: "B\xF3g"}
+  model: wiki.theme
+  pk: 15
+- fields: {name: "B\u0142azen"}
+  model: wiki.theme
+  pk: 11
+- fields: {name: "B\u0142oto"}
+  model: wiki.theme
+  pk: 13
+- fields: {name: "B\u0142\u0105dzenie"}
+  model: wiki.theme
+  pk: 12
+- fields: {name: Car}
+  model: wiki.theme
+  pk: 20
+- fields: {name: Carpe diem}
+  model: wiki.theme
+  pk: 21
+- fields: {name: "Chciwo\u015B\u0107"}
+  model: wiki.theme
+  pk: 25
+- fields: {name: Chleb}
+  model: wiki.theme
+  pk: 26
+- fields: {name: Choroba}
+  model: wiki.theme
+  pk: 28
+- fields: {name: Chrystus}
+  model: wiki.theme
+  pk: 29
+- fields: {name: Chrzest}
+  model: wiki.theme
+  pk: 30
+- fields: {name: "Ch\u0142op"}
+  model: wiki.theme
+  pk: 27
+- fields: {name: "Cia\u0142o"}
+  model: wiki.theme
+  pk: 31
+- fields: {name: "Ciemno\u015B\u0107"}
+  model: wiki.theme
+  pk: 22
+- fields: {name: Cierpienie}
+  model: wiki.theme
+  pk: 32
+- fields: {name: "Cie\u0144"}
+  model: wiki.theme
+  pk: 23
+- fields: {name: Cisza}
+  model: wiki.theme
+  pk: 24
+- fields: {name: Cmentarz}
+  model: wiki.theme
+  pk: 33
+- fields: {name: Cnota}
+  model: wiki.theme
+  pk: 34
+- fields: {name: Cud}
+  model: wiki.theme
+  pk: 36
+- fields: {name: Czarownica}
+  model: wiki.theme
+  pk: 37
+- fields: {name: Czary}
+  model: wiki.theme
+  pk: 38
+- fields: {name: Czas}
+  model: wiki.theme
+  pk: 39
+- fields: {name: Czyn}
+  model: wiki.theme
+  pk: 40
+- fields: {name: "Czy\u015Bciec"}
+  model: wiki.theme
+  pk: 41
+- fields: {name: "C\xF3rka"}
+  model: wiki.theme
+  pk: 35
+- fields: {name: Dama}
+  model: wiki.theme
+  pk: 42
+- fields: {name: Danse macabre}
+  model: wiki.theme
+  pk: 43
+- fields: {name: Deszcz}
+  model: wiki.theme
+  pk: 44
+- fields: {name: "Diabe\u0142"}
+  model: wiki.theme
+  pk: 45
+- fields: {name: Dobro}
+  model: wiki.theme
+  pk: 46
+- fields: {name: Dom}
+  model: wiki.theme
+  pk: 47
+- fields: {name: "Doros\u0142o\u015B\u0107"}
+  model: wiki.theme
+  pk: 48
+- fields: {name: Drzewo}
+  model: wiki.theme
+  pk: 49
+- fields: {name: Duch}
+  model: wiki.theme
+  pk: 50
+- fields: {name: Duma}
+  model: wiki.theme
+  pk: 52
+- fields: {name: Dusza}
+  model: wiki.theme
+  pk: 51
+- fields: {name: Dworek}
+  model: wiki.theme
+  pk: 53
+- fields: {name: Dworzanin}
+  model: wiki.theme
+  pk: 54
+- fields: {name: "Dw\xF3r"}
+  model: wiki.theme
+  pk: 55
+- fields: {name: "Dzieci\u0144stwo"}
+  model: wiki.theme
+  pk: 56
+- fields: {name: Dziecko}
+  model: wiki.theme
+  pk: 57
+- fields: {name: Dziedzictwo}
+  model: wiki.theme
+  pk: 58
+- fields: {name: Dziewictwo}
+  model: wiki.theme
+  pk: 59
+- fields: {name: "D\u017Awi\u0119k"}
+  model: wiki.theme
+  pk: 60
+- fields: {name: Egzorcyzm}
+  model: wiki.theme
+  pk: 61
+- fields: {name: Elita}
+  model: wiki.theme
+  pk: 62
+- fields: {name: Emigrant}
+  model: wiki.theme
+  pk: 63
+- fields: {name: "Fa\u0142sz"}
+  model: wiki.theme
+  pk: 64
+- fields: {name: Filozof}
+  model: wiki.theme
+  pk: 65
+- fields: {name: Fircyk}
+  model: wiki.theme
+  pk: 66
+- fields: {name: Flirt}
+  model: wiki.theme
+  pk: 67
+- fields: {name: Gospodarz}
+  model: wiki.theme
+  pk: 71
+- fields: {name: Gospodyni}
+  model: wiki.theme
+  pk: 72
+- fields: {name: Gotycyzm}
+  model: wiki.theme
+  pk: 74
+- fields: {name: "Go\u015B\u0107"}
+  model: wiki.theme
+  pk: 73
+- fields: {name: Gra}
+  model: wiki.theme
+  pk: 76
+- fields: {name: Grzech}
+  model: wiki.theme
+  pk: 78
+- fields: {name: "Grzeczno\u015B\u0107"}
+  model: wiki.theme
+  pk: 79
+- fields: {name: "Gr\xF3b"}
+  model: wiki.theme
+  pk: 77
+- fields: {name: Gwiazda}
+  model: wiki.theme
+  pk: 80
+- fields: {name: "G\xF3ra"}
+  model: wiki.theme
+  pk: 75
+- fields: {name: "G\u0142upiec"}
+  model: wiki.theme
+  pk: 68
+- fields: {name: "G\u0142upota"}
+  model: wiki.theme
+  pk: 69
+- fields: {name: "G\u0142\xF3d"}
+  model: wiki.theme
+  pk: 70
+- fields: {name: Handel}
+  model: wiki.theme
+  pk: 81
+- fields: {name: "Ha\u0144ba"}
+  model: wiki.theme
+  pk: 82
+- fields: {name: Historia}
+  model: wiki.theme
+  pk: 83
+- fields: {name: Honor}
+  model: wiki.theme
+  pk: 84
+- fields: {name: Idealista}
+  model: wiki.theme
+  pk: 85
+- fields: {name: "Imi\u0119"}
+  model: wiki.theme
+  pk: 86
+- fields: {name: Interes}
+  model: wiki.theme
+  pk: 87
+- fields: {name: "Jab\u0142ka"}
+  model: wiki.theme
+  pk: 88
+- fields: {name: Jedzenie}
+  model: wiki.theme
+  pk: 89
+- fields: {name: "Jesie\u0144"}
+  model: wiki.theme
+  pk: 90
+- fields: {name: Kaleka}
+  model: wiki.theme
+  pk: 91
+- fields: {name: Kara}
+  model: wiki.theme
+  pk: 92
+- fields: {name: Karczma}
+  model: wiki.theme
+  pk: 93
+- fields: {name: "Kl\u0119ska"}
+  model: wiki.theme
+  pk: 94
+- fields: {name: Kobieta}
+  model: wiki.theme
+  pk: 97
+- fields: {name: "Kobieta \"upad\u0142a\""}
+  model: wiki.theme
+  pk: 99
+- fields: {name: Kobieta demoniczna}
+  model: wiki.theme
+  pk: 98
+- fields: {name: Kochanek}
+  model: wiki.theme
+  pk: 100
+- fields: {name: Kochanek romantyczny}
+  model: wiki.theme
+  pk: 101
+- fields: {name: Kolonializm}
+  model: wiki.theme
+  pk: 102
+- fields: {name: Kondycja ludzka}
+  model: wiki.theme
+  pk: 103
+- fields: {name: Konflikt}
+  model: wiki.theme
+  pk: 104
+- fields: {name: "Konflikt wewn\u0119trzny"}
+  model: wiki.theme
+  pk: 105
+- fields: {name: "Koniec \u015Bwiata"}
+  model: wiki.theme
+  pk: 106
+- fields: {name: "Korzy\u015B\u0107"}
+  model: wiki.theme
+  pk: 108
+- fields: {name: Kot}
+  model: wiki.theme
+  pk: 109
+- fields: {name: "Ko\u0144"}
+  model: wiki.theme
+  pk: 107
+- fields: {name: "Kradzie\u017C"}
+  model: wiki.theme
+  pk: 110
+- fields: {name: Krew}
+  model: wiki.theme
+  pk: 111
+- fields: {name: Krzywda}
+  model: wiki.theme
+  pk: 113
+- fields: {name: "Kr\xF3l"}
+  model: wiki.theme
+  pk: 112
+- fields: {name: "Ksi\u0105dz"}
+  model: wiki.theme
+  pk: 114
+- fields: {name: "Ksi\u0105\u017Cka"}
+  model: wiki.theme
+  pk: 115
+- fields: {name: "Ksi\u0119\u017Cyc"}
+  model: wiki.theme
+  pk: 116
+- fields: {name: Kuchnia}
+  model: wiki.theme
+  pk: 117
+- fields: {name: Kuszenie}
+  model: wiki.theme
+  pk: 118
+- fields: {name: Kwiaty}
+  model: wiki.theme
+  pk: 119
+- fields: {name: "K\u0142amstwo"}
+  model: wiki.theme
+  pk: 95
+- fields: {name: "K\u0142\xF3tnia"}
+  model: wiki.theme
+  pk: 96
+- fields: {name: Labirynt}
+  model: wiki.theme
+  pk: 120
+- fields: {name: Las}
+  model: wiki.theme
+  pk: 121
+- fields: {name: Lato}
+  model: wiki.theme
+  pk: 122
+- fields: {name: Lekarz}
+  model: wiki.theme
+  pk: 123
+- fields: {name: Lenistwo}
+  model: wiki.theme
+  pk: 124
+- fields: {name: Liberat}
+  model: wiki.theme
+  pk: 126
+- fields: {name: List}
+  model: wiki.theme
+  pk: 125
+- fields: {name: Los}
+  model: wiki.theme
+  pk: 127
+- fields: {name: Lud}
+  model: wiki.theme
+  pk: 128
+- fields: {name: Lustro}
+  model: wiki.theme
+  pk: 129
+- fields: {name: Marzenie}
+  model: wiki.theme
+  pk: 132
+- fields: {name: Maska}
+  model: wiki.theme
+  pk: 133
+- fields: {name: Maszyna}
+  model: wiki.theme
+  pk: 134
+- fields: {name: Matka}
+  model: wiki.theme
+  pk: 135
+- fields: {name: Matka Boska}
+  model: wiki.theme
+  pk: 136
+- fields: {name: "Ma\u0142\u017Ce\u0144stwo"}
+  model: wiki.theme
+  pk: 131
+- fields: {name: Melancholia}
+  model: wiki.theme
+  pk: 139
+- fields: {name: Miasto}
+  model: wiki.theme
+  pk: 142
+- fields: {name: Mieszczanin}
+  model: wiki.theme
+  pk: 143
+- fields: {name: Mizoginia}
+  model: wiki.theme
+  pk: 152
+- fields: {name: "Mi\u0142osierdzie"}
+  model: wiki.theme
+  pk: 144
+- fields: {name: "Mi\u0142o\u015B\u0107"}
+  model: wiki.theme
+  pk: 145
+- fields: {name: "Mi\u0142o\u015B\u0107 niespe\u0142niona"}
+  model: wiki.theme
+  pk: 146
+- fields: {name: "Mi\u0142o\u015B\u0107 platoniczna"}
+  model: wiki.theme
+  pk: 147
+- fields: {name: "Mi\u0142o\u015B\u0107 romantyczna"}
+  model: wiki.theme
+  pk: 148
+- fields: {name: "Mi\u0142o\u015B\u0107 silniejsza ni\u017C \u015Bmier\u0107"}
+  model: wiki.theme
+  pk: 149
+- fields: {name: "Mi\u0142o\u015B\u0107 spe\u0142niona"}
+  model: wiki.theme
+  pk: 150
+- fields: {name: "Mi\u0142o\u015B\u0107 tragiczna"}
+  model: wiki.theme
+  pk: 151
+- fields: {name: Moda}
+  model: wiki.theme
+  pk: 154
+- fields: {name: Modlitwa}
+  model: wiki.theme
+  pk: 155
+- fields: {name: Morderstwo}
+  model: wiki.theme
+  pk: 156
+- fields: {name: Morze}
+  model: wiki.theme
+  pk: 157
+- fields: {name: Motyl}
+  model: wiki.theme
+  pk: 158
+- fields: {name: Mucha}
+  model: wiki.theme
+  pk: 159
+- fields: {name: Muzyka}
+  model: wiki.theme
+  pk: 160
+- fields: {name: "M\u0105dro\u015B\u0107"}
+  model: wiki.theme
+  pk: 137
+- fields: {name: "M\u0105\u017C"}
+  model: wiki.theme
+  pk: 138
+- fields: {name: "M\u0119drzec"}
+  model: wiki.theme
+  pk: 140
+- fields: {name: "M\u0119\u017Cczyzna"}
+  model: wiki.theme
+  pk: 141
+- fields: {name: "M\u0142odo\u015B\u0107"}
+  model: wiki.theme
+  pk: 153
+- fields: {name: Narodziny}
+  model: wiki.theme
+  pk: 161
+- fields: {name: "Nar\xF3d"}
+  model: wiki.theme
+  pk: 162
+- fields: {name: Natura}
+  model: wiki.theme
+  pk: 163
+- fields: {name: Nauczyciel}
+  model: wiki.theme
+  pk: 164
+- fields: {name: Nauczycielka}
+  model: wiki.theme
+  pk: 165
+- fields: {name: Nauka}
+  model: wiki.theme
+  pk: 166
+- fields: {name: "Niebezpiecze\u0144stwo"}
+  model: wiki.theme
+  pk: 167
+- fields: {name: Niedziela}
+  model: wiki.theme
+  pk: 168
+- fields: {name: Niemiec}
+  model: wiki.theme
+  pk: 169
+- fields: {name: "Nienawi\u015B\u0107"}
+  model: wiki.theme
+  pk: 170
+- fields: {name: Niewola}
+  model: wiki.theme
+  pk: 172
+- fields: {name: "Nie\u015Bmiertelno\u015B\u0107"}
+  model: wiki.theme
+  pk: 171
+- fields: {name: Noc}
+  model: wiki.theme
+  pk: 173
+- fields: {name: Nuda}
+  model: wiki.theme
+  pk: 174
+- fields: {name: Obcy}
+  model: wiki.theme
+  pk: 175
+- fields: {name: "Obowi\u0105zek"}
+  model: wiki.theme
+  pk: 177
+- fields: {name: "Obraz \u015Bwiata"}
+  model: wiki.theme
+  pk: 178
+- fields: {name: "Obrz\u0119dy"}
+  model: wiki.theme
+  pk: 179
+- fields: {name: Obyczaje}
+  model: wiki.theme
+  pk: 180
+- fields: {name: Obywatel}
+  model: wiki.theme
+  pk: 181
+- fields: {name: "Ob\u0142ok"}
+  model: wiki.theme
+  pk: 176
+- fields: {name: "Odrodzenie przez gr\xF3b"}
+  model: wiki.theme
+  pk: 182
+- fields: {name: Odwaga}
+  model: wiki.theme
+  pk: 183
+- fields: {name: Ofiara}
+  model: wiki.theme
+  pk: 184
+- fields: {name: "Ogie\u0144"}
+  model: wiki.theme
+  pk: 185
+- fields: {name: "Ogr\xF3d"}
+  model: wiki.theme
+  pk: 186
+- fields: {name: Ojciec}
+  model: wiki.theme
+  pk: 187
+- fields: {name: Ojczyzna}
+  model: wiki.theme
+  pk: 188
+- fields: {name: Oko}
+  model: wiki.theme
+  pk: 189
+- fields: {name: "Okrucie\u0144stwo"}
+  model: wiki.theme
+  pk: 191
+- fields: {name: "Okr\u0119t"}
+  model: wiki.theme
+  pk: 190
+- fields: {name: Omen}
+  model: wiki.theme
+  pk: 192
+- fields: {name: Opieka}
+  model: wiki.theme
+  pk: 193
+- fields: {name: Organizm}
+  model: wiki.theme
+  pk: 194
+- fields: {name: "Otch\u0142a\u0144"}
+  model: wiki.theme
+  pk: 195
+- fields: {name: "O\u015Bwiadczyny"}
+  model: wiki.theme
+  pk: 415
+- fields: {name: "Paj\u0105k"}
+  model: wiki.theme
+  pk: 196
+- fields: {name: "Pami\u0119\u0107"}
+  model: wiki.theme
+  pk: 197
+- fields: {name: Pan}
+  model: wiki.theme
+  pk: 198
+- fields: {name: "Panna m\u0142oda"}
+  model: wiki.theme
+  pk: 199
+- fields: {name: Patriota}
+  model: wiki.theme
+  pk: 201
+- fields: {name: "Pa\u0144stwo"}
+  model: wiki.theme
+  pk: 200
+- fields: {name: "Piek\u0142o"}
+  model: wiki.theme
+  pk: 202
+- fields: {name: Pielgrzym}
+  model: wiki.theme
+  pk: 203
+- fields: {name: "Pieni\u0105dz"}
+  model: wiki.theme
+  pk: 204
+- fields: {name: Pies}
+  model: wiki.theme
+  pk: 205
+- fields: {name: "Pija\u0144stwo"}
+  model: wiki.theme
+  pk: 207
+- fields: {name: Piwnica}
+  model: wiki.theme
+  pk: 208
+- fields: {name: "Pi\u0119tno"}
+  model: wiki.theme
+  pk: 206
+- fields: {name: Plotka}
+  model: wiki.theme
+  pk: 209
+- fields: {name: "Pobo\u017Cno\u015B\u0107"}
+  model: wiki.theme
+  pk: 210
+- fields: {name: "Poca\u0142unek"}
+  model: wiki.theme
+  pk: 211
+- fields: {name: Pochlebstwo}
+  model: wiki.theme
+  pk: 212
+- fields: {name: "Podr\xF3\u017C"}
+  model: wiki.theme
+  pk: 216
+- fields: {name: "Podst\u0119p"}
+  model: wiki.theme
+  pk: 217
+- fields: {name: Poeta}
+  model: wiki.theme
+  pk: 213
+- fields: {name: Poetka}
+  model: wiki.theme
+  pk: 214
+- fields: {name: Poezja}
+  model: wiki.theme
+  pk: 215
+- fields: {name: Pogrzeb}
+  model: wiki.theme
+  pk: 218
+- fields: {name: Pojedynek}
+  model: wiki.theme
+  pk: 219
+- fields: {name: Pokora}
+  model: wiki.theme
+  pk: 220
+- fields: {name: Pokusa}
+  model: wiki.theme
+  pk: 221
+- fields: {name: Polak}
+  model: wiki.theme
+  pk: 222
+- fields: {name: Polityka}
+  model: wiki.theme
+  pk: 223
+- fields: {name: Polowanie}
+  model: wiki.theme
+  pk: 224
+- fields: {name: Polska}
+  model: wiki.theme
+  pk: 225
+- fields: {name: Portret}
+  model: wiki.theme
+  pk: 226
+- fields: {name: Porwanie}
+  model: wiki.theme
+  pk: 227
+- fields: {name: "Potw\xF3r"}
+  model: wiki.theme
+  pk: 229
+- fields: {name: Powstanie}
+  model: wiki.theme
+  pk: 230
+- fields: {name: Powstaniec}
+  model: wiki.theme
+  pk: 231
+- fields: {name: Pozory}
+  model: wiki.theme
+  pk: 232
+- fields: {name: "Pozycja spo\u0142eczna"}
+  model: wiki.theme
+  pk: 233
+- fields: {name: "Po\u015Bwi\u0119cenie"}
+  model: wiki.theme
+  pk: 228
+- fields: {name: "Po\u017Car"}
+  model: wiki.theme
+  pk: 234
+- fields: {name: "Po\u017C\u0105danie"}
+  model: wiki.theme
+  pk: 235
+- fields: {name: Praca}
+  model: wiki.theme
+  pk: 236
+- fields: {name: Praca organiczna}
+  model: wiki.theme
+  pk: 238
+- fields: {name: Praca u podstaw}
+  model: wiki.theme
+  pk: 237
+- fields: {name: Prawda}
+  model: wiki.theme
+  pk: 239
+- fields: {name: Prawnik}
+  model: wiki.theme
+  pk: 240
+- fields: {name: Prometeusz}
+  model: wiki.theme
+  pk: 241
+- fields: {name: Proroctwo}
+  model: wiki.theme
+  pk: 242
+- fields: {name: Prorok}
+  model: wiki.theme
+  pk: 243
+- fields: {name: Przebranie}
+  model: wiki.theme
+  pk: 245
+- fields: {name: Przeczucie}
+  model: wiki.theme
+  pk: 246
+- fields: {name: "Przedmurze chrze\u015Bcija\u0144stwa"}
+  model: wiki.theme
+  pk: 247
+- fields: {name: "Przekle\u0144stwo"}
+  model: wiki.theme
+  pk: 248
+- fields: {name: Przekupstwo}
+  model: wiki.theme
+  pk: 249
+- fields: {name: Przemiana}
+  model: wiki.theme
+  pk: 250
+- fields: {name: Przemijanie}
+  model: wiki.theme
+  pk: 251
+- fields: {name: Przemoc}
+  model: wiki.theme
+  pk: 252
+- fields: {name: "Przestrze\u0144"}
+  model: wiki.theme
+  pk: 253
+- fields: {name: "Przyja\u017A\u0144"}
+  model: wiki.theme
+  pk: 254
+- fields: {name: "Przyroda nieo\u017Cywiona"}
+  model: wiki.theme
+  pk: 255
+- fields: {name: "Przysi\u0119ga"}
+  model: wiki.theme
+  pk: 256
+- fields: {name: "Przyw\xF3dca"}
+  model: wiki.theme
+  pk: 257
+- fields: {name: "Pr\xF3\u017Cno\u015B\u0107"}
+  model: wiki.theme
+  pk: 244
+- fields: {name: Ptak}
+  model: wiki.theme
+  pk: 258
+- fields: {name: Pustynia}
+  model: wiki.theme
+  pk: 259
+- fields: {name: Pycha}
+  model: wiki.theme
+  pk: 260
+- fields: {name: Raj}
+  model: wiki.theme
+  pk: 261
+- fields: {name: Realista}
+  model: wiki.theme
+  pk: 262
+- fields: {name: Religia}
+  model: wiki.theme
+  pk: 263
+- fields: {name: Rewolucja}
+  model: wiki.theme
+  pk: 264
+- fields: {name: Robak}
+  model: wiki.theme
+  pk: 265
+- fields: {name: Robotnik}
+  model: wiki.theme
+  pk: 266
+- fields: {name: Rodzina}
+  model: wiki.theme
+  pk: 267
+- fields: {name: Rosja}
+  model: wiki.theme
+  pk: 268
+- fields: {name: Rosjanin}
+  model: wiki.theme
+  pk: 269
+- fields: {name: Rozczarowanie}
+  model: wiki.theme
+  pk: 271
+- fields: {name: Rozpacz}
+  model: wiki.theme
+  pk: 272
+- fields: {name: Rozstanie}
+  model: wiki.theme
+  pk: 273
+- fields: {name: Rozum}
+  model: wiki.theme
+  pk: 274
+- fields: {name: "Ro\u015Bliny"}
+  model: wiki.theme
+  pk: 270
+- fields: {name: Ruiny}
+  model: wiki.theme
+  pk: 275
+- fields: {name: Rycerz}
+  model: wiki.theme
+  pk: 276
+- fields: {name: Rzeka}
+  model: wiki.theme
+  pk: 277
+- fields: {name: Salon}
+  model: wiki.theme
+  pk: 278
+- fields: {name: "Samob\xF3jstwo"}
+  model: wiki.theme
+  pk: 279
+- fields: {name: Samolubstwo}
+  model: wiki.theme
+  pk: 280
+- fields: {name: Samotnik}
+  model: wiki.theme
+  pk: 281
+- fields: {name: "Samotno\u015B\u0107"}
+  model: wiki.theme
+  pk: 282
+- fields: {name: Sarmata}
+  model: wiki.theme
+  pk: 283
+- fields: {name: Sen}
+  model: wiki.theme
+  pk: 287
+- fields: {name: Serce}
+  model: wiki.theme
+  pk: 288
+- fields: {name: Sielanka}
+  model: wiki.theme
+  pk: 290
+- fields: {name: Sierota}
+  model: wiki.theme
+  pk: 291
+- fields: {name: Siostra}
+  model: wiki.theme
+  pk: 293
+- fields: {name: "Si\u0142a"}
+  model: wiki.theme
+  pk: 292
+- fields: {name: "Sk\u0105piec"}
+  model: wiki.theme
+  pk: 299
+- fields: {name: "Sobowt\xF3r"}
+  model: wiki.theme
+  pk: 300
+- fields: {name: "Spowied\u017A"}
+  model: wiki.theme
+  pk: 302
+- fields: {name: "Spo\u0142ecznik"}
+  model: wiki.theme
+  pk: 301
+- fields: {name: "Sprawiedliwo\u015B\u0107"}
+  model: wiki.theme
+  pk: 303
+- fields: {name: "Staro\u015B\u0107"}
+  model: wiki.theme
+  pk: 304
+- fields: {name: Strach}
+  model: wiki.theme
+  pk: 305
+- fields: {name: "Str\xF3j"}
+  model: wiki.theme
+  pk: 306
+- fields: {name: Stworzenie}
+  model: wiki.theme
+  pk: 307
+- fields: {name: Sumienie}
+  model: wiki.theme
+  pk: 308
+- fields: {name: Swaty}
+  model: wiki.theme
+  pk: 309
+- fields: {name: Syberia}
+  model: wiki.theme
+  pk: 310
+- fields: {name: Syn}
+  model: wiki.theme
+  pk: 311
+- fields: {name: Syn marnotrawny}
+  model: wiki.theme
+  pk: 312
+- fields: {name: Syzyf}
+  model: wiki.theme
+  pk: 313
+- fields: {name: Szaleniec}
+  model: wiki.theme
+  pk: 314
+- fields: {name: "Szale\u0144stwo"}
+  model: wiki.theme
+  pk: 315
+- fields: {name: "Szanta\u017C"}
+  model: wiki.theme
+  pk: 316
+- fields: {name: Szatan}
+  model: wiki.theme
+  pk: 317
+- fields: {name: "Szcz\u0119\u015Bcie"}
+  model: wiki.theme
+  pk: 318
+- fields: {name: "Szko\u0142a"}
+  model: wiki.theme
+  pk: 319
+- fields: {name: Szlachcic}
+  model: wiki.theme
+  pk: 320
+- fields: {name: Szpieg}
+  model: wiki.theme
+  pk: 321
+- fields: {name: Sztuka}
+  model: wiki.theme
+  pk: 322
+- fields: {name: "S\u0105d"}
+  model: wiki.theme
+  pk: 285
+- fields: {name: "S\u0105d Ostateczny"}
+  model: wiki.theme
+  pk: 286
+- fields: {name: "S\u0105siad"}
+  model: wiki.theme
+  pk: 284
+- fields: {name: "S\u0119dzia"}
+  model: wiki.theme
+  pk: 289
+- fields: {name: "S\u0142awa"}
+  model: wiki.theme
+  pk: 294
+- fields: {name: "S\u0142owo"}
+  model: wiki.theme
+  pk: 296
+- fields: {name: "S\u0142o\u0144ce"}
+  model: wiki.theme
+  pk: 295
+- fields: {name: "S\u0142uga"}
+  model: wiki.theme
+  pk: 297
+- fields: {name: "S\u0142u\u017Calczo\u015B\u0107"}
+  model: wiki.theme
+  pk: 298
+- fields: {name: Tajemnica}
+  model: wiki.theme
+  pk: 332
+- fields: {name: Taniec}
+  model: wiki.theme
+  pk: 333
+- fields: {name: "Tch\xF3rzostwo"}
+  model: wiki.theme
+  pk: 334
+- fields: {name: Teatr}
+  model: wiki.theme
+  pk: 335
+- fields: {name: Testament}
+  model: wiki.theme
+  pk: 336
+- fields: {name: Theatrum mundi}
+  model: wiki.theme
+  pk: 338
+- fields: {name: Trucizna}
+  model: wiki.theme
+  pk: 340
+- fields: {name: Trup}
+  model: wiki.theme
+  pk: 341
+- fields: {name: "Tw\xF3rczo\u015B\u0107"}
+  model: wiki.theme
+  pk: 342
+- fields: {name: "T\u0119sknota"}
+  model: wiki.theme
+  pk: 337
+- fields: {name: "T\u0142um"}
+  model: wiki.theme
+  pk: 339
+- fields: {name: "Ucze\u0144"}
+  model: wiki.theme
+  pk: 343
+- fields: {name: Uczta}
+  model: wiki.theme
+  pk: 344
+- fields: {name: Umiarkowanie}
+  model: wiki.theme
+  pk: 346
+- fields: {name: Upadek}
+  model: wiki.theme
+  pk: 347
+- fields: {name: "Upi\xF3r"}
+  model: wiki.theme
+  pk: 348
+- fields: {name: Uroda}
+  model: wiki.theme
+  pk: 345
+- fields: {name: "Urz\u0119dnik"}
+  model: wiki.theme
+  pk: 349
+- fields: {name: Vanitas}
+  model: wiki.theme
+  pk: 350
+- fields: {name: Walka}
+  model: wiki.theme
+  pk: 351
+- fields: {name: Walka klas}
+  model: wiki.theme
+  pk: 352
+- fields: {name: Wampir}
+  model: wiki.theme
+  pk: 353
+- fields: {name: Warszawa}
+  model: wiki.theme
+  pk: 354
+- fields: {name: Wdowa}
+  model: wiki.theme
+  pk: 356
+- fields: {name: Wdowiec}
+  model: wiki.theme
+  pk: 357
+- fields: {name: Wesele}
+  model: wiki.theme
+  pk: 358
+- fields: {name: Wiatr}
+  model: wiki.theme
+  pk: 359
+- fields: {name: Wiedza}
+  model: wiki.theme
+  pk: 363
+- fields: {name: "Wierno\u015B\u0107"}
+  model: wiki.theme
+  pk: 360
+- fields: {name: Wierzenia}
+  model: wiki.theme
+  pk: 361
+- fields: {name: "Wie\u015B"}
+  model: wiki.theme
+  pk: 362
+- fields: {name: "Wie\u017Ca Babel"}
+  model: wiki.theme
+  pk: 364
+- fields: {name: Wina}
+  model: wiki.theme
+  pk: 367
+- fields: {name: Wino}
+  model: wiki.theme
+  pk: 368
+- fields: {name: Wiosna}
+  model: wiki.theme
+  pk: 369
+- fields: {name: Wizja}
+  model: wiki.theme
+  pk: 370
+- fields: {name: "Wi\u0119zienie"}
+  model: wiki.theme
+  pk: 365
+- fields: {name: "Wi\u0119zie\u0144"}
+  model: wiki.theme
+  pk: 366
+- fields: {name: Woda}
+  model: wiki.theme
+  pk: 373
+- fields: {name: Wojna}
+  model: wiki.theme
+  pk: 374
+- fields: {name: "Wojna pokole\u0144"}
+  model: wiki.theme
+  pk: 375
+- fields: {name: "Wolno\u015B\u0107"}
+  model: wiki.theme
+  pk: 376
+- fields: {name: "Wr\xF3g"}
+  model: wiki.theme
+  pk: 377
+- fields: {name: Wspomnienia}
+  model: wiki.theme
+  pk: 378
+- fields: {name: "Wsp\xF3\u0142praca"}
+  model: wiki.theme
+  pk: 379
+- fields: {name: Wygnanie}
+  model: wiki.theme
+  pk: 380
+- fields: {name: Wyrzuty sumienia}
+  model: wiki.theme
+  pk: 381
+- fields: {name: Wyspa}
+  model: wiki.theme
+  pk: 382
+- fields: {name: Wzrok}
+  model: wiki.theme
+  pk: 383
+- fields: {name: "W\u0105\u017C"}
+  model: wiki.theme
+  pk: 355
+- fields: {name: "W\u0142adza"}
+  model: wiki.theme
+  pk: 371
+- fields: {name: "W\u0142asno\u015B\u0107"}
+  model: wiki.theme
+  pk: 372
+- fields: {name: Zabawa}
+  model: wiki.theme
+  pk: 384
+- fields: {name: Zabobony}
+  model: wiki.theme
+  pk: 385
+- fields: {name: Zamek}
+  model: wiki.theme
+  pk: 386
+- fields: {name: "Zar\u0119czyny"}
+  model: wiki.theme
+  pk: 387
+- fields: {name: "Zazdro\u015B\u0107"}
+  model: wiki.theme
+  pk: 389
+- fields: {name: "Za\u015Bwiaty"}
+  model: wiki.theme
+  pk: 388
+- fields: {name: Zbawienie}
+  model: wiki.theme
+  pk: 390
+- fields: {name: Zbrodnia}
+  model: wiki.theme
+  pk: 391
+- fields: {name: Zbrodniarz}
+  model: wiki.theme
+  pk: 392
+- fields: {name: Zdrada}
+  model: wiki.theme
+  pk: 393
+- fields: {name: Zdrowie}
+  model: wiki.theme
+  pk: 394
+- fields: {name: Zemsta}
+  model: wiki.theme
+  pk: 395
+- fields: {name: "Zes\u0142aniec"}
+  model: wiki.theme
+  pk: 396
+- fields: {name: Ziarno}
+  model: wiki.theme
+  pk: 397
+- fields: {name: Ziemia}
+  model: wiki.theme
+  pk: 398
+- fields: {name: Zima}
+  model: wiki.theme
+  pk: 399
+- fields: {name: Zmartwychwstanie}
+  model: wiki.theme
+  pk: 403
+- fields: {name: "Zwierz\u0119ta"}
+  model: wiki.theme
+  pk: 405
+- fields: {name: "Zwyci\u0119stwo"}
+  model: wiki.theme
+  pk: 406
+- fields: {name: "Zw\u0105tpienie"}
+  model: wiki.theme
+  pk: 404
+- fields: {name: "Z\u0142o"}
+  model: wiki.theme
+  pk: 400
+- fields: {name: "Z\u0142odziej"}
+  model: wiki.theme
+  pk: 401
+- fields: {name: "Z\u0142oty wiek"}
+  model: wiki.theme
+  pk: 402
+- fields: {name: "\u0141zy"}
+  model: wiki.theme
+  pk: 130
+- fields: {name: "\u015Alub"}
+  model: wiki.theme
+  pk: 323
+- fields: {name: "\u015Amiech"}
+  model: wiki.theme
+  pk: 324
+- fields: {name: "\u015Amier\u0107"}
+  model: wiki.theme
+  pk: 325
+- fields: {name: "\u015Amier\u0107 bohaterska"}
+  model: wiki.theme
+  pk: 326
+- fields: {name: "\u015Apiew"}
+  model: wiki.theme
+  pk: 327
+- fields: {name: "\u015Awiat\u0142o"}
+  model: wiki.theme
+  pk: 328
+- fields: {name: "\u015Awit"}
+  model: wiki.theme
+  pk: 331
+- fields: {name: "\u015Awi\u0119toszek"}
+  model: wiki.theme
+  pk: 329
+- fields: {name: "\u015Awi\u0119ty"}
+  model: wiki.theme
+  pk: 330
+- fields: {name: "\u017Ba\u0142oba"}
+  model: wiki.theme
+  pk: 407
+- fields: {name: "\u017Bebrak"}
+  model: wiki.theme
+  pk: 408
+- fields: {name: "\u017Bona"}
+  model: wiki.theme
+  pk: 410
+- fields: {name: "\u017Bo\u0142nierz"}
+  model: wiki.theme
+  pk: 409
+- fields: {name: "\u017Bycie jako w\u0119dr\xF3wka"}
+  model: wiki.theme
+  pk: 411
+- fields: {name: "\u017Bycie snem"}
+  model: wiki.theme
+  pk: 412
+- fields: {name: "\u017Byd"}
+  model: wiki.theme
+  pk: 413
+- fields: {name: "\u017Bywio\u0142y"}
+  model: wiki.theme
+  pk: 414
+
diff --git a/apps/wiki/migrations/0001_initial.py b/apps/wiki/migrations/0001_initial.py
new file mode 100644 (file)
index 0000000..4acf5ba
--- /dev/null
@@ -0,0 +1,21 @@
+# encoding: 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):
+        pass
+    
+    
+    def backwards(self, orm):
+        pass
+    
+    
+    models = {
+        
+    }
+    
+    complete_apps = ['wiki']
diff --git a/apps/wiki/migrations/0002_auto__add_theme.py b/apps/wiki/migrations/0002_auto__add_theme.py
new file mode 100644 (file)
index 0000000..6688139
--- /dev/null
@@ -0,0 +1,38 @@
+# encoding: 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 'Theme'
+        db.create_table('wiki_theme', (
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=50)),
+        ))
+        db.send_create_signal('wiki', ['Theme'])
+        
+        if not db.dry_run:
+            from django.core.management import call_command
+            call_command("loaddata", "initial_themes.yaml")
+
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting model 'Theme'
+        db.delete_table('wiki_theme')
+    
+    
+    models = {
+        'wiki.theme': {
+            'Meta': {'object_name': 'Theme'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50'})
+        }
+    }
+    
+    complete_apps = ['wiki']
diff --git a/apps/wiki/migrations/__init__.py b/apps/wiki/migrations/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
index b7527f3..5faf1d3 100644 (file)
@@ -3,6 +3,7 @@
 # This file is part of FNP-Redakcja, licensed under GNU Affero GPLv3 or later.
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
 # This file is part of FNP-Redakcja, licensed under GNU Affero GPLv3 or later.
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
+from django.db import models
 import re
 import os
 import vstorage
 import re
 import os
 import vstorage
@@ -143,3 +144,18 @@ def getstorage():
 #
 # Django models
 #
 #
 # Django models
 #
+
+class Theme(models.Model):
+    name = models.CharField(_('name'), max_length=50, unique=True)
+
+    class Meta:
+        ordering = ('name',)
+        verbose_name = _('theme')
+        verbose_name_plural = _('themes')
+
+    def __unicode__(self):
+        return self.name
+
+    def __repr__(self):
+        return "Theme(name=%r)" % self.name
+
index c41edd3..2c45e17 100644 (file)
@@ -12,7 +12,7 @@ from wiki.helpers import (JSONResponse, JSONFormInvalid, JSONServerError,
                 ajax_require_permission, recursive_groupby)
 from django import http
 
                 ajax_require_permission, recursive_groupby)
 from django import http
 
-from wiki.models import getstorage, DocumentNotFound, normalize_name, split_name, join_name
+from wiki.models import getstorage, DocumentNotFound, normalize_name, split_name, join_name, Theme
 from wiki.forms import DocumentTextSaveForm, DocumentTagForm, DocumentCreateForm
 from datetime import datetime
 from django.utils.encoding import smart_unicode
 from wiki.forms import DocumentTextSaveForm, DocumentTagForm, DocumentCreateForm
 from datetime import datetime
 from django.utils.encoding import smart_unicode
@@ -302,3 +302,8 @@ def publish(request, name):
         return JSONResponse({"result": api.publish_book(document)})
     except wlapi.APICallException, e:
         return JSONServerError({"message": str(e)})
         return JSONResponse({"result": api.publish_book(document)})
     except wlapi.APICallException, e:
         return JSONServerError({"message": str(e)})
+
+
+def themes(request):
+    prefix = request.GET.get('q', '')
+    return http.HttpResponse('\n'.join([str(t) for t in Theme.objects.filter(name__istartswith=prefix)]))
index c935f09..ea292f4 100644 (file)
@@ -351,6 +351,10 @@ div[x-node] > .uwaga {
     text-align: left;
 }
 
     text-align: left;
 }
 
+.htmlview .noncanon {
+    color: #d00;
+}
+
 .htmlview .motyw[x-editable] {
     border-left: 4px solid #DDD;
     padding: 0.2em 0.2em 0.2em 0.5em;
 .htmlview .motyw[x-editable] {
     border-left: 4px solid #DDD;
     padding: 0.2em 0.2em 0.2em 0.5em;
index 33d9cc8..e2d4d2b 100644 (file)
@@ -7,10 +7,6 @@ if (!window.console) {
 
 var DEFAULT_PERSPECTIVE = "#SummaryPerspective";
 
 
 var DEFAULT_PERSPECTIVE = "#SummaryPerspective";
 
-THEMES = [
-       'Alkohol', 'Ambicja', 'Anioł', 'Antysemityzm', 'Arkadia', 'Artysta', 'Bezdomność', 'Bezpieczeństwo', 'Bieda', 'Bijatyka', 'Błazen', 'Błądzenie', 'Błoto', 'Bogactwo', 'Bóg', 'Brat', 'Bunt', 'Buntownik', 'Burza', 'Car', 'Carpe diem', 'Ciemność', 'Cień', 'Cisza', 'Chciwość', 'Chleb', 'Chłop', 'Choroba', 'Chrystus', 'Chrzest', 'Ciało', 'Cierpienie', 'Cmentarz', 'Cnota', 'Córka', 'Cud', 'Czarownica', 'Czary', 'Czas', 'Czyn', 'Czyściec', 'Dama', 'Danse macabre', 'Deszcz', 'Diabeł', 'Dobro', 'Dom', 'Dorosłość', 'Drzewo', 'Duch', 'Dusza', 'Duma', 'Dworek', 'Dworzanin', 'Dwór', 'Dzieciństwo', 'Dziecko', 'Dziedzictwo', 'Dziewictwo', 'Dźwięk', 'Egzorcyzm', 'Elita', 'Emigrant', 'Fałsz', 'Filozof', 'Fircyk', 'Flirt', 'Głupiec', 'Głupota', 'Głód', 'Gospodarz', 'Gospodyni', 'Gość', 'Gotycyzm', 'Góra', 'Gra', 'Grób', 'Grzech', 'Grzeczność', 'Gwiazda', 'Handel', 'Hańba', 'Historia', 'Honor', 'Idealista', 'Imię', 'Interes', 'Jabłka', 'Jedzenie', 'Jesień', 'Kaleka', 'Kara', 'Karczma', 'Klęska', 'Kłamstwo', 'Kłótnia', 'Kobieta', 'Kobieta demoniczna', 'Kobieta "upadła"', 'Kochanek', 'Kochanek romantyczny', 'Kolonializm', 'Kondycja ludzka', 'Konflikt', 'Konflikt wewnętrzny', 'Koniec świata', 'Koń', 'Korzyść', 'Kot', 'Kradzież', 'Krew', 'Król', 'Krzywda', 'Ksiądz', 'Książka', 'Księżyc', 'Kuchnia', 'Kuszenie', 'Kwiaty', 'Labirynt', 'Las', 'Lato', 'Lekarz', 'Lenistwo', 'List', 'Liberat', 'Los', 'Lud', 'Lustro', 'Łzy', 'Małżeństwo', 'Marzenie', 'Maska', 'Maszyna', 'Matka', 'Matka Boska', 'Mądrość', 'Mąż', 'Melancholia', 'Mędrzec', 'Mężczyzna', 'Miasto', 'Mieszczanin', 'Miłosierdzie', 'Miłość', 'Miłość niespełniona', 'Miłość platoniczna', 'Miłość romantyczna', 'Miłość silniejsza niż śmierć', 'Miłość spełniona', 'Miłość tragiczna', 'Mizoginia', 'Młodość', 'Moda', 'Modlitwa', 'Morderstwo', 'Morze', 'Motyl', 'Mucha', 'Muzyka', 'Narodziny', 'Naród', 'Natura', 'Nauczyciel', 'Nauczycielka', 'Nauka', 'Niebezpieczeństwo', 'Niedziela', 'Niemiec', 'Nienawiść', 'Nieśmiertelność', 'Niewola', 'Noc', 'Nuda', 'Obcy', 'Obłok', 'Obowiązek', 'Obraz świata', 'Obrzędy', 'Obyczaje', 'Obywatel', 'Odrodzenie przez grób', 'Odwaga', 'Ofiara', 'Ogień', 'Ogród', 'Ojciec', 'Ojczyzna', 'Oko', 'Okręt', 'Okrucieństwo', 'Omen', 'Opieka', 'Organizm', 'Otchłań', 'Pająk', 'Pamięć', 'Pan', 'Panna młoda', 'Państwo', 'Patriota', 'Piekło', 'Pielgrzym', 'Pieniądz', 'Pies', 'Piętno', 'Pijaństwo', 'Piwnica', 'Plotka', 'Pobożność', 'Pocałunek', 'Pochlebstwo', 'Poeta', 'Poetka', 'Poezja', 'Podróż', 'Podstęp', 'Pogrzeb', 'Pojedynek', 'Pokora', 'Pokusa', 'Polak', 'Polityka', 'Polowanie', 'Polska', 'Portret', 'Porwanie', 'Poświęcenie', 'Potwór', 'Powstanie', 'Powstaniec', 'Pozory', 'Pozycja społeczna', 'Pożar', 'Pożądanie', 'Praca', 'Praca u podstaw', 'Praca organiczna', 'Prawda', 'Prawnik', 'Prometeusz', 'Proroctwo', 'Prorok', 'Próżność', 'Przebranie', 'Przeczucie', 'Przedmurze chrześcijaństwa', 'Przekleństwo', 'Przekupstwo', 'Przemiana', 'Przemijanie', 'Przemoc', 'Przestrzeń', 'Przyjaźń', 'Przyroda nieożywiona', 'Przysięga', 'Przywódca', 'Ptak', 'Pustynia', 'Pycha', 'Raj', 'Realista', 'Religia', 'Rewolucja', 'Robak', 'Robotnik', 'Rodzina', 'Rosja', 'Rosjanin', 'Rośliny', 'Rozczarowanie', 'Rozpacz', 'Rozstanie', 'Rozum', 'Ruiny', 'Rycerz', 'Rzeka', 'Salon', 'Samobójstwo', 'Samolubstwo', 'Samotnik', 'Samotność', 'Sarmata', 'Sąsiad', 'Sąd', 'Sąd Ostateczny', 'Sen', 'Serce', 'Sędzia', 'Sielanka', 'Sierota', 'Siła', 'Siostra', 'Sława', 'Słońce', 'Słowo', 'Sługa', 'Służalczość', 'Skąpiec', 'Sobowtór', 'Społecznik', 'Spowiedź', 'Sprawiedliwość', 'Starość', 'Strach', 'Strój', 'Stworzenie', 'Sumienie', 'Swaty', 'Syberia', 'Syn', 'Syn marnotrawny', 'Syzyf', 'Szaleniec', 'Szaleństwo', 'Szantaż', 'Szatan', 'Szczęście', 'Szkoła', 'Szlachcic', 'Szpieg', 'Sztuka', 'Ślub', 'Śmiech', 'Śmierć', 'Śmierć bohaterska', 'Śpiew', 'Światło', 'Świętoszek', 'Święty', 'Świt', 'Tajemnica', 'Taniec', 'Tchórzostwo', 'Teatr', 'Testament', 'Tęsknota', 'Theatrum mundi', 'Tłum', 'Trucizna', 'Trup', 'Twórczość', 'Uczeń', 'Uczta', 'Uroda', 'Umiarkowanie', 'Upadek', 'Upiór', 'Urzędnik', 'Vanitas', 'Walka', 'Walka klas', 'Wampir', 'Warszawa', 'Wąż', 'Wdowa', 'Wdowiec', 'Wesele', 'Wiatr', 'Wierność', 'Wierzenia', 'Wieś', 'Wiedza', 'Wieża Babel', 'Więzienie', 'Więzień', 'Wina', 'Wino', 'Wiosna', 'Wizja', 'Władza', 'Własność', 'Woda', 'Wojna', 'Wojna pokoleń', 'Wolność', 'Wróg', 'Wspomnienia', 'Współpraca', 'Wygnanie', 'Wyrzuty sumienia', 'Wyspa', 'Wzrok', 'Zabawa', 'Zabobony', 'Zamek', 'Zaręczyny', 'Zaświaty', 'Zazdrość', 'Zbawienie', 'Zbrodnia', 'Zbrodniarz', 'Zdrada', 'Zdrowie', 'Zemsta', 'Zesłaniec', 'Ziarno', 'Ziemia', 'Zima', 'Zło', 'Złodziej', 'Złoty wiek', 'Zmartwychwstanie', 'Zwątpienie', 'Zwierzęta', 'Zwycięstwo', 'Żałoba', 'Żebrak', 'Żołnierz', 'Żona', 'Życie jako wędrówka', 'Życie snem', 'Żyd', 'Żywioły', 'Oświadczyny'
-];
-
 $(function()
 {
        var tabs = $('ol#tabs li');
 $(function()
 {
        var tabs = $('ol#tabs li');
index d8704fd..94d7703 100644 (file)
         }).appendTo($box[0].offsetParent || $box.parent()).show();
 
         if ($origin.is('.motyw')) {
         }).appendTo($box[0].offsetParent || $box.parent()).show();
 
         if ($origin.is('.motyw')) {
-            $('textarea', $overlay).autocomplete(THEMES, {
+            $('textarea', $overlay).autocomplete('/themes', {
                 autoFill: true,
                 multiple: true,
                 autoFill: true,
                 multiple: true,
-                selectFirst: true
+                selectFirst: true,
+                highlight: false
             });
         }
 
             });
         }
 
index 532b452..2bab378 100644 (file)
@@ -33,32 +33,71 @@ function withStylesheets(code_block, onError)
        }
 }
 
        }
 }
 
+var canonThemes = null;
 
 
-function xml2html(options) {
-    withStylesheets(function() {
-        var xml = options.xml.replace(/\/\s+/g, '<br />');
-        var parser = new DOMParser();
-        var serializer = new XMLSerializer();
-        var doc = parser.parseFromString(xml, 'text/xml');
-        var error = $('parsererror', doc);
-
-        if (error.length == 0) {
-            doc = xml2htmlStylesheet.transformToFragment(doc, document);
-                       console.log(doc.firstChild);
-
-                       if(doc.firstChild === null) {
-                               options.error("Błąd w przetwarzaniu XML.");
-                               return;
-                       }
+// Wykonuje block z załadowanymi kanonicznymi motywami
+function withThemes(code_block, onError)
+{
+    if (!canonThemes) {
+        $.blockUI({message: 'Ładowanie motywów...'});
+        $.ajax({
+            url: '/themes',
+            dataType: 'text',
+            success: function(data) {
+                canonThemes = {};
+                themes = data.split('\n');
+                for (i in themes) {
+                    canonThemes[themes[i]] = 1;
+                }
+                $.unblockUI();
+                code_block();
+            },
+            error: onError
+        })
+    }
+    else {
+        code_block();
+    }
+}
 
 
-            error = $('parsererror', doc);
-        }
 
 
-        if (error.length > 0 && options.error) {
-            options.error(error.text());
-        } else {
-            options.success(doc.firstChild);
-        }
+
+function xml2html(options) {
+    withStylesheets(function() {
+        withThemes(function() {
+            var xml = options.xml.replace(/\/\s+/g, '<br />');
+            var parser = new DOMParser();
+            var serializer = new XMLSerializer();
+            var doc = parser.parseFromString(xml, 'text/xml');
+            var error = $('parsererror', doc);
+
+            if (error.length == 0) {
+                doc = xml2htmlStylesheet.transformToFragment(doc, document);
+                console.log(doc.firstChild);
+
+                if(doc.firstChild === null) {
+                    options.error("Błąd w przetwarzaniu XML.");
+                    return;
+                }
+
+                error = $('parsererror', doc);
+            }
+
+            if (error.length > 0 && options.error) {
+                options.error(error.text());
+            } else {
+                $('.theme-text-list', doc.firstChild).each(function(){
+                    var themes = $(this).html().split(',');
+                    for (i in themes) {
+                        themes[i] = $.trim(themes[i]);
+                        if (!(themes[i] in canonThemes))
+                            themes[i] = '<span x-pass-thru="true" class="noncanon">' + themes[i] + "</span>"
+                    }
+                    $(this).html(themes.join(', '));
+                });
+                options.success(doc.firstChild);
+            }
+        }, function() { options.error && options.error('Nie udało się załadować motywów'); });
     }, function() { options.error && options.error('Nie udało się załadować XSLT'); });
 }
 
     }, function() { options.error && options.error('Nie udało się załadować XSLT'); });
 }
 
index 191bcc2..dd7f884 100644 (file)
@@ -29,6 +29,7 @@ urlpatterns = patterns('',
     url(r'^%s(?P<path>.+)$' % settings.STATIC_URL[1:], 'django.views.static.serve',
         {'document_root': settings.STATIC_ROOT, 'show_indexes': True}),
     (r'^documents/', include(wiki.urls)),
     url(r'^%s(?P<path>.+)$' % settings.STATIC_URL[1:], 'django.views.static.serve',
         {'document_root': settings.STATIC_ROOT, 'show_indexes': True}),
     (r'^documents/', include(wiki.urls)),
+    url(r'^themes$', 'wiki.views.themes', name="themes"),
     url(r'^$', 'django.views.generic.simple.redirect_to', {'url': '/documents/'}),
 
 )
     url(r'^$', 'django.views.generic.simple.redirect_to', {'url': '/documents/'}),
 
 )