from django.utils.translation import ugettext as _\r
from django.utils.http import urlquote_plus\r
from django.utils.html import strip_tags\r
+from django.utils.encoding import smart_unicode\r
from django.utils import simplejson\r
from django.core.urlresolvers import reverse, NoReverseMatch\r
from forum.forms import *\r
from forum.utils.html import sanitize_html\r
-from forum.modules import decorate\r
+from forum.modules import decorate, ReturnImediatelyException\r
from datetime import datetime, date\r
from forum.actions import EditProfileAction, FavoriteAction, BonusRepAction, SuspendAction\r
from forum.modules import ui\r
})\r
\r
\r
-@decorators.render('users/online_users.html', 'online_users', _('Online Users'), weight=200)\r
+@decorators.render('users/online_users.html', 'online_users', _('Online Users'), weight=200, tabbed=False)\r
def online_users(request):\r
suser = request.REQUEST.get('q', "")\r
\r
def params(request, id, slug=None):\r
user = get_object_or_404(User, id=id)\r
if private and not (user == request.user or request.user.is_superuser):\r
- return HttpResponseUnauthorized(request)\r
+ raise ReturnImediatelyException(HttpResponseUnauthorized(request))\r
\r
if render_to and (not render_to(user)):\r
- return HttpResponseRedirect(user.get_profile_url())\r
+ raise ReturnImediatelyException(HttpResponseRedirect(user.get_profile_url()))\r
\r
return [request, user], {}\r
\r
decorated = decorate.params.withfn(params)(fn)\r
\r
def result(context, request, user):\r
- rev_page_title = user.username + " - " + tab_description\r
+ rev_page_title = smart_unicode(user.username) + " - " + tab_description\r
\r
context.update({\r
"tab": "users",\r
if tabbed:\r
def url_getter(vu):\r
try:\r
- return reverse(fn.__name__, kwargs={'id': vu.id, 'slug': slugify(vu.username)})\r
+ return reverse(fn.__name__, kwargs={'id': vu.id, 'slug': slugify(smart_unicode(vu.username))})\r
except NoReverseMatch:\r
return reverse(fn.__name__, kwargs={'id': vu.id})\r
\r
up_votes = user.vote_up_count\r
down_votes = user.vote_down_count\r
votes_today = user.get_vote_count_today()\r
- votes_total = int(settings.MAX_VOTES_PER_DAY)\r
+ votes_total = user.can_vote_count_today()\r
\r
user_tags = Tag.objects.filter(Q(nodes__author=user) | Q(nodes__children__author=user)) \\r
.annotate(user_tag_usage_count=Count('name')).order_by('-user_tag_usage_count')\r
return {"view_user" : user, "activities" : activities}\r
\r
\r
-@user_view('users/reputation.html', 'reputation', _('karma history'), _('graph of user karma'))\r
+@user_view('users/reputation.html', 'reputation', _('reputation history'), _('graph of user karma'))\r
def user_reputation(request, user):\r
rep = list(user.reputes.order_by('date'))\r
values = [r.value for r in rep]\r
\r
@user_view('users/subscriptions.html', 'subscriptions', _('subscription'), _('subscriptions'), True, tabbed=False)\r
def user_subscriptions(request, user):\r
- enabled = user.subscription_settings.enable_notifications\r
+ enabled = True\r
\r
tab = request.GET.get('tab', "settings")\r
\r
form.save()\r
message = _('New subscription settings are now saved')\r
\r
- if 'notswitch' in request.POST:\r
- enabled = not enabled\r
-\r
- if enabled:\r
- message = _('Notifications are now enabled')\r
- else:\r
- message = _('Notifications are now disabled')\r
-\r
user.subscription_settings.enable_notifications = enabled\r
user.subscription_settings.save()\r
\r