Show More
@@ -20,6 +20,7 b" SETTING_IMAGES = 'images_aliases'" | |||||
20 | SETTING_ONLY_FAVORITES = 'only_favorites' |
|
20 | SETTING_ONLY_FAVORITES = 'only_favorites' | |
21 | SETTING_LAST_POSTS = 'last_posts' |
|
21 | SETTING_LAST_POSTS = 'last_posts' | |
22 | SETTING_CONFIRMED_USER = 'confirmed_user' |
|
22 | SETTING_CONFIRMED_USER = 'confirmed_user' | |
|
23 | SETTING_SUBSCRIBE_BY_DEFAULT = 'subscribe_by_default' | |||
23 |
|
24 | |||
24 | DEFAULT_THEME = 'md' |
|
25 | DEFAULT_THEME = 'md' | |
25 |
|
26 |
@@ -198,7 +198,7 b' class PostForm(NeboardForm):' | |||||
198 | widget=forms.TextInput(attrs={ |
|
198 | widget=forms.TextInput(attrs={ | |
199 | 'class': 'form-email'})) |
|
199 | 'class': 'form-email'})) | |
200 | subscribe = forms.BooleanField(required=False, |
|
200 | subscribe = forms.BooleanField(required=False, | |
201 |
label=_('Subscribe to thread') |
|
201 | label=_('Subscribe to thread')) | |
202 |
|
202 | |||
203 | guess = forms.CharField(widget=forms.HiddenInput(), required=False) |
|
203 | guess = forms.CharField(widget=forms.HiddenInput(), required=False) | |
204 | timestamp = forms.CharField(widget=forms.HiddenInput(), required=False) |
|
204 | timestamp = forms.CharField(widget=forms.HiddenInput(), required=False) | |
@@ -524,6 +524,8 b' class SettingsForm(NeboardForm):' | |||||
524 | label=_('Image view mode')) |
|
524 | label=_('Image view mode')) | |
525 | username = forms.CharField(label=_('User name'), required=False) |
|
525 | username = forms.CharField(label=_('User name'), required=False) | |
526 | timezone = forms.ChoiceField(choices=get_timezones(), label=_('Time zone')) |
|
526 | timezone = forms.ChoiceField(choices=get_timezones(), label=_('Time zone')) | |
|
527 | subscribe_by_default = forms.BooleanField( | |||
|
528 | required=False, label=_('Subscribe to threads by default')) | |||
527 |
|
529 | |||
528 | def clean_username(self): |
|
530 | def clean_username(self): | |
529 | username = self.cleaned_data['username'] |
|
531 | username = self.cleaned_data['username'] |
1 | NO CONTENT: modified file, binary diff hidden |
|
NO CONTENT: modified file, binary diff hidden |
@@ -620,3 +620,6 b' msgstr "\xd0\xa7\xd1\x82\xd0\xbe\xd0\xb1\xd1\x8b \xd0\xb4\xd0\xbe\xd0\xb1\xd0\xb0\xd0\xb2\xd0\xb8\xd1\x82\xd1\x8c \xd1\x81\xd1\x82\xd0\xb8\xd0\xba\xd0\xb5\xd1\x80, \xd1\x81\xd0\xbe\xd0\xb7\xd0\xb4\xd0\xb0\xd0\xb9\xd1\x82\xd0\xb5 \xd1\x82\xd0\xb5\xd0\xbc\xd1\x83-\xd0\xbd\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x80 \xd1\x81 \xd0\xb7\xd0\xb0\xd0\xb3\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xba\xd0\xbe\xd0\xbc \xd0\xb2 \xd0\xba\xd0\xb0\xd1\x87\xd0\xb5\xd1\x81\xd1\x82\xd0\xb2\xd0\xb5 \xd0\xbd\xd0\xb0\xd0\xb7\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x8f \xd0\xbd\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x80\xd0\xb0 \xd1\x81\xd1\x82\xd0\xb8\xd0\xba\xd0\xb5\xd1\x80\xd0\xbe\xd0\xb2, \xd0\xb8 \xd1\x82\xd1\x80\xd0\xb8\xd0\xbf\xd0\xba\xd0\xbe\xd0\xb4\xd0\xbe\xd0\xbc \xd0\xb4\xd0\xbb\xd1\x8f \xd0\xbf\xd0\xbe\xd0\xb4\xd1\x82\xd0\xb2\xd0\xb5\xd1\x80\xd0\xb6\xd0\xb4\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f \xd0\xb2\xd0\xbb\xd0\xb0\xd0\xb4\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f \xd0\xbd\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x80\xd0\xbe\xd0\xbc. \xd0\x97\xd0\xb0\xd1\x82\xd0\xb5\xd0\xbc, \xd0\xb4\xd0\xbe\xd0\xb1\xd0\xb0\xd0\xb2\xd0\xbb\xd1\x8f\xd0\xb9\xd1\x82\xd0\xb5 \xd1\x81\xd0\xbe\xd0\xbe\xd0\xb1\xd1\x89\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f \xd1\x81 \xd0\xb7\xd0\xb0\xd0\xb3\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xba\xd0\xbe\xd0\xbc \xd0\xb2 \xd0\xba\xd0\xb0\xd1\x87\xd0\xb5\xd1\x81\xd1\x82\xd0\xb2\xd0\xb5 \xd0\xb8\xd0\xbc\xd0\xb5\xd0\xbd\xd0\xb8 \xd1\x81\xd1\x82\xd0\xb8\xd0\xba\xd0\xb5\xd1\x80\xd0\xb0, \xd0\xb8 \xd1\x82\xd0\xb5\xd0\xbc \xd0\xb6\xd0\xb5 \xd1\x82\xd1\x80\xd0\xb8\xd0\xbf\xd0\xba\xd0\xbe\xd0\xb4\xd0\xbe\xd0\xbc\xd0\xbc. \xd0\x98\xd1\x85 \xd0\xb2\xd0\xbb\xd0\xbe\xd0\xb6\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f \xd1\x81\xd1\x82\xd0\xb0\xd0\xbd\xd1\x83\xd1\x82 \xd1\x81\xd1\x82\xd0\xb8\xd0\xba\xd0\xb5\xd1\x80\xd0\xb0\xd0\xbc\xd0\xb8."' | |||||
620 |
|
620 | |||
621 | msgid "Inappropriate sticker pack name." |
|
621 | msgid "Inappropriate sticker pack name." | |
622 | msgstr "Недопустимое имя набора стикеров." |
|
622 | msgstr "Недопустимое имя набора стикеров." | |
|
623 | ||||
|
624 | msgid "Subscribe to threads by default" | |||
|
625 | msgstr "Подписываться на темы по умолчанию" |
1 | NO CONTENT: modified file, binary diff hidden |
|
NO CONTENT: modified file, binary diff hidden |
@@ -620,3 +620,6 b' msgstr "\xd0\xa9\xd0\xbe\xd0\xb1 \xd0\xb4\xd0\xbe\xd0\xb4\xd0\xb0\xd1\x82\xd0\xb8 \xd1\x81\xd1\x82\xd1\x96\xd0\xba\xd0\xb5\xd1\x80, \xd1\x81\xd1\x82\xd0\xb2\xd0\xbe\xd1\x80\xd1\x96\xd1\x82\xd1\x8c \xd1\x82\xd0\xb5\xd0\xbc\xd1\x83-\xd0\xbd\xd0\xb0\xd0\xb1\xd1\x96\xd1\x80 \xd0\xb7 \xd0\xb7\xd0\xb0\xd0\xb3\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xba\xd0\xbe\xd0\xbc \xd1\x83 \xd1\x8f\xd0\xba\xd0\xbe\xd1\x81\xd1\x82\xd1\x96 \xd0\xbd\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x80\xd1\x83 \xd1\x81\xd1\x82\xd1\x96\xd0\xba\xd0\xb5\xd1\x80\xd1\x96\xd0\xb2, \xd1\x82\xd0\xb0 \xd1\x82\xd1\x80\xd1\x96\xd0\xbf\xd0\xba\xd0\xbe\xd0\xb4\xd0\xbe\xd0\xbc \xd0\xb4\xd0\xbb\xd1\x8f \xd0\xbf\xd1\x96\xd0\xb4\xd1\x82\xd0\xb2\xd0\xb5\xd1\x80\xd0\xb4\xd0\xb6\xd0\xb5\xd0\xbd\xd0\xbd\xd1\x8f \xd0\xb2\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xb4\xd1\x96\xd0\xbd\xd0\xbd\xd1\x8f \xd0\xbd\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x80\xd0\xbe\xd0\xbc\xd1\x82. \xd0\x9f\xd0\xbe\xd1\x82\xd1\x96\xd0\xbc, \xd0\xb4\xd0\xbe\xd0\xb4\xd0\xb0\xd0\xb2\xd0\xb0\xd0\xb9\xd1\x82\xd0\xb5 \xd0\xbf\xd0\xbe\xd0\xb2\xd1\x96\xd0\xb4\xd0\xbe\xd0\xbc\xd0\xbb\xd0\xb5\xd0\xbd\xd0\xbd\xd1\x8f \xd0\xb7 \xd0\xb7\xd0\xb0\xd0\xb3\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xba\xd0\xbe\xd0\xbc \xd1\x83 \xd1\x8f\xd0\xba\xd0\xbe\xd1\x81\xd1\x82\xd1\x96 \xd1\x96\xd0\xbc\xd0\xb5\xd0\xbd\xd1\x96 \xd1\x81\xd1\x82\xd1\x96\xd0\xba\xd0\xb5\xd1\x80\xd1\x83 \xd1\x82\xd0\xb0 \xd0\xb7 \xd1\x82\xd0\xb8\xd0\xbc \xd1\x81\xd0\xb0\xd0\xbc\xd0\xb8\xd0\xbc \xd1\x82\xd1\x80\xd1\x96\xd0\xbf\xd0\xba\xd0\xbe\xd0\xb4\xd0\xbe\xd0\xbc. \xd0\x87\xd1\x85\xd0\xbd\xd1\x96 \xd0\xb2\xd0\xba\xd0\xbb\xd0\xb0\xd0\xb4\xd0\xb5\xd0\xbd\xd0\xbd\xd1\x8f \xd1\x81\xd1\x82\xd0\xb0\xd0\xbd\xd1\x83\xd1\x82 \xd1\x81\xd1\x82\xd1\x96\xd0\xba\xd0\xb5\xd1\x80\xd0\xb0\xd0\xbc\xd0\xb8."' | |||||
620 |
|
620 | |||
621 | msgid "Inappropriate sticker pack name." |
|
621 | msgid "Inappropriate sticker pack name." | |
622 | msgstr "Неприпустиме ім'я набору стікерів." |
|
622 | msgstr "Неприпустиме ім'я набору стікерів." | |
|
623 | ||||
|
624 | msgid "Subscribe to threads by default" | |||
|
625 | msgstr "Підписуватися на нитки за замовчанням" |
@@ -9,7 +9,7 b' from boards import settings' | |||||
9 | from boards.abstracts.constants import PARAM_PAGE |
|
9 | from boards.abstracts.constants import PARAM_PAGE | |
10 | from boards.abstracts.paginator import get_paginator |
|
10 | from boards.abstracts.paginator import get_paginator | |
11 | from boards.abstracts.settingsmanager import get_settings_manager, \ |
|
11 | from boards.abstracts.settingsmanager import get_settings_manager, \ | |
12 | SETTING_ONLY_FAVORITES |
|
12 | SETTING_ONLY_FAVORITES, SETTING_SUBSCRIBE_BY_DEFAULT | |
13 | from boards.forms import ThreadForm, PlainErrorList |
|
13 | from boards.forms import ThreadForm, PlainErrorList | |
14 | from boards.models import Post, Thread |
|
14 | from boards.models import Post, Thread | |
15 | from boards.settings import SECTION_VIEW |
|
15 | from boards.settings import SECTION_VIEW | |
@@ -53,9 +53,13 b' class AllThreadsView(BaseBoardView, Pagi' | |||||
53 |
|
53 | |||
54 | params = self.get_context_data(request=request) |
|
54 | params = self.get_context_data(request=request) | |
55 |
|
55 | |||
|
56 | subscribe_by_default = get_settings_manager(request).get_setting( | |||
|
57 | SETTING_SUBSCRIBE_BY_DEFAULT, False) | |||
|
58 | ||||
56 | if not form: |
|
59 | if not form: | |
57 | form = ThreadForm(error_class=PlainErrorList, |
|
60 | form = ThreadForm(error_class=PlainErrorList, | |
58 |
initial={FORM_TAGS: self.tag_name |
|
61 | initial={FORM_TAGS: self.tag_name, | |
|
62 | 'subscribe': subscribe_by_default}) | |||
59 |
|
63 | |||
60 | self.settings_manager = get_settings_manager(request) |
|
64 | self.settings_manager = get_settings_manager(request) | |
61 |
|
65 |
@@ -5,7 +5,8 b' from django.utils.decorators import meth' | |||||
5 | from django.views.decorators.csrf import csrf_protect |
|
5 | from django.views.decorators.csrf import csrf_protect | |
6 |
|
6 | |||
7 | from boards.abstracts.settingsmanager import get_settings_manager, \ |
|
7 | from boards.abstracts.settingsmanager import get_settings_manager, \ | |
8 | SETTING_USERNAME, SETTING_LAST_NOTIFICATION_ID, SETTING_IMAGE_VIEWER |
|
8 | SETTING_USERNAME, SETTING_LAST_NOTIFICATION_ID, SETTING_IMAGE_VIEWER, \ | |
|
9 | SETTING_SUBSCRIBE_BY_DEFAULT | |||
9 | from boards.middlewares import SESSION_TIMEZONE |
|
10 | from boards.middlewares import SESSION_TIMEZONE | |
10 | from boards.views.base import BaseBoardView, CONTEXT_FORM |
|
11 | from boards.views.base import BaseBoardView, CONTEXT_FORM | |
11 | from boards.forms import SettingsForm, PlainErrorList |
|
12 | from boards.forms import SettingsForm, PlainErrorList | |
@@ -16,6 +17,7 b" FORM_THEME = 'theme'" | |||||
16 | FORM_USERNAME = 'username' |
|
17 | FORM_USERNAME = 'username' | |
17 | FORM_TIMEZONE = 'timezone' |
|
18 | FORM_TIMEZONE = 'timezone' | |
18 | FORM_IMAGE_VIEWER = 'image_viewer' |
|
19 | FORM_IMAGE_VIEWER = 'image_viewer' | |
|
20 | FORM_SUBSCRIBE = 'subscribe_by_default' | |||
19 |
|
21 | |||
20 | CONTEXT_HIDDEN_TAGS = 'hidden_tags' |
|
22 | CONTEXT_HIDDEN_TAGS = 'hidden_tags' | |
21 |
|
23 | |||
@@ -39,6 +41,7 b' class SettingsView(BaseBoardView):' | |||||
39 | FORM_USERNAME: settings_manager.get_setting(SETTING_USERNAME), |
|
41 | FORM_USERNAME: settings_manager.get_setting(SETTING_USERNAME), | |
40 | FORM_TIMEZONE: request.session.get( |
|
42 | FORM_TIMEZONE: request.session.get( | |
41 | SESSION_TIMEZONE, timezone.get_current_timezone()), |
|
43 | SESSION_TIMEZONE, timezone.get_current_timezone()), | |
|
44 | FORM_SUBSCRIBE: settings_manager.get_setting(SETTING_SUBSCRIBE_BY_DEFAULT, False) | |||
42 | }, |
|
45 | }, | |
43 | error_class=PlainErrorList) |
|
46 | error_class=PlainErrorList) | |
44 |
|
47 | |||
@@ -61,6 +64,7 b' class SettingsView(BaseBoardView):' | |||||
61 | settings_manager.set_theme(selected_theme) |
|
64 | settings_manager.set_theme(selected_theme) | |
62 | settings_manager.set_setting(SETTING_IMAGE_VIEWER, |
|
65 | settings_manager.set_setting(SETTING_IMAGE_VIEWER, | |
63 | form.cleaned_data[FORM_IMAGE_VIEWER]) |
|
66 | form.cleaned_data[FORM_IMAGE_VIEWER]) | |
|
67 | settings_manager.set_setting(SETTING_SUBSCRIBE_BY_DEFAULT, form.cleaned_data[SETTING_SUBSCRIBE_BY_DEFAULT]) | |||
64 |
|
68 | |||
65 | old_username = settings_manager.get_setting(SETTING_USERNAME) |
|
69 | old_username = settings_manager.get_setting(SETTING_USERNAME) | |
66 | if username != old_username: |
|
70 | if username != old_username: |
@@ -6,7 +6,8 b' from django.utils.decorators import meth' | |||||
6 | from django.views.decorators.csrf import csrf_protect |
|
6 | from django.views.decorators.csrf import csrf_protect | |
7 | from django.views.generic.edit import FormMixin |
|
7 | from django.views.generic.edit import FormMixin | |
8 |
|
8 | |||
9 | from boards.abstracts.settingsmanager import get_settings_manager |
|
9 | from boards.abstracts.settingsmanager import get_settings_manager, \ | |
|
10 | SETTING_SUBSCRIBE_BY_DEFAULT | |||
10 | from boards.forms import PostForm, PlainErrorList |
|
11 | from boards.forms import PostForm, PlainErrorList | |
11 | from boards.models import Post |
|
12 | from boards.models import Post | |
12 | from boards.views.base import BaseBoardView, CONTEXT_FORM |
|
13 | from boards.views.base import BaseBoardView, CONTEXT_FORM | |
@@ -43,7 +44,10 b' class ThreadView(BaseBoardView, FormMixi' | |||||
43 | .get_absolute_url(), opening_post.id)) |
|
44 | .get_absolute_url(), opening_post.id)) | |
44 |
|
45 | |||
45 | if not form: |
|
46 | if not form: | |
46 | form = PostForm(error_class=PlainErrorList) |
|
47 | subscribe_by_default = settings_manager.get_setting( | |
|
48 | SETTING_SUBSCRIBE_BY_DEFAULT, False) | |||
|
49 | form = PostForm(error_class=PlainErrorList, | |||
|
50 | initial={'subscribe': subscribe_by_default}) | |||
47 |
|
51 | |||
48 | thread_to_show = opening_post.get_thread() |
|
52 | thread_to_show = opening_post.get_thread() | |
49 |
|
53 |
General Comments 0
You need to be logged in to leave comments.
Login now