root/plesonet_wishlist/trunk/views.py

Revision 35, 2.4 KB (checked in by 235, 3 years ago)

change pathes

Line 
1# -*- coding: utf-8 -*-
2from django.http import HttpResponseRedirect, Http404
3from django.contrib.auth.decorators import login_required
4from django.shortcuts import get_object_or_404
5from django.conf import settings
6from django.template import loader, Context, RequestContext
7from django.core.mail import mail_admins
8
9from apps.accounts.views import redirect
10from apps.lib.decorators import render_to
11from apps.lib.exceptions import RedirectException
12from apps.lib.helpers import reverse
13from plesonet_wishlist.models import Feedback, FeedbackVote
14from plesonet_wishlist.forms import FeedbackForm
15
16@login_required
17def feedback_vote(request, feedback_id):
18    feedback = get_object_or_404(Feedback, pk=feedback_id)
19    next = request.GET.get('next', reverse("wishlist"))
20    if len(next) == 0:
21        next = "/"
22    if feedback.user != request.user:
23        vote, created = FeedbackVote.objects.get_or_create(user=request.user, feedback=feedback)
24        if created:
25            raise RedirectException(next, notice_message='Vote accepted.')
26        else:
27            raise RedirectException(next, error_message='You already voted for this feedback.')
28    else:
29        raise RedirectException(next, error_message='You cant vote for own feedback.')
30
31@render_to('plesonet_wishlist/view_wishlist.html')
32def view_wishlist(request, order_by="-pub_date"):
33    if request.user.is_anonymous():
34        form = None
35    else:
36        if request.method == "POST":
37            form = FeedbackForm(instance=Feedback(user=request.user), data=request.POST)
38            if form.is_valid():
39                feedback = form.save()
40               
41                #send email to admins at least
42                site_url = hasattr(settings, 'SITE_URL') and settings.SITE_URL or 'http://www.extmem.com'
43                t = loader.get_template('plesonet_wishlist/email_form.txt')
44                form.cleaned_data['ip_address'] = request.META['REMOTE_ADDR']
45                mail_admins('New wish on site %s' % site_url, 
46                        t.render(Context({'f': feedback, 'site_url': site_url})), 
47                        fail_silently = True)
48               
49                form = FeedbackForm()
50        else:
51            form = FeedbackForm()
52   
53    objects = Feedback.objects.all().order_by(order_by)
54   
55    return {'objects': objects,
56            'form': form}
Note: See TracBrowser for help on using the browser.