]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/views/meta.py
We update "karma" to "reputation", as in the translation file.
[osqa.git] / forum / views / meta.py
index 105bec7a98274c79adc04c2c5e0f1ab735abcdae..2177301d48b3bf723a254815aef85106a08484d0 100644 (file)
@@ -6,6 +6,8 @@ from django.template import RequestContext, loader
 from django.http import HttpResponseRedirect, HttpResponse, Http404
 from django.views.static import serve
 from forum import settings
 from django.http import HttpResponseRedirect, HttpResponse, Http404
 from django.views.static import serve
 from forum import settings
+from forum.modules import decorate
+from forum.views.decorators import login_required
 from forum.forms import FeedbackForm
 from django.core.urlresolvers import reverse
 from django.utils.translation import ugettext as _
 from forum.forms import FeedbackForm
 from django.core.urlresolvers import reverse
 from django.utils.translation import ugettext as _
@@ -17,6 +19,7 @@ from forum import settings
 from forum.utils.mail import send_template_email
 from django.utils.safestring import mark_safe
 from forum.templatetags.extra_filters import or_preview
 from forum.utils.mail import send_template_email
 from django.utils.safestring import mark_safe
 from forum.templatetags.extra_filters import or_preview
+import decorators
 import re
 
 def favicon(request):
 import re
 
 def favicon(request):
@@ -26,77 +29,81 @@ def custom_css(request):
     return HttpResponse(or_preview(settings.CUSTOM_CSS, request), mimetype="text/css")
 
 def static(request, title, content):
     return HttpResponse(or_preview(settings.CUSTOM_CSS, request), mimetype="text/css")
 
 def static(request, title, content):
-    return render_to_response('static.html', {'content' : content, 'title': title}, context_instance=RequestContext(request))
+    return render_to_response('static.html', {'content' : content, 'title': title},
+                              context_instance=RequestContext(request))
 
 def media(request, skin, path):
 
 def media(request, skin, path):
-    return serve(request, "%s/media/%s" % (skin, path), 
-                 document_root=os.path.join(os.path.dirname(os.path.dirname(__file__)),'skins').replace('\\','/'))
+    return serve(request, "%s/media/%s" % (skin, path),
+                 document_root=os.path.join(os.path.dirname(os.path.dirname(__file__)), 'skins').replace('\\', '/'))
 
 def markdown_help(request):
     return render_to_response('markdown_help.html', context_instance=RequestContext(request))
 
 
 
 def markdown_help(request):
     return render_to_response('markdown_help.html', context_instance=RequestContext(request))
 
 
-def opensearch(request):   
+def opensearch(request):
     return render_to_response('opensearch.html', {'settings' : settings}, context_instance=RequestContext(request))
     return render_to_response('opensearch.html', {'settings' : settings}, context_instance=RequestContext(request))
-    
+
 
 def feedback(request):
     if request.method == "POST":
 
 def feedback(request):
     if request.method == "POST":
-        form = FeedbackForm(request.POST)
+        form = FeedbackForm(request.user, data=request.POST)
         if form.is_valid():
         if form.is_valid():
-            context = {'user': request.user}
-
-            if not request.user.is_authenticated:
-                context['email'] = form.cleaned_data.get('email',None)
-            context['message'] = form.cleaned_data['message']
-            context['name'] = form.cleaned_data.get('name',None)
-            context['ip'] = request.META['REMOTE_ADDR']
+            context = {
+                 'user': request.user,
+                 'email': request.user.is_authenticated() and request.user.email or form.cleaned_data.get('email', None),
+                 'message': form.cleaned_data['message'],
+                 'name': request.user.is_authenticated() and request.user.username or form.cleaned_data.get('name', None),
+                 'ip': request.META['REMOTE_ADDR'],
+            }
 
             recipients = User.objects.filter(is_superuser=True)
             send_template_email(recipients, "notifications/feedback.html", context)
 
             recipients = User.objects.filter(is_superuser=True)
             send_template_email(recipients, "notifications/feedback.html", context)
-            
+
             msg = _('Thanks for the feedback!')
             request.user.message_set.create(message=msg)
             return HttpResponseRedirect(get_next_url(request))
     else:
             msg = _('Thanks for the feedback!')
             request.user.message_set.create(message=msg)
             return HttpResponseRedirect(get_next_url(request))
     else:
