mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
作业功能
This commit is contained in:
1 parent
216a4a91e4
commit
bc50913e6e
60 files changed
+1161
-197
No files matched your search
@@ -0,0 +1,8 @@
|
||||
{% import "components/user.html" as user with context %}
|
||||
{% macro render_time(tdoc_time) %}
|
||||
{{ datetimeSpan(tdoc_time, false, '%Y-%m-%d %H:%M')|safe }}
|
||||
{% endmacro %}
|
||||
|
||||
{% macro render_extension(tdoc) %}
|
||||
{{ ((tdoc['endAt'].getTime() - tdoc['penaltySince'].getTime())/ 1000 / 3600/ 24)|round(1) }}
|
||||
{% endmacro %}
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "contest_detail" %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% import "components/contest.html" as contest with context %}
|
||||
{% import "components/record.html" as record with context %}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "contest_main" %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% import "components/contest.html" as contest with context %}
|
||||
{% macro render_important_contest(view, title, tdoc) %}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "contest_scoreboard" %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% block content %}
|
||||
<div class="row"><div class="medium-12 columns">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "discussion_create" %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "discussion_detail" %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% import "components/comments_discussion.html" as comments with context %}
|
||||
{% block content %}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{% set no_path_section = true %}
|
||||
{% set page_name = "error" %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% block content %}
|
||||
<div class="error__container clearfix">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "home_messages" %}
|
||||
{% extends "layout/home_base.html" %}
|
||||
{% block home_content %}
|
||||
<div style="display: none" class="dialog__body--user-select">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "home_security" %}
|
||||
{% extends "layout/home_base.html" %}
|
||||
{% block home_content %}
|
||||
<div data-heading-extract-to="#menu-item-home_security">
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
{% extends "layout/basic.html" %}
|
||||
{% import "components/record.html" as record with context %}
|
||||
{% import "components/problem.html" as problem with context %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="medium-9 columns">
|
||||
<div class="section">
|
||||
<div class="section__header">
|
||||
<h1 class="section__title">{{ _('Homework Introduction') }}</h1>
|
||||
</div>
|
||||
<div class="section__body typo">
|
||||
{{ tdoc['content']|markdown|safe }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="section__header">
|
||||
<h1 class="section__title">{{ _('Problem') }}</h1>
|
||||
</div>
|
||||
{% if model.contest.isNotStarted(tdoc) %}
|
||||
{{ nothing.render('This homework is not open and you cannot view problems.') }}
|
||||
{% else %}
|
||||
{% if attended or model.contest.isDone(tdoc) %}
|
||||
<div class="section__body no-padding">
|
||||
<table class="data-table">
|
||||
<colgroup>
|
||||
{% if handler.hasPerm(perm.PERM_LOGGEDIN) %}
|
||||
<col class="col--status">
|
||||
<col class="col--submit-at">
|
||||
{% endif %}
|
||||
<col class="col--problem">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
{% if handler.hasPerm(perm.PERM_LOGGEDIN) %}
|
||||
<th class="col--status record-status--border">{{ _('Status') }}</th>
|
||||
<th class="col--submit-at">{{ _('Last Submit At') }}</th>
|
||||
{% endif %}
|
||||
<th class="col--problem">{{ _('Problem') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for pid in tdoc['pids'] %}
|
||||
<tr>
|
||||
{% if handler.hasPerm(perm.PERM_LOGGEDIN) %}
|
||||
{% if psdict[pid] and psdict[pid]['rid'] %}
|
||||
{% set rdoc = rdict[psdict[pid]['rid']] %}
|
||||
{% if handler.canShowRecord(tdoc) %}
|
||||
{{ record.render_status_td(rdoc) }}
|
||||
{% else %}
|
||||
<td class="col--status record-status--border"><a href="/r/{{ rdoc._id }}">{{ _('Submitted') }}</a></td>
|
||||
{% endif %}
|
||||
<td class="col--submit-at">{{ datetimeSpan(rdoc['_id'])|safe }}</td>
|
||||
{% else %}
|
||||
<td class="col--status record-status--border">{{ _('No Submissions') }}</td>
|
||||
<td class="col--submit-at">-</td>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<td class="col--problem col--problem-name">
|
||||
#{{ loop.index }}:
|
||||
{{ problem.render_problem_title(pdict[pid], tdoc=tdoc, show_invisible_flag=false, show_tags=false) }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
{{ nothing.render('Please claim the assignment to see the problems.') }}
|
||||
{% endif %}{# attended or handler.is_done(tdoc) #}
|
||||
{% endif %}{# handler.is_not_started(tdoc) #}
|
||||
</div>
|
||||
</div>
|
||||
<div class="medium-3 columns">
|
||||
{% include "partials/homework_sidebar.html" %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,105 @@
|
||||
{% extends "layout/basic.html" %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="medium-9 columns">
|
||||
<div class="section">
|
||||
<div class="section__body">
|
||||
<form method="post">
|
||||
{{ form.form_text({
|
||||
columns:8,
|
||||
label:'Title',
|
||||
name:'title',
|
||||
placeholder:_('title'),
|
||||
value:tdoc['title']|default(''),
|
||||
autofocus:true
|
||||
}) }}
|
||||
<div class="row">
|
||||
{{ form.form_text({
|
||||
columns:4,
|
||||
label:'Begin Date',
|
||||
name:'beginAtDate',
|
||||
placeholder:'YYYY-mm-dd',
|
||||
value:dateBeginText,
|
||||
date:true,
|
||||
row:false
|
||||
}) }}
|
||||
{{ form.form_text({
|
||||
columns:4,
|
||||
last_column:true,
|
||||
label:'Begin Time',
|
||||
name:'beginAtTime',
|
||||
placeholder:'HH:MM',
|
||||
value:timeBeginText,
|
||||
time:true,
|
||||
row:false
|
||||
}) }}
|
||||
</div><div class="row">
|
||||
{{ form.form_text({
|
||||
columns:4,
|
||||
label:'End Date',
|
||||
name:'penaltySinceDate',
|
||||
placeholder:'YYYY-mm-dd',
|
||||
value:datePenaltyText,
|
||||
date:true,
|
||||
row:false
|
||||
}) }}
|
||||
{{ form.form_text({
|
||||
columns:4,
|
||||
last_column:true,
|
||||
label:'End Time',
|
||||
name:'penaltySinceTime',
|
||||
placeholder:'HH:MM',
|
||||
value:timePenaltyText,
|
||||
time:true,
|
||||
row:false
|
||||
}) }}
|
||||
</div>
|
||||
{{ form.form_text({
|
||||
columns:4,
|
||||
label:'Extension (days)',
|
||||
name:'extensionDays',
|
||||
value:extension_days
|
||||
}) }}
|
||||
<div class="row"><div class="columns">
|
||||
<label>
|
||||
{{ _('Extension Score Penalty') }}
|
||||
<textarea name="penaltyRules" class="monospace textbox">{% if tdoc %}{{ penaltyRules }}{% else %}{% include 'partials/homework_default_penalty_rules.yaml' %}{% endif %}</textarea>
|
||||
</label>
|
||||
</div></div>
|
||||
{{ form.form_text({
|
||||
columns:null,
|
||||
label:'Problems',
|
||||
name:'pids',
|
||||
value:pids
|
||||
}) }}
|
||||
{{ form.form_textarea({
|
||||
columns:null,
|
||||
label:'Content',
|
||||
name:'content',
|
||||
value:tdoc['content']|default(''),
|
||||
markdown:true
|
||||
}) }}
|
||||
<div class="row"><div class="columns">
|
||||
<input type="hidden" name="csrfToken" value="{{ handler.csrfToken }}">
|
||||
{% if page_name == 'homework_edit' %}
|
||||
<button type="submit" class="rounded primary button">
|
||||
{{ _('Update') }}
|
||||
</button>
|
||||
{% else %}
|
||||
<button type="submit" class="rounded primary button">
|
||||
{{ _('Create') }}
|
||||
</button>
|
||||
{% endif %}
|
||||
<button type="button" class="rounded button" onclick="window.history.go(-1)">
|
||||
{{ _('Cancel') }}
|
||||
</button>
|
||||
</div></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="medium-3 columns">
|
||||
{% include 'components/md_hint.html' %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,68 @@
|
||||
{% extends "layout/basic.html" %}
|
||||
{% block content %}
|
||||
<script>
|
||||
var Context = {
|
||||
'docs': {{ calendar|json|safe }},
|
||||
};
|
||||
</script>
|
||||
<div class="row">
|
||||
<div class="medium-12 columns">
|
||||
<div class="section">
|
||||
<div class="section__header">
|
||||
<h1 class="section__title">{{ _('All Homeworks') }}</h1>
|
||||
<div class="section__tools">
|
||||
<span class="nojs-hide">
|
||||
{{ _('View') }}:
|
||||
<select class="inline compact select" name="homework_display">
|
||||
<option value="calendar">{{ _('Calendar View') }}</option>
|
||||
<option value="list">{{ _('List View') }}</option>
|
||||
</select>
|
||||
</span>
|
||||
{% if handler.hasPerm(perm.PERM_CREATE_HOMEWORK) %}
|
||||
<a class="compact button" href="/homework/create">{{ _('Create Homework') }}</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="section__body no-padding">
|
||||
{% if not tdocs.length %}
|
||||
{{ nothing.render('There is no homework so far ╰(*°▽°*)╯') }}
|
||||
{% else %}
|
||||
<ol class="section__list homework__list hasjs--hide">
|
||||
{% for tdoc in tdocs %}
|
||||
<li class="section__list__item homework__item">
|
||||
<div class="media">
|
||||
<div class="media__left medium">
|
||||
<div class="homework__date numbox">
|
||||
<div class="numbox__num large">{{ datetimeSpan(tdoc['penaltySince'], false, '%d')|safe }}</div>
|
||||
<div class="numbox__text">{{ datetimeSpan(tdoc['penaltySince'], false, '%Y-%m')|safe }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="media__body medium">
|
||||
<h1 class="homework__title"><a href="/homework/{{ tdoc.docId }}" data-emoji-enabled>{{ tdoc.title }}</a></h1>
|
||||
<ul class="supplementary list">
|
||||
<li>
|
||||
{{ _('Status') }}: <span class="homework-status--text {{ model.contest.getStatus(tdoc) }}">{{ _(model.contest.statusText(tdoc)) }}</span>
|
||||
</li>
|
||||
<li>
|
||||
{{ _('Open Since') }}: {{ datetimeSpan(tdoc['beginAt'])|safe }}
|
||||
</li>
|
||||
<li>
|
||||
{% if model.contest.isHomeworkExtended(tdoc) or model.contest.isDone(tdoc) %}
|
||||
{{ _('Hard Deadline') }}: {{ datetimeSpan(tdoc['endAt'])|safe }}
|
||||
{% else %}
|
||||
{{ _('Deadline') }}: {{ datetimeSpan(tdoc['penaltySince'])|safe }}
|
||||
{% endif %}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
<div name="calendar_entry"></div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "manage_dashboard" %}
|
||||
{% import "components/user.html" as user %}
|
||||
{% extends "manage_base.html" %}
|
||||
{% block manage_content %}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "manage_edit" %}
|
||||
{% import "components/form.html" as form with context %}
|
||||
{% extends "manage_base.html" %}
|
||||
{% block manage_content %}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "manage_module" %}
|
||||
{% extends "manage_base.html" %}
|
||||
{% block manage_content %}
|
||||
<div style="display: none" class="dialog__body--add-module">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "manage_permission" %}
|
||||
{% extends "manage_base.html" %}
|
||||
{% block manage_content %}
|
||||
<form method="post">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "manage_role" %}
|
||||
{% extends "manage_base.html" %}
|
||||
{% block manage_content %}
|
||||
<div style="display: none" class="dialog__body--create-role">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "manage_settings" %}
|
||||
{% extends "manage_base.html" %}
|
||||
{% block manage_content %}
|
||||
<div class="section">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "manage_user" %}
|
||||
{% extends "manage_base.html" %}
|
||||
{% block manage_content %}
|
||||
<div style="display: none" class="dialog__body--add-user">
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
# Format:
|
||||
# hours: coefficient
|
||||
1: 0.9
|
||||
3: 0.8
|
||||
12: 0.75
|
||||
9999: 0.5
|
||||
@@ -0,0 +1,85 @@
|
||||
{% import "components/user.html" as user with context %}
|
||||
{% import "components/homework.html" as homework with context %}
|
||||
<div class="section side">
|
||||
{% if page_name != 'homework_detail' %}
|
||||
<a class="contest-sidebar__bg" href="/homework/{{ tdoc.docId }}">
|
||||
<div class="section__body">
|
||||
<h1>{{ tdoc['title'] }}</h1>
|
||||
<div class="contest-sidebar__status">
|
||||
{% if attended %}
|
||||
<span class="icon icon-check"></span> {{ _('Claimed') }}
|
||||
{% else %}
|
||||
<span class="icon icon-schedule"></span> {{ _('Not Claimed') }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
{% endif %}
|
||||
<div>
|
||||
<ol class="menu">
|
||||
{% if page_name != 'homework_detail' %}
|
||||
<li class="menu__item"><a class="menu__link" href="/homework/{{ tdoc.docId }}">
|
||||
<span class="icon icon-homework"></span> {{ _('View Homework') }}
|
||||
</a></li>
|
||||
{% endif %}
|
||||
{% if not attended and not model.contest.isDone(tdoc) %}
|
||||
<li class="menu__item">
|
||||
{% if handler.hasPerm(perm.PERM_ATTEND_HOMEWORK) and handler.hasPerm(perm.PERM_LOGGEDIN) %}
|
||||
<form action="/homework/{{ tdoc.docId }}" method="POST">
|
||||
<input type="hidden" name="operation" value="attend">
|
||||
<input type="hidden" name="csrfToken" value="{{ handler.csrfToken }}">
|
||||
<button class="menu__link" type="submit">
|
||||
<span class="icon icon-add"></span> {{ _('Claim Homework') }}
|
||||
</button>
|
||||
</form>
|
||||
{% elif not handler.hasPerm(perm.PERM_LOGGEDIN) %}
|
||||
<a class="menu__link" href="javascript:showSignInDialog()">
|
||||
<span class="icon icon-add"></span> {{ _('Login to Claim Homework') }}
|
||||
</a>
|
||||
{% else %}
|
||||
<a class="menu__link disabled" href="javascript:;">
|
||||
<span class="icon icon-add"></span> {{ _('No Permission to Claim Homework') }}
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if handler.canShowScoreboard(tdoc, false) %}
|
||||
<li class="menu__item"><a class="menu__link" href="/homework/{{ tdoc.docId }}/scoreboard">
|
||||
<span class="icon icon-statistics"></span> {{ _('Scoreboard') }}
|
||||
</a></li>
|
||||
{% elif handler.canViewHiddenScoreboard(tdoc) %}
|
||||
<li class="menu__item"><a class="menu__link" href="/homework/{{ tdoc.docId }}/scoreboard">
|
||||
<span class="icon icon-statistics"></span> {{ _('Scoreboard (Hidden)') }}
|
||||
</a></li>
|
||||
{% endif %}
|
||||
{% if tdoc.owner == handler.user._id or handler.hasPerm(perm.PERM_EDIT_HOMEWORK) %}
|
||||
<li class="menu__item"><a class="menu__link" href="/homework/{{ tdoc.docId }}/edit">
|
||||
<span class="icon icon-edit"></span> {{ _('Edit Homework') }}
|
||||
</a></li>
|
||||
{% endif %}
|
||||
{% if handler.hasPerm(perm.PERM_READ_RECORD_CODE) %}
|
||||
<li class="menu__item"><a class="menu__link" href="/homework/{{ tdoc.docId }}/code">
|
||||
<span class="icon icon-download"></span> {{ _('Export All Code') }}
|
||||
</a></li>
|
||||
{% endif %}
|
||||
{% if attended %}
|
||||
<li class="menu__item"><a class="menu__link" href="/r?uid_or_name={{ handler.user._id }}&tid={{ tdoc.docId }}">
|
||||
<span class="icon icon-flag"></span> {{ _('My Recent Submissions') }}
|
||||
</a></li>
|
||||
{% endif %}
|
||||
<li class="menu__item"><a class="menu__link" href="/wiki/help#homework">
|
||||
<span class="icon icon-help"></span> {{ _('Help') }}
|
||||
</a></li>
|
||||
<li class="menu__seperator"></li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="section__body typo">
|
||||
<dl class="large horizontal">
|
||||
<dt>{{ _('Status') }}</dt><dd><span class="homework-status--text {{ model.contest.getStatus(tdoc) }}">{{ _(model.contest.statusText(tdoc)) }}</span></dd>
|
||||
<dt>{{ _('Problem') }}</dt><dd>{{ tdoc['pids']|length }}</dd>
|
||||
<dt>{{ _('Open Since') }}</dt><dd>{{ homework.render_time(tdoc['beginAt']) }}</dd>
|
||||
<dt>{{ _('Deadline') }}</dt><dd>{{ homework.render_time(tdoc['penaltySince']) }}</dd>
|
||||
<dt>{{ _('Can be Extended For') }}</dt><dd>{{ homework.render_extension(tdoc) }} {{ _('hour(s)') }}</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "problem_detail" %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% block content %}
|
||||
<script>
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "problem_import" %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "problem_main" %}
|
||||
{% import "components/record.html" as record with context %}
|
||||
{% import "components/problem.html" as problem with context %}
|
||||
{% extends "layout/basic.html" %}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "problem_settings" %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "problem_solution" %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% import "components/comments_solution.html" as comments with context %}
|
||||
{% block content %}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "problem_submit" %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "record_detail" %}
|
||||
{% import "components/problem.html" as problem with context %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% block content %}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "record_main" %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% block content %}
|
||||
<script>
|
||||
|
||||
+29
-30
@@ -1,43 +1,42 @@
|
||||
{% set page_name = "status" %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="medium-12 columns">
|
||||
<div class="section">
|
||||
<div class="section__body no-padding">
|
||||
<div data-fragment-id="status">
|
||||
<table class="data-table">
|
||||
<div class="medium-12 columns">
|
||||
<div class="section">
|
||||
<div class="section__body no-padding">
|
||||
<div data-fragment-id="status">
|
||||
<table class="data-table">
|
||||
<colgroup>
|
||||
<col class="col--id">
|
||||
<col class="col--status">
|
||||
<col class="col--os">
|
||||
<col class="col--cpu">
|
||||
<col class="col--os">
|
||||
<col class="col--cpu">
|
||||
<col class="col--memory">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col--id">{{ _('ID') }}</th>
|
||||
<th class="col--status">{{ _('Current Status') }}</th>
|
||||
<th class="col--status">{{ _('Current Status') }}</th>
|
||||
<th class="col--os">{{ _('OS Info') }}</th>
|
||||
<th class="col--cpu">{{ _('CPU Info') }}</th>
|
||||
<th class="col--memory">{{ _('Memory Info') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for doc in stats %}
|
||||
<tr>
|
||||
<th class="col--cpu">{{ _('CPU Info') }}</th>
|
||||
<th class="col--memory">{{ _('Memory Info') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for doc in stats %}
|
||||
<tr>
|
||||
<td class="col--id">{{ doc._id|truncate(6, True, '') }}</td>
|
||||
<td class="col--status">{{ doc.status }}</td>
|
||||
<td class="col--os">{{ doc.osinfo }}</td>
|
||||
<td class="col--cpu" data-tooltip="{{ doc.flags }}">{{ doc.cpu }}</td>
|
||||
<td class="col--memory">{{ doc.memory }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<td class="col--os">{{ doc.osinfo }}</td>
|
||||
<td class="col--cpu" data-tooltip="{{ doc.flags }}">{{ doc.cpu }}</td>
|
||||
<td class="col--memory">{{ doc.memory }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "training_detail" %}
|
||||
{% import "components/record.html" as record with context %}
|
||||
{% import "components/problem.html" as problem with context %}
|
||||
{% extends "layout/basic.html" %}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "training_main" %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "user_detail" %}
|
||||
{% import "components/home.html" as home with context %}
|
||||
{% extends "layout/basic.html" %}
|
||||
{% block content %}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "user_login" %}
|
||||
{% extends "layout/immersive.html" %}
|
||||
{% block content %}
|
||||
<div class="row"><div class="columns">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "user_register" %}
|
||||
{% extends "layout/immersive.html" %}
|
||||
{% block content %}
|
||||
<div class="row"><div class="columns">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{% set page_name = "user_register_with_code" %}
|
||||
{% extends "layout/immersive.html" %}
|
||||
{% block content %}
|
||||
<div class="immersive--content immersive--center">
|
||||
|
||||
Reference in new issue
Block a user