Commit 9c0fc2b40162ff2e2162cb0d6b56d0c07448c351
1 parent
87c02305
Exists in
plugin_extra_configs
Moved voting to super_archives
Showing
8 changed files
with
41 additions
and
60 deletions
Show diff stats
colab/api/__init__.py
colab/api/urls.py
colab/api/views.py
@@ -1,45 +0,0 @@ | @@ -1,45 +0,0 @@ | ||
1 | - | ||
2 | -from django import http | ||
3 | -from django.db import IntegrityError | ||
4 | -from django.views.generic import View | ||
5 | -from django.core.exceptions import ObjectDoesNotExist | ||
6 | - | ||
7 | - | ||
8 | -from colab.super_archives.models import Message | ||
9 | - | ||
10 | - | ||
11 | -class VoteView(View): | ||
12 | - | ||
13 | - http_method_names = [u'get', u'put', u'delete', u'head'] | ||
14 | - | ||
15 | - def put(self, request, msg_id): | ||
16 | - if not request.user.is_authenticated(): | ||
17 | - return http.HttpResponseForbidden() | ||
18 | - | ||
19 | - try: | ||
20 | - Message.objects.get(id=msg_id).vote(request.user) | ||
21 | - except IntegrityError: | ||
22 | - # 409 Conflict | ||
23 | - # used for duplicated entries | ||
24 | - return http.HttpResponse(status=409) | ||
25 | - | ||
26 | - # 201 Created | ||
27 | - return http.HttpResponse(status=201) | ||
28 | - | ||
29 | - def get(self, request, msg_id): | ||
30 | - votes = Message.objects.get(id=msg_id).votes_count() | ||
31 | - return http.HttpResponse(votes, content_type='application/json') | ||
32 | - | ||
33 | - def delete(self, request, msg_id): | ||
34 | - if not request.user.is_authenticated(): | ||
35 | - return http.HttpResponseForbidden() | ||
36 | - | ||
37 | - try: | ||
38 | - Message.objects.get(id=msg_id).unvote(request.user) | ||
39 | - except ObjectDoesNotExist: | ||
40 | - return http.HttpResponseGone() | ||
41 | - | ||
42 | - # 204 No Content | ||
43 | - # empty body, as per RFC2616. | ||
44 | - # object deleted | ||
45 | - return http.HttpResponse(status=204) |
colab/settings.py
@@ -52,7 +52,6 @@ INSTALLED_APPS = ( | @@ -52,7 +52,6 @@ INSTALLED_APPS = ( | ||
52 | 'colab.home', | 52 | 'colab.home', |
53 | 'colab.plugins', | 53 | 'colab.plugins', |
54 | 'colab.super_archives', | 54 | 'colab.super_archives', |
55 | - 'colab.api', | ||
56 | 'colab.rss', | 55 | 'colab.rss', |
57 | 'colab.search', | 56 | 'colab.search', |
58 | 'colab.tz', | 57 | 'colab.tz', |
colab/super_archives/templates/message-thread.html
@@ -59,7 +59,7 @@ | @@ -59,7 +59,7 @@ | ||
59 | console.debug('trying to vote'); | 59 | console.debug('trying to vote'); |
60 | $btn.button('loading'); | 60 | $btn.button('loading'); |
61 | $ajax = $.ajax({ | 61 | $ajax = $.ajax({ |
62 | - url: "/api/message/" + msg_id + "/vote", | 62 | + url: "archives/message/" + msg_id + "/vote", |
63 | type: method, | 63 | type: method, |
64 | context: $btn.get(0), | 64 | context: $btn.get(0), |
65 | beforeSend: function(xhr, settings) { | 65 | beforeSend: function(xhr, settings) { |
colab/super_archives/urls.py
1 | from django.conf.urls import patterns, url | 1 | from django.conf.urls import patterns, url |
2 | 2 | ||
3 | -from .views import EmailView, EmailValidationView, ThreadView | ||
4 | -from .views import ThreadDashboardView | 3 | +from .views import (EmailView, EmailValidationView, ThreadView, |
4 | + ThreadDashboardView, VoteView) | ||
5 | 5 | ||
6 | 6 | ||
7 | urlpatterns = patterns( | 7 | urlpatterns = patterns( |
@@ -13,4 +13,5 @@ urlpatterns = patterns( | @@ -13,4 +13,5 @@ urlpatterns = patterns( | ||
13 | name="archive_email_validation_view"), | 13 | name="archive_email_validation_view"), |
14 | url(r'manage/email/(?P<key>[0-9a-z]{32})?', EmailView.as_view(), | 14 | url(r'manage/email/(?P<key>[0-9a-z]{32})?', EmailView.as_view(), |
15 | name="archive_email_view"), | 15 | name="archive_email_view"), |
16 | + url(r'message/(?P<msg_id>\d+)/vote$', VoteView.as_view()), | ||
16 | ) | 17 | ) |
colab/super_archives/views.py
@@ -294,3 +294,40 @@ class EmailValidationView(View): | @@ -294,3 +294,40 @@ class EmailValidationView(View): | ||
294 | return http.HttpResponseServerError() | 294 | return http.HttpResponseServerError() |
295 | 295 | ||
296 | return http.HttpResponse(status=204) | 296 | return http.HttpResponse(status=204) |
297 | + | ||
298 | + | ||
299 | +class VoteView(View): | ||
300 | + | ||
301 | + http_method_names = [u'get', u'put', u'delete', u'head'] | ||
302 | + | ||
303 | + def put(self, request, msg_id): | ||
304 | + if not request.user.is_authenticated(): | ||
305 | + return http.HttpResponseForbidden() | ||
306 | + | ||
307 | + try: | ||
308 | + Message.objects.get(id=msg_id).vote(request.user) | ||
309 | + except IntegrityError: | ||
310 | + # 409 Conflict | ||
311 | + # used for duplicated entries | ||
312 | + return http.HttpResponse(status=409) | ||
313 | + | ||
314 | + # 201 Created | ||
315 | + return http.HttpResponse(status=201) | ||
316 | + | ||
317 | + def get(self, request, msg_id): | ||
318 | + votes = Message.objects.get(id=msg_id).votes_count() | ||
319 | + return http.HttpResponse(votes, content_type='application/json') | ||
320 | + | ||
321 | + def delete(self, request, msg_id): | ||
322 | + if not request.user.is_authenticated(): | ||
323 | + return http.HttpResponseForbidden() | ||
324 | + | ||
325 | + try: | ||
326 | + Message.objects.get(id=msg_id).unvote(request.user) | ||
327 | + except ObjectDoesNotExist: | ||
328 | + return http.HttpResponseGone() | ||
329 | + | ||
330 | + # 204 No Content | ||
331 | + # empty body, as per RFC2616. | ||
332 | + # object deleted | ||
333 | + return http.HttpResponse(status=204) |
colab/urls.py
@@ -12,7 +12,6 @@ urlpatterns = patterns('', | @@ -12,7 +12,6 @@ urlpatterns = patterns('', | ||
12 | url(r'^robots.txt$', 'colab.home.views.robots', name='robots'), | 12 | url(r'^robots.txt$', 'colab.home.views.robots', name='robots'), |
13 | url(r'^dashboard$', 'colab.home.views.dashboard', name='dashboard'), | 13 | url(r'^dashboard$', 'colab.home.views.dashboard', name='dashboard'), |
14 | url(r'^search/', include('colab.search.urls')), | 14 | url(r'^search/', include('colab.search.urls')), |
15 | - url(r'^api/', include('colab.api.urls')), | ||
16 | url(r'^rss/', include('colab.rss.urls')), | 15 | url(r'^rss/', include('colab.rss.urls')), |
17 | 16 | ||
18 | url(r'^account/', include('colab.accounts.urls')), | 17 | url(r'^account/', include('colab.accounts.urls')), |