-        form = FeedbackForm(initial={'next':get_next_url(request)})
+        form = FeedbackForm(request.user, initial={'next':get_next_url(request)})
 
     return render_to_response('feedback.html', {'form': form}, context_instance=RequestContext(request))
 
     return render_to_response('feedback.html', {'form': form}, context_instance=RequestContext(request))
+
 feedback.CANCEL_MESSAGE=_('We look forward to hearing your feedback! Please, give it next time :)')
 
 def privacy(request):
     return render_to_response('privacy.html', context_instance=RequestContext(request))
 
 feedback.CANCEL_MESSAGE=_('We look forward to hearing your feedback! Please, give it next time :)')
 
 def privacy(request):
     return render_to_response('privacy.html', context_instance=RequestContext(request))
 
+@decorate.withfn(login_required)
 def logout(request):
     return render_to_response('logout.html', {
 def logout(request):
     return render_to_response('logout.html', {
-        'next' : get_next_url(request),
+    'next' : get_next_url(request),
     }, context_instance=RequestContext(request))
 
     }, context_instance=RequestContext(request))
 
+@decorators.render('badges.html', 'badges', _('badges'), weight=300)
 def badges(request):
     badges = [b.ondb for b in sorted(BadgesMeta.by_id.values(), lambda b1, b2: cmp(b1.name, b2.name))]
 def badges(request):
     badges = [b.ondb for b in sorted(BadgesMeta.by_id.values(), lambda b1, b2: cmp(b1.name, b2.name))]
-    
+
     if request.user.is_authenticated():
         my_badges = Award.objects.filter(user=request.user).values('badge_id').distinct()
     else:
         my_badges = []
 
     if request.user.is_authenticated():
         my_badges = Award.objects.filter(user=request.user).values('badge_id').distinct()
     else:
         my_badges = []
 
-    return render_to_response('badges.html', {
+    return {
         'badges' : badges,
         'mybadges' : my_badges,
         'badges' : badges,
         'mybadges' : my_badges,
-    }, context_instance=RequestContext(request))
+    }
 
 def badge(request, id, slug):
     badge = Badge.objects.get(id=id)
     awards = list(Award.objects.filter(badge=badge).order_by('user', 'awarded_at'))
     award_count = len(awards)
 
 def badge(request, id, slug):
     badge = Badge.objects.get(id=id)
     awards = list(Award.objects.filter(badge=badge).order_by('user', 'awarded_at'))
     award_count = len(awards)
-    
+
     awards = sorted([dict(count=len(list(g)), user=k) for k, g in groupby(awards, lambda a: a.user)],
                     lambda c1, c2: c2['count'] - c1['count'])
 
     return render_to_response('badge.html', {
     awards = sorted([dict(count=len(list(g)), user=k) for k, g in groupby(awards, lambda a: a.user)],
                     lambda c1, c2: c2['count'] - c1['count'])
 
     return render_to_response('badge.html', {
-        'award_count': award_count,
-        'awards' : awards,
-        'badge' : badge,
+    'award_count': award_count,
+    'awards' : awards,
+    'badge' : badge,
     }, context_instance=RequestContext(request))
 
 def page(request, path):
     }, context_instance=RequestContext(request))
 
 def page(request, path):
@@ -104,7 +111,7 @@ def page(request, path):
         try:
             page = Page.objects.get(id=settings.STATIC_PAGE_REGISTRY[path])
 
         try:
             page = Page.objects.get(id=settings.STATIC_PAGE_REGISTRY[path])
 
-            if not page.published or request.user.is_superuser:
+            if (not page.published) and (not request.user.is_superuser):
                 raise Http404
         except:
             raise Http404
                 raise Http404
         except:
             raise Http404
@@ -127,7 +134,7 @@ def page(request, path):
             sidebar = mark_safe(sidebar)
 
     else:
             sidebar = mark_safe(sidebar)
 
     else:
-        return HttpResponse(page.body)
+        return HttpResponse(page.body, mimetype=page.extra.get('mimetype', 'text/html'))
 
     render = page.extra.get('render', 'markdown')
 
 
     render = page.extra.get('render', 'markdown')
 
@@ -139,10 +146,10 @@ def page(request, path):
         body = page.body
 
     return render_to_response('page.html', {
         body = page.body
 
     return render_to_response('page.html', {
-        'page' : page,
-        'body' : body,
-        'sidebar': sidebar,
-        'base': base,        
-        }, context_instance=RequestContext(request))
+    'page' : page,
+    'body' : body,
+    'sidebar': sidebar,
+    'base': base,
+    }, context_instance=RequestContext(request))