##// END OF EJS Templates
Added style for page selectors and mode selector to the white theme. Fixed middleware issue with static files
neko259 -
r459:3d484f7e 1.5-dev
parent child Browse files
Show More
1 NO CONTENT: modified file, binary diff hidden
NO CONTENT: modified file, binary diff hidden
@@ -1,381 +1,379 b''
1 # SOME DESCRIPTIVE TITLE.
1 # SOME DESCRIPTIVE TITLE.
2 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 # This file is distributed under the same license as the PACKAGE package.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
5 #
6 msgid ""
6 msgid ""
7 msgstr ""
7 msgstr ""
8 "Project-Id-Version: PACKAGE VERSION\n"
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "Report-Msgid-Bugs-To: \n"
9 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2013-11-27 12:34+0200\n"
10 "POT-Creation-Date: 2013-12-24 20:39+0200\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
14 "Language: ru\n"
14 "Language: ru\n"
15 "MIME-Version: 1.0\n"
15 "MIME-Version: 1.0\n"
16 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Type: text/plain; charset=UTF-8\n"
17 "Content-Transfer-Encoding: 8bit\n"
17 "Content-Transfer-Encoding: 8bit\n"
18 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
18 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
19 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
20
20
21 #: authors.py:5
21 #: authors.py:5
22 msgid "author"
22 msgid "author"
23 msgstr "автор"
23 msgstr "автор"
24
24
25 #: authors.py:6
25 #: authors.py:6
26 msgid "developer"
26 msgid "developer"
27 msgstr "разработчик"
27 msgstr "разработчик"
28
28
29 #: authors.py:7
29 #: authors.py:7
30 msgid "javascript developer"
30 msgid "javascript developer"
31 msgstr "разработчик javascript"
31 msgstr "разработчик javascript"
32
32
33 #: authors.py:8
33 #: authors.py:8
34 msgid "designer"
34 msgid "designer"
35 msgstr "дизайнер"
35 msgstr "дизайнер"
36
36
37 #: forms.py:48 templates/boards/posting_general.html:209
37 #: forms.py:72
38 #: templates/boards/thread.html:101
39 msgid "Title"
38 msgid "Title"
40 msgstr "Заголовок"
39 msgstr "Заголовок"
41
40
42 #: forms.py:50 templates/boards/posting_general.html:224
41 #: forms.py:74
43 #: templates/boards/thread.html:116
44 msgid "Text"
42 msgid "Text"
45 msgstr "Текст"
43 msgstr "Текст"
46
44
47 #: forms.py:51 templates/boards/posting_general.html:229
45 #: forms.py:75
48 #: templates/boards/thread.html:121
49 msgid "Image"
46 msgid "Image"
50 msgstr "Изображение"
47 msgstr "Изображение"
51
48
52 #: forms.py:54 templates/boards/posting_general.html:239
49 #: forms.py:78
53 #: templates/boards/thread.html:126
54 msgid "e-mail"
50 msgid "e-mail"
55 msgstr ""
51 msgstr ""
56
52
57 #: forms.py:65
53 #: forms.py:89
58 #, python-format
54 #, python-format
59 msgid "Title must have less than %s characters"
55 msgid "Title must have less than %s characters"
60 msgstr "Заголовок должен иметь меньше %s символов"
56 msgstr "Заголовок должен иметь меньше %s символов"
61
57
62 #: forms.py:74
58 #: forms.py:98
63 #, python-format
59 #, python-format
64 msgid "Text must have less than %s characters"
60 msgid "Text must have less than %s characters"
65 msgstr "Текст должен быть короче %s символов"
61 msgstr "Текст должен быть короче %s символов"
66
62
67 #: forms.py:85
63 #: forms.py:109
68 #, python-format
64 #, python-format
69 msgid "Image must be less than %s bytes"
65 msgid "Image must be less than %s bytes"
70 msgstr "Изображение должно быть менее %s байт"
66 msgstr "Изображение должно быть менее %s байт"
71
67
72 #: forms.py:112
68 #: forms.py:136
73 msgid "Either text or image must be entered."
69 msgid "Either text or image must be entered."
74 msgstr "Текст или картинка должны быть введены."
70 msgstr "Текст или картинка должны быть введены."
75
71
76 #: forms.py:125
72 #: forms.py:149
77 #, python-format
73 #, python-format
78 msgid "Wait %s seconds after last posting"
74 msgid "Wait %s seconds after last posting"
79 msgstr "Подождите %s секунд после последнего постинга"
75 msgstr "Подождите %s секунд после последнего постинга"
80
76
81 #: forms.py:139 templates/boards/post.html:60
77 #: forms.py:163 templates/boards/post.html:61 templates/boards/tags.html:6
82 #: templates/boards/posting_general.html:234 templates/boards/tags.html:6
83 #: templates/boards/rss/post.html:10
78 #: templates/boards/rss/post.html:10
84 msgid "Tags"
79 msgid "Tags"
85 msgstr "Теги"
80 msgstr "Теги"
86
81
87 #: forms.py:147
82 #: forms.py:171
88 msgid "Inappropriate characters in tags."
83 msgid "Inappropriate characters in tags."
89 msgstr "Недопустимые символы в тегах."
84 msgstr "Недопустимые символы в тегах."
90
85
91 #: forms.py:175 forms.py:196
86 #: forms.py:199 forms.py:220
92 msgid "Captcha validation failed"
87 msgid "Captcha validation failed"
93 msgstr "Проверка капчи провалена"
88 msgstr "Проверка капчи провалена"
94
89
95 #: forms.py:202
90 #: forms.py:226
96 msgid "Theme"
91 msgid "Theme"
97 msgstr "Тема"
92 msgstr "Тема"
98
93
99 #: forms.py:207
94 #: forms.py:231
100 msgid "Enable moderation panel"
95 msgid "Enable moderation panel"
101 msgstr "Включить панель модерации"
96 msgstr "Включить панель модерации"
102
97
103 #: forms.py:222
98 #: forms.py:246
104 msgid "No such user found"
99 msgid "No such user found"
105 msgstr "Данный пользователь не найден"
100 msgstr "Данный пользователь не найден"
106
101
107 #: forms.py:236
102 #: forms.py:260
108 #, python-format
103 #, python-format
109 msgid "Wait %s minutes after last login"
104 msgid "Wait %s minutes after last login"
110 msgstr "Подождите %s минут после последнего входа"
105 msgstr "Подождите %s минут после последнего входа"
111
106
112 #: templates/boards/404.html:6
107 #: templates/boards/404.html:6
113 msgid "Not found"
108 msgid "Not found"
114 msgstr "Не найдено"
109 msgstr "Не найдено"
115
110
116 #: templates/boards/404.html:12
111 #: templates/boards/404.html:12
117 msgid "This page does not exist"
112 msgid "This page does not exist"
118 msgstr "Этой страницы не существует"
113 msgstr "Этой страницы не существует"
119
114
120 #: templates/boards/authors.html:6 templates/boards/authors.html.py:12
115 #: templates/boards/authors.html:6 templates/boards/authors.html.py:12
121 msgid "Authors"
116 msgid "Authors"
122 msgstr "Авторы"
117 msgstr "Авторы"
123
118
124 #: templates/boards/authors.html:25
119 #: templates/boards/authors.html:25
125 msgid "Distributed under the"
120 msgid "Distributed under the"
126 msgstr "Распространяется под"
121 msgstr "Распространяется под"
127
122
128 #: templates/boards/authors.html:27
123 #: templates/boards/authors.html:27
129 msgid "license"
124 msgid "license"
130 msgstr "лицензией"
125 msgstr "лицензией"
131
126
132 #: templates/boards/authors.html:29
127 #: templates/boards/authors.html:29
133 msgid "Repository"
128 msgid "Repository"
134 msgstr "Репозиторий"
129 msgstr "Репозиторий"
135
130
136 #: templates/boards/base.html:14
131 #: templates/boards/base.html:14
137 msgid "Feed"
132 msgid "Feed"
138 msgstr "Лента"
133 msgstr "Лента"
139
134
140 #: templates/boards/base.html:36
135 #: templates/boards/base.html:31
141 msgid "All threads"
136 msgid "All threads"
142 msgstr "Все темы"
137 msgstr "Все темы"
143
138
144 #: templates/boards/base.html:41
139 #: templates/boards/base.html:36
145 msgid "Tag management"
140 msgid "Tag management"
146 msgstr "Управление тегами"
141 msgstr "Управление тегами"
147
142
148 #: templates/boards/base.html:43
143 #: templates/boards/base.html:38
149 msgid "Settings"
144 msgid "Settings"
150 msgstr "Настройки"
145 msgstr "Настройки"
151
146
152 #: templates/boards/base.html:50 templates/boards/login.html:6
147 #: templates/boards/base.html:50 templates/boards/login.html:6
153 #: templates/boards/login.html.py:21
148 #: templates/boards/login.html.py:21
154 msgid "Login"
149 msgid "Login"
155 msgstr "Вход"
150 msgstr "Вход"
156
151
157 #: templates/boards/base.html:52
152 #: templates/boards/base.html:52
158 #, python-format
153 #, python-format
159 msgid "Speed: %(ppd)s posts per day"
154 msgid "Speed: %(ppd)s posts per day"
160 msgstr "Скорость: %(ppd)s сообщений в день"
155 msgstr "Скорость: %(ppd)s сообщений в день"
161
156
162 #: templates/boards/base.html:54
157 #: templates/boards/base.html:54
163 msgid "Up"
158 msgid "Up"
164 msgstr "Вверх"
159 msgstr "Вверх"
165
160
166 #: templates/boards/login.html:15
161 #: templates/boards/login.html:15
167 msgid "User ID"
162 msgid "User ID"
168 msgstr "ID пользователя"
163 msgstr "ID пользователя"
169
164
170 #: templates/boards/login.html:24
165 #: templates/boards/login.html:24
171 msgid "Insert your user id above"
166 msgid "Insert your user id above"
172 msgstr "Вставьте свой ID пользователя выше"
167 msgstr "Вставьте свой ID пользователя выше"
173
168
174 #: templates/boards/post.html:34 templates/boards/posting_general.html:100
169 #: templates/boards/post.html:35 templates/boards/posting_general.html:103
175 #: templates/boards/thread.html:59
170 #: templates/boards/thread.html:68
176 msgid "Delete"
171 msgid "Delete"
177 msgstr "Удалить"
172 msgstr "Удалить"
178
173
179 #: templates/boards/post.html:37 templates/boards/posting_general.html:104
174 #: templates/boards/post.html:38 templates/boards/posting_general.html:107
180 #: templates/boards/thread.html:62
175 #: templates/boards/thread.html:71
181 msgid "Ban IP"
176 msgid "Ban IP"
182 msgstr "Заблокировать IP"
177 msgstr "Заблокировать IP"
183
178
184 #: templates/boards/post.html:50 templates/boards/posting_general.html:113
179 #: templates/boards/post.html:51 templates/boards/posting_general.html:116
185 #: templates/boards/posting_general.html:172 templates/boards/thread.html:71
180 #: templates/boards/posting_general.html:180 templates/boards/thread.html:80
186 msgid "Replies"
181 msgid "Replies"
187 msgstr "Ответы"
182 msgstr "Ответы"
188
183
189 #: templates/boards/posting_general.html:63
184 #: templates/boards/posting_general.html:64
190 msgid "Previous page"
185 msgid "Previous page"
191 msgstr "Предыдущая страница"
186 msgstr "Предыдущая страница"
192
187
193 #: templates/boards/posting_general.html:94
188 #: templates/boards/posting_general.html:97
194 msgid "Reply"
189 msgid "Reply"
195 msgstr "Ответ"
190 msgstr "Ответ"
196
191
197 #: templates/boards/posting_general.html:122 templates/boards/thread.html:154
192 #: templates/boards/posting_general.html:125 templates/boards/thread.html:130
198 msgid "replies"
193 #: templates/boards/thread_gallery.html:52
199 msgstr "ответов"
200
201 #: templates/boards/posting_general.html:123 templates/boards/thread.html:155
202 msgid "images"
194 msgid "images"
203 msgstr "изображений"
195 msgstr "изображений"
204
196
205 #: templates/boards/posting_general.html:138
197 #: templates/boards/posting_general.html:142
206 #, python-format
198 #, python-format
207 msgid "Skipped %(count)s replies. Open thread to see all replies."
199 msgid "Skipped %(count)s replies. Open thread to see all replies."
208 msgstr "Пропущено %(count)s ответов. Откройте тред, чтобы увидеть все ответы."
200 msgstr "Пропущено %(count)s ответов. Откройте тред, чтобы увидеть все ответы."
209
201
210 #: templates/boards/posting_general.html:195
202 #: templates/boards/posting_general.html:203
211 msgid "Next page"
203 msgid "Next page"
212 msgstr "Следующая страница"
204 msgstr "Следующая страница"
213
205
214 #: templates/boards/posting_general.html:200
206 #: templates/boards/posting_general.html:208
215 msgid "No threads exist. Create the first one!"
207 msgid "No threads exist. Create the first one!"
216 msgstr "Нет тем. Создайте первую!"
208 msgstr "Нет тем. Создайте первую!"
217
209
218 #: templates/boards/posting_general.html:206
210 #: templates/boards/posting_general.html:214
219 msgid "Create new thread"
211 msgid "Create new thread"
220 msgstr "Создать новую тему"
212 msgstr "Создать новую тему"
221
213
222 #: templates/boards/posting_general.html:214 templates/boards/thread.html:106
214 #: templates/boards/posting_general.html:218 templates/boards/thread.html:112
223 msgid "Formatting"
224 msgstr "Форматирование"
225
226 #: templates/boards/posting_general.html:216 templates/boards/thread.html:108
227 msgid "quote"
228 msgstr "цитата"
229
230 #: templates/boards/posting_general.html:217 templates/boards/thread.html:109
231 msgid "italic"
232 msgstr "курсив"
233
234 #: templates/boards/posting_general.html:218 templates/boards/thread.html:110
235 msgid "bold"
236 msgstr "полужирный"
237
238 #: templates/boards/posting_general.html:219 templates/boards/thread.html:111
239 msgid "spoiler"
240 msgstr "спойлер"
241
242 #: templates/boards/posting_general.html:220 templates/boards/thread.html:112
243 msgid "comment"
244 msgstr "комментарий"
245
246 #: templates/boards/posting_general.html:252 templates/boards/thread.html:140
247 msgid "Post"
215 msgid "Post"
248 msgstr "Отправить"
216 msgstr "Отправить"
249
217
250 #: templates/boards/posting_general.html:254
218 #: templates/boards/posting_general.html:222
251 msgid "Tags must be delimited by spaces. Text or image is required."
219 msgid "Tags must be delimited by spaces. Text or image is required."
252 msgstr ""
220 msgstr ""
253 "Теги должны быть разделены пробелами. Текст или изображение обязательны."
221 "Теги должны быть разделены пробелами. Текст или изображение обязательны."
254
222
255 #: templates/boards/posting_general.html:257 templates/boards/thread.html:142
223 #: templates/boards/posting_general.html:225 templates/boards/thread.html:116
256 msgid "Text syntax"
224 msgid "Text syntax"
257 msgstr "Синтаксис текста"
225 msgstr "Синтаксис текста"
258
226
259 #: templates/boards/posting_general.html:267
227 #: templates/boards/posting_general.html:235
260 msgid "Pages:"
228 msgid "Pages:"
261 msgstr "Страницы: "
229 msgstr "Страницы: "
262
230
263 #: templates/boards/settings.html:14
231 #: templates/boards/settings.html:14
264 msgid "User:"
232 msgid "User:"
265 msgstr "Пользователь:"
233 msgstr "Пользователь:"
266
234
267 #: templates/boards/settings.html:16
235 #: templates/boards/settings.html:16
268 msgid "You are moderator."
236 msgid "You are moderator."
269 msgstr "Вы модератор."
237 msgstr "Вы модератор."
270
238
271 #: templates/boards/settings.html:19
239 #: templates/boards/settings.html:19
272 msgid "Posts:"
240 msgid "Posts:"
273 msgstr "Сообщений:"
241 msgstr "Сообщений:"
274
242
275 #: templates/boards/settings.html:20
243 #: templates/boards/settings.html:20
276 msgid "First access:"
244 msgid "First access:"
277 msgstr "Первый доступ:"
245 msgstr "Первый доступ:"
278
246
279 #: templates/boards/settings.html:22
247 #: templates/boards/settings.html:22
280 msgid "Last access:"
248 msgid "Last access:"
281 msgstr "Последний доступ: "
249 msgstr "Последний доступ: "
282
250
283 #: templates/boards/settings.html:31
251 #: templates/boards/settings.html:31
284 msgid "Save"
252 msgid "Save"
285 msgstr "Сохранить"
253 msgstr "Сохранить"
286
254
287 #: templates/boards/tags.html:24
255 #: templates/boards/tags.html:24
288 msgid "threads"
256 msgid "threads"
289 msgstr "тем"
257 msgstr "тем"
290
258
291 #: templates/boards/tags.html:37
259 #: templates/boards/tags.html:37
292 msgid "No tags found."
260 msgid "No tags found."
293 msgstr "Теги не найдены."
261 msgstr "Теги не найдены."
294
262
295 #: templates/boards/thread.html:24
263 #: templates/boards/thread.html:22 templates/boards/thread_gallery.html:20
264 msgid "Normal mode"
265 msgstr "Нормальный режим"
266
267 #: templates/boards/thread.html:23 templates/boards/thread_gallery.html:21
268 msgid "Gallery mode"
269 msgstr "Режим галереи"
270
271 #: templates/boards/thread.html:31
296 msgid "posts to bumplimit"
272 msgid "posts to bumplimit"
297 msgstr "сообщений до бамплимита"
273 msgstr "сообщений до бамплимита"
298
274
299 #: templates/boards/thread.html:98
275 #: templates/boards/thread.html:106
300 msgid "Reply to thread"
276 msgid "Reply to thread"
301 msgstr "Ответить в тему"
277 msgstr "Ответить в тему"
302
278
303 #: templates/boards/thread.html:156
279 #: templates/boards/thread.html:129 templates/boards/thread_gallery.html:51
280 msgid "replies"
281 msgstr "ответов"
282
283 #: templates/boards/thread.html:131 templates/boards/thread_gallery.html:53
304 msgid "Last update: "
284 msgid "Last update: "
305 msgstr "Последнее обновление: "
285 msgstr "Последнее обновление: "
306
286
307 #: templates/boards/rss/post.html:5
287 #: templates/boards/rss/post.html:5
308 msgid "Post image"
288 msgid "Post image"
309 msgstr "Изображение сообщения"
289 msgstr "Изображение сообщения"
310
290
311 #: templates/boards/staticpages/banned.html:6
291 #: templates/boards/staticpages/banned.html:6
312 msgid "Banned"
292 msgid "Banned"
313 msgstr "Заблокирован"
293 msgstr "Заблокирован"
314
294
315 #: templates/boards/staticpages/banned.html:11
295 #: templates/boards/staticpages/banned.html:11
316 msgid "Your IP address has been banned. Contact the administrator"
296 msgid "Your IP address has been banned. Contact the administrator"
317 msgstr "Ваш IP адрес был заблокирован. Свяжитесь с администратором"
297 msgstr "Ваш IP адрес был заблокирован. Свяжитесь с администратором"
318
298
319 #: templates/boards/staticpages/help.html:6
299 #: templates/boards/staticpages/help.html:6
320 #: templates/boards/staticpages/help.html:10
300 #: templates/boards/staticpages/help.html:10
321 msgid "Syntax"
301 msgid "Syntax"
322 msgstr "Синтаксис"
302 msgstr "Синтаксис"
323
303
324 #: templates/boards/staticpages/help.html:11
304 #: templates/boards/staticpages/help.html:11
325 msgid "2 line breaks for a new line."
305 msgid "2 line breaks for a new line."
326 msgstr "2 перевода строки создают новый абзац."
306 msgstr "2 перевода строки создают новый абзац."
327
307
328 #: templates/boards/staticpages/help.html:12
308 #: templates/boards/staticpages/help.html:12
329 msgid "Italic text"
309 msgid "Italic text"
330 msgstr "Курсивный текст"
310 msgstr "Курсивный текст"
331
311
332 #: templates/boards/staticpages/help.html:13
312 #: templates/boards/staticpages/help.html:13
333 msgid "Bold text"
313 msgid "Bold text"
334 msgstr "Полужирный текст"
314 msgstr "Полужирный текст"
335
315
336 #: templates/boards/staticpages/help.html:14
316 #: templates/boards/staticpages/help.html:14
337 msgid "Spoiler"
317 msgid "Spoiler"
338 msgstr "Спойлер"
318 msgstr "Спойлер"
339
319
340 #: templates/boards/staticpages/help.html:15
320 #: templates/boards/staticpages/help.html:15
341 msgid "Comment"
321 msgid "Comment"
342 msgstr "Комментарий"
322 msgstr "Комментарий"
343
323
344 #: templates/boards/staticpages/help.html:16
324 #: templates/boards/staticpages/help.html:16
345 msgid "Quote"
325 msgid "Quote"
346 msgstr "Цитата"
326 msgstr "Цитата"
347
327
348 #: templates/boards/staticpages/help.html:17
328 #: templates/boards/staticpages/help.html:17
349 msgid "Link to a post"
329 msgid "Link to a post"
350 msgstr "Ссылка на сообщение"
330 msgstr "Ссылка на сообщение"
351
331
352 #: templates/boards/staticpages/help.html:18
332 #: templates/boards/staticpages/help.html:18
353 msgid "Strikethrough text"
333 msgid "Strikethrough text"
354 msgstr "Зачеркнутый текст"
334 msgstr "Зачеркнутый текст"
355
335
336 #~ msgid "Formatting"
337 #~ msgstr "Форматирование"
338
339 #~ msgid "quote"
340 #~ msgstr "цитата"
341
342 #~ msgid "italic"
343 #~ msgstr "курсив"
344
345 #~ msgid "bold"
346 #~ msgstr "полужирный"
347
348 #~ msgid "spoiler"
349 #~ msgstr "спойлер"
350
351 #~ msgid "comment"
352 #~ msgstr "комментарий"
353
356 #~ msgid "Tag: "
354 #~ msgid "Tag: "
357 #~ msgstr "Тег: "
355 #~ msgstr "Тег: "
358
356
359 #~ msgid "Remove"
357 #~ msgid "Remove"
360 #~ msgstr "Удалить"
358 #~ msgstr "Удалить"
361
359
362 #~ msgid "Add"
360 #~ msgid "Add"
363 #~ msgstr "Добавить"
361 #~ msgstr "Добавить"
364
362
365 #~ msgid "Basic markdown syntax."
363 #~ msgid "Basic markdown syntax."
366 #~ msgstr "Базовый синтаксис markdown."
364 #~ msgstr "Базовый синтаксис markdown."
367
365
368 #~ msgid "Example: "
366 #~ msgid "Example: "
369 #~ msgstr "Пример: "
367 #~ msgstr "Пример: "
370
368
371 #~ msgid "tags"
369 #~ msgid "tags"
372 #~ msgstr "тегов"
370 #~ msgstr "тегов"
373
371
374 #~ msgid "Get!"
372 #~ msgid "Get!"
375 #~ msgstr "Гет!"
373 #~ msgstr "Гет!"
376
374
377 #~ msgid "View"
375 #~ msgid "View"
378 #~ msgstr "Просмотр"
376 #~ msgstr "Просмотр"
379
377
380 #~ msgid "gets"
378 #~ msgid "gets"
381 #~ msgstr "гетов"
379 #~ msgstr "гетов"
@@ -1,40 +1,41 b''
1 from django.shortcuts import redirect
1 from django.shortcuts import redirect
2 from boards import views, utils
2 from boards import views, utils
3 from boards.models import Ban
3 from boards.models import Ban
4 from django.utils.html import strip_spaces_between_tags
4 from django.utils.html import strip_spaces_between_tags
5 from django.conf import settings
5 from django.conf import settings
6
6
7 RESPONSE_CONTENT_TYPE = 'Content-Type'
7 RESPONSE_CONTENT_TYPE = 'Content-Type'
8
8
9 TYPE_HTML = 'text/html'
9 TYPE_HTML = 'text/html'
10
10
11
11
12 class BanMiddleware:
12 class BanMiddleware:
13 """
13 """
14 This is run before showing the thread. Banned users don't need to see
14 This is run before showing the thread. Banned users don't need to see
15 anything
15 anything
16 """
16 """
17
17
18 def process_view(self, request, view_func, view_args, view_kwargs):
18 def process_view(self, request, view_func, view_args, view_kwargs):
19
19
20 if view_func != views.you_are_banned:
20 if view_func != views.you_are_banned:
21 ip = utils.get_client_ip(request)
21 ip = utils.get_client_ip(request)
22 bans = Ban.objects.filter(ip=ip)
22 bans = Ban.objects.filter(ip=ip)
23
23
24 if bans.exists():
24 if bans.exists():
25 ban = bans[0]
25 ban = bans[0]
26 if not ban.can_read:
26 if not ban.can_read:
27 return redirect(views.you_are_banned)
27 return redirect(views.you_are_banned)
28
28
29
29
30 class MinifyHTMLMiddleware(object):
30 class MinifyHTMLMiddleware(object):
31 def process_response(self, request, response):
31 def process_response(self, request, response):
32 try:
32 try:
33 compress_html = settings.COMPRESS_HTML
33 compress_html = settings.COMPRESS_HTML
34 except AttributeError:
34 except AttributeError:
35 compress_html = False
35 compress_html = False
36
36
37 if TYPE_HTML in response[RESPONSE_CONTENT_TYPE] and compress_html:
37 if RESPONSE_CONTENT_TYPE in response\
38 and TYPE_HTML in response[RESPONSE_CONTENT_TYPE] and compress_html:
38 response.content = strip_spaces_between_tags(
39 response.content = strip_spaces_between_tags(
39 response.content.strip())
40 response.content.strip())
40 return response No newline at end of file
41 return response
@@ -1,361 +1,361 b''
1 html {
1 html {
2 background: #555;
2 background: #555;
3 color: #ffffff;
3 color: #ffffff;
4 }
4 }
5
5
6 #admin_panel {
6 #admin_panel {
7 background: #FF0000;
7 background: #FF0000;
8 color: #00FF00
8 color: #00FF00
9 }
9 }
10
10
11 .input_field {
11 .input_field {
12
12
13 }
13 }
14
14
15 .input_field_name {
15 .input_field_name {
16
16
17 }
17 }
18
18
19 .input_field_error {
19 .input_field_error {
20 color: #FF0000;
20 color: #FF0000;
21 }
21 }
22
22
23 .title {
23 .title {
24 font-weight: bold;
24 font-weight: bold;
25 color: #ffcc00;
25 color: #ffcc00;
26 font-size: 2ex;
26 font-size: 2ex;
27 }
27 }
28
28
29 .link, a {
29 .link, a {
30 color: #afdcec;
30 color: #afdcec;
31 }
31 }
32
32
33 .block {
33 .block {
34 display: inline-block;
34 display: inline-block;
35 vertical-align: top;
35 vertical-align: top;
36 }
36 }
37
37
38 .tag {
38 .tag {
39 color: #b4cfec;
39 color: #b4cfec;
40 }
40 }
41
41
42 .post_id {
42 .post_id {
43 color: #fff380;
43 color: #fff380;
44 }
44 }
45
45
46 .post, .dead_post, #posts-table {
46 .post, .dead_post, #posts-table {
47 background: #333;
47 background: #333;
48 margin: 5px;
48 margin: 5px;
49 padding: 10px;
49 padding: 10px;
50 border: solid 1px #888;
50 border: solid 1px #888;
51 clear: left;
51 clear: left;
52 word-wrap: break-word;
52 word-wrap: break-word;
53 }
53 }
54
54
55 .metadata {
55 .metadata {
56 padding-top: 5px;
56 padding-top: 5px;
57 margin-top: 10px;
57 margin-top: 10px;
58 border-top: solid 1px #666;
58 border-top: solid 1px #666;
59 font-size: 0.9em;
59 font-size: 0.9em;
60 color: #ddd;
60 color: #ddd;
61 }
61 }
62
62
63 .navigation_panel, .tag_info {
63 .navigation_panel, .tag_info {
64 background: #444;
64 background: #444;
65 margin: 5px;
65 margin: 5px;
66 padding: 10px;
66 padding: 10px;
67 border: solid 1px #888;
67 border: solid 1px #888;
68 color: #eee;
68 color: #eee;
69 }
69 }
70
70
71 .navigation_panel .link {
71 .navigation_panel .link {
72 border-right: 1px solid #fff;
72 border-right: 1px solid #fff;
73 font-weight: bold;
73 font-weight: bold;
74 margin-right: 1ex;
74 margin-right: 1ex;
75 padding-right: 1ex;
75 padding-right: 1ex;
76 }
76 }
77 .navigation_panel .link:last-child {
77 .navigation_panel .link:last-child {
78 border-left: 1px solid #fff;
78 border-left: 1px solid #fff;
79 border-right: none;
79 border-right: none;
80 float: right;
80 float: right;
81 margin-left: 1ex;
81 margin-left: 1ex;
82 margin-right: 0;
82 margin-right: 0;
83 padding-left: 1ex;
83 padding-left: 1ex;
84 padding-right: 0;
84 padding-right: 0;
85 }
85 }
86
86
87 .navigation_panel::after, .post::after {
87 .navigation_panel::after, .post::after {
88 clear: both;
88 clear: both;
89 content: ".";
89 content: ".";
90 display: block;
90 display: block;
91 height: 0;
91 height: 0;
92 line-height: 0;
92 line-height: 0;
93 visibility: hidden;
93 visibility: hidden;
94 }
94 }
95
95
96 p {
96 p {
97 margin-top: .5em;
97 margin-top: .5em;
98 margin-bottom: .5em;
98 margin-bottom: .5em;
99 }
99 }
100
100
101 .post-form-w {
101 .post-form-w {
102 display: table;
102 display: table;
103 background: #333344;
103 background: #333344;
104 border: solid 1px #888;
104 border: solid 1px #888;
105 color: #fff;
105 color: #fff;
106 padding: 10px;
106 padding: 10px;
107 margin: 5px;
107 margin: 5px;
108 }
108 }
109
109
110 .form-row {
110 .form-row {
111 display: table-row;
111 display: table-row;
112 }
112 }
113
113
114 .form-label, .form-input, .form-errors {
114 .form-label, .form-input, .form-errors {
115 display: table-cell;
115 display: table-cell;
116 }
116 }
117
117
118 .form-label {
118 .form-label {
119 padding: .25em 1ex .25em 0;
119 padding: .25em 1ex .25em 0;
120 vertical-align: top;
120 vertical-align: top;
121 }
121 }
122
122
123 .form-input {
123 .form-input {
124 padding: .25em 0;
124 padding: .25em 0;
125 }
125 }
126
126
127 .form-errors {
127 .form-errors {
128 font-weight: bolder;
128 font-weight: bolder;
129 vertical-align: middle;
129 vertical-align: middle;
130 }
130 }
131
131
132 .post-form input, .post-form textarea {
132 .post-form input, .post-form textarea {
133 background: #333;
133 background: #333;
134 color: #fff;
134 color: #fff;
135 border: solid 1px;
135 border: solid 1px;
136 padding: 0;
136 padding: 0;
137 width: 100%;
137 width: 100%;
138 font: medium sans;
138 font: medium sans;
139 }
139 }
140
140
141 .form-submit {
141 .form-submit {
142 display: table;
142 display: table;
143 margin-bottom: 1ex;
143 margin-bottom: 1ex;
144 }
144 }
145
145
146 .form-title {
146 .form-title {
147 font-weight: bold;
147 font-weight: bold;
148 font-size: 2.5ex;
148 font-size: 2.5ex;
149 text-decoration: underline;
149 text-decoration: underline;
150 }
150 }
151
151
152 input[type="submit"] {
152 input[type="submit"] {
153 background: #222;
153 background: #222;
154 border: solid 2px #fff;
154 border: solid 2px #fff;
155 color: #fff;
155 color: #fff;
156 padding: 0.5ex;
156 padding: 0.5ex;
157 }
157 }
158
158
159 input[type="submit"]:hover {
159 input[type="submit"]:hover {
160 background: #060;
160 background: #060;
161 }
161 }
162
162
163 blockquote {
163 blockquote {
164 border-left: solid 2px;
164 border-left: solid 2px;
165 padding-left: 5px;
165 padding-left: 5px;
166 color: #B1FB17;
166 color: #B1FB17;
167 margin: 0;
167 margin: 0;
168 }
168 }
169
169
170 .post > .image {
170 .post > .image {
171 float: left;
171 float: left;
172 margin: 0 1ex .5ex 0;
172 margin: 0 1ex .5ex 0;
173 min-width: 1px;
173 min-width: 1px;
174 text-align: center;
174 text-align: center;
175 display: table-row;
175 display: table-row;
176 }
176 }
177
177
178 .post > .metadata {
178 .post > .metadata {
179 clear: left;
179 clear: left;
180 }
180 }
181
181
182 .get {
182 .get {
183 font-weight: bold;
183 font-weight: bold;
184 color: #d55;
184 color: #d55;
185 }
185 }
186
186
187 * {
187 * {
188 text-decoration: none;
188 text-decoration: none;
189 }
189 }
190
190
191 .dead_post {
191 .dead_post {
192 background-color: #442222;
192 background-color: #442222;
193 }
193 }
194
194
195 .mark_btn {
195 .mark_btn {
196 border: 1px solid;
196 border: 1px solid;
197 min-width: 2ex;
197 min-width: 2ex;
198 padding: 2px 2ex;
198 padding: 2px 2ex;
199 }
199 }
200
200
201 .mark_btn:hover {
201 .mark_btn:hover {
202 background: #555;
202 background: #555;
203 }
203 }
204
204
205 .quote {
205 .quote {
206 color: #92cf38;
206 color: #92cf38;
207 font-style: italic;
207 font-style: italic;
208 }
208 }
209
209
210 .spoiler {
210 .spoiler {
211 background: white;
211 background: white;
212 color: white;
212 color: white;
213 }
213 }
214
214
215 .spoiler:hover {
215 .spoiler:hover {
216 color: black;
216 color: black;
217 }
217 }
218
218
219 .comment {
219 .comment {
220 color: #eb2;
220 color: #eb2;
221 font-style: italic;
221 font-style: italic;
222 }
222 }
223
223
224 a:hover {
224 a:hover {
225 text-decoration: underline;
225 text-decoration: underline;
226 }
226 }
227
227
228 .last-replies {
228 .last-replies {
229 margin-left: 3ex;
229 margin-left: 3ex;
230 }
230 }
231
231
232 .thread {
232 .thread {
233 margin-bottom: 3ex;
233 margin-bottom: 3ex;
234 }
234 }
235
235
236 .post:target {
236 .post:target {
237 border: solid 2px white;
237 border: solid 2px white;
238 }
238 }
239
239
240 pre{
240 pre{
241 white-space:pre-wrap
241 white-space:pre-wrap
242 }
242 }
243
243
244 li {
244 li {
245 list-style-position: inside;
245 list-style-position: inside;
246 }
246 }
247
247
248 .fancybox-skin {
248 .fancybox-skin {
249 position: relative;
249 position: relative;
250 background-color: #fff;
250 background-color: #fff;
251 color: #ddd;
251 color: #ddd;
252 text-shadow: none;
252 text-shadow: none;
253 }
253 }
254
254
255 .fancybox-image {
255 .fancybox-image {
256 border: 1px solid black;
256 border: 1px solid black;
257 }
257 }
258
258
259 .image-mode-tab {
259 .image-mode-tab {
260 background: #444;
260 background: #444;
261 color: #eee;
261 color: #eee;
262 display: table;
262 display: table;
263 margin: 5px;
263 margin: 5px;
264 padding: 5px;
264 padding: 5px;
265 border: 1px solid #888;
265 border: 1px solid #888;
266 }
266 }
267
267
268 .image-mode-tab > label {
268 .image-mode-tab > label {
269 margin: 0 1ex;
269 margin: 0 1ex;
270 }
270 }
271
271
272 .image-mode-tab > label > input {
272 .image-mode-tab > label > input {
273 margin-right: .5ex;
273 margin-right: .5ex;
274 }
274 }
275
275
276 #posts-table {
276 #posts-table {
277 margin: 5px;
277 margin: 5px;
278 }
278 }
279
279
280 .tag_info {
280 .tag_info {
281 display: table;
281 display: table;
282 }
282 }
283
283
284 .tag_info > h2 {
284 .tag_info > h2 {
285 margin: 0;
285 margin: 0;
286 }
286 }
287
287
288 .post-info {
288 .post-info {
289 color: #ddd;
289 color: #ddd;
290 }
290 }
291
291
292 .moderator_info {
292 .moderator_info {
293 color: #e99d41;
293 color: #e99d41;
294 border: dashed 1px;
294 border: dashed 1px;
295 padding: 3px;
295 padding: 3px;
296 }
296 }
297
297
298 .refmap {
298 .refmap {
299 font-size: 0.9em;
299 font-size: 0.9em;
300 color: #ccc;
300 color: #ccc;
301 margin-top: 1em;
301 margin-top: 1em;
302 }
302 }
303
303
304 .fav {
304 .fav {
305 color: yellow;
305 color: yellow;
306 }
306 }
307
307
308 .not_fav {
308 .not_fav {
309 color: #ccc;
309 color: #ccc;
310 }
310 }
311
311
312 .role {
312 .role {
313 text-decoration: underline;
313 text-decoration: underline;
314 }
314 }
315
315
316 .form-email {
316 .form-email {
317 display: none;
317 display: none;
318 }
318 }
319
319
320 .footer {
320 .footer {
321 margin: 5px;
321 margin: 5px;
322 }
322 }
323
323
324 .bar-value {
324 .bar-value {
325 background: rgba(50, 55, 164, 0.45);
325 background: rgba(50, 55, 164, 0.45);
326 font-size: 0.9em;
326 font-size: 0.9em;
327 height: 1.5em;
327 height: 1.5em;
328 }
328 }
329
329
330 .bar-bg {
330 .bar-bg {
331 position: relative;
331 position: relative;
332 border: solid 1px #888;
332 border: solid 1px #888;
333 margin: 5px;
333 margin: 5px;
334 overflow: hidden;
334 overflow: hidden;
335 }
335 }
336
336
337 .bar-text {
337 .bar-text {
338 padding: 2px;
338 padding: 2px;
339 position: absolute;
339 position: absolute;
340 left: 0;
340 left: 0;
341 top: 0;
341 top: 0;
342 }
342 }
343
343
344 .page_link {
344 .page_link {
345 display: table;
345 display: table;
346 background: #444;
346 background: #444;
347 margin: 5px;
347 margin: 5px;
348 border: solid 1px #888;
348 border: solid 1px #888;
349 padding: 5px;
349 padding: 5px;
350 font-weight: bolder;
350 font-weight: bolder;
351 color: #eee;
351 color: #eee;
352 }
352 }
353
353
354 .skipped_replies {
354 .skipped_replies {
355 margin: 5px;
355 margin: 5px;
356 }
356 }
357
357
358 .current_page {
358 .current_page, .current_mode {
359 border: solid 1px #afdcec;
359 border: solid 1px #afdcec;
360 padding: 2px;
360 padding: 2px;
361 } No newline at end of file
361 }
@@ -1,342 +1,347 b''
1 html {
1 html {
2 background: rgb(238, 238, 238);
2 background: rgb(238, 238, 238);
3 color: rgb(51, 51, 51);
3 color: rgb(51, 51, 51);
4 }
4 }
5
5
6 #admin_panel {
6 #admin_panel {
7 background: #FF0000;
7 background: #FF0000;
8 color: #00FF00
8 color: #00FF00
9 }
9 }
10
10
11 .input_field {
11 .input_field {
12
12
13 }
13 }
14
14
15 .input_field_name {
15 .input_field_name {
16
16
17 }
17 }
18
18
19 .input_field_error {
19 .input_field_error {
20 color: #FF0000;
20 color: #FF0000;
21 }
21 }
22
22
23
23
24 .title {
24 .title {
25 font-weight: bold;
25 font-weight: bold;
26 color: #333;
26 color: #333;
27 font-size: 2ex;
27 font-size: 2ex;
28 }
28 }
29
29
30 .link, a {
30 .link, a {
31 color: rgb(255, 102, 0);
31 color: rgb(255, 102, 0);
32 }
32 }
33
33
34 .block {
34 .block {
35 display: inline-block;
35 display: inline-block;
36 vertical-align: top;
36 vertical-align: top;
37 }
37 }
38
38
39 .tag {
39 .tag {
40 color: #222;
40 color: #222;
41 }
41 }
42
42
43 .post_id:hover {
43 .post_id:hover {
44 color: #11f;
44 color: #11f;
45 }
45 }
46
46
47 .post_id {
47 .post_id {
48 color: #444;
48 color: #444;
49 }
49 }
50
50
51 .post, .dead_post, #posts-table {
51 .post, .dead_post, #posts-table {
52 margin: 5px;
52 margin: 5px;
53 padding: 10px;
53 padding: 10px;
54 background: rgb(221, 221, 221);
54 background: rgb(221, 221, 221);
55 border: 1px solid rgb(204, 204, 204);
55 border: 1px solid rgb(204, 204, 204);
56 border-radius: 5px 5px 5px 5px;
56 border-radius: 5px 5px 5px 5px;
57 clear: left;
57 clear: left;
58 word-wrap: break-word;
58 word-wrap: break-word;
59 display: table;
59 display: table;
60 }
60 }
61
61
62 .metadata {
62 .metadata {
63 padding: 5px;
63 padding: 5px;
64 margin-top: 10px;
64 margin-top: 10px;
65 border: solid 1px #666;
65 border: solid 1px #666;
66 font-size: 0.9em;
66 font-size: 0.9em;
67 display: table;
67 display: table;
68 }
68 }
69
69
70 .navigation_panel, .tag_info, .page_link {
70 .navigation_panel, .tag_info, .page_link {
71 margin: 5px;
71 margin: 5px;
72 padding: 10px;
72 padding: 10px;
73 border: 1px solid rgb(204, 204, 204);
73 border: 1px solid rgb(204, 204, 204);
74 border-radius: 5px 5px 5px 5px;
74 border-radius: 5px 5px 5px 5px;
75 }
75 }
76
76
77 .navigation_panel .link {
77 .navigation_panel .link {
78 border-right: 1px solid #000;
78 border-right: 1px solid #000;
79 font-weight: bold;
79 font-weight: bold;
80 margin-right: 1ex;
80 margin-right: 1ex;
81 padding-right: 1ex;
81 padding-right: 1ex;
82 }
82 }
83 .navigation_panel .link:last-child {
83 .navigation_panel .link:last-child {
84 border-left: 1px solid #000;
84 border-left: 1px solid #000;
85 border-right: none;
85 border-right: none;
86 float: right;
86 float: right;
87 margin-left: 1ex;
87 margin-left: 1ex;
88 margin-right: 0;
88 margin-right: 0;
89 padding-left: 1ex;
89 padding-left: 1ex;
90 padding-right: 0;
90 padding-right: 0;
91 }
91 }
92
92
93 .navigation_panel::after, .post::after {
93 .navigation_panel::after, .post::after {
94 clear: both;
94 clear: both;
95 content: ".";
95 content: ".";
96 display: block;
96 display: block;
97 height: 0;
97 height: 0;
98 line-height: 0;
98 line-height: 0;
99 visibility: hidden;
99 visibility: hidden;
100 }
100 }
101
101
102 p {
102 p {
103 margin-top: .5em;
103 margin-top: .5em;
104 margin-bottom: .5em;
104 margin-bottom: .5em;
105 }
105 }
106
106
107 .post-form-w {
107 .post-form-w {
108 display: table;
108 display: table;
109 padding: 10px;
109 padding: 10px;
110 margin: 5px
110 margin: 5px
111 }
111 }
112
112
113 .form-row {
113 .form-row {
114 display: table-row;
114 display: table-row;
115 }
115 }
116
116
117 .form-label, .form-input, .form-errors {
117 .form-label, .form-input, .form-errors {
118 display: table-cell;
118 display: table-cell;
119 }
119 }
120
120
121 .form-label {
121 .form-label {
122 padding: .25em 1ex .25em 0;
122 padding: .25em 1ex .25em 0;
123 vertical-align: top;
123 vertical-align: top;
124 }
124 }
125
125
126 .form-input {
126 .form-input {
127 padding: .25em 0;
127 padding: .25em 0;
128 }
128 }
129
129
130 .form-errors {
130 .form-errors {
131 padding-left: 1ex;
131 padding-left: 1ex;
132 font-weight: bold;
132 font-weight: bold;
133 vertical-align: middle;
133 vertical-align: middle;
134 }
134 }
135
135
136 .post-form input, .post-form textarea {
136 .post-form input, .post-form textarea {
137 background: #fff;
137 background: #fff;
138 color: #000;
138 color: #000;
139 border: solid 1px;
139 border: solid 1px;
140 padding: 0;
140 padding: 0;
141 width: 100%;
141 width: 100%;
142 font: medium sans;
142 font: medium sans;
143 }
143 }
144
144
145 .form-submit {
145 .form-submit {
146 border-bottom: 2px solid #ddd;
146 border-bottom: 2px solid #ddd;
147 margin-bottom: .5em;
147 margin-bottom: .5em;
148 padding-bottom: .5em;
148 padding-bottom: .5em;
149 }
149 }
150
150
151 .form-title {
151 .form-title {
152 font-weight: bold;
152 font-weight: bold;
153 }
153 }
154
154
155 input[type="submit"] {
155 input[type="submit"] {
156 background: #fff;
156 background: #fff;
157 border: solid 1px #000;
157 border: solid 1px #000;
158 color: #000;
158 color: #000;
159 }
159 }
160
160
161 blockquote {
161 blockquote {
162 border-left: solid 2px;
162 border-left: solid 2px;
163 padding-left: 5px;
163 padding-left: 5px;
164 color: #B1FB17;
164 color: #B1FB17;
165 margin: 0;
165 margin: 0;
166 }
166 }
167
167
168 .post > .image {
168 .post > .image {
169 float: left;
169 float: left;
170 margin: 0 1ex .5ex 0;
170 margin: 0 1ex .5ex 0;
171 min-width: 1px;
171 min-width: 1px;
172 text-align: center;
172 text-align: center;
173 display: table-row;
173 display: table-row;
174 }
174 }
175
175
176 .post > .metadata {
176 .post > .metadata {
177 clear: left;
177 clear: left;
178 }
178 }
179
179
180 .get {
180 .get {
181 font-weight: bold;
181 font-weight: bold;
182 color: #d55;
182 color: #d55;
183 }
183 }
184
184
185 * {
185 * {
186 text-decoration: none;
186 text-decoration: none;
187 }
187 }
188
188
189 .dead_post {
189 .dead_post {
190 background-color: #ecc;
190 background-color: #ecc;
191 }
191 }
192
192
193 .quote {
193 .quote {
194 color: #080;
194 color: #080;
195 font-style: italic;
195 font-style: italic;
196 }
196 }
197
197
198 .spoiler {
198 .spoiler {
199 background: white;
199 background: white;
200 color: white;
200 color: white;
201 }
201 }
202
202
203 .spoiler:hover {
203 .spoiler:hover {
204 color: black;
204 color: black;
205 }
205 }
206
206
207 .comment {
207 .comment {
208 color: #8B6914;
208 color: #8B6914;
209 font-style: italic;
209 font-style: italic;
210 }
210 }
211
211
212 a:hover {
212 a:hover {
213 text-decoration: underline;
213 text-decoration: underline;
214 }
214 }
215
215
216 .last-replies {
216 .last-replies {
217 margin-left: 3ex;
217 margin-left: 3ex;
218 }
218 }
219
219
220 .thread {
220 .thread {
221 margin-bottom: 3ex;
221 margin-bottom: 3ex;
222 }
222 }
223
223
224 .post:target {
224 .post:target {
225 border: solid 2px black;
225 border: solid 2px black;
226 }
226 }
227
227
228 pre{
228 pre{
229 white-space:pre-wrap
229 white-space:pre-wrap
230 }
230 }
231
231
232 li {
232 li {
233 list-style-position: inside;
233 list-style-position: inside;
234 }
234 }
235
235
236 .fancybox-skin {
236 .fancybox-skin {
237 position: relative;
237 position: relative;
238 background-color: #fff;
238 background-color: #fff;
239 color: #ddd;
239 color: #ddd;
240 text-shadow: none;
240 text-shadow: none;
241 }
241 }
242
242
243 .fancybox-image {
243 .fancybox-image {
244 border: 1px solid black;
244 border: 1px solid black;
245 }
245 }
246
246
247 .image-mode-tab {
247 .image-mode-tab {
248 display: table;
248 display: table;
249 margin: 5px;
249 margin: 5px;
250 padding: 5px;
250 padding: 5px;
251 background: rgb(221, 221, 221);
251 background: rgb(221, 221, 221);
252 border: 1px solid rgb(204, 204, 204);
252 border: 1px solid rgb(204, 204, 204);
253 border-radius: 5px 5px 5px 5px;
253 border-radius: 5px 5px 5px 5px;
254 }
254 }
255
255
256 .image-mode-tab > label {
256 .image-mode-tab > label {
257 margin: 0 1ex;
257 margin: 0 1ex;
258 }
258 }
259
259
260 .image-mode-tab > label > input {
260 .image-mode-tab > label > input {
261 margin-right: .5ex;
261 margin-right: .5ex;
262 }
262 }
263
263
264 #posts-table {
264 #posts-table {
265 margin: 5px;
265 margin: 5px;
266 }
266 }
267
267
268 .tag_info, .page_link {
268 .tag_info, .page_link {
269 display: table;
269 display: table;
270 }
270 }
271
271
272 .tag_info > h2 {
272 .tag_info > h2 {
273 margin: 0;
273 margin: 0;
274 }
274 }
275
275
276 .moderator_info {
276 .moderator_info {
277 color: #e99d41;
277 color: #e99d41;
278 border: dashed 1px;
278 border: dashed 1px;
279 padding: 3px;
279 padding: 3px;
280 }
280 }
281
281
282 .refmap {
282 .refmap {
283 font-size: 0.9em;
283 font-size: 0.9em;
284 color: #444;
284 color: #444;
285 margin-top: 1em;
285 margin-top: 1em;
286 }
286 }
287
287
288 input[type="submit"]:hover {
288 input[type="submit"]:hover {
289 background: #ccc;
289 background: #ccc;
290 }
290 }
291
291
292
292
293 .fav {
293 .fav {
294 color: rgb(255, 102, 0);
294 color: rgb(255, 102, 0);
295 }
295 }
296
296
297 .not_fav {
297 .not_fav {
298 color: #555;
298 color: #555;
299 }
299 }
300
300
301 .role {
301 .role {
302 text-decoration: underline;
302 text-decoration: underline;
303 }
303 }
304
304
305 .form-email {
305 .form-email {
306 display: none;
306 display: none;
307 }
307 }
308
308
309 .mark_btn {
309 .mark_btn {
310 padding: 2px 2ex;
310 padding: 2px 2ex;
311 border: 1px solid;
311 border: 1px solid;
312 }
312 }
313
313
314 .mark_btn:hover {
314 .mark_btn:hover {
315 background: #ccc;
315 background: #ccc;
316 }
316 }
317
317
318 .bar-value {
318 .bar-value {
319 background: rgba(251, 199, 16, 0.61);
319 background: rgba(251, 199, 16, 0.61);
320 padding: 2px;
320 padding: 2px;
321 font-size: 0.9em;
321 font-size: 0.9em;
322 height: 1.5em;
322 height: 1.5em;
323 }
323 }
324
324
325 .bar-bg {
325 .bar-bg {
326 position: relative;
326 position: relative;
327 border: 1px solid rgb(204, 204, 204);
327 border: 1px solid rgb(204, 204, 204);
328 border-radius: 5px 5px 5px 5px;
328 border-radius: 5px 5px 5px 5px;
329 margin: 5px;
329 margin: 5px;
330 overflow: hidden;
330 overflow: hidden;
331 }
331 }
332
332
333 .bar-text {
333 .bar-text {
334 padding: 2px;
334 padding: 2px;
335 position: absolute;
335 position: absolute;
336 left: 0;
336 left: 0;
337 top: 0;
337 top: 0;
338 }
338 }
339
339
340 .skipped_replies {
340 .skipped_replies {
341 margin: 5px;
341 margin: 5px;
342 }
342 }
343
344 .current_page, .current_mode {
345 border: solid 1px #000;
346 padding: 2px;
347 } No newline at end of file
@@ -1,333 +1,353 b''
1 * {
1 * {
2 font-size: inherit;
2 font-size: inherit;
3 margin: 0;
3 margin: 0;
4 padding: 0;
4 padding: 0;
5 }
5 }
6 html {
6 html {
7 background: #fff;
7 background: #fff;
8 color: #000;
8 color: #000;
9 font: medium sans-serif;
9 font: medium sans-serif;
10 }
10 }
11 a {
11 a {
12 color: inherit;
12 color: inherit;
13 text-decoration: underline;
13 text-decoration: underline;
14 }
14 }
15 li {
15 li {
16 list-style-position: inside;
16 list-style-position: inside;
17 }
17 }
18
18
19 #admin_panel {
19 #admin_panel {
20 background: #182F6F;
20 background: #182F6F;
21 color: #fff;
21 color: #fff;
22 padding: .5ex 1ex .5ex 1ex;
22 padding: .5ex 1ex .5ex 1ex;
23 }
23 }
24
24
25 .navigation_panel {
25 .navigation_panel {
26 background: #182F6F;
26 background: #182F6F;
27 color: #B4CFEC;
27 color: #B4CFEC;
28 margin-bottom: 1em;
28 margin-bottom: 1em;
29 padding: .5ex 1ex 1ex 1ex;
29 padding: .5ex 1ex 1ex 1ex;
30 }
30 }
31 .navigation_panel::after {
31 .navigation_panel::after {
32 clear: both;
32 clear: both;
33 content: ".";
33 content: ".";
34 display: block;
34 display: block;
35 height: 0;
35 height: 0;
36 line-height: 0;
36 line-height: 0;
37 visibility: hidden;
37 visibility: hidden;
38 }
38 }
39
39
40 .navigation_panel a:link, .navigation_panel a:visited, .navigation_panel a:hover {
40 .navigation_panel a:link, .navigation_panel a:visited, .navigation_panel a:hover {
41 text-decoration: none;
41 text-decoration: none;
42 }
42 }
43
43
44 .navigation_panel .link {
44 .navigation_panel .link {
45 border-right: 1px solid #fff;
45 border-right: 1px solid #fff;
46 color: #fff;
46 color: #fff;
47 font-weight: bold;
47 font-weight: bold;
48 margin-right: 1ex;
48 margin-right: 1ex;
49 padding-right: 1ex;
49 padding-right: 1ex;
50 }
50 }
51 .navigation_panel .link:last-child {
51 .navigation_panel .link:last-child {
52 border-left: 1px solid #fff;
52 border-left: 1px solid #fff;
53 border-right: none;
53 border-right: none;
54 float: right;
54 float: right;
55 margin-left: 1ex;
55 margin-left: 1ex;
56 margin-right: 0;
56 margin-right: 0;
57 padding-left: 1ex;
57 padding-left: 1ex;
58 padding-right: 0;
58 padding-right: 0;
59 }
59 }
60
60
61 .navigation_panel .tag {
61 .navigation_panel .tag {
62 color: #fff;
62 color: #fff;
63 }
63 }
64
64
65 .input_field {
65 .input_field {
66
66
67 }
67 }
68
68
69 .input_field_name {
69 .input_field_name {
70
70
71 }
71 }
72
72
73 .input_field_error {
73 .input_field_error {
74 color: #FF0000;
74 color: #FF0000;
75 }
75 }
76
76
77
77
78 .title {
78 .title {
79 color: #182F6F;
79 color: #182F6F;
80 font-weight: bold;
80 font-weight: bold;
81 }
81 }
82
82
83 .post-form-w {
83 .post-form-w {
84 background: #182F6F;
84 background: #182F6F;
85 border-radius: 1ex;
85 border-radius: 1ex;
86 color: #fff;
86 color: #fff;
87 margin: 1em 1ex;
87 margin: 1em 1ex;
88 padding: 1ex;
88 padding: 1ex;
89 }
89 }
90 .post-form {
90 .post-form {
91 display: table;
91 display: table;
92 border-collapse: collapse;
92 border-collapse: collapse;
93 width: 100%;
93 width: 100%;
94
94
95 }
95 }
96 .form-row {
96 .form-row {
97 display: table-row;
97 display: table-row;
98 }
98 }
99 .form-label, .form-input {
99 .form-label, .form-input {
100 display: table-cell;
100 display: table-cell;
101 vertical-align: top;
101 vertical-align: top;
102 }
102 }
103 .form-label {
103 .form-label {
104 padding: .25em 1ex .25em 0;
104 padding: .25em 1ex .25em 0;
105 }
105 }
106 .form-input {
106 .form-input {
107 padding: .25em 0;
107 padding: .25em 0;
108 }
108 }
109 .form-input > * {
109 .form-input > * {
110 background: #fff;
110 background: #fff;
111 color: #000;
111 color: #000;
112 border: none;
112 border: none;
113 padding: 0;
113 padding: 0;
114 resize: vertical;
114 resize: vertical;
115 width: 100%;
115 width: 100%;
116 }
116 }
117 .form-submit {
117 .form-submit {
118 border-bottom: 1px solid #666;
118 border-bottom: 1px solid #666;
119 margin-bottom: .5em;
119 margin-bottom: .5em;
120 padding-bottom: .5em;
120 padding-bottom: .5em;
121 }
121 }
122 .form-title {
122 .form-title {
123 font-weight: bold;
123 font-weight: bold;
124 margin-bottom: .5em;
124 margin-bottom: .5em;
125 }
125 }
126 .post-form .settings_item {
126 .post-form .settings_item {
127 margin: .5em 0;
127 margin: .5em 0;
128 }
128 }
129 .form-submit input {
129 .form-submit input {
130 margin-top: .5em;
130 margin-top: .5em;
131 padding: .2em 1ex;
131 padding: .2em 1ex;
132 }
132 }
133 .form-label {
133 .form-label {
134 text-align: right;
134 text-align: right;
135 }
135 }
136
136
137 .block {
137 .block {
138 display: inline-block;
138 display: inline-block;
139 vertical-align: top;
139 vertical-align: top;
140 }
140 }
141
141
142 .post_id {
142 .post_id {
143 color: #a00;
143 color: #a00;
144 }
144 }
145
145
146 .post {
146 .post {
147 clear: left;
147 clear: left;
148 margin: 0 1ex 1em 1ex;
148 margin: 0 1ex 1em 1ex;
149 overflow-x: auto;
149 overflow-x: auto;
150 word-wrap: break-word;
150 word-wrap: break-word;
151 background: #FFF;
151 background: #FFF;
152 padding: 1ex;
152 padding: 1ex;
153 border: 1px solid #666;
153 border: 1px solid #666;
154 box-shadow: 1px 1px 2px 1px #666;
154 box-shadow: 1px 1px 2px 1px #666;
155 }
155 }
156
156
157 #posts > .post:last-child {
157 #posts > .post:last-child {
158 border-bottom: none;
158 border-bottom: none;
159 padding-bottom: 0;
159 padding-bottom: 0;
160 }
160 }
161
161
162 .metadata {
162 .metadata {
163 background: #C0E4E8;
163 background: #C0E4E8;
164 border: 1px solid #7F9699;
164 border: 1px solid #7F9699;
165 border-radius: .4ex;
165 border-radius: .4ex;
166 display: table;
166 display: table;
167 margin-top: .5em;
167 margin-top: .5em;
168 padding: .4em;
168 padding: .4em;
169 }
169 }
170
170
171 .post ul, .post ol {
171 .post ul, .post ol {
172 margin: .5em 0 .5em 3ex;
172 margin: .5em 0 .5em 3ex;
173 }
173 }
174 .post li {
174 .post li {
175 margin: .2em 0;
175 margin: .2em 0;
176 }
176 }
177 .post p {
177 .post p {
178 margin: .5em 0;
178 margin: .5em 0;
179 }
179 }
180 .post blockquote {
180 .post blockquote {
181 border-left: 3px solid #182F6F;
181 border-left: 3px solid #182F6F;
182 margin: .5em 0 .5em 3ex;
182 margin: .5em 0 .5em 3ex;
183 padding-left: 1ex;
183 padding-left: 1ex;
184 }
184 }
185 .post blockquote > blockquote {
185 .post blockquote > blockquote {
186 padding-top: .1em;
186 padding-top: .1em;
187 }
187 }
188
188
189 .post > .image {
189 .post > .image {
190 float: left;
190 float: left;
191 margin-right: 1ex;
191 margin-right: 1ex;
192 }
192 }
193 .post > .metadata {
193 .post > .metadata {
194 clear: left;
194 clear: left;
195 }
195 }
196
196
197 .post > .message .get {
197 .post > .message .get {
198 color: #182F6F; font-weight: bold;
198 color: #182F6F; font-weight: bold;
199 }
199 }
200
200
201 .dead_post > .metadata {
201 .dead_post > .metadata {
202 background: #eee;
202 background: #eee;
203 }
203 }
204
204
205 .quote {
205 .quote {
206 color: #182F6F;
206 color: #182F6F;
207 }
207 }
208
208
209 .spoiler {
209 .spoiler {
210 background: black;
210 background: black;
211 color: black;
211 color: black;
212 }
212 }
213
213
214 .spoiler:hover {
214 .spoiler:hover {
215 background: #ffffff;
215 background: #ffffff;
216 }
216 }
217
217
218 .comment {
218 .comment {
219 color: #557055;
219 color: #557055;
220 }
220 }
221
221
222 .last-replies {
222 .last-replies {
223 margin-left: 6ex;
223 margin-left: 6ex;
224 }
224 }
225
225
226 .thread > .post > .message > .post-info {
226 .thread > .post > .message > .post-info {
227 border-bottom: 1px solid #ccc;
227 border-bottom: 1px solid #ccc;
228 padding-bottom: .5em;
228 padding-bottom: .5em;
229 }
229 }
230
230
231 :target .post_id {
231 :target .post_id {
232 background: #182F6F;
232 background: #182F6F;
233 color: #FFF;
233 color: #FFF;
234 text-decoration: none;
234 text-decoration: none;
235 }
235 }
236
236
237 .image-mode-tab {
237 .image-mode-tab {
238 background: #182F6F;
238 background: #182F6F;
239 color: #FFF;
239 color: #FFF;
240 display: table;
240 display: table;
241 margin: 1em auto 1em 0;
241 margin: 1em auto 1em 0;
242 padding: .2em .5ex;
242 padding: .2em .5ex;
243 }
243 }
244
244
245 .image-mode-tab > label {
245 .image-mode-tab > label {
246 margin: 0 1ex;
246 margin: 0 1ex;
247 }
247 }
248
248
249 .image-mode-tab > label > input {
249 .image-mode-tab > label > input {
250 margin-right: .5ex;
250 margin-right: .5ex;
251 }
251 }
252
252
253 .tag_info, .page_link {
253 .tag_info, .page_link {
254 margin: 1em 0;
254 margin: 1em 0;
255 text-align: center;
255 text-align: center;
256 }
256 }
257
257
258 .form-errors {
258 .form-errors {
259 margin-left: 1ex;
259 margin-left: 1ex;
260 }
260 }
261
261
262 .moderator_info {
262 .moderator_info {
263 font-weight: bold;
263 font-weight: bold;
264 float: right;
264 float: right;
265 }
265 }
266
266
267 .refmap {
267 .refmap {
268 border: 1px dashed #aaa;
268 border: 1px dashed #aaa;
269 padding: 0.5em;
269 padding: 0.5em;
270 display: table;
270 display: table;
271 }
271 }
272
272
273 .fav {
273 .fav {
274 color: blue;
274 color: blue;
275 }
275 }
276
276
277 .not_fav {
277 .not_fav {
278 color: #ccc;
278 color: #ccc;
279 }
279 }
280
280
281 .role {
281 .role {
282 text-decoration: underline;
282 text-decoration: underline;
283 }
283 }
284
284
285 .form-email {
285 .form-email {
286 display: none;
286 display: none;
287 }
287 }
288
288
289 .bar-value {
289 .bar-value {
290 background: #E3E7F2;
290 background: #E3E7F2;
291 padding: .1em 1ex;
291 padding: .1em 1ex;
292 moz-box-sizing: border-box;
292 moz-box-sizing: border-box;
293 box-sizing: border-box;
293 box-sizing: border-box;
294 height: 1.5em;
294 height: 1.5em;
295 }
295 }
296
296
297 .bar-bg {
297 .bar-bg {
298 background: #EA4649;
298 background: #EA4649;
299 border: 1px solid #666;
299 border: 1px solid #666;
300 margin: 0 1ex 1em 1ex;
300 margin: 0 1ex 1em 1ex;
301 position: relative;
301 position: relative;
302 overflow: hidden;
302 overflow: hidden;
303 }
303 }
304
304
305 .bar-text {
305 .bar-text {
306 padding: 2px;
306 padding: 2px;
307 position: absolute;
307 position: absolute;
308 left: 0;
308 left: 0;
309 top: 0;
309 top: 0;
310 }
310 }
311
311
312 .skipped_replies {
312 .skipped_replies {
313 margin: 1ex;
313 margin: 1ex;
314 }
314 }
315
315
316 #mark-panel {
316 #mark-panel {
317 background: #eee;
317 background: #eee;
318 border-bottom: 1px solid #182F6F;
318 border-bottom: 1px solid #182F6F;
319 }
319 }
320
320
321 .mark_btn {
321 .mark_btn {
322 display: inline-block;
322 display: inline-block;
323 padding: .2em 1ex;
323 padding: .2em 1ex;
324 border-left: 1px solid #182F6F;
324 border-left: 1px solid #182F6F;
325 }
325 }
326
326
327 .mark_btn:first-child {
327 .mark_btn:first-child {
328 border-left: none;
328 border-left: none;
329 }
329 }
330
330
331 .mark_btn:last-child {
331 .mark_btn:last-child {
332 border-right: 1px solid #182F6F;
332 border-right: 1px solid #182F6F;
333 }
334
335 .current_page {
336 border-bottom: 1px solid #FFF;
337 padding: 0px 0.5ex;
338 }
339
340 .image-mode-tab a {
341 text-decoration: none;
342 }
343 .image-mode-tab .current_mode::before {
344 content: "✓ ";
345 padding: 0 0 0 .5ex;
346 color: #182F6F;
347 background: #FFF;
348 }
349 .image-mode-tab .current_mode {
350 padding: 0 .5ex 0 0;
351 color: #182F6F;
352 background: #FFF;
333 } No newline at end of file
353 }
@@ -1,136 +1,136 b''
1 {% extends "boards/base.html" %}
1 {% extends "boards/base.html" %}
2
2
3 {% load i18n %}
3 {% load i18n %}
4 {% load cache %}
4 {% load cache %}
5 {% load static from staticfiles %}
5 {% load static from staticfiles %}
6 {% load board %}
6 {% load board %}
7
7
8 {% block head %}
8 {% block head %}
9 <title>Neboard - {{ thread.get_opening_post.get_title }}</title>
9 <title>Neboard - {{ thread.get_opening_post.get_title }}</title>
10 {% endblock %}
10 {% endblock %}
11
11
12 {% block content %}
12 {% block content %}
13 {% spaceless %}
13 {% spaceless %}
14 {% get_current_language as LANGUAGE_CODE %}
14 {% get_current_language as LANGUAGE_CODE %}
15
15
16 <script src="{% static 'js/thread_update.js' %}"></script>
16 <script src="{% static 'js/thread_update.js' %}"></script>
17 <script src="{% static 'js/thread.js' %}"></script>
17 <script src="{% static 'js/thread.js' %}"></script>
18
18
19 {% cache 600 thread_view thread.id thread.last_edit_time moderator LANGUAGE_CODE %}
19 {% cache 600 thread_view thread.id thread.last_edit_time moderator LANGUAGE_CODE %}
20
20
21 <div class="image-mode-tab">
21 <div class="image-mode-tab">
22 <a class="current_page" href="{% url 'thread' thread.get_opening_post.id %}">{% trans 'Normal mode' %}</a>,
22 <a class="current_mode" href="{% url 'thread' thread.get_opening_post.id %}">{% trans 'Normal mode' %}</a>,
23 <a href="{% url 'thread_mode' thread.get_opening_post.id 'gallery' %}">{% trans 'Gallery mode' %}</a>
23 <a href="{% url 'thread_mode' thread.get_opening_post.id 'gallery' %}">{% trans 'Gallery mode' %}</a>
24 </div>
24 </div>
25
25
26 {% if bumpable %}
26 {% if bumpable %}
27 <div class="bar-bg">
27 <div class="bar-bg">
28 <div class="bar-value" style="width:{{ bumplimit_progress }}%" id="bumplimit_progress">
28 <div class="bar-value" style="width:{{ bumplimit_progress }}%" id="bumplimit_progress">
29 </div>
29 </div>
30 <div class="bar-text">
30 <div class="bar-text">
31 <span id="left_to_limit">{{ posts_left }}</span> {% trans 'posts to bumplimit' %}
31 <span id="left_to_limit">{{ posts_left }}</span> {% trans 'posts to bumplimit' %}
32 </div>
32 </div>
33 </div>
33 </div>
34 {% endif %}
34 {% endif %}
35 <div class="thread">
35 <div class="thread">
36 {% for post in thread.get_replies %}
36 {% for post in thread.get_replies %}
37 {% if bumpable %}
37 {% if bumpable %}
38 <div class="post" id="{{ post.id }}">
38 <div class="post" id="{{ post.id }}">
39 {% else %}
39 {% else %}
40 <div class="post dead_post" id="{{ post.id }}">
40 <div class="post dead_post" id="{{ post.id }}">
41 {% endif %}
41 {% endif %}
42 {% if post.image %}
42 {% if post.image %}
43 <div class="image">
43 <div class="image">
44 <a
44 <a
45 class="thumb"
45 class="thumb"
46 href="{{ post.image.url }}"><img
46 href="{{ post.image.url }}"><img
47 src="{{ post.image.url_200x150 }}"
47 src="{{ post.image.url_200x150 }}"
48 alt="{{ post.id }}"
48 alt="{{ post.id }}"
49 width="{{ post.image_pre_width }}"
49 width="{{ post.image_pre_width }}"
50 height="{{ post.image_pre_height }}"
50 height="{{ post.image_pre_height }}"
51 data-width="{{ post.image_width }}"
51 data-width="{{ post.image_width }}"
52 data-height="{{ post.image_height }}"/>
52 data-height="{{ post.image_height }}"/>
53 </a>
53 </a>
54 </div>
54 </div>
55 {% endif %}
55 {% endif %}
56 <div class="message">
56 <div class="message">
57 <div class="post-info">
57 <div class="post-info">
58 <span class="title">{{ post.title }}</span>
58 <span class="title">{{ post.title }}</span>
59 <a class="post_id" href="#{{ post.id }}">
59 <a class="post_id" href="#{{ post.id }}">
60 ({{ post.id }})</a>
60 ({{ post.id }})</a>
61 [{{ post.pub_time }}]
61 [{{ post.pub_time }}]
62 [<a href="#" onclick="javascript:addQuickReply('{{ post.id }}')
62 [<a href="#" onclick="javascript:addQuickReply('{{ post.id }}')
63 ; return false;">&gt;&gt;</a>]
63 ; return false;">&gt;&gt;</a>]
64
64
65 {% if moderator %}
65 {% if moderator %}
66 <span class="moderator_info">
66 <span class="moderator_info">
67 [<a href="{% url 'delete' post_id=post.id %}"
67 [<a href="{% url 'delete' post_id=post.id %}"
68 >{% trans 'Delete' %}</a>]
68 >{% trans 'Delete' %}</a>]
69 ({{ post.poster_ip }})
69 ({{ post.poster_ip }})
70 [<a href="{% url 'ban' post_id=post.id %}?next={{ request.path }}"
70 [<a href="{% url 'ban' post_id=post.id %}?next={{ request.path }}"
71 >{% trans 'Ban IP' %}</a>]
71 >{% trans 'Ban IP' %}</a>]
72 </span>
72 </span>
73 {% endif %}
73 {% endif %}
74 </div>
74 </div>
75 {% autoescape off %}
75 {% autoescape off %}
76 {{ post.text.rendered }}
76 {{ post.text.rendered }}
77 {% endautoescape %}
77 {% endautoescape %}
78 {% if post.is_referenced %}
78 {% if post.is_referenced %}
79 <div class="refmap">
79 <div class="refmap">
80 {% trans "Replies" %}:
80 {% trans "Replies" %}:
81 {% for ref_post in post.get_sorted_referenced_posts %}
81 {% for ref_post in post.get_sorted_referenced_posts %}
82 <a href="{% post_url ref_post.id %}">&gt;&gt;{{ ref_post.id }}</a
82 <a href="{% post_url ref_post.id %}">&gt;&gt;{{ ref_post.id }}</a
83 >{% if not forloop.last %},{% endif %}
83 >{% if not forloop.last %},{% endif %}
84 {% endfor %}
84 {% endfor %}
85 </div>
85 </div>
86 {% endif %}
86 {% endif %}
87 </div>
87 </div>
88 {% if forloop.first %}
88 {% if forloop.first %}
89 <div class="metadata">
89 <div class="metadata">
90 <span class="tags">
90 <span class="tags">
91 {% for tag in thread.get_tags %}
91 {% for tag in thread.get_tags %}
92 <a class="tag" href="{% url 'tag' tag.name %}">
92 <a class="tag" href="{% url 'tag' tag.name %}">
93 #{{ tag.name }}</a
93 #{{ tag.name }}</a
94 >{% if not forloop.last %},{% endif %}
94 >{% if not forloop.last %},{% endif %}
95 {% endfor %}
95 {% endfor %}
96 </span>
96 </span>
97 </div>
97 </div>
98 {% endif %}
98 {% endif %}
99 </div>
99 </div>
100 {% endfor %}
100 {% endfor %}
101 </div>
101 </div>
102 {% endcache %}
102 {% endcache %}
103
103
104 <div class="post-form-w">
104 <div class="post-form-w">
105 <script src="{% static 'js/panel.js' %}"></script>
105 <script src="{% static 'js/panel.js' %}"></script>
106 <div class="form-title">{% trans "Reply to thread" %} #{{ thread.get_opening_post.id }}</div>
106 <div class="form-title">{% trans "Reply to thread" %} #{{ thread.get_opening_post.id }}</div>
107 <div class="post-form">
107 <div class="post-form">
108 <form id="form" enctype="multipart/form-data" method="post"
108 <form id="form" enctype="multipart/form-data" method="post"
109 >{% csrf_token %}
109 >{% csrf_token %}
110 {{ form.as_div }}
110 {{ form.as_div }}
111 <div class="form-submit">
111 <div class="form-submit">
112 <input type="submit" value="{% trans "Post" %}"/>
112 <input type="submit" value="{% trans "Post" %}"/>
113 </div>
113 </div>
114 </form>
114 </form>
115 <div><a href="{% url "staticpage" name="help" %}">
115 <div><a href="{% url "staticpage" name="help" %}">
116 {% trans 'Text syntax' %}</a></div>
116 {% trans 'Text syntax' %}</a></div>
117 </div>
117 </div>
118 </div>
118 </div>
119
119
120 {% endspaceless %}
120 {% endspaceless %}
121 {% endblock %}
121 {% endblock %}
122
122
123 {% block metapanel %}
123 {% block metapanel %}
124
124
125 {% get_current_language as LANGUAGE_CODE %}
125 {% get_current_language as LANGUAGE_CODE %}
126
126
127 <span class="metapanel" data-last-update="{{ last_update }}">
127 <span class="metapanel" data-last-update="{{ last_update }}">
128 {% cache 600 thread_meta thread.last_edit_time moderator LANGUAGE_CODE %}
128 {% cache 600 thread_meta thread.last_edit_time moderator LANGUAGE_CODE %}
129 <span id="reply-count">{{ thread.get_reply_count }}</span> {% trans 'replies' %},
129 <span id="reply-count">{{ thread.get_reply_count }}</span> {% trans 'replies' %},
130 <span id="image-count">{{ thread.get_images_count }}</span> {% trans 'images' %}.
130 <span id="image-count">{{ thread.get_images_count }}</span> {% trans 'images' %}.
131 {% trans 'Last update: ' %}{{ thread.last_edit_time }}
131 {% trans 'Last update: ' %}{{ thread.last_edit_time }}
132 [<a href="rss/">RSS</a>]
132 [<a href="rss/">RSS</a>]
133 {% endcache %}
133 {% endcache %}
134 </span>
134 </span>
135
135
136 {% endblock %}
136 {% endblock %}
@@ -1,58 +1,58 b''
1 {% extends "boards/base.html" %}
1 {% extends "boards/base.html" %}
2
2
3 {% load i18n %}
3 {% load i18n %}
4 {% load cache %}
4 {% load cache %}
5 {% load static from staticfiles %}
5 {% load static from staticfiles %}
6 {% load board %}
6 {% load board %}
7
7
8 {% block head %}
8 {% block head %}
9 <title>Neboard - {{ thread.get_opening_post.get_title }}</title>
9 <title>Neboard - {{ thread.get_opening_post.get_title }}</title>
10 {% endblock %}
10 {% endblock %}
11
11
12 {% block content %}
12 {% block content %}
13 {% spaceless %}
13 {% spaceless %}
14 {% get_current_language as LANGUAGE_CODE %}
14 {% get_current_language as LANGUAGE_CODE %}
15
15
16 <script src="{% static 'js/thread.js' %}"></script>
16 <script src="{% static 'js/thread.js' %}"></script>
17
17
18 {% cache 600 thread_gallery_view thread.id thread.last_edit_time LANGUAGE_CODE %}
18 {% cache 600 thread_gallery_view thread.id thread.last_edit_time LANGUAGE_CODE %}
19 <div class="image-mode-tab">
19 <div class="image-mode-tab">
20 <a href="{% url 'thread' thread.get_opening_post.id %}">{% trans 'Normal mode' %}</a>,
20 <a href="{% url 'thread' thread.get_opening_post.id %}">{% trans 'Normal mode' %}</a>,
21 <a class="current_page" href="{% url 'thread_mode' thread.get_opening_post.id 'gallery' %}">{% trans 'Gallery mode' %}</a>
21 <a class="current_mode" href="{% url 'thread_mode' thread.get_opening_post.id 'gallery' %}">{% trans 'Gallery mode' %}</a>
22 </div>
22 </div>
23
23
24 <div id="posts-table">
24 <div id="posts-table">
25 {% for post in thread.get_replies %}
25 {% for post in thread.get_replies %}
26 {% if post.image %}
26 {% if post.image %}
27 <a
27 <a
28 class="thumb"
28 class="thumb"
29 href="{{ post.image.url }}"><img
29 href="{{ post.image.url }}"><img
30 src="{{ post.image.url_200x150 }}"
30 src="{{ post.image.url_200x150 }}"
31 alt="{{ post.id }}"
31 alt="{{ post.id }}"
32 width="{{ post.image_pre_width }}"
32 width="{{ post.image_pre_width }}"
33 height="{{ post.image_pre_height }}"
33 height="{{ post.image_pre_height }}"
34 data-width="{{ post.image_width }}"
34 data-width="{{ post.image_width }}"
35 data-height="{{ post.image_height }}"/>
35 data-height="{{ post.image_height }}"/>
36 </a>
36 </a>
37 {% endif %}
37 {% endif %}
38 {% endfor %}
38 {% endfor %}
39 </div>
39 </div>
40 {% endcache %}
40 {% endcache %}
41
41
42 {% endspaceless %}
42 {% endspaceless %}
43 {% endblock %}
43 {% endblock %}
44
44
45 {% block metapanel %}
45 {% block metapanel %}
46
46
47 {% get_current_language as LANGUAGE_CODE %}
47 {% get_current_language as LANGUAGE_CODE %}
48
48
49 <span class="metapanel" data-last-update="{{ last_update }}">
49 <span class="metapanel" data-last-update="{{ last_update }}">
50 {% cache 600 thread_meta thread.last_edit_time moderator LANGUAGE_CODE %}
50 {% cache 600 thread_meta thread.last_edit_time moderator LANGUAGE_CODE %}
51 <span id="reply-count">{{ thread.get_reply_count }}</span> {% trans 'replies' %},
51 <span id="reply-count">{{ thread.get_reply_count }}</span> {% trans 'replies' %},
52 <span id="image-count">{{ thread.get_images_count }}</span> {% trans 'images' %}.
52 <span id="image-count">{{ thread.get_images_count }}</span> {% trans 'images' %}.
53 {% trans 'Last update: ' %}{{ thread.last_edit_time }}
53 {% trans 'Last update: ' %}{{ thread.last_edit_time }}
54 [<a href="rss/">RSS</a>]
54 [<a href="rss/">RSS</a>]
55 {% endcache %}
55 {% endcache %}
56 </span>
56 </span>
57
57
58 {% endblock %}
58 {% endblock %}
General Comments 0
You need to be logged in to leave comments. Login now