summaryrefslogtreecommitdiffstats
path: root/hyperkitty/views
diff options
context:
space:
mode:
authorAurélien Bompard <aurelien@bompard.org>2013-11-30 18:53:43 +0100
committerAurélien Bompard <aurelien@bompard.org>2013-11-30 18:53:43 +0100
commit552582410df622d58da330ea712e83f1fa775c9b (patch)
treeb75c51ae356609eae1da65c531b0edc0baf5befd /hyperkitty/views
parentde5710edeb34e9433f76a1ccd6f65ab144f373d2 (diff)
downloadhyperkitty-552582410df622d58da330ea712e83f1fa775c9b.tar.gz
hyperkitty-552582410df622d58da330ea712e83f1fa775c9b.tar.xz
hyperkitty-552582410df622d58da330ea712e83f1fa775c9b.zip
Don't use the search engine to display a user's posts
Diffstat (limited to 'hyperkitty/views')
-rw-r--r--hyperkitty/views/accounts.py55
-rw-r--r--hyperkitty/views/search.py3
2 files changed, 54 insertions, 4 deletions
diff --git a/hyperkitty/views/accounts.py b/hyperkitty/views/accounts.py
index 9a6b9ff..aa95ece 100644
--- a/hyperkitty/views/accounts.py
+++ b/hyperkitty/views/accounts.py
@@ -42,7 +42,8 @@ from hyperkitty.models import UserProfile, Rating, Favorite, LastView
from hyperkitty.views.forms import RegistrationForm, UserProfileForm
from hyperkitty.lib import get_store
from hyperkitty.lib.view_helpers import FLASH_MESSAGES, paginate
-from hyperkitty.lib.mailman import get_subscriptions
+from hyperkitty.lib.mailman import get_subscriptions, is_mlist_authorized
+from hyperkitty.lib.voting import set_message_votes
logger = logging.getLogger(__name__)
@@ -294,3 +295,55 @@ def public_profile(request, user_id):
"likestatus": likestatus,
}
return render(request, "user_public_profile.html", context)
+
+
+def posts(request, user_id):
+ store = get_store(request)
+ mlist_fqdn = request.GET.get("list")
+ sort_mode = request.GET.get('sort')
+ if mlist_fqdn is None:
+ mlist = None
+ return HttpResponse("Not implemented yet", status=500)
+ else:
+ mlist = store.get_list(mlist_fqdn)
+ if mlist is None:
+ raise Http404("No archived mailing-list by that name.")
+ if not is_mlist_authorized(request, mlist):
+ return render(request, "errors/private.html", {
+ "mlist": mlist,
+ }, status=403)
+
+ # Get the user's full name
+ try:
+ client = mailmanclient.Client('%s/3.0' %
+ settings.MAILMAN_REST_SERVER,
+ settings.MAILMAN_API_USER,
+ settings.MAILMAN_API_PASS)
+ mm_user = client.get_user(user_id)
+ except HTTPError:
+ raise Http404("No user with this ID: %s" % user_id)
+ except mailmanclient.MailmanConnectionError:
+ fullname = None
+ else:
+ fullname = mm_user.display_name
+ if not fullname:
+ fullname = store.get_sender_name(user_id)
+
+ # Get the messages and paginate them
+ messages = store.get_messages_by_user_id(user_id, mlist_fqdn)
+ try:
+ page_num = int(request.GET.get('page', "1"))
+ except ValueError:
+ page_num = 1
+ messages = paginate(messages, page_num)
+
+ for message in messages:
+ set_message_votes(message, request.user)
+
+ context = {
+ 'user_id': user_id,
+ 'mlist' : mlist,
+ 'messages': messages,
+ 'fullname': fullname,
+ }
+ return render(request, "user_posts.html", context)
diff --git a/hyperkitty/views/search.py b/hyperkitty/views/search.py
index 4966f03..300a047 100644
--- a/hyperkitty/views/search.py
+++ b/hyperkitty/views/search.py
@@ -134,6 +134,3 @@ def search(request, page=1):
'sort_mode': sort_mode,
}
return render(request, "search_results.html", context)
-
-
-