Foro: buscador de temas y nombre de autor legible
- forum_search: busca temas por título y contenido (foros visibles) - db.get_display_name: nombre visible del autor = parte local del email de la cuenta (en vez de <bnetId>#1), usado en el panel de posts y la lista de temas - buscador en la portada del foro + plantilla search.html - docs/FORO.md actualizado Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -75,6 +75,8 @@ def view_forum(request, forum_id, page=1):
|
||||
total = db.count_topics(forum_id)
|
||||
pag, offset = _paginate(total, page, settings.FORUM_TOPICS_PER_PAGE)
|
||||
topics = db.get_topics(forum_id, offset, settings.FORUM_TOPICS_PER_PAGE)
|
||||
for t in topics:
|
||||
t['display_poster'] = db.get_display_name(t['poster_id']) or t['poster']
|
||||
|
||||
return render(request, 'forum/forum.html', _base_context(request, {
|
||||
'forum': forum,
|
||||
@@ -83,6 +85,19 @@ def view_forum(request, forum_id, page=1):
|
||||
}))
|
||||
|
||||
|
||||
def search(request):
|
||||
query = (request.GET.get('q') or '').strip()
|
||||
results = []
|
||||
if len(query) >= 2:
|
||||
results = db.search_topics(query)
|
||||
for r in results:
|
||||
r['display_poster'] = db.get_display_name(r['poster_id']) or r['poster']
|
||||
return render(request, 'forum/search.html', _base_context(request, {
|
||||
'query': query,
|
||||
'results': results,
|
||||
}))
|
||||
|
||||
|
||||
def view_topic(request, topic_id, page=1):
|
||||
topic = db.get_topic(topic_id, include_hidden=perm.is_moderator(request))
|
||||
if not topic:
|
||||
|
||||
Reference in New Issue
Block a user