Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,8 @@ COPY . .

ENV PYTHONPATH='/project/:/project/app/'
WORKDIR /project/app

RUN STATIC_HASH=$(find app/static -type f -exec md5sum {} \; | md5sum | cut -d' ' -f1) && \
echo $STATIC_HASH >> /APP_STATIC_HASH

ENV APP_STATIC_HASH_FILE=/APP_STATIC_HASH
27 changes: 27 additions & 0 deletions app/config.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import os
from configparser import ConfigParser
from collections import OrderedDict

Expand All @@ -24,3 +25,29 @@ def init_config(config_path):
config_raw = ConfigParser()
config_raw.read(config_path)
Config.c = DictToObject(config_raw._sections)

class VersionCache:
_instance = None
_initialized = False

def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance

def __init__(self):
if not self.__class__._initialized:
hash_file = os.getenv("APP_STATIC_HASH_FILE", "dev")
if hash_file and os.path.exists(hash_file):
with open(hash_file) as f:
self.version=f.read().split()
else:
self.version = "dev"
self.__class__._initialized = True

@classmethod
def get_version(cls):
if cls._instance is None or not hasattr(cls._instance, "version"):
cls._instance = cls()
return cls._instance.version
_instance = None
3 changes: 1 addition & 2 deletions app/routes/admin.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
from app.root_logger import get_root_logger

from flask import render_template, redirect, Blueprint
from flask.helpers import url_for

from flask.helpers import url_for
from app.api.dump import get_dumps_info
from app.lti_session_passback.auth_checkers import check_admin

