mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-22 22:23:23 +00:00
Make a lot of pimp in the Forum
This commit is contained in:
parent
ec307cd5df
commit
d7135e4d27
@ -48,8 +48,8 @@ a {
|
|||||||
|
|
||||||
.ib {
|
.ib {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 2px;
|
padding: 1px;
|
||||||
margin: 2px;
|
margin: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.w_big {
|
.w_big {
|
||||||
@ -57,11 +57,11 @@ a {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.w_medium {
|
.w_medium {
|
||||||
width: 45%;
|
width: 47%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.w_small {
|
.w_small {
|
||||||
width: 20%;
|
width: 23%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*--------------------------------HEADER-------------------------------*/
|
/*--------------------------------HEADER-------------------------------*/
|
||||||
@ -271,11 +271,15 @@ code {
|
|||||||
}
|
}
|
||||||
|
|
||||||
blockquote {
|
blockquote {
|
||||||
margin: 10px;
|
margin: 5px;
|
||||||
padding: 5px;
|
padding: 2px;
|
||||||
border: solid 1px $black-color;
|
border: solid 1px $black-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
blockquote h5:first-child {
|
||||||
|
font-size: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
.edit-bar {
|
.edit-bar {
|
||||||
display: block;
|
display: block;
|
||||||
margin: 4px;
|
margin: 4px;
|
||||||
@ -498,86 +502,132 @@ textarea {
|
|||||||
|
|
||||||
/*------------------------------FORUM----------------------------------*/
|
/*------------------------------FORUM----------------------------------*/
|
||||||
|
|
||||||
.topic a, .forum a, .category a {
|
#forum {
|
||||||
color: $black-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.topic a:hover, .forum a:hover, .category a:hover {
|
|
||||||
color: #424242;
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.topic {
|
|
||||||
border: solid $primary-neutral-color 1px;
|
|
||||||
padding: 2px;
|
|
||||||
margin: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.forum {
|
|
||||||
background: $primary-neutral-light-color;
|
|
||||||
padding: 2px;
|
|
||||||
margin: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.category {
|
|
||||||
background: $secondary-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.message {
|
|
||||||
padding: 2px;
|
|
||||||
margin: 2px;
|
|
||||||
background: $white-color;
|
|
||||||
&:nth-child(odd) {
|
|
||||||
background: $primary-neutral-light-color;
|
|
||||||
}
|
|
||||||
h5 {
|
|
||||||
font-size: 100%;
|
|
||||||
}
|
|
||||||
&.unread {
|
|
||||||
background: #d8e7f3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.msg_author.deleted {
|
|
||||||
background: #ffcfcf;
|
|
||||||
}
|
|
||||||
|
|
||||||
.msg_content {
|
|
||||||
&.deleted {
|
|
||||||
background: #ffefef;
|
|
||||||
}
|
|
||||||
display: inline-block;
|
|
||||||
width: 80%;
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.msg_author {
|
|
||||||
display: inline-block;
|
|
||||||
width: 19%;
|
|
||||||
text-align: center;
|
|
||||||
background: $primary-light-color;
|
|
||||||
img {
|
|
||||||
max-width: 70%;
|
|
||||||
margin: 0px auto;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.msg_meta {
|
|
||||||
font-size: small;
|
|
||||||
list-style-type: none;
|
|
||||||
li {
|
|
||||||
padding: 2px;
|
|
||||||
margin: 2px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.forum_signature {
|
|
||||||
color: #C0C0C0;
|
|
||||||
border-top: 1px solid #C0C0C0;
|
|
||||||
a {
|
a {
|
||||||
|
color: $black-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: #424242;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic {
|
||||||
|
border: solid $primary-neutral-color 1px;
|
||||||
|
padding: 1px;
|
||||||
|
margin: 1px;
|
||||||
|
p {
|
||||||
|
margin: 1px;
|
||||||
|
font-size: smaller;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tools {
|
||||||
|
font-size: x-small;
|
||||||
|
border: none;
|
||||||
|
a {
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: small;
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.last_message date {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.last_message span {
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
overflow:hidden;
|
||||||
|
width: 100%;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forum {
|
||||||
|
background: $primary-neutral-light-color;
|
||||||
|
padding: 1px;
|
||||||
|
margin: 1px;
|
||||||
|
p {
|
||||||
|
margin: 1px;
|
||||||
|
font-size: smaller;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.category {
|
||||||
|
margin-top: 5px;
|
||||||
|
background: $secondary-color;
|
||||||
|
.title {
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.message {
|
||||||
|
padding: 1px;
|
||||||
|
margin: 1px;
|
||||||
|
background: $white-color;
|
||||||
|
&:nth-child(odd) {
|
||||||
|
background: $primary-neutral-light-color;
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
font-size: 100%;
|
||||||
|
}
|
||||||
|
&.unread {
|
||||||
|
background: #d8e7f3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg_author.deleted {
|
||||||
|
background: #ffcfcf;
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg_content {
|
||||||
|
&.deleted {
|
||||||
|
background: #ffefef;
|
||||||
|
}
|
||||||
|
display: inline-block;
|
||||||
|
width: 80%;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg_author {
|
||||||
|
display: inline-block;
|
||||||
|
width: 19%;
|
||||||
|
text-align: center;
|
||||||
|
background: $primary-light-color;
|
||||||
|
img {
|
||||||
|
max-width: 70%;
|
||||||
|
margin: 0px auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg_header {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
|
||||||
|
.msg_meta {
|
||||||
|
font-size: small;
|
||||||
|
list-style-type: none;
|
||||||
|
li {
|
||||||
|
padding: 1px;
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.forum_signature {
|
||||||
color: #C0C0C0;
|
color: #C0C0C0;
|
||||||
&:hover {
|
border-top: 1px solid #C0C0C0;
|
||||||
text-decoration: underline;
|
a {
|
||||||
|
color: #C0C0C0;
|
||||||
|
&:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,13 +6,14 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div>
|
<div>
|
||||||
<a href="{{ url('forum:main') }}">{% trans %}Forum{% endtrans %}</a>
|
<a href="{{ url('forum:main') }}">{% trans %}Forum{% endtrans %}</a>
|
||||||
{% for f in forum.get_parent_list()|reverse %}
|
{% for f in forum.get_parent_list()|reverse %}
|
||||||
> <a href="{{ f.get_absolute_url() }}">{{ f }}</a>
|
> <a href="{{ f.get_absolute_url() }}">{{ f }}</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
> <a href="{{ forum.get_absolute_url() }}">{{ forum }}</a>
|
> <a href="{{ forum.get_absolute_url() }}">{{ forum }}</a>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="forum">
|
||||||
<h3>{{ forum.name }}</h3>
|
<h3>{{ forum.name }}</h3>
|
||||||
<p>
|
<p>
|
||||||
{% if user.is_in_group(settings.SITH_GROUP_FORUM_ADMIN_ID) or user.is_in_group(settings.SITH_GROUP_COM_ADMIN_ID) %}
|
{% if user.is_in_group(settings.SITH_GROUP_FORUM_ADMIN_ID) or user.is_in_group(settings.SITH_GROUP_COM_ADMIN_ID) %}
|
||||||
@ -34,6 +35,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{{ display_forum(forum, user, True) }}
|
||||||
{% for f in forum.children.all() %}
|
{% for f in forum.children.all() %}
|
||||||
{{ display_forum(f, user) }}
|
{{ display_forum(f, user) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@ -58,7 +60,13 @@
|
|||||||
{% for t in topics %}
|
{% for t in topics %}
|
||||||
{{ display_topic(t, user) }}
|
{{ display_topic(t, user) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
<p style="text-align: right; background: #d8e7f3;">
|
||||||
|
{% for p in topics.paginator.page_range %}
|
||||||
|
<span class="ib" style="background: {% if p == topics.number %}white{% endif %}; margin: 0;"><a href="?topic_page={{ p }}">{{ p }}</a></span>
|
||||||
|
{% endfor %}
|
||||||
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,9 +15,17 @@
|
|||||||
<a class="ib" href="{{ url('forum:mark_all_as_read') }}">{% trans %}Mark all as read{% endtrans %}</a>
|
<a class="ib" href="{{ url('forum:mark_all_as_read') }}">{% trans %}Mark all as read{% endtrans %}</a>
|
||||||
<a class="ib" href="{{ url('forum:last_unread') }}">{% trans %}Refresh{% endtrans %}</a>
|
<a class="ib" href="{{ url('forum:last_unread') }}">{% trans %}Refresh{% endtrans %}</a>
|
||||||
</p>
|
</p>
|
||||||
{% for t in forumtopic_list %}
|
{% for t in page_obj.object_list %}
|
||||||
{{ display_topic(t, user, True) }}
|
{{ display_topic(t, user, True) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
<p style="text-align: right; background: #d8e7f3;">
|
||||||
|
{% for p in paginator.page_range %}
|
||||||
|
<span class="ib" style="background: {% if p == paginator.number %}white{% endif %}; margin: 0;">
|
||||||
|
<a href="?page={{ p }}">{{ p }}</a>
|
||||||
|
</span>
|
||||||
|
{% endfor %}
|
||||||
|
</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,37 +1,43 @@
|
|||||||
{% from 'core/macros.jinja' import user_profile_link %}
|
{% from 'core/macros.jinja' import user_profile_link %}
|
||||||
|
|
||||||
{% macro display_forum(forum, user) %}
|
{% macro display_forum(forum, user, is_root=False) %}
|
||||||
<div class="forum {% if forum.is_category %}category{% endif %}">
|
<div class="forum {% if is_root %}category{% endif %}">
|
||||||
<div class="ib w_big">
|
<div class="ib w_big">
|
||||||
{% if not forum.is_category %}
|
{% if not is_root %}
|
||||||
<a class="ib w_big" href="{{ url('forum:view_forum', forum_id=forum.id) }}">
|
<a class="ib w_big" href="{{ url('forum:view_forum', forum_id=forum.id) }}">
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="ib w_big">
|
<div class="ib w_big">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<h5>{{ forum.name }}</h5>
|
<div class="title">{{ forum.name }}</div>
|
||||||
<p>{{ forum.description }}</p>
|
<p>{{ forum.description }}</p>
|
||||||
{% if not forum.is_category %}
|
{% if not is_root %}
|
||||||
</a>
|
</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if user.is_owner(forum) %}
|
{% if user.is_owner(forum) %}
|
||||||
|
<div class="tools">
|
||||||
<a class="ib" href="{{ url('forum:edit_forum', forum_id=forum.id) }}">{% trans %}Edit{% endtrans %}</a>
|
<a class="ib" href="{{ url('forum:edit_forum', forum_id=forum.id) }}">{% trans %}Edit{% endtrans %}</a>
|
||||||
<a class="ib" href="{{ url('forum:delete_forum', forum_id=forum.id) }}">{% trans %}Delete{% endtrans %}</a>
|
<a class="ib" href="{{ url('forum:delete_forum', forum_id=forum.id) }}">{% trans %}Delete{% endtrans %}</a>
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% if not forum.is_category %}
|
{% if not is_root %}
|
||||||
<div class="ib w_small">
|
<div class="ib w_small">
|
||||||
<div class="ib w_medium">
|
<p class="ib w_medium">
|
||||||
{{ forum.topic_number }}
|
{{ forum.topic_number }}
|
||||||
</div>
|
</p>
|
||||||
<div class="ib w_medium" style="font-size: x-small; text-align: center">
|
<div class="ib w_medium last_message" style="font-size: x-small; text-align: center">
|
||||||
{% if forum.last_message %}
|
{% if forum.last_message %}
|
||||||
{{ forum.last_message.author }} <br/>
|
{{ forum.last_message.author }} <br/>
|
||||||
<a href="{{ forum.last_message.get_absolute_url() }}">
|
<a href="{{ forum.last_message.get_absolute_url() }}">
|
||||||
|
<date>
|
||||||
{{ forum.last_message.date|localtime|date(DATETIME_FORMAT) }}
|
{{ forum.last_message.date|localtime|date(DATETIME_FORMAT) }}
|
||||||
{{ forum.last_message.date|localtime|time(DATETIME_FORMAT) }}<br/>
|
{{ forum.last_message.date|localtime|time(DATETIME_FORMAT) }}
|
||||||
|
</date><br>
|
||||||
|
<span>
|
||||||
{{ forum.last_message.topic }}
|
{{ forum.last_message.topic }}
|
||||||
|
</span>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
@ -48,33 +54,33 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
<a class="ib w_big" href="{{ url('forum:view_topic', topic_id=topic.id) }}">
|
<a class="ib w_big" href="{{ url('forum:view_topic', topic_id=topic.id) }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<h5>{{ topic.title }}</h5>
|
<div class="title">{{ topic.title }}</div>
|
||||||
<p>{{ topic.description }}</p>
|
<p>{{ topic.description }}</p>
|
||||||
</a>
|
</a>
|
||||||
{% if user.can_edit(topic) %}
|
{% if user.can_edit(topic) %}
|
||||||
<div class="ib" style="text-align: center;">
|
<div class="ib tools" style="text-align: center;">
|
||||||
<a href="{{ url('forum:edit_topic', topic_id=topic.id) }}">{% trans %}Edit{% endtrans %}</a>
|
<a href="{{ url('forum:edit_topic', topic_id=topic.id) }}">{% trans %}Edit{% endtrans %}</a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="ib w_medium">
|
<div class="ib w_medium last_message">
|
||||||
<div class="ib w_medium">
|
<div class="ib w_medium">
|
||||||
<div class="ib w_medium" style="text-align: center;">
|
<p class="ib w_medium" style="text-align: center;">
|
||||||
{{ user_profile_link(topic.author) }}
|
{{ user_profile_link(topic.author) }}
|
||||||
</div>
|
</p>
|
||||||
<div class="ib w_medium" style="text-align: center;">
|
<p class="ib w_medium" style="text-align: center;">
|
||||||
{{ topic.messages.count() }}
|
{{ topic.messages.count() }}
|
||||||
</div>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="ib w_medium" style="text-align: center;">
|
<p class="ib w_medium" style="text-align: center;">
|
||||||
{% set last_msg = topic.last_message %}
|
{% set last_msg = topic.last_message %}
|
||||||
{% if last_msg %}
|
{% if last_msg %}
|
||||||
{{ user_profile_link(last_msg.author) }} <br/>
|
{{ user_profile_link(last_msg.author) }} <br/>
|
||||||
<a href="{{ last_msg.get_absolute_url() }}">
|
<a href="{{ last_msg.get_absolute_url() }}">
|
||||||
{{ last_msg.date|date(DATETIME_FORMAT) }} {{ last_msg.date|time(DATETIME_FORMAT) }}
|
<date>{{ last_msg.date|date(DATETIME_FORMAT) }} {{ last_msg.date|time(DATETIME_FORMAT) }}</date>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
@ -92,26 +98,24 @@
|
|||||||
<strong><a href="{{ m.author.get_absolute_url() }}">{{ m.author.get_short_name() }}</a></strong>
|
<strong><a href="{{ m.author.get_absolute_url() }}">{{ m.author.get_short_name() }}</a></strong>
|
||||||
</div>
|
</div>
|
||||||
<div class="msg_content {% if m.deleted %}deleted{% endif %}" {% if m.id == first_unread_message_id %}id="first_unread"{% endif %}>
|
<div class="msg_content {% if m.deleted %}deleted{% endif %}" {% if m.id == first_unread_message_id %}id="first_unread"{% endif %}>
|
||||||
<div style="display: inline-block; width: 74%;">
|
<div class="msg_header">
|
||||||
{% if m.title %}
|
<div class="ib w_big title">{{ m.title }}</div>
|
||||||
<h5>{{ m.title }}</h5>
|
<div class="ib w_small">
|
||||||
{% endif %}
|
<span><a href="{{ url('forum:new_message', topic_id=m.topic.id) }}?quote_id={{ m.id }}">
|
||||||
</div>
|
{% trans %}Reply as quote{% endtrans %}</a></span>
|
||||||
<div style="display: inline-block; width: 25%;">
|
{% if user.can_edit(m) %}
|
||||||
<span><a href="{{ url('forum:new_message', topic_id=m.topic.id) }}?quote_id={{ m.id }}">
|
<span> <a href="{{ url('forum:edit_message', message_id=m.id) }}">{% trans %}Edit{% endtrans %}</a></span>
|
||||||
{% trans %}Reply as quote{% endtrans %}</a></span>
|
{% endif %}
|
||||||
{% if user.can_edit(m) %}
|
{% if m.can_be_moderated_by(user) %}
|
||||||
<span> <a href="{{ url('forum:edit_message', message_id=m.id) }}">{% trans %}Edit{% endtrans %}</a></span>
|
{% if m.deleted %}
|
||||||
{% endif %}
|
<span> <a href="{{ url('forum:undelete_message', message_id=m.id) }}">{% trans %}Undelete{% endtrans %}</a></span>
|
||||||
{% if m.can_be_moderated_by(user) %}
|
{% else %}
|
||||||
{% if m.deleted %}
|
<span> <a href="{{ url('forum:delete_message', message_id=m.id) }}">{% trans %}Delete{% endtrans %}</a></span>
|
||||||
<span> <a href="{{ url('forum:undelete_message', message_id=m.id) }}">{% trans %}Undelete{% endtrans %}</a></span>
|
{% endif %}
|
||||||
{% else %}
|
{% endif %}
|
||||||
<span> <a href="{{ url('forum:delete_message', message_id=m.id) }}">{% trans %}Delete{% endtrans %}</a></span>
|
<br/>
|
||||||
{% endif %}
|
<span>{{ m.date|localtime|date(DATETIME_FORMAT) }} {{ m.date|localtime|time(DATETIME_FORMAT) }}</span>
|
||||||
{% endif %}
|
</div>
|
||||||
<br/>
|
|
||||||
<span>{{ m.date|localtime|date(DATETIME_FORMAT) }} {{ m.date|localtime|time(DATETIME_FORMAT) }}</span>
|
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<div>
|
<div>
|
||||||
|
@ -7,9 +7,10 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<p>
|
<p>
|
||||||
<a href="{{ url('forum:main') }}">{% trans %}Forum{% endtrans %}</a> >
|
<a href="{{ url('forum:main') }}">{% trans %}Forum{% endtrans %}</a> >
|
||||||
</p>
|
</p>
|
||||||
|
<div id="forum">
|
||||||
<h3>{% trans %}Forum{% endtrans %}</h3>
|
<h3>{% trans %}Forum{% endtrans %}</h3>
|
||||||
<p>
|
<p>
|
||||||
<a class="ib" href="{{ url('forum:last_unread') }}">{% trans %}View last unread messages{% endtrans %}</a>
|
<a class="ib" href="{{ url('forum:last_unread') }}">{% trans %}View last unread messages{% endtrans %}</a>
|
||||||
@ -19,14 +20,28 @@
|
|||||||
<a href="{{ url('forum:new_forum') }}">{% trans %}New forum{% endtrans %}</a>
|
<a href="{{ url('forum:new_forum') }}">{% trans %}New forum{% endtrans %}</a>
|
||||||
</p>
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<div>
|
||||||
|
<div class="ib w_big">
|
||||||
|
{% trans %}Title{% endtrans %}
|
||||||
|
</div>
|
||||||
|
<div class="ib w_small">
|
||||||
|
<div class="ib w_medium">
|
||||||
|
{% trans %}Topics{% endtrans %}
|
||||||
|
</div>
|
||||||
|
<div class="ib w_small">
|
||||||
|
{% trans %}Last message{% endtrans %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{% for f in forum_list %}
|
{% for f in forum_list %}
|
||||||
<div style="padding: 4px; margin: 4px">
|
<div>
|
||||||
{{ display_forum(f, user) }}
|
{{ display_forum(f, user, True) }}
|
||||||
{% for c in f.children.all() %}
|
{% for c in f.children.all() %}
|
||||||
{{ display_forum(c, user) }}
|
{{ display_forum(c, user) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
> <a href="{{ topic.get_absolute_url() }}">{{ topic }}</a>
|
> <a href="{{ topic.get_absolute_url() }}">{{ topic }}</a>
|
||||||
</p>
|
</p>
|
||||||
<h3>{{ topic.title }}</h3>
|
<h3>{{ topic.title }}</h3>
|
||||||
|
<div id="forum">
|
||||||
<p>{{ topic.description }}</p>
|
<p>{{ topic.description }}</p>
|
||||||
<p><a href="{{ url('forum:new_message', topic_id=topic.id) }}">{% trans %}Reply{% endtrans %}</a></p>
|
<p><a href="{{ url('forum:new_message', topic_id=topic.id) }}">{% trans %}Reply{% endtrans %}</a></p>
|
||||||
|
|
||||||
@ -62,6 +63,7 @@
|
|||||||
<span class="ib" style="background: {% if p == msgs.number %}white{% endif %}; margin: 0;"><a href="?page={{ p }}">{{ p }}</a></span>
|
<span class="ib" style="background: {% if p == msgs.number %}white{% endif %}; margin: 0;"><a href="?page={{ p }}">{{ p }}</a></span>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</p>
|
</p>
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
@ -59,6 +59,7 @@ class ForumMarkAllAsRead(RedirectView):
|
|||||||
class ForumLastUnread(ListView):
|
class ForumLastUnread(ListView):
|
||||||
model = ForumTopic
|
model = ForumTopic
|
||||||
template_name = "forum/last_unread.jinja"
|
template_name = "forum/last_unread.jinja"
|
||||||
|
paginate_by = settings.SITH_FORUM_PAGE_LENGTH / 2
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
l = ForumMessage.objects.exclude(readers=self.request.user).filter(
|
l = ForumMessage.objects.exclude(readers=self.request.user).filter(
|
||||||
@ -117,7 +118,16 @@ class ForumDetailView(CanViewMixin, DetailView):
|
|||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
kwargs = super(ForumDetailView, self).get_context_data(**kwargs)
|
kwargs = super(ForumDetailView, self).get_context_data(**kwargs)
|
||||||
kwargs['topics'] = self.object.topics.annotate(models.Max('messages__date')).order_by('-messages__date__max')
|
qs = self.object.topics.order_by('-_last_message__date').select_related('_last_message')
|
||||||
|
paginator = Paginator(qs,
|
||||||
|
settings.SITH_FORUM_PAGE_LENGTH)
|
||||||
|
page = self.request.GET.get('topic_page')
|
||||||
|
try:
|
||||||
|
kwargs["topics"] = paginator.page(page)
|
||||||
|
except PageNotAnInteger:
|
||||||
|
kwargs["topics"] = paginator.page(1)
|
||||||
|
except EmptyPage:
|
||||||
|
kwargs["topics"] = paginator.page(paginator.num_pages)
|
||||||
return kwargs
|
return kwargs
|
||||||
|
|
||||||
class TopicForm(forms.ModelForm):
|
class TopicForm(forms.ModelForm):
|
||||||
@ -164,7 +174,7 @@ class ForumTopicDetailView(CanViewMixin, DetailView):
|
|||||||
kwargs['first_unread_message_id'] = msg.id
|
kwargs['first_unread_message_id'] = msg.id
|
||||||
except:
|
except:
|
||||||
kwargs['first_unread_message_id'] = float("inf")
|
kwargs['first_unread_message_id'] = float("inf")
|
||||||
paginator = Paginator(self.object.messages.select_related('author__avatar_pict').all(),
|
paginator = Paginator(self.object.messages.select_related('author__avatar_pict').order_by('date'),
|
||||||
settings.SITH_FORUM_PAGE_LENGTH)
|
settings.SITH_FORUM_PAGE_LENGTH)
|
||||||
page = self.request.GET.get('page')
|
page = self.request.GET.get('page')
|
||||||
try:
|
try:
|
||||||
|
Loading…
Reference in New Issue
Block a user