##// END OF EJS Templates
Show only one image in the tag
neko259 -
r1253:be089b6c default
parent child Browse files
Show More
@@ -1,124 +1,124 b''
1 from django.shortcuts import get_object_or_404, redirect
1 from django.shortcuts import get_object_or_404, redirect
2 from django.core.urlresolvers import reverse
2 from django.core.urlresolvers import reverse
3
3
4 from boards.abstracts.settingsmanager import get_settings_manager, \
4 from boards.abstracts.settingsmanager import get_settings_manager, \
5 SETTING_FAVORITE_TAGS, SETTING_HIDDEN_TAGS
5 SETTING_FAVORITE_TAGS, SETTING_HIDDEN_TAGS
6 from boards.models import Tag, PostImage
6 from boards.models import Tag, PostImage
7 from boards.views.all_threads import AllThreadsView, DEFAULT_PAGE
7 from boards.views.all_threads import AllThreadsView, DEFAULT_PAGE
8 from boards.views.mixins import DispatcherMixin
8 from boards.views.mixins import DispatcherMixin
9 from boards.forms import ThreadForm, PlainErrorList
9 from boards.forms import ThreadForm, PlainErrorList
10
10
11 PARAM_HIDDEN_TAGS = 'hidden_tags'
11 PARAM_HIDDEN_TAGS = 'hidden_tags'
12 PARAM_TAG = 'tag'
12 PARAM_TAG = 'tag'
13 PARAM_IS_FAVORITE = 'is_favorite'
13 PARAM_IS_FAVORITE = 'is_favorite'
14 PARAM_IS_HIDDEN = 'is_hidden'
14 PARAM_IS_HIDDEN = 'is_hidden'
15 PARAM_RANDOM_IMAGES = 'random_images'
15 PARAM_RANDOM_IMAGES = 'random_images'
16
16
17 IMAGES_COUNT = 3
17 IMAGES_COUNT = 1
18
18
19 __author__ = 'neko259'
19 __author__ = 'neko259'
20
20
21
21
22 class TagView(AllThreadsView, DispatcherMixin):
22 class TagView(AllThreadsView, DispatcherMixin):
23
23
24 tag_name = None
24 tag_name = None
25
25
26 def get_threads(self):
26 def get_threads(self):
27 tag = get_object_or_404(Tag, name=self.tag_name)
27 tag = get_object_or_404(Tag, name=self.tag_name)
28
28
29 hidden_tags = self.settings_manager.get_hidden_tags()
29 hidden_tags = self.settings_manager.get_hidden_tags()
30
30
31 try:
31 try:
32 hidden_tags.remove(tag)
32 hidden_tags.remove(tag)
33 except ValueError:
33 except ValueError:
34 pass
34 pass
35
35
36 return tag.get_threads().exclude(
36 return tag.get_threads().exclude(
37 tags__in=hidden_tags)
37 tags__in=hidden_tags)
38
38
39 def get_context_data(self, **kwargs):
39 def get_context_data(self, **kwargs):
40 params = super(TagView, self).get_context_data(**kwargs)
40 params = super(TagView, self).get_context_data(**kwargs)
41
41
42 settings_manager = get_settings_manager(kwargs['request'])
42 settings_manager = get_settings_manager(kwargs['request'])
43
43
44 tag = get_object_or_404(Tag, name=self.tag_name)
44 tag = get_object_or_404(Tag, name=self.tag_name)
45 params[PARAM_TAG] = tag
45 params[PARAM_TAG] = tag
46
46
47 fav_tag_names = settings_manager.get_setting(SETTING_FAVORITE_TAGS)
47 fav_tag_names = settings_manager.get_setting(SETTING_FAVORITE_TAGS)
48 hidden_tag_names = settings_manager.get_setting(SETTING_HIDDEN_TAGS)
48 hidden_tag_names = settings_manager.get_setting(SETTING_HIDDEN_TAGS)
49
49
50 params[PARAM_IS_FAVORITE] = fav_tag_names is not None and tag.name in fav_tag_names
50 params[PARAM_IS_FAVORITE] = fav_tag_names is not None and tag.name in fav_tag_names
51 params[PARAM_IS_HIDDEN] = hidden_tag_names is not None and tag.name in hidden_tag_names
51 params[PARAM_IS_HIDDEN] = hidden_tag_names is not None and tag.name in hidden_tag_names
52 params[PARAM_RANDOM_IMAGES] = PostImage.objects.get_random_images(IMAGES_COUNT, tags=[tag])
52 params[PARAM_RANDOM_IMAGES] = PostImage.objects.get_random_images(IMAGES_COUNT, tags=[tag])
53
53
54 return params
54 return params
55
55
56 def get_previous_page_link(self, current_page):
56 def get_previous_page_link(self, current_page):
57 return reverse('tag', kwargs={
57 return reverse('tag', kwargs={
58 'tag_name': self.tag_name,
58 'tag_name': self.tag_name,
59 }) + '?page=' + str(current_page.previous_page_number())
59 }) + '?page=' + str(current_page.previous_page_number())
60
60
61 def get_next_page_link(self, current_page):
61 def get_next_page_link(self, current_page):
62 return reverse('tag', kwargs={
62 return reverse('tag', kwargs={
63 'tag_name': self.tag_name,
63 'tag_name': self.tag_name,
64 }) + '?page=' + str(current_page.next_page_number())
64 }) + '?page=' + str(current_page.next_page_number())
65
65
66 def get(self, request, tag_name, form=None):
66 def get(self, request, tag_name, form=None):
67 self.tag_name = tag_name
67 self.tag_name = tag_name
68
68
69 return super(TagView, self).get(request, form)
69 return super(TagView, self).get(request, form)
70
70
71
71
72 def post(self, request, tag_name):
72 def post(self, request, tag_name):
73 self.tag_name = tag_name
73 self.tag_name = tag_name
74
74
75 if 'method' in request.POST:
75 if 'method' in request.POST:
76 self.dispatch_method(request)
76 self.dispatch_method(request)
77 form = None
77 form = None
78
78
79 return redirect('tag', tag_name)
79 return redirect('tag', tag_name)
80 else:
80 else:
81 form = ThreadForm(request.POST, request.FILES,
81 form = ThreadForm(request.POST, request.FILES,
82 error_class=PlainErrorList)
82 error_class=PlainErrorList)
83 form.session = request.session
83 form.session = request.session
84
84
85 if form.is_valid():
85 if form.is_valid():
86 return self.create_thread(request, form)
86 return self.create_thread(request, form)
87 if form.need_to_ban:
87 if form.need_to_ban:
88 # Ban user because he is suspected to be a bot
88 # Ban user because he is suspected to be a bot
89 self._ban_current_user(request)
89 self._ban_current_user(request)
90
90
91 return self.get(request, tag_name, page, form)
91 return self.get(request, tag_name, page, form)
92
92
93 def subscribe(self, request):
93 def subscribe(self, request):
94 tag = get_object_or_404(Tag, name=self.tag_name)
94 tag = get_object_or_404(Tag, name=self.tag_name)
95
95
96 settings_manager = get_settings_manager(request)
96 settings_manager = get_settings_manager(request)
97 settings_manager.add_fav_tag(tag)
97 settings_manager.add_fav_tag(tag)
98
98
99 def unsubscribe(self, request):
99 def unsubscribe(self, request):
100 tag = get_object_or_404(Tag, name=self.tag_name)
100 tag = get_object_or_404(Tag, name=self.tag_name)
101
101
102 settings_manager = get_settings_manager(request)
102 settings_manager = get_settings_manager(request)
103 settings_manager.del_fav_tag(tag)
103 settings_manager.del_fav_tag(tag)
104
104
105 def hide(self, request):
105 def hide(self, request):
106 """
106 """
107 Adds tag to user's hidden tags. Threads with this tag will not be
107 Adds tag to user's hidden tags. Threads with this tag will not be
108 shown.
108 shown.
109 """
109 """
110
110
111 tag = get_object_or_404(Tag, name=self.tag_name)
111 tag = get_object_or_404(Tag, name=self.tag_name)
112
112
113 settings_manager = get_settings_manager(request)
113 settings_manager = get_settings_manager(request)
114 settings_manager.add_hidden_tag(tag)
114 settings_manager.add_hidden_tag(tag)
115
115
116 def unhide(self, request):
116 def unhide(self, request):
117 """
117 """
118 Removed tag from user's hidden tags.
118 Removed tag from user's hidden tags.
119 """
119 """
120
120
121 tag = get_object_or_404(Tag, name=self.tag_name)
121 tag = get_object_or_404(Tag, name=self.tag_name)
122
122
123 settings_manager = get_settings_manager(request)
123 settings_manager = get_settings_manager(request)
124 settings_manager.del_hidden_tag(tag)
124 settings_manager.del_hidden_tag(tag)
General Comments 0
You need to be logged in to leave comments. Login now