##// END OF EJS Templates
Added all posts feed
neko259 -
r1165:0a78f8b2 default
parent child Browse files
Show More
@@ -0,0 +1,74 b''
1 {% extends "boards/base.html" %}
2
3 {% load i18n %}
4 {% load board %}
5 {% load static %}
6 {% load tz %}
7
8 {% block head %}
9 <meta name="robots" content="noindex">
10
11 <title>{{ site_name }} - {% trans "feed" %}</title>
12
13 {% if prev_page_link %}
14 <link rel="prev" href="{{ prev_page_link }}" />
15 {% endif %}
16 {% if next_page_link %}
17 <link rel="next" href="{{ next_page_link }}" />
18 {% endif %}
19
20 {% endblock %}
21
22 {% block content %}
23
24 {% get_current_language as LANGUAGE_CODE %}
25 {% get_current_timezone as TIME_ZONE %}
26
27 {% if posts %}
28 {% if prev_page_link %}
29 <div class="page_link">
30 <a href="{{ prev_page_link }}">{% trans "Previous page" %}</a>
31 </div>
32 {% endif %}
33
34 {% for post in posts %}
35 {% post_view post moderator=moderator truncated=True %}
36 {% endfor %}
37
38 {% if next_page_link %}
39 <div class="page_link">
40 <a href="{{ next_page_link }}">{% trans "Next page" %}</a>
41 </div>
42 {% endif %}
43 {% else %}
44 <div class="post">
45 {% trans 'No posts exist. Create the first one!' %}</div>
46 {% endif %}
47 {% endblock %}
48
49 {% block metapanel %}
50
51 <span class="metapanel">
52 <b><a href="{% url "authors" %}">{{ site_name }}</a> {{ version }}</b>
53 {% trans "Pages:" %}
54 <a href="
55 {% url "feed" page=paginator.page_range|first %}
56 ">&lt;&lt;</a>
57 [
58 {% for page in paginator.center_range %}
59 <a
60 {% ifequal page current_page.number %}
61 class="current_page"
62 {% endifequal %}
63 href="
64 {% url "feed" page=page %}
65 ">{{ page }}</a>
66 {% if not forloop.last %},{% endif %}
67 {% endfor %}
68 ]
69 <a href="
70 {% url "feed" page=paginator.page_range|last %}
71 ">&gt;&gt;</a>
72 </span>
73
74 {% endblock %}
@@ -0,0 +1,65 b''
1 from django.core.urlresolvers import reverse
2 from django.core.files import File
3 from django.core.files.temp import NamedTemporaryFile
4 from django.core.paginator import EmptyPage
5 from django.db import transaction
6 from django.http import Http404
7 from django.shortcuts import render, redirect
8 import requests
9
10 from boards import utils, settings
11 from boards.abstracts.paginator import get_paginator
12 from boards.models import Post, Thread, Ban, Tag, PostImage, Banner
13 from boards.views.base import BaseBoardView
14 from boards.views.posting_mixin import PostMixin
15
16
17 PARAMETER_CURRENT_PAGE = 'current_page'
18 PARAMETER_PAGINATOR = 'paginator'
19 PARAMETER_POSTS = 'posts'
20
21 PARAMETER_PREV_LINK = 'prev_page_link'
22 PARAMETER_NEXT_LINK = 'next_page_link'
23
24 TEMPLATE = 'boards/feed.html'
25 DEFAULT_PAGE = 1
26
27
28 class FeedView(PostMixin, BaseBoardView):
29
30 def get(self, request, page=DEFAULT_PAGE):
31 params = self.get_context_data(request=request)
32
33 paginator = get_paginator(Post.objects.order_by('-pub_time'), 10)
34 paginator.current_page = int(page)
35
36 params[PARAMETER_POSTS] = paginator.page(page).object_list
37
38 self.get_page_context(paginator, params, page)
39
40 return render(request, TEMPLATE, params)
41
42 # TODO Dedup this into PagedMixin
43 def get_page_context(self, paginator, params, page):
44 """
45 Get pagination context variables
46 """
47
48 params[PARAMETER_PAGINATOR] = paginator
49 current_page = paginator.page(int(page))
50 params[PARAMETER_CURRENT_PAGE] = current_page
51 if current_page.has_previous():
52 params[PARAMETER_PREV_LINK] = self.get_previous_page_link(
53 current_page)
54 if current_page.has_next():
55 params[PARAMETER_NEXT_LINK] = self.get_next_page_link(current_page)
56
57 def get_previous_page_link(self, current_page):
58 return reverse('feed', kwargs={
59 'page': current_page.previous_page_number(),
60 })
61
62 def get_next_page_link(self, current_page):
63 return reverse('feed', kwargs={
64 'page': current_page.next_page_number(),
65 })
1 NO CONTENT: modified file, binary diff hidden
NO CONTENT: modified file, binary diff hidden
@@ -7,7 +7,7 b' 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: 2015-05-07 13:10+0300\n"
10 "POT-Creation-Date: 2015-05-14 12:40+0300\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"
@@ -89,20 +89,20 b' msgstr "\xd0\x94\xd0\xbe\xd0\xbf\xd0\xbe\xd0\xbb\xd0\xbd\xd0\xb8\xd1\x82\xd0\xb5\xd0\xbb\xd1\x8c\xd0\xbd\xd1\x8b\xd0\xb5 \xd1\x82\xd0\xb5\xd0\xbc\xd1\x8b"'
89 msgid "Title must have less than %s characters"
89 msgid "Title must have less than %s characters"
90 msgstr "Заголовок должен иметь меньше %s символов"
90 msgstr "Заголовок должен иметь меньше %s символов"
91
91
92 #: forms.py:176
92 #: forms.py:177
93 #, python-format
93 #, python-format
94 msgid "Text must have less than %s characters"
94 msgid "Text must have less than %s characters"
95 msgstr "Текст должен быть короче %s символов"
95 msgstr "Текст должен быть короче %s символов"
96
96
97 #: forms.py:198
97 #: forms.py:197
98 msgid "Invalid URL"
98 msgid "Invalid URL"
99 msgstr "Неверный URL"
99 msgstr "Неверный URL"
100
100
101 #: forms.py:219
101 #: forms.py:218
102 msgid "Invalid additional thread list"
102 msgid "Invalid additional thread list"
103 msgstr "Неверный список дополнительных тем"
103 msgstr "Неверный список дополнительных тем"
104
104
105 #: forms.py:251
105 #: forms.py:250
106 msgid "Either text or image must be entered."
106 msgid "Either text or image must be entered."
107 msgstr "Текст или картинка должны быть введены."
107 msgstr "Текст или картинка должны быть введены."
108
108
@@ -111,8 +111,8 b' msgstr "\xd0\xa2\xd0\xb5\xd0\xba\xd1\x81\xd1\x82 \xd0\xb8\xd0\xbb\xd0\xb8 \xd0\xba\xd0\xb0\xd1\x80\xd1\x82\xd0\xb8\xd0\xbd\xd0\xba\xd0\xb0 \xd0\xb4\xd0\xbe\xd0\xbb\xd0\xb6\xd0\xbd\xd1\x8b \xd0\xb1\xd1\x8b\xd1\x82\xd1\x8c \xd0\xb2\xd0\xb2\xd0\xb5\xd0\xb4\xd0\xb5\xd0\xbd\xd1\x8b."'
111 msgid "Image must be less than %s bytes"
111 msgid "Image must be less than %s bytes"
112 msgstr "Изображение должно быть менее %s байт"
112 msgstr "Изображение должно быть менее %s байт"
113
113
114 #: forms.py:335 templates/boards/posting_general.html:129
114 #: forms.py:335 templates/boards/all_threads.html:129
115 #: templates/boards/rss/post.html:10 templates/boards/tags.html:7
115 #: templates/boards/rss/post.html:10 templates/boards/tags.html:6
116 msgid "Tags"
116 msgid "Tags"
117 msgstr "Метки"
117 msgstr "Метки"
118
118
@@ -152,6 +152,61 b' msgstr "\xd0\x9d\xd0\xb5 \xd0\xbd\xd0\xb0\xd0\xb9\xd0\xb4\xd0\xb5\xd0\xbd\xd0\xbe"'
152 msgid "This page does not exist"
152 msgid "This page does not exist"
153 msgstr "Этой страницы не существует"
153 msgstr "Этой страницы не существует"
154
154
155 #: templates/boards/all_threads.html:35
156 msgid "Related message"
157 msgstr "Связанное сообщение"
158
159 #: templates/boards/all_threads.html:60
160 msgid "Edit tag"
161 msgstr "Изменить метку"
162
163 #: templates/boards/all_threads.html:63
164 #, python-format
165 msgid "This tag has %(thread_count)s threads and %(post_count)s posts."
166 msgstr "С этой меткой есть %(thread_count)s тем и %(post_count)s сообщений."
167
168 #: templates/boards/all_threads.html:70 templates/boards/feed.html:30
169 #: templates/boards/notifications.html:17 templates/search/search.html:26
170 msgid "Previous page"
171 msgstr "Предыдущая страница"
172
173 #: templates/boards/all_threads.html:84
174 #, python-format
175 msgid "Skipped %(count)s replies. Open thread to see all replies."
176 msgstr "Пропущено %(count)s ответов. Откройте тред, чтобы увидеть все ответы."
177
178 #: templates/boards/all_threads.html:102 templates/boards/feed.html:40
179 #: templates/boards/notifications.html:27 templates/search/search.html:37
180 msgid "Next page"
181 msgstr "Следующая страница"
182
183 #: templates/boards/all_threads.html:107
184 msgid "No threads exist. Create the first one!"
185 msgstr "Нет тем. Создайте первую!"
186
187 #: templates/boards/all_threads.html:113
188 msgid "Create new thread"
189 msgstr "Создать новую тему"
190
191 #: templates/boards/all_threads.html:118 templates/boards/preview.html:16
192 #: templates/boards/thread_normal.html:43
193 msgid "Post"
194 msgstr "Отправить"
195
196 #: templates/boards/all_threads.html:123
197 msgid "Tags must be delimited by spaces. Text or image is required."
198 msgstr ""
199 "Метки должны быть разделены пробелами. Текст или изображение обязательны."
200
201 #: templates/boards/all_threads.html:126
202 #: templates/boards/thread_normal.html:48
203 msgid "Text syntax"
204 msgstr "Синтаксис текста"
205
206 #: templates/boards/all_threads.html:143 templates/boards/feed.html:53
207 msgid "Pages:"
208 msgstr "Страницы: "
209
155 #: templates/boards/authors.html:6 templates/boards/authors.html.py:12
210 #: templates/boards/authors.html:6 templates/boards/authors.html.py:12
156 msgid "Authors"
211 msgid "Authors"
157 msgstr "Авторы"
212 msgstr "Авторы"
@@ -168,7 +223,7 b' msgstr "\xd0\xbb\xd0\xb8\xd1\x86\xd0\xb5\xd0\xbd\xd0\xb7\xd0\xb8\xd0\xb5\xd0\xb9"'
168 msgid "Repository"
223 msgid "Repository"
169 msgstr "Репозиторий"
224 msgstr "Репозиторий"
170
225
171 #: templates/boards/base.html:14
226 #: templates/boards/base.html:14 templates/boards/base.html.py:42
172 msgid "Feed"
227 msgid "Feed"
173 msgstr "Лента"
228 msgstr "Лента"
174
229
@@ -184,37 +239,36 b' msgstr "\xd0\x94\xd0\xbe\xd0\xb1\xd0\xb0\xd0\xb2\xd0\xb8\xd1\x82\xd1\x8c \xd0\xbc\xd0\xb5\xd1\x82\xd0\xba\xd0\xb8"'
184 msgid "Tag management"
239 msgid "Tag management"
185 msgstr "Управление метками"
240 msgstr "Управление метками"
186
241
187 #: templates/boards/base.html:44 templates/boards/base.html.py:45
242 #: templates/boards/base.html:45 templates/boards/base.html.py:46
188 #: templates/boards/notifications.html:8
243 #: templates/boards/notifications.html:8
189 msgid "Notifications"
244 msgid "Notifications"
190 msgstr "Уведомления"
245 msgstr "Уведомления"
191
246
192 #: templates/boards/base.html:52 templates/boards/settings.html:8
247 #: templates/boards/base.html:53 templates/boards/settings.html:8
193 msgid "Settings"
248 msgid "Settings"
194 msgstr "Настройки"
249 msgstr "Настройки"
195
250
196 #: templates/boards/base.html:65
251 #: templates/boards/base.html:66
197 msgid "Admin"
252 msgid "Admin"
198 msgstr "Администрирование"
253 msgstr "Администрирование"
199
254
200 #: templates/boards/base.html:67
255 #: templates/boards/base.html:68
201 #, python-format
256 #, python-format
202 msgid "Speed: %(ppd)s posts per day"
257 msgid "Speed: %(ppd)s posts per day"
203 msgstr "Скорость: %(ppd)s сообщений в день"
258 msgstr "Скорость: %(ppd)s сообщений в день"
204
259
205 #: templates/boards/base.html:69
260 #: templates/boards/base.html:70
206 msgid "Up"
261 msgid "Up"
207 msgstr "Вверх"
262 msgstr "Вверх"
208
263
209 #: templates/boards/notifications.html:17
264 #: templates/boards/feed.html:11
210 #: templates/boards/posting_general.html:70 templates/search/search.html:26
265 msgid "feed"
211 msgid "Previous page"
266 msgstr ""
212 msgstr "Предыдущая страница"
213
267
214 #: templates/boards/notifications.html:27
268 #: templates/boards/feed.html:45
215 #: templates/boards/posting_general.html:102 templates/search/search.html:37
269 #| msgid "No threads exist. Create the first one!"
216 msgid "Next page"
270 msgid "No posts exist. Create the first one!"
217 msgstr "Следующая страница"
271 msgstr "Нет сообщений. Создайте первое!"
218
272
219 #: templates/boards/post.html:24
273 #: templates/boards/post.html:24
220 msgid "Open"
274 msgid "Open"
@@ -244,52 +298,6 b' msgstr "\xd1\x81\xd0\xbe\xd0\xbe\xd0\xb1\xd1\x89\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xb9"'
244 msgid "images"
298 msgid "images"
245 msgstr "изображений"
299 msgstr "изображений"
246
300
247 #: templates/boards/posting_general.html:35
248 #| msgid "messages"
249 msgid "Related message"
250 msgstr "Связанное сообщение"
251
252 #: templates/boards/posting_general.html:60
253 msgid "Edit tag"
254 msgstr "Изменить метку"
255
256 #: templates/boards/posting_general.html:63
257 #, python-format
258 msgid "This tag has %(thread_count)s threads and %(post_count)s posts."
259 msgstr "С этой меткой есть %(thread_count)s тем и %(post_count)s сообщений."
260
261 #: templates/boards/posting_general.html:84
262 #, python-format
263 msgid "Skipped %(count)s replies. Open thread to see all replies."
264 msgstr "Пропущено %(count)s ответов. Откройте тред, чтобы увидеть все ответы."
265
266 #: templates/boards/posting_general.html:107
267 msgid "No threads exist. Create the first one!"
268 msgstr "Нет тем. Создайте первую!"
269
270 #: templates/boards/posting_general.html:113
271 msgid "Create new thread"
272 msgstr "Создать новую тему"
273
274 #: templates/boards/posting_general.html:118 templates/boards/preview.html:16
275 #: templates/boards/thread_normal.html:43
276 msgid "Post"
277 msgstr "Отправить"
278
279 #: templates/boards/posting_general.html:123
280 msgid "Tags must be delimited by spaces. Text or image is required."
281 msgstr ""
282 "Метки должны быть разделены пробелами. Текст или изображение обязательны."
283
284 #: templates/boards/posting_general.html:126
285 #: templates/boards/thread_normal.html:48
286 msgid "Text syntax"
287 msgstr "Синтаксис текста"
288
289 #: templates/boards/posting_general.html:143
290 msgid "Pages:"
291 msgstr "Страницы: "
292
293 #: templates/boards/preview.html:6 templates/boards/staticpages/help.html:20
301 #: templates/boards/preview.html:6 templates/boards/staticpages/help.html:20
294 msgid "Preview"
302 msgid "Preview"
295 msgstr "Предпросмотр"
303 msgstr "Предпросмотр"
@@ -360,11 +368,11 b' msgstr "\xd0\xa6\xd0\xb8\xd1\x82\xd0\xb0\xd1\x82\xd0\xb0"'
360 msgid "You can try pasting the text and previewing the result here:"
368 msgid "You can try pasting the text and previewing the result here:"
361 msgstr "Вы можете попробовать вставить текст и проверить результат здесь:"
369 msgstr "Вы можете попробовать вставить текст и проверить результат здесь:"
362
370
363 #: templates/boards/tags.html:23
371 #: templates/boards/tags.html:21
364 msgid "No tags found."
372 msgid "No tags found."
365 msgstr "Метки не найдены."
373 msgstr "Метки не найдены."
366
374
367 #: templates/boards/tags.html:26
375 #: templates/boards/tags.html:24
368 msgid "All tags"
376 msgid "All tags"
369 msgstr "Все метки"
377 msgstr "Все метки"
370
378
@@ -405,4 +413,3 b' msgstr "\xd0\x9e\xd0\xb1\xd0\xbd\xd0\xbe\xd0\xb2\xd0\xb8\xd1\x82\xd1\x8c"'
405 #: templates/search/search.html:17
413 #: templates/search/search.html:17
406 msgid "Ok"
414 msgid "Ok"
407 msgstr "Ок"
415 msgstr "Ок"
408
@@ -38,7 +38,8 b''
38 {% endif %}
38 {% endif %}
39 <a href="{% url 'tags' 'required'%}" title="{% trans 'Tag management' %}"
39 <a href="{% url 'tags' 'required'%}" title="{% trans 'Tag management' %}"
40 >[...]</a>,
40 >[...]</a>,
41 <a href="{% url 'search' %}" title="{% trans 'Search' %}">[S]</a>.
41 <a href="{% url 'search' %}" title="{% trans 'Search' %}">[S]</a>,
42 <a href="{% url 'feed' %}" title="{% trans 'Feed' %}">[F]</a>.
42
43
43 {% if username %}
44 {% if username %}
44 <a class="right-link link" href="{% url 'notifications' username %}" title="{% trans 'Notifications' %}">
45 <a class="right-link link" href="{% url 'notifications' username %}" title="{% trans 'Notifications' %}">
@@ -4,7 +4,7 b' from django.views.i18n import javascript'
4 from boards import views
4 from boards import views
5 from boards.rss import AllThreadsFeed, TagThreadsFeed, ThreadPostsFeed
5 from boards.rss import AllThreadsFeed, TagThreadsFeed, ThreadPostsFeed
6 from boards.views import api, tag_threads, all_threads, \
6 from boards.views import api, tag_threads, all_threads, \
7 settings, all_tags
7 settings, all_tags, feed
8 from boards.views.authors import AuthorsView
8 from boards.views.authors import AuthorsView
9 from boards.views.notifications import NotificationView
9 from boards.views.notifications import NotificationView
10 from boards.views.search import BoardSearchView
10 from boards.views.search import BoardSearchView
@@ -35,6 +35,10 b" urlpatterns = patterns('',"
35 name='thread'),
35 name='thread'),
36 url(r'^thread/(?P<post_id>\d+)/mode/gallery/$', views.thread.gallery.GalleryThreadView.as_view(),
36 url(r'^thread/(?P<post_id>\d+)/mode/gallery/$', views.thread.gallery.GalleryThreadView.as_view(),
37 name='thread_gallery'),
37 name='thread_gallery'),
38 # /feed/
39 url(r'^feed/$', views.feed.FeedView.as_view(), name='feed'),
40 url(r'^feed/page/(?P<page>\w+)/$', views.feed.FeedView.as_view(),
41 name='feed'),
38
42
39 url(r'^settings/$', settings.SettingsView.as_view(), name='settings'),
43 url(r'^settings/$', settings.SettingsView.as_view(), name='settings'),
40 url(r'^tags/(?P<query>\w+)?/?$', all_tags.AllTagsView.as_view(), name='tags'),
44 url(r'^tags/(?P<query>\w+)?/?$', all_tags.AllTagsView.as_view(), name='tags'),
General Comments 0
You need to be logged in to leave comments. Login now