diff --git a/boards/locale/ru/LC_MESSAGES/django.mo b/boards/locale/ru/LC_MESSAGES/django.mo index 915cea286c32770ce2337292b6874e6a3cbee1b4..ef9fbb2c1feece5d76d10ef2263833278e48bb41 GIT binary patch literal 3476 zc$|$@TW=f36`sVFDpQn`xNeiwu`_NHU+OGPS_bOSk`u7%N&=adB1*F4$Gpxy1_c5XC{Un3pl=2Gote?as9JPk z?l(JgF5mgi8TtEtyZ^xOoW$=L{O&x$*m+=b7gNtuyBVY9)4*2XLEsO7$AQhj4DiRm zGr%W+eP-VV{s=e*+ylG@#6NZuuO{Fv;M2hOfo;IAfX@S0&G}z}dx3uk9tHl>#5vTY z;~#6%@lFC0z|+73z?aPVZ<=(RVZ0tA9>#9m_{{)Yh>x**&+LBy>;QgbzP~f)-{bWZ z@Nee(UwAzV+|{i0Xl~Z~dx86a`+-^D(PkZIxLNZm8T5=_&EVSxuLGCRgImDI@ttqc z{4W8Mz|j`XBLtoR&H;Z4Y_w>-{?elL`iJ@6w@24~c#rPW3&3;0^T6Z4Y2dGcU+&R* z?1u3{U>nc^o&f$3csZf#su-M1X#e+t7lCUDov*1?=iA?^=jqv2owuV^`wbc#ZPocE z3{C@Y0B4Q=zNFqi2y6!)Nov2>lKQ-o)cqb$>N&cT)Vh2Pd>!~La6j-=o6di+P3!mD zHXY|mo9271P50v#@Da+x^gJG7dVc9?VO!5pgU{i|nU3`{re~Ax5Y2GX*t~$>lT7C) zZj^_#q&`1pY^aAnVOpzW+wwfVZT)lVAJg^F9ZNA?Gd<55q+U?J9^K~G#2$V~H=31Q z+xBQS>0Xl-)b|4$2RX-KxpJ9DV}Y=pkmYL8m>-1f72ETK0|?y_Ua^BKj(^qT;e;32 z<0*C?#*yHjxN00(mne%!ur4=@0(ZC;35VA_M+7(*EI)2ns%4So?1Dhh?uuO!tlJAk z5b+7W7VsLD+;zA;?7t~k!44x{t2#&lmxAkE33=pm+Y7IXAmk&q$A<-Xl|S-ab)zv> z@Jp`8dVL<*rI3&MNS;!kx-Krp!7RlMaggGpZh$ntCl13d(k`qY%)%_|_rplNxU0DS zs^&-HzhoW|6(T(#s^tm&CbC8reEXpr`N0Gmv|%+UqR911AuHM?)P}cOhP+ZkGQ@U7 z*{!$~e0YL~ReMB)DP9!gU>ayL+zojk-l(~OK#6q3iesW8@Wx4%EF2$XJrt#?W<@tD z3pP|`LnL!|m%=Q&?AN#*2ww5gCmS47v;~8HZaYpO!jO;IAxH^St;PZR`51taNC{{= z71yJFlP??g%MMcnL*_29x2@Q39FU$LL=U>fT z%=1h6fx+&+-UJC3L{?8&avkfHS}C-OewHWt`-+z8A)Kr(H6W+bnRYAvqLuyy&%BsD z-F_n7o=(Hi8W3-~;g;Ryd~U$%>9e|W{Fi;%p6(N`_4VcxG;3Bdz-*PNj4Zz}R4DM? zTu+{N1>#`9~$8${nKAw_`Jf4<| z@_szaZ6`iy7gGDnDpT!Y)ZT%mP5wfXlZ z#pLI(TapWMo)U7orrc)YcQ=yGF!==?Bah+q8EmKI14H9qE*~Jq z0+XNOq#^HPe-bxQeu!|21(SbN?CvVhZ)h8Ki>g?~vL4S-aw1-b-7;>J4!Ro8>AHw5 z{8lL&ii~fP`=`VQG#5d44ev#+)KnFzZIyudXVX<)FMS??HoU z4vw>0m-+@b9SLTTQIUdm{0v#u`A{u1E3`F_avEq0MOmR_9Bfu8Tw_N))z)nsZOr7HY4c_P zy}VD8{}t7z?&QNA)RThU8ET6X8~xYP(KWxPDp^iJF@V|xX{OsYR*b*AR)hB{lK4$%4L{UuUNPZs+(OhhMT diff --git a/boards/locale/ru/LC_MESSAGES/django.po b/boards/locale/ru/LC_MESSAGES/django.po --- a/boards/locale/ru/LC_MESSAGES/django.po +++ b/boards/locale/ru/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-09-06 21:49+0300\n" +"POT-Creation-Date: 2013-09-07 19:43+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -106,8 +106,8 @@ msgid "images" msgstr "изображений" #: templates/boards/posting_general.html:66 -#: templates/boards/posting_general.html:139 templates/boards/thread.html:56 -#: templates/boards/rss/post.html:10 +#: templates/boards/posting_general.html:139 templates/boards/tags.html:7 +#: templates/boards/thread.html:56 templates/boards/rss/post.html:10 msgid "Tags" msgstr "Теги" @@ -164,9 +164,21 @@ msgstr "Тема" msgid "Save" msgstr "Сохранить" -#: templates/boards/tags.html:7 -msgid "tags" -msgstr "тегов" +#: templates/boards/tags.html:17 +msgid "threads" +msgstr "тем" + +#: templates/boards/tags.html:20 +msgid "Remove" +msgstr "Удалить" + +#: templates/boards/tags.html:23 +msgid "Add" +msgstr "Добавить" + +#: templates/boards/tags.html:28 +msgid "No tags found." +msgstr "Теги не найдены." #: templates/boards/thread.html:72 msgid "Reply to thread" @@ -196,6 +208,9 @@ msgstr "Ссылки на ответы могут быть вставлены с помощью" msgid "Last update: " msgstr "Последнее обновление: " +#~ msgid "tags" +#~ msgstr "тегов" + #~ msgid "Get!" #~ msgstr "Гет!" diff --git a/boards/templates/boards/base.html b/boards/templates/boards/base.html --- a/boards/templates/boards/base.html +++ b/boards/templates/boards/base.html @@ -29,7 +29,7 @@ {% trans "All threads" %} {% for tag in tags %} - {{ tag.name }}({{ tag.get_post_count }}) + {{ tag.name }} {% endfor %} [...] {% trans 'Settings' %} diff --git a/boards/templates/boards/tags.html b/boards/templates/boards/tags.html --- a/boards/templates/boards/tags.html +++ b/boards/templates/boards/tags.html @@ -4,20 +4,28 @@ {% load markup %} {% block head %} - Neboard - {% trans "tags" %} + Neboard - {% trans "Tags" %} {% endblock %} {% block content %}
- {% if tags %} + {% if all_tags %} {% for tag in all_tags %} - {{ tag.name }}
+ {{ tag.name }} + ({{ tag.get_post_count }} {% trans 'threads' %}) + {% if tag in user.fav_tags.all %} + [{% trans 'Remove' %}] + {% else %} + [{% trans 'Add' %}] + {% endif %} +
{% endfor %} {% else %} - No tags found. -
+ {% trans 'No tags found.' %} {% endif %}
diff --git a/boards/urls.py b/boards/urls.py --- a/boards/urls.py +++ b/boards/urls.py @@ -20,6 +20,14 @@ urlpatterns = patterns('', url(r'^tag/(?P\w+)/$', views.tag, name='tag'), # /boards/tag/tag_id/page/ url(r'^tag/(?P\w+)/page/(?P\w+)/$', views.tag, name='tag'), + + # /boards/tag/tag_name/unsubscribe/ + url(r'^tag/(?P\w+)/subscribe/$', views.tag_subscribe, + name='tag_subscribe'), + # /boards/tag/tag_name/unsubscribe/ + url(r'^tag/(?P\w+)/unsubscribe/$', views.tag_unsubscribe, + name='tag_unsubscribe'), + # /boards/thread/ url(r'^thread/(?P\w+)/$', views.thread, name='thread'), # /boards/theme/theme_name/ diff --git a/boards/views.py b/boards/views.py --- a/boards/views.py +++ b/boards/views.py @@ -232,6 +232,7 @@ def delete(request, post_id): else: return redirect(thread, post_id=post.parent) + def you_are_banned(request): context = _init_default_context(request) return render(request, 'boards/banned.html', context) @@ -242,6 +243,26 @@ def page_404(request): return render(request, 'boards/404.html', context) +def tag_subscribe(request, tag_name): + user = _get_user(request) + tag = get_object_or_404(Tag, name=tag_name) + + if not tag in user.fav_tags.all(): + user.fav_tags.add(tag) + + return redirect(all_tags) + + +def tag_unsubscribe(request, tag_name): + user = _get_user(request) + tag = get_object_or_404(Tag, name=tag_name) + + if tag in user.fav_tags.all(): + user.fav_tags.remove(tag) + + return redirect(all_tags) + + def _get_theme(request): """Get user's CSS theme""" @@ -266,9 +287,9 @@ def _init_default_context(request): """Create context with default values that are used in most views""" context = RequestContext(request) - context['tags'] = Tag.objects.get_popular_tags() + context['user'] = _get_user(request) + context['tags'] = _get_user(request).fav_tags.all() context['theme'] = _get_theme(request) - context['user'] = _get_user(request) return context