Expand Down
4 changes: 2 additions & 2 deletions app/templates/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html>
{% block header %}
{% include "header.html" %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/libraries/bootstrap.min.css') }}">
<link rel="stylesheet" href="{{ versioned_url('css/libraries/bootstrap.min.css') }}">
{% endblock %}

{% include "user_info.html" %}
Expand All @@ -16,7 +16,7 @@ <h1>{{ page_title }}</h1>
{% block content %} {% endblock %}
<!--{% include "bug_reports.html" %}-->
{% block footer %} {% include "footer.html" %} {% endblock %}
<script src="{{ url_for('static', filename='js/base.js') }}"></script>
<script src="{{ versioned_url('js/base.js') }}"></script>
</body>

</html>
2 changes: 1 addition & 1 deletion app/templates/capacity.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ <h4 class="card-title">Загруженность Базы Данных</h4>
</div>
<button type="button" id="refresh_button">Обновить данные</button>

<script src="/static/js/libraries/jquery.min.js"></script>
<script src="{{ versioned_url('/static/js/libraries/jquery.min.js') }}"></script>
<script>
$('#refresh_button').click(function() {
$.post("{{ url_for('routes_capacity.refresh_capacity') }}", {}, function(data) {
Expand Down
6 changes: 3 additions & 3 deletions app/templates/criterion_list.html
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{% extends 'base.html' %}

{% block header %}
<link rel="stylesheet" href="/static/css/danger-alert.css">
<link rel="stylesheet" href="/static/css/libraries/codemirror.min.css">
<link rel="stylesheet" href="/static/css/spinner.css">
<link rel="stylesheet" href="{{ versioned_url('/static/css/danger-alert.css') }}">
<link rel="stylesheet" href="{{ versioned_url('/static/css/libraries/codemirror.min.css') }}">
<link rel="stylesheet" href="{{ versioned_url('/static/css/spinner.css') }}">
{% endblock %}

{% block content %}
Expand Down
12 changes: 6 additions & 6 deletions app/templates/criterions.html
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{% extends 'base.html' %}

{% block header %}
<link rel="stylesheet" href="/static/css/danger-alert.css">
<link rel="stylesheet" href="/static/css/libraries/codemirror.min.css">
<link rel="stylesheet" href="/static/css/spinner.css">
<link rel="stylesheet" href="{{ versioned_url('/static/css/danger-alert.css') }}">
<link rel="stylesheet" href="{{ versioned_url('/static/css/libraries/codemirror.min.css') }}">
<link rel="stylesheet" href="{{ versioned_url('/static/css/spinner.css') }}">
{% endblock %}

{% block content %}
Expand Down Expand Up @@ -56,8 +56,8 @@ <h3>{{ t("Редактирование критерия") }}</h3>
<textarea id="criterion_parameters" rows=5>{{ data['info'] }} </textarea>
</form>

<script src="/static/js/libraries/jquery.min.js"></script>
<script src="/static/js/libraries/codemirror.min.js"></script>
<script src="/static/js/criterion.js"></script>
<script src="{{ versioned_url('/static/js/libraries/jquery.min.js') }}"></script>
<script src="{{ versioned_url('/static/js/libraries/codemirror.min.js') }}"></script>
<script src="{{ versioned_url('/static/js/criterion.js') }}"></script>

{% endblock %}
2 changes: 1 addition & 1 deletion app/templates/dumps.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<label for="createDump">{{ t("Используйте с осторожностью! Может заблокировать сервис из-за активной работы с БД") }}</i>
</div>

<script src="{{ url_for('static', filename='js/libraries/jquery.min.js') }}"></script>
<script src="{{ versioned_url('js/libraries/jquery.min.js') }}"></script>
<script type="text/javascript">
$(".createDumpButton").click(function(){
$(this).text('{{ t("Создание...")}}')
Expand Down
6 changes: 3 additions & 3 deletions app/templates/pack_list.html
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{% extends 'base.html' %}

{% block header %}
<link rel="stylesheet" href="/static/css/danger-alert.css">
<link rel="stylesheet" href="/static/css/libraries/codemirror.min.css">
<link rel="stylesheet" href="/static/css/spinner.css">
<link rel="stylesheet" href="{{ versioned_url('/static/css/danger-alert.css') }}">
<link rel="stylesheet" href="{{ versioned_url('/static/css/libraries/codemirror.min.css') }}">
<link rel="stylesheet" href="{{ versioned_url('/static/css/spinner.css') }}">
{% endblock %}

{% block content %}
Expand Down
12 changes: 6 additions & 6 deletions app/templates/packs.html
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{% extends 'base.html' %}

{% block header %}
<link rel="stylesheet" href="/static/css/danger-alert.css">
<link rel="stylesheet" href="/static/css/libraries/codemirror.min.css">
<link rel="stylesheet" href="/static/css/spinner.css">
<link rel="stylesheet" href="{{ versioned_url('/static/css/danger-alert.css') }}">
<link rel="stylesheet" href="{{ versioned_url('/static/css/libraries/codemirror.min.css') }}">
<link rel="stylesheet" href="{{ versioned_url('/static/css/spinner.css') }}">
{% endblock %}

{% block content %}
Expand Down Expand Up @@ -58,8 +58,8 @@ <h3>{{ t("Редактирование набора критериев") }}</h3>
<input id="button-submit" type="submit" value="{{ t(" Сохранить") }}">
</form>

<script src="/static/js/libraries/jquery.min.js"></script>
<script src="/static/js/libraries/codemirror.min.js"></script>
<script src="/static/js/pack.js"></script>
<script src="{{ versioned_url('/static/js/libraries/jquery.min.js') }}"></script>
<script src="{{ versioned_url('/static/js/libraries/codemirror.min.js') }}"></script>
<script src="{{ versioned_url('/static/js/pack.js') }}"></script>

{% endblock %}
6 changes: 3 additions & 3 deletions app/templates/show_all_presentations.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{% extends 'base.html' %}

{% block header %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/index.css') }}">
<link rel="stylesheet" href="{{ versioned_url('css/index.css') }}">
{% endblock %}

{% block content %}
Expand All @@ -11,8 +11,8 @@
</form>

<table id="all-presentations-table" class="table center-align-table"></table>
<script src="{{ url_for('static', filename='js/utils.js') }}"></script>
<script src="{{ url_for('static', filename='js/show_all_presentations.js') }}"></script>
<script src="{{ versioned_url('js/utils.js') }}"></script>
<script src="{{ versioned_url('js/show_all_presentations.js') }}"></script>
<script type="text/javascript">
call_get_all_presentations();
</script>
Expand Down
22 changes: 11 additions & 11 deletions app/templates/show_all_trainings.html
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{% extends 'base.html' %}

{% block header %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/index.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/show_all_trainings.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/libraries/jquery-ui/jquery-ui.min.css') }}">
<link rel="stylesheet" href="{{ versioned_url('css/index.css') }}">
<link rel="stylesheet" href="{{ versioned_url('css/show_all_trainings.css') }}">
<link rel="stylesheet" href="{{ versioned_url('css/libraries/jquery-ui/jquery-ui.min.css') }}">
{% endblock %}

{% block content %}
Expand Down Expand Up @@ -52,14 +52,14 @@ <h3 id = "pagination-info"></h3>
</div>

<table id="all-trainings-table" class="table center-align-table"></table>
<script src="{{ url_for('static', filename='js/libraries/jquery.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/libraries/jquery-ui.min.js') }}"></script>

<script src="{{ url_for('static', filename='js/changeURL.js') }}"></script>
<script src="{{ url_for('static', filename='js/event_observer.js') }}"></script>
<script src="{{ url_for('static', filename='js/utils.js') }}"></script>
<script src="{{ url_for('static', filename='js/show_all_trainings_filters.js') }}"></script>
<script src="{{ url_for('static', filename='js/show_all_trainings.js') }}"></script>
<script src="{{ versioned_url('js/libraries/jquery.min.js') }}"></script>
<script src="{{ versioned_url('js/libraries/jquery-ui.min.js') }}"></script>

<script src="{{ versioned_url('js/changeURL.js') }}"></script>
<script src="{{ versioned_url('js/event_observer.js') }}"></script>
<script src="{{ versioned_url('js/utils.js') }}"></script>
<script src="{{ versioned_url('js/show_all_trainings_filters.js') }}"></script>
<script src="{{ versioned_url('js/show_all_trainings.js') }}"></script>
<script type="text/javascript">
$(document).ready(async () => {

Expand Down
10 changes: 5 additions & 5 deletions app/templates/task_attempt.html
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{% extends 'base.html' %}

{% block header %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/task_attempt.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/index.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/libraries/jquery-ui/jquery-ui.min.css') }}">
<link rel="stylesheet" href="{{ versioned_url('css/task_attempt.css') }}">
<link rel="stylesheet" href="{{ versioned_url('css/index.css') }}">
<link rel="stylesheet" href="{{ versioned_url('css/libraries/jquery-ui/jquery-ui.min.css') }}">

{% endblock %}

Expand All @@ -18,8 +18,8 @@ <h3>Связанные тренировки:</h3>
<table id="related-trainings-table" class="table center-align-table"></table>
</div>
</div>
<script src="{{ url_for('static', filename='js/libraries/jquery.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/task_attempts.js') }}"></script>
<script src="{{ versioned_url('js/libraries/jquery.min.js') }}"></script>
<script src="{{ versioned_url('js/task_attempts.js') }}"></script>
<script type="text/javascript">
showRelatedTrainingsTable({{ trainings|tojson|safe }});
</script>
Expand Down
14 changes: 7 additions & 7 deletions app/templates/training.html
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{% extends 'base.html' %}

{% block header %}
<link rel="stylesheet" href="/static/css/danger-alert.css">
<link rel="stylesheet" href="/static/css/training.css">
<link rel="stylesheet" href="{{ versioned_url('/static/css/danger-alert.css') }}">
<link rel="stylesheet" href="{{ versioned_url('/static/css/training.css') }}">
{% endblock %}

{% block content %}
Expand Down Expand Up @@ -44,13 +44,13 @@
<canvas id="the-canvas" style="border: 1px solid #000000; direction: ltr;"></canvas>
</div>

<script src="{{ url_for('static', filename='js/libraries/jquery.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/libraries/pdf.js/build/pdf.js') }}"></script>
<script src="{{ url_for('static', filename='js/libraries/WebAudioRecorder.js/WebAudioRecorder.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/training.js') }}"></script>
<script src="{{ versioned_url('js/libraries/jquery.min.js') }}"></script>
<script src="{{ versioned_url('js/libraries/pdf.js/build/pdf.js') }}"></script>
<script src="{{ versioned_url('js/libraries/WebAudioRecorder.js/WebAudioRecorder.min.js') }}"></script>
<script src="{{ versioned_url('js/training.js') }}"></script>
<script type="text/javascript">
setupPresentationViewer("{{ training_id }}");
</script>
<script src="{{ url_for('static', filename='js/recording.js') }}"></script>
<script src="{{ versioned_url('js/recording.js') }}"></script>

{% endblock %}
16 changes: 8 additions & 8 deletions app/templates/training/statistics.html
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{% extends 'base.html' %}

{% block header %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/training_statistics.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/index.css') }}">
<link rel="stylesheet" href="{{ versioned_url('css/training_statistics.css') }}">
<link rel="stylesheet" href="{{ versioned_url('css/index.css') }}">
{% endblock %}

{% block content %}
Expand Down Expand Up @@ -65,12 +65,12 @@ <h3 id="current-points"></h3>

<table class="table transcription-table" id="per-slide-audio-transcription-table"></table>
</div>
<script src="{{ url_for('static', filename='js/libraries/jquery.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/libraries/pdf.js/build/pdf.js') }}"></script>
<script src="{{ url_for('static', filename='js/training.js') }}"></script>
<script src="{{ url_for('static', filename='js/utils.js') }}"></script>
<script src="{{ url_for('static', filename='js/changeURL.js') }}"></script>
<script src="{{ url_for('static', filename='js/training_statistics.js') }}"></script>
<script src="{{ versioned_url('js/libraries/jquery.min.js') }}"></script>
<script src="{{ versioned_url('js/libraries/pdf.js/build/pdf.js') }}"></script>
<script src="{{ versioned_url('js/training.js') }}"></script>
<script src="{{ versioned_url('js/utils.js') }}"></script>
<script src="{{ versioned_url('js/changeURL.js') }}"></script>
<script src="{{ versioned_url('js/training_statistics.js') }}"></script>
<script type="text/javascript">
setVerdict("{{ verdict }}");
setPerSlideAudioTranscriptionTable("{{ training_id }}");
Expand Down
4 changes: 2 additions & 2 deletions app/templates/training_greeting.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{% extends 'base.html' %}
{% block header %}
<link rel="stylesheet" href="/static/css/training_greeting.css">
<link rel="stylesheet" href="{{ versioned_url('/static/css/training_greeting.css') }}">
{% endblock %}
{% block content %}
<div class="base-container">
Expand Down Expand Up @@ -36,7 +36,7 @@ <h3>{{ t("Сумма баллов за предыдущие тренировки
{% endif %}

</div>
<script src="{{ url_for('static', filename='js/training_greeting.js') }}"></script>
<script src="{{ versioned_url('js/training_greeting.js') }}"></script>
<script type="text/javascript">
setCriteriaPackDescription({{criteria_pack_description|tojson}});
</script>
Expand Down
8 changes: 4 additions & 4 deletions app/templates/upload.html
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{% extends 'base.html' %}

{% block header %}
<link rel="stylesheet" href="/static/css/danger-alert.css">
<link rel="stylesheet" href="/static/css/spinner.css">
<link rel="stylesheet" href="{{ versioned_url('/static/css/danger-alert.css') }}">
<link rel="stylesheet" href="{{ versioned_url('/static/css/spinner.css') }}">
{% endblock %}

{% block content %}
Expand All @@ -26,6 +26,6 @@ <h3>{{ t("Загрузите файл с презентацией и нажми
{{ t("Форматы, доступные для загрузки: ") }}<label id='user_allowed_formats'>...</label>
</div>
</i>
<script src="/static/js/libraries/jquery.min.js"></script>
<script src="/static/js/upload.js"></script>
<script src="{{ versioned_url('/static/js/libraries/jquery.min.js') }}"></script>
<script src="{{ versioned_url('/static/js/upload.js') }}"></script>
{% endblock %}
6 changes: 3 additions & 3 deletions app/templates/user_info.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{% block header %}
<link rel="stylesheet" href="/static/css/header.css">
<link rel="stylesheet" href="{{ versioned_url('/static/css/header.css') }}">
{% endblock %}

{% block content %}
Expand All @@ -11,7 +11,7 @@
</div>


<script src="/static/js/libraries/jquery.min.js"></script>
<script src="/static/js/user_info.js"></script>
<script src="{{ versioned_url('js/libraries/jquery.min.js') }}"></script>
<script src="{{ versioned_url('js/user_info.js') }}"></script>

{% endblock %}
8 changes: 4 additions & 4 deletions app/templates/version.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
<html>
{% block header %}
{% include "header.html" %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/version.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/danger-alert.css') }}">
<link rel="stylesheet" href="{{ versioned_url('css/version.css') }}">
<link rel="stylesheet" href="{{ versioned_url('css/danger-alert.css') }}">
{% endblock %}


Expand All @@ -14,6 +14,6 @@
<table id="version-table"></table>
{% block footer %} {% include "footer.html" %} {% endblock %}
</body>
<script src="{{ url_for('static', filename='js/libraries/jquery.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/version.js') }}"></script>
<script src="{{ versioned_url('js/libraries/jquery.min.js') }}"></script>
<script src="{{ versioned_url('js/version.js') }}"></script>
</html>
Loading
Loading