Merge pull request #53 from zhaospei/master
Change pre-expand-blog style
This commit is contained in:
commit
b04370f7ce
8 changed files with 520 additions and 493 deletions
File diff suppressed because it is too large
Load diff
|
@ -402,6 +402,9 @@ msgstr ""
|
||||||
msgid "monotonic-queue"
|
msgid "monotonic-queue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "mst"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "multiplicative"
|
msgid "multiplicative"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -555,6 +558,9 @@ msgstr ""
|
||||||
msgid "tortoise-hare"
|
msgid "tortoise-hare"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Training"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "treap/splay"
|
msgid "treap/splay"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -222,20 +222,26 @@
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pre-expand-blog::before {
|
.show-more {
|
||||||
|
color: black;
|
||||||
|
font-style: italic;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 700;
|
||||||
|
padding: 0px 12px;
|
||||||
|
margin-top: 5px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 1;
|
inset: 50% 0px 60px;
|
||||||
top: 0;
|
background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 1%, #f3f3f3 95%, #f3f3f3 100%);
|
||||||
left: 0;
|
display: flex;
|
||||||
width: 100%;
|
-webkit-box-pack: end;
|
||||||
height: 100%;
|
justify-content: flex-end;
|
||||||
content: "";
|
align-items: flex-end;
|
||||||
background-image: -webkit-linear-gradient(bottom, gray, lightgray 3%, transparent 8%, transparent 100%);
|
cursor: pointer;
|
||||||
border-radius: 8px;
|
padding: 16px 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pre-expand-blog:hover {
|
.actionbar-box {
|
||||||
background-color: #f3f3f3;
|
margin: 8px 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.post-full {
|
.post-full {
|
||||||
|
|
|
@ -1938,16 +1938,11 @@ noscript #noscript {
|
||||||
border-bottom-color: rgb(140, 130, 115);
|
border-bottom-color: rgb(140, 130, 115);
|
||||||
color: rgb(232, 230, 227);
|
color: rgb(232, 230, 227);
|
||||||
}
|
}
|
||||||
.pre-expand-blog::before {
|
.show-more {
|
||||||
background-image: -webkit-linear-gradient(bottom,
|
color: white;
|
||||||
rgb(96, 104, 108),
|
background: linear-gradient(rgba(24, 26, 27, 0) 1%, rgb(31, 33, 35) 95%, rgb(31, 33, 35) 100%);
|
||||||
rgb(49, 53, 55) 3%,
|
|
||||||
rgba(0, 0, 0, 0) 8%,
|
|
||||||
rgba(0, 0, 0, 0) 100%);
|
|
||||||
}
|
|
||||||
.pre-expand-blog:hover {
|
|
||||||
background-color: rgb(31, 33, 35);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 800px) {
|
@media (min-width: 800px) {
|
||||||
.blog-box {
|
.blog-box {
|
||||||
border-left-color: rgb(60, 65, 68);
|
border-left-color: rgb(60, 65, 68);
|
||||||
|
|
|
@ -1,51 +1,54 @@
|
||||||
{% set logged_in = request.user.is_authenticated %}
|
{% set logged_in = request.user.is_authenticated %}
|
||||||
{% set profile = request.profile if logged_in else None %}
|
{% set profile = request.profile if logged_in else None %}
|
||||||
{% if logged_in %}
|
{% if logged_in %}
|
||||||
{% if include_hr %}<hr>{% endif %}
|
{% if include_hr %}
|
||||||
<div class="page-vote actionbar">
|
<hr>{% endif %}
|
||||||
<span class="actionbar-block" style="justify-content: flex-start;">
|
<div class="page-vote actionbar">
|
||||||
<span id="like-button-{{pagevote.id}}"
|
<span class="actionbar-block" style="justify-content: flex-start;">
|
||||||
class="like-button actionbar-button {% if pagevote.vote_score(request.profile) == 1 %}voted{% endif %}"
|
<span id="like-button-{{pagevote.id}}"
|
||||||
onclick="javascript:pagevote_upvote({{ pagevote.id }})"
|
class="like-button actionbar-button {% if pagevote.vote_score(request.profile) == 1 %}voted{% endif %}"
|
||||||
>
|
onclick="javascript:pagevote_upvote({{ pagevote.id }})">
|
||||||
<span class="pagevote-score" id="pagevote-score-{{pagevote.id}}">{{ pagevote.score }}</span>
|
<span class="pagevote-score" id="pagevote-score-{{pagevote.id}}">{{ pagevote.score }}</span>
|
||||||
<i class="fa fa-thumbs-o-up" style="font-size: large;"></i>
|
<i class="fa fa-thumbs-o-up" style="font-size: large;"></i>
|
||||||
<span class="actionbar-text">{{_("Like")}}</span>
|
<span class="actionbar-text">{{_("Like")}}</span>
|
||||||
</span>
|
|
||||||
<span id="dislike-button-{{pagevote.id}}" class="dislike-button actionbar-button {% if pagevote.vote_score(request.profile) == -1 %}voted{% endif %}" onclick="javascript:pagevote_downvote({{ pagevote.id }})">
|
|
||||||
<i class="fa fa-thumbs-o-down" style="font-size: large;"></i>
|
|
||||||
</span>
|
|
||||||
</span>
|
</span>
|
||||||
{% if not hide_actionbar_comment %}
|
<span id="dislike-button-{{pagevote.id}}"
|
||||||
<span class="actionbar-block">
|
class="dislike-button actionbar-button {% if pagevote.vote_score(request.profile) == -1 %}voted{% endif %}"
|
||||||
<span class="actionbar-button actionbar-comment">
|
onclick="javascript:pagevote_downvote({{ pagevote.id }})">
|
||||||
<i class="fa fa-comment-o" style="font-size: large;"></i>
|
<i class="fa fa-thumbs-o-down" style="font-size: large;"></i>
|
||||||
<span class="actionbar-text">{{_("Comment")}} {% if comment_list.count() %} ({{comment_list.count()}}) {% endif %}</span>
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
{% endif %}
|
|
||||||
<span class="actionbar-block">
|
|
||||||
<span id="bookmark-button-{{bookmark.id}}"
|
|
||||||
class="bookmark-button actionbar-button {% if bookmark.get_bookmark(request.profile) == True %} bookmarked {% endif %}"
|
|
||||||
onclick="javascript:bookmark({{ bookmark.id }})"
|
|
||||||
>
|
|
||||||
<i class="fa fa-bookmark-o" style="font-size: large;"></i>
|
|
||||||
<span class="actionbar-text">{{_("Bookmark")}}</span>
|
|
||||||
</span>
|
|
||||||
</span>
|
</span>
|
||||||
<span class="actionbar-block" >
|
</span>
|
||||||
<span class="actionbar-button actionbar-share" style="position: relative" {{"share-url=" + share_url if share_url else ""}}>
|
{% if not hide_actionbar_comment %}
|
||||||
<i class="fa fa-share" style="font-size: large;"></i>
|
<span class="actionbar-block">
|
||||||
<span class="actionbar-text">{{_("Share")}}</span>
|
<span class="actionbar-button actionbar-comment">
|
||||||
</span>
|
<i class="fa fa-comment-o" style="font-size: large;"></i>
|
||||||
|
<span class="actionbar-text">{{_("Comment")}} {% if comment_list.count() %} ({{comment_list.count()}}) {% endif
|
||||||
|
%}</span>
|
||||||
</span>
|
</span>
|
||||||
{% if actionbar_report_url %}
|
</span>
|
||||||
<span class="actionbar-block">
|
{% endif %}
|
||||||
<a class="actionbar-button black" href="{{actionbar_report_url}}">
|
<span class="actionbar-block">
|
||||||
<i class="fa fa-flag-o" style="font-size: large;"></i>
|
<span id="bookmark-button-{{bookmark.id}}"
|
||||||
<span class="actionbar-text">{{_("Report")}}</span>
|
class="bookmark-button actionbar-button {% if bookmark.get_bookmark(request.profile) == True %} bookmarked {% endif %}"
|
||||||
</a>
|
onclick="javascript:bookmark({{ bookmark.id }})">
|
||||||
</span>
|
<i class="fa fa-bookmark-o" style="font-size: large;"></i>
|
||||||
{% endif %}
|
<span class="actionbar-text">{{_("Bookmark")}}</span>
|
||||||
</div>
|
</span>
|
||||||
|
</span>
|
||||||
|
<span class="actionbar-block" style="justify-content: flex-end;">
|
||||||
|
<span class="actionbar-button actionbar-share" style="position: relative"
|
||||||
|
{{"share-url=" + share_url if share_url else ""}}>
|
||||||
|
<i class=" fa fa-share" style="font-size: large;"></i>
|
||||||
|
<span class="actionbar-text">{{_("Share")}}</span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
{% if actionbar_report_url %}
|
||||||
|
<span class="actionbar-block">
|
||||||
|
<a class="actionbar-button black" href="{{actionbar_report_url}}">
|
||||||
|
<i class="fa fa-flag-o" style="font-size: large;"></i>
|
||||||
|
<span class="actionbar-text">{{_("Report")}}</span>
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
|
@ -2,26 +2,26 @@
|
||||||
<div style="margin-bottom: 0.5em">
|
<div style="margin-bottom: 0.5em">
|
||||||
<span class="time">
|
<span class="time">
|
||||||
{% with authors=post.authors.all() %}
|
{% with authors=post.authors.all() %}
|
||||||
{%- if authors -%}
|
{%- if authors -%}
|
||||||
<img src="{{gravatar(authors[0])}}" style="width: 1.5em; border-radius: 50%; margin-bottom: -0.3em">
|
<img src="{{gravatar(authors[0])}}" style="width: 1.5em; border-radius: 50%; margin-bottom: -0.3em">
|
||||||
<span class="post-authors">{{ link_users(authors) }}</span>
|
<span class="post-authors">{{ link_users(authors) }}</span>
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
•
|
•
|
||||||
{{ relative_time(post.publish_on, abs=_('on {time}'), rel=_('{time}')) -}}
|
{{ relative_time(post.publish_on, abs=_('on {time}'), rel=_('{time}')) -}}
|
||||||
{%- if post.sticky %} •
|
{%- if post.sticky %} •
|
||||||
<i title="Sticky" class="fa fa-star fa-fw"></i>{% endif -%}
|
<i title="Sticky" class="fa fa-star fa-fw"></i>{% endif -%}
|
||||||
{% if post.is_organization_private and show_organization_private_icon %}
|
{% if post.is_organization_private and show_organization_private_icon %}
|
||||||
•
|
•
|
||||||
<span>
|
<span>
|
||||||
{% for org in post.organizations.all() %}
|
{% for org in post.organizations.all() %}
|
||||||
<span class="organization-tag" style="display: inherit;">
|
<span class="organization-tag" style="display: inherit;">
|
||||||
<a href="{{ org.get_absolute_url() }}">
|
<a href="{{ org.get_absolute_url() }}">
|
||||||
<i class="fa fa-lock"></i> {{ org.name }}
|
<i class="fa fa-lock"></i> {{ org.name }}
|
||||||
</a>
|
</a>
|
||||||
</span>
|
|
||||||
{% endfor %}
|
|
||||||
</span>
|
</span>
|
||||||
|
{% endfor %}
|
||||||
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
<span style="float: right">
|
<span style="float: right">
|
||||||
|
@ -39,9 +39,12 @@
|
||||||
<div class="blog-description">
|
<div class="blog-description">
|
||||||
<div class="summary content-description">
|
<div class="summary content-description">
|
||||||
{% cache 86400 'post_summary' post.id %}
|
{% cache 86400 'post_summary' post.id %}
|
||||||
{{ post.summary|default(post.content, true)|markdown(lazy_load=True)|reference|str|safe }}
|
{{ post.summary|default(post.content, true)|markdown(lazy_load=True)|reference|str|safe }}
|
||||||
{% endcache %}
|
{% endcache %}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="show-more"> {{_("...More")}} </div>
|
||||||
|
<div class="actionbar-box">
|
||||||
{% set pagevote = post.pagevote %}
|
{% set pagevote = post.pagevote %}
|
||||||
{% set bookmark = post.bookmark %}
|
{% set bookmark = post.bookmark %}
|
||||||
{% set hide_actionbar_comment = True %}
|
{% set hide_actionbar_comment = True %}
|
||||||
|
|
|
@ -1,141 +1,150 @@
|
||||||
{% extends "problem/list-base.html" %}
|
{% extends "problem/list-base.html" %}
|
||||||
{% block left_sidebar %}
|
{% block left_sidebar %}
|
||||||
{% include "problem/left-sidebar.html" %}
|
{% include "problem/left-sidebar.html" %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block middle_content %}
|
{% block middle_content %}
|
||||||
<div class="problem-feed-option">
|
<div class="problem-feed-option">
|
||||||
<a href="{{url('problem_feed')}}" class="button small {{'btn-midnightblue' if feed_type=='for_you' else 'btn-gray'}}">
|
<a href="{{url('problem_feed')}}"
|
||||||
{{_('FOR YOU')}}
|
class="button small {{'btn-midnightblue' if feed_type=='for_you' else 'btn-gray'}}">
|
||||||
|
{{_('FOR YOU')}}
|
||||||
|
</a>
|
||||||
|
<a href="{{url('problem_feed_new')}}" class="button small {{'btn-midnightblue' if feed_type=='new' else 'btn-gray'}}">
|
||||||
|
{{_('NEW')}}
|
||||||
|
</a>
|
||||||
|
{% if request.user.has_perm('judge.suggest_problem_changes') %}
|
||||||
|
<a href="{{url('problem_feed_volunteer')}}"
|
||||||
|
class="button small {{'btn-midnightblue' if feed_type=='volunteer' else 'btn-gray'}}">
|
||||||
|
{{_('VOLUNTEER')}}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
{% if request.user.has_perm('judge.suggest_problem_changes') and feed_type == 'volunteer' %}
|
||||||
|
<ul style="margin-bottom: 1em; margin-left: auto">
|
||||||
|
<li><a href="{{url('admin:judge_volunteerproblemvote_changelist')}}">{{_('View your votes')}}</a></li>
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
{% for problem in problems %}
|
||||||
|
<div class="blog-box">
|
||||||
|
<h3 class="problem-feed-name">
|
||||||
|
<a href="{{ url('problem_detail', problem.code) }}">
|
||||||
|
{{ problem.i18n_name }}
|
||||||
</a>
|
</a>
|
||||||
<a href="{{url('problem_feed_new')}}" class="button small {{'btn-midnightblue' if feed_type=='new' else 'btn-gray'}}">
|
{% if problem.id in completed_problem_ids %}
|
||||||
{{_('NEW')}}
|
<i class="solved-problem-color fa fa-check-circle"></i>
|
||||||
</a>
|
{% elif problem.id in attempted_problems %}
|
||||||
{% if request.user.has_perm('judge.suggest_problem_changes') %}
|
<i class="attempted-problem-color fa fa-minus-circle"></i>
|
||||||
<a href="{{url('problem_feed_volunteer')}}" class="button small {{'btn-midnightblue' if feed_type=='volunteer' else 'btn-gray'}}">
|
{% else %}
|
||||||
{{_('VOLUNTEER')}}
|
<i class="unsolved-problem-color fa fa-minus-circle"></i>
|
||||||
</a>
|
{% endif %}
|
||||||
|
</h3>
|
||||||
|
{% with authors=problem.authors.all() %}
|
||||||
|
{% if authors %}
|
||||||
|
<div class="problem-feed-info-entry">
|
||||||
|
<i class="fa fa-pencil-square-o fa-fw"></i>
|
||||||
|
<span class="pi-value">{{ link_users(authors) }}</span>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endwith %}
|
||||||
|
{% if show_types %}
|
||||||
|
<div class="problem-feed-types">
|
||||||
|
<i class="fa fa-tag"></i>
|
||||||
|
{% for type in problem.types_list %}
|
||||||
|
<span class="type-tag">{{ type }}</span>{% if not loop.last %}, {% endif %}
|
||||||
|
{% endfor %}, *{{problem.points | int}}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<div class="blog-description">
|
||||||
|
<div class='content-description'>
|
||||||
|
{% cache 86400 'problem_html' problem.id MATH_ENGINE LANGUAGE_CODE %}
|
||||||
|
{{ problem.description|markdown(lazy_load=True)|reference|str|safe }}
|
||||||
|
{% endcache %}
|
||||||
|
{% if problem.pdf_description %}
|
||||||
|
<embed src="{{url('problem_pdf_description', problem.code)}}" width="100%" height="500" type="application/pdf"
|
||||||
|
style="margin-top: 0.5em">
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
{% if feed_type=='volunteer' and request.user.has_perm('judge.suggest_problem_changes') %}
|
||||||
|
<br>
|
||||||
|
<a href="#" class="view-statement-src">{{ _('View source') }}</a>
|
||||||
|
<pre class="statement-src" style="display: none">{{ problem.description|str }}</pre>
|
||||||
|
<hr>
|
||||||
|
<center>
|
||||||
|
<h3>{{_('Volunteer form')}}</h3>
|
||||||
|
</center>
|
||||||
|
<br>
|
||||||
|
<button class="edit-btn" id="edit-{{problem.id}}" pid="{{problem.id}}" style="float: right">{{_('Edit')}}</button>
|
||||||
|
<form class="volunteer-form" id="form-{{problem.id}}" pid="{{problem.id}}" style="display: none;" method="POST">
|
||||||
|
<input type="submit" class="volunteer-submit-btn" id="submit-{{problem.id}}" pid="{{problem.id}}"
|
||||||
|
pcode="{{problem.code}}" style="float: right" value="{{_('Submit')}}">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
{{_('Value')}}
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td width="30%">
|
||||||
|
<label for="knowledge_point-{{problem.id}}"><i>{{ _('Knowledge point') }}</i></label>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input id="knowledge_point-{{problem.id}}" type="number" class="point-input" required>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="30%">
|
||||||
|
<label for="thinking_point-{{problem.id}}"><i>{{ _('Thinking point') }}</i></label>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input id="thinking_point-{{problem.id}}" type="number" class="point-input" required>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="30%">
|
||||||
|
<label for="types"><i>{{ _('Problem types') }}</i></label>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<select id="volunteer-types-{{problem.id}}" name="types" multiple>
|
||||||
|
{% for type in problem_types %}
|
||||||
|
<option value="{{ type.id }}" {% if type in problem.types.all() %} selected{% endif %}>
|
||||||
|
{{ type.full_name }}
|
||||||
|
</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="30%">
|
||||||
|
<label for="feedback"><i>{{ _('Feedback') }}</i></label>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<textarea id="feedback-{{problem.id}}" rows="2" style="width: 100%"
|
||||||
|
placeholder="{{_('Any additional note here')}}"></textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
<center id="thank-{{problem.id}}" style="display: none; margin-top: 3em"></center>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% if request.user.has_perm('judge.suggest_problem_changes') and feed_type == 'volunteer' %}
|
<div class="show-more"> {{_("...More")}} </div>
|
||||||
<ul style="margin-bottom: 1em; margin-left: auto">
|
<div class="actionbar-box">
|
||||||
<li><a href="{{url('admin:judge_volunteerproblemvote_changelist')}}">{{_('View your votes')}}</a></li>
|
{% set pagevote = problem.pagevote %}
|
||||||
</ul>
|
{% set bookmark = problem.bookmark %}
|
||||||
{% endif %}
|
{% set hide_actionbar_comment = True %}
|
||||||
{% for problem in problems %}
|
{% set include_hr = True %}
|
||||||
<div class="blog-box">
|
{% set share_url = request.build_absolute_uri(problem.get_absolute_url()) %}
|
||||||
<h3 class="problem-feed-name">
|
{% include "actionbar/list.html" %}
|
||||||
<a href="{{ url('problem_detail', problem.code) }}">
|
</div>
|
||||||
{{ problem.i18n_name }}
|
</div>
|
||||||
</a>
|
{% endfor %}
|
||||||
{% if problem.id in completed_problem_ids %}
|
{% if page_obj.num_pages > 1 %}
|
||||||
<i class="solved-problem-color fa fa-check-circle"></i>
|
<div style="margin-top:10px;">{% include "list-pages.html" %}</div>
|
||||||
{% elif problem.id in attempted_problems %}
|
{% endif %}
|
||||||
<i class="attempted-problem-color fa fa-minus-circle"></i>
|
|
||||||
{% else %}
|
|
||||||
<i class="unsolved-problem-color fa fa-minus-circle"></i>
|
|
||||||
{% endif %}
|
|
||||||
</h3>
|
|
||||||
{% with authors=problem.authors.all() %}
|
|
||||||
{% if authors %}
|
|
||||||
<div class="problem-feed-info-entry">
|
|
||||||
<i class="fa fa-pencil-square-o fa-fw"></i>
|
|
||||||
<span class="pi-value">{{ link_users(authors) }}</span>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
{% endwith %}
|
|
||||||
{% if show_types %}
|
|
||||||
<div class="problem-feed-types">
|
|
||||||
<i class="fa fa-tag"></i>
|
|
||||||
{% for type in problem.types_list %}
|
|
||||||
<span class="type-tag">{{ type }}</span>{% if not loop.last %}, {% endif %}
|
|
||||||
{% endfor %}, *{{problem.points | int}}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="blog-description">
|
|
||||||
<div class='content-description'>
|
|
||||||
{% cache 86400 'problem_html' problem.id MATH_ENGINE LANGUAGE_CODE %}
|
|
||||||
{{ problem.description|markdown(lazy_load=True)|reference|str|safe }}
|
|
||||||
{% endcache %}
|
|
||||||
{% if problem.pdf_description %}
|
|
||||||
<embed src="{{url('problem_pdf_description', problem.code)}}" width="100%" height="500" type="application/pdf" style="margin-top: 0.5em">
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
{% set include_hr = True %}
|
|
||||||
{% set hide_actionbar_comment = True %}
|
|
||||||
{% set pagevote = problem.pagevote %}
|
|
||||||
{% set bookmark = problem.bookmark %}
|
|
||||||
{% set share_url = request.build_absolute_uri(problem.get_absolute_url()) %}
|
|
||||||
{% include "actionbar/list.html" %}
|
|
||||||
|
|
||||||
{% if feed_type=='volunteer' and request.user.has_perm('judge.suggest_problem_changes') %}
|
|
||||||
<br>
|
|
||||||
<a href="#" class="view-statement-src">{{ _('View source') }}</a>
|
|
||||||
<pre class="statement-src" style="display: none">{{ problem.description|str }}</pre>
|
|
||||||
<hr>
|
|
||||||
<center><h3>{{_('Volunteer form')}}</h3></center>
|
|
||||||
<br>
|
|
||||||
<button class="edit-btn" id="edit-{{problem.id}}" pid="{{problem.id}}" style="float: right">{{_('Edit')}}</button>
|
|
||||||
<form class="volunteer-form" id="form-{{problem.id}}" pid="{{problem.id}}" style="display: none;" method="POST">
|
|
||||||
<input type="submit" class="volunteer-submit-btn" id="submit-{{problem.id}}" pid="{{problem.id}}" pcode="{{problem.code}}" style="float: right" value="{{_('Submit')}}">
|
|
||||||
<table class="table">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
{{_('Value')}}
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td width="30%">
|
|
||||||
<label for="knowledge_point-{{problem.id}}"><i>{{ _('Knowledge point') }}</i></label>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<input id="knowledge_point-{{problem.id}}" type="number" class="point-input" required>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td width="30%">
|
|
||||||
<label for="thinking_point-{{problem.id}}"><i>{{ _('Thinking point') }}</i></label>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<input id="thinking_point-{{problem.id}}" type="number" class="point-input" required>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td width="30%">
|
|
||||||
<label for="types"><i>{{ _('Problem types') }}</i></label>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<select id="volunteer-types-{{problem.id}}" name="types" multiple>
|
|
||||||
{% for type in problem_types %}
|
|
||||||
<option value="{{ type.id }}"{% if type in problem.types.all() %} selected{% endif %}>
|
|
||||||
{{ type.full_name }}
|
|
||||||
</option>
|
|
||||||
{% endfor %}
|
|
||||||
</select>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td width="30%">
|
|
||||||
<label for="feedback"><i>{{ _('Feedback') }}</i></label>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<textarea id="feedback-{{problem.id}}" rows="2" style="width: 100%" placeholder="{{_('Any additional note here')}}"></textarea>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</form>
|
|
||||||
<center id="thank-{{problem.id}}" style="display: none; margin-top: 3em"></center>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
{% if page_obj.num_pages > 1 %}
|
|
||||||
<div style="margin-top:10px;">{% include "list-pages.html" %}</div>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -32,21 +32,20 @@
|
||||||
{% block js_media %}
|
{% block js_media %}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function activateBlogBoxOnClick() {
|
function activateBlogBoxOnClick() {
|
||||||
$('.blog-box').on('click', function () {
|
$('.show-more').on('click', function () {
|
||||||
var $description = $(this).children('.blog-description');
|
var $description = $(this).parent().children('.blog-description');
|
||||||
var max_height = $description.css('max-height');
|
var max_height = $description.css('max-height');
|
||||||
if (max_height !== 'fit-content') {
|
if (max_height !== 'fit-content') {
|
||||||
$description.css('max-height', 'fit-content');
|
$description.css('max-height', 'fit-content');
|
||||||
$(this).css('cursor', 'auto');
|
$(this).parent().css('cursor', 'auto');
|
||||||
$(this).removeClass('pre-expand-blog');
|
$(this).parent().removeClass('pre-expand-blog');
|
||||||
$(this).find('.actionbar').show();
|
console.log($(this).parent());
|
||||||
|
$(this).hide();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
$('.blog-box').each(function () {
|
$('.blog-box').each(function () {
|
||||||
if ($(this).prop('scrollHeight') > $(this).height()) {
|
if ($(this).prop('scrollHeight') > $(this).height()) {
|
||||||
$(this).addClass('pre-expand-blog');
|
$(this).addClass('pre-expand-blog');
|
||||||
$(this).css('cursor', 'pointer');
|
|
||||||
$(this).find('.actionbar').hide();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue