thread.html 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. {% extends "sora/layout.html" %}
  2. {% load i18n %}
  3. {% load url from future %}
  4. {% import "sora/editor.html" as editor with context %}
  5. {% import "sora/macros.html" as macros with context %}
  6. {% block title %}{{ macros.page_title(title=thread.name,parent=forum.name,page=pagination['page']) }}{% endblock %}
  7. {% block breadcrumb %}{{ super() }} <span class="divider">/</span></li>
  8. {% for parent in parents %}
  9. <li class="first"><a href="{{ parent.type|url(forum=forum.pk, slug=forum.slug) }}">{{ parent.name }}</a> <span class="divider">/</span></li>
  10. {% endfor %}
  11. <li class="active">{{ thread.name }}
  12. {%- endblock %}
  13. {% block content %}
  14. <div class="page-header">
  15. <ul class="breadcrumb">
  16. {{ self.breadcrumb() }}</li>
  17. </ul>
  18. <h1>{{ thread.name }}</h1>
  19. <ul class="unstyled thread-info">
  20. <li><i class="icon-time"></i> {{ thread.last|reltimesince }}</li>
  21. <li><i class="icon-user"></i> {% if thread.start_poster_id %}<a href="{% url 'user' user=thread.start_poster_id, username=thread.start_poster_slug %}">{{ thread.start_poster_name }}</a>{% else %}{{ thread.start_poster_name }}{% endif %}</li>
  22. <li><i class="icon-comment"></i> {% if thread.replies > 0 -%}
  23. {% trans count=thread.replies, replies=thread.replies|intcomma %}One reply{% pluralize %}{{ replies }} replies{% endtrans %}
  24. {%- else -%}
  25. {% trans %}No replies{% endtrans %}
  26. {%- endif %}</li>
  27. </ul>
  28. </div>
  29. {% if message %}{{ macros.draw_message(message) }}{% endif %}
  30. <div class="list-nav">
  31. {{ pager() }}
  32. {% if user.is_authenticated() %}
  33. <ul class="nav nav-pills pull-right">
  34. <li class="info"><a href="{% url 'thread_new' forum=forum.pk, slug=forum.slug %}"><i class="icon-ok"></i> {% trans %}Watch Thread{% endtrans %}</a></li>{% if acl.threads.can_reply(thread) %}
  35. <li class="primary"><a href="{% url 'thread_new' forum=forum.pk, slug=forum.slug %}"><i class="icon-plus"></i> {% trans %}Reply{% endtrans %}</a></li>{% endif %}
  36. </ul>
  37. {% endif %}
  38. </div>
  39. <div class="posts-list">
  40. {% for post in posts %}
  41. <div id="post-{{ post.pk }}" class="well well-post{% if post.user and post.user.rank and post.user.rank.style %} {{ post.user.rank.style }}{% endif %}">
  42. <div class="post-author">
  43. <img src="{{ post.user.get_avatar() }}" alt="" class="avatar-normal">
  44. <div class="post-bit">
  45. <a href="{% url 'user' user=post.user.pk, username=post.user.username_slug %}" class="lead">{{ post.user.username }}</a>{% if post.user.get_title() %}
  46. <p class="user-title">{{ _(post.user.get_title()) }}</p>{% endif %}
  47. <p class="post-date">{{ post.date|reltimesince|low }}</p>
  48. </div>
  49. </div>
  50. <div class="post-content">
  51. <div class="markdown">
  52. {{ post.post_preparsed|safe }}
  53. </div>
  54. {% if post.user.signature %}
  55. <div class="post-foot">
  56. {# <p class='lead'><a href="{% url 'user' user=post.user.pk, username=post.user.username_slug %}" class="lead">{{ post.user.username }}</a>, {{ post.date|reltimesince|low }}</p> #}
  57. {% if post.user.signature %}
  58. <div class="signature">
  59. <div class="markdown">
  60. {{ post.user.signature_preparsed|safe }}
  61. </div>
  62. </div>
  63. {% endif %}
  64. </div>
  65. {% endif %}
  66. </div>
  67. </div>
  68. {% endfor %}
  69. </div>
  70. <div class="list-nav last">
  71. {{ pager() }}
  72. {% if user.is_authenticated() and acl.threads.can_reply(thread) %}
  73. <ul class="nav nav-pills pull-right">
  74. <li class="primary"><a href="{% url 'thread_new' forum=forum.pk, slug=forum.slug %}"><i class="icon-plus"></i> {% trans %}Reply{% endtrans %}</a></li>
  75. </ul>
  76. {% endif %}
  77. </div>
  78. {% if user.is_authenticated() and acl.threads.can_reply(thread) %}
  79. <div class="quick-reply">
  80. <form action="{% url 'thread_reply' thread=thread.pk, slug=thread.slug %}" method="post">
  81. <input type="hidden" name="{{ csrf_id }}" value="{{ csrf_token }}">
  82. <input type="hidden" name="quick_reply" value="1">
  83. <img src="{{ user.get_avatar(big) }}" alt="{% trans %}Your Avatar{% endtrans %}" class="avatar-big">
  84. <div class="arrow"></div>
  85. {{ editor.editor(quick_reply.post, _('Post Reply')) }}
  86. </form>
  87. </div>
  88. {% endif %}
  89. {% endblock %}
  90. {% macro pager() %}
  91. <ul class="pager pull-left">
  92. {%- if pagination['prev'] > 1 %}<li><a href="{% url 'forum' slug=forum.slug, forum=forum.id %}" class="tooltip-top" title="{% trans %}First Page{% endtrans %}"><i class="icon-chevron-left"></i> {% trans %}First{% endtrans %}</a></li>{% endif -%}
  93. {%- if pagination['prev'] > 0 %}<li><a href="{%- if pagination['prev'] > 1 %}{% url 'forum' slug=forum.slug, forum=forum.id, page=pagination['prev'] %}{% else %}{% url 'forum' slug=forum.slug, forum=forum.id %}{% endif %}" class="tooltip-top" title="{% trans %}Newest Threads{% endtrans %}"><i class="icon-chevron-left"></i></a></li>{% endif -%}
  94. {%- if pagination['next'] > 0 %}<li><a href="{% url 'forum' slug=forum.slug, forum=forum.id, page=pagination['next'] %}" class="tooltip-top" title="{% trans %}Older Threads{% endtrans %}"><i class="icon-chevron-right"></i></a></li>{% endif -%}
  95. <li class="count">
  96. {%- trans current_page=pagination['page'], pages=pagination['total'] -%}
  97. Page {{ current_page }} of {{ pages }}
  98. {%- endtrans -%}
  99. </li>
  100. </ul>
  101. {% endmacro %}