From 09cbdc2cbbe49a37f815871b9537caa8e341ee2c Mon Sep 17 00:00:00 2001 From: Marina Date: Fri, 4 Aug 2023 19:13:51 +0300 Subject: [PATCH 1/8] first try of check_info --- app/server.py | 48 ++++++++++++++++++++++++++++++++++++--- app/templates/upload.html | 43 +++++++++++++++++++++++++++++++++++ assets/styles/upload.css | 17 ++++++++++++++ 3 files changed, 105 insertions(+), 3 deletions(-) diff --git a/app/server.py b/app/server.py index 1bfe9127..7ad721c5 100644 --- a/app/server.py +++ b/app/server.py @@ -24,7 +24,7 @@ from lti_session_passback.lti import utils from lti_session_passback.lti.check_request import check_request from main.check_packs import BASE_PACKS, BaseCriterionPack, DEFAULT_REPORT_TYPE_INFO, DEFAULT_TYPE, REPORT_TYPES, \ - init_criterions + init_criterions, BASE_PRES_CRITERION, BASE_REPORT_CRITERION from root_logger import get_logging_stdout_handler, get_root_logger from servants import pre_luncher from tasks import create_task @@ -157,10 +157,13 @@ def upload(): else: abort(401) elif request.method == "GET": + pack = db_methods.get_criteria_pack(current_user.criteria) + list_of_check = pack['raw_criterions'] + check_labels_and_discrpt = {CRITERIA_LABELS[check[0]]: CRITERIA_DESCRIPTION[check[0]] for check in list_of_check} formats = set(current_user.formats) file_type = current_user.file_type['type'] formats = formats & ALLOWED_EXTENSIONS[file_type] if formats else ALLOWED_EXTENSIONS[file_type] - return render_template("./upload.html", navi_upload=False, formats=sorted(formats)) + return render_template("./upload.html", navi_upload=False, formats=sorted(formats), list_of_check=check_labels_and_discrpt) @app.route("/tasks", methods=["POST"]) @@ -290,9 +293,48 @@ def get_status(task_id): 'image_references': 'Проверка наличия ссылок на все рисунки', 'table_references': 'Проверка наличия ссылок на все таблицы', 'report_section_component': 'Проверка наличия необходимых компонент указанного раздела', - 'main_text_check': 'Проверка оформления основного текста отчета' + 'main_text_check': 'Проверка оформления основного текста отчета', + 'headers_at_page_top_check': 'Проверка расположения разделов первого уровня с новой страницы', + 'lr_sections_check': 'Проверка соответствия заголовков разделов требуемым стилям', + 'style_check': 'Проверка корректности форматирования текста', + 'short_sections_check': "Поиск коротких разделов в отчёте", + 'spelling_check': "Проверка наличия орфографических ошибок в тексте", } +CRITERIA_DESCRIPTION = {'template_name': 'Шаблон названия: "Презентация_ВКР_Иванов", "ПРЕЗЕНТАЦИЯ_НИР_ИВАНОВ"', + 'slides_number': 'Подсчет основных и запасных слайдов', + 'slides_enum': 'Проверка наличия и корректности номеров слайдов', + 'slides_headers': 'Проверка наличия и корректности заголовков', + 'goals_slide': 'Проверка наличия слайда', + 'probe_slide': 'Проверка наличия слайда', + 'conclusion_slide': 'Проверка наличия слайда', + 'slide_every_task': 'Проверка на наличие слайдов', + 'pres_right_words': '', + 'pres_image_share': 'Доля изображений не должна превышать 0,9', + 'pres_banned_words_check': '', + 'conclusion_actual': 'Проверка соответствия заключения поставленным задачам (в процентах)', + 'conclusion_along': 'Проверка слайда "Заключение"', + 'simple_check': 'Проверка отчёта на пустоту страниц', + 'banned_words_in_literature': 'Запрещено упоминание слова "wikipedia"', + 'banned_words_check': 'Запрещено упоминание слова "мы"', + 'page_counter': 'Количество страниц должно быть больше 50ти, не считая "Приложения"', + 'image_share_check': 'Доля изображений (не включая "Приложение") не должна превышать 0,9', + 'right_words_check': 'Определенное слово: "цель"', + 'first_pages_check': 'Обязательные страницы: Титульный лист, Задание на выпускную квалификационную работу, Календарный план, Реферат, Abstract, Cодержание', + 'main_character_check': 'И.о. зав. кафедрой: А.А. Лисс', + 'needed_headers_check': '', + 'header_check': '(Шрифты, отступы и т.д.)', + 'literature_references': '', + 'image_references': '', + 'table_references': '', + 'report_section_component': 'Раздел "Введение", компоненты: "цель", "задачи", "объект", "предмет"', + 'main_text_check': 'Перечень доспустимых стилей: "Основной текст; ВКР_Основной текст", "ВКР_Подпись таблицы", "ВКР_Подпись для рисунков, схем", "ВКР_Содержимое таблицы"', + 'headers_at_page_top_check': '', + 'lr_sections_check': '', + 'style_check': 'Соответствие допустимым стилям', + 'short_sections_check': "Минимальное количество абзацев в разделе: 5, минимальное количество слов в абзаце: 20", + 'spelling_check': "", + } @app.route("/results/", methods=["GET"]) def results(_id): diff --git a/app/templates/upload.html b/app/templates/upload.html index 587c56c3..9c9ccd77 100644 --- a/app/templates/upload.html +++ b/app/templates/upload.html @@ -1,3 +1,4 @@ + {% extends "root.html" %} {% set title = {'report': "Загрузка отчётов", 'pres': "Загрузка презентаций"}[current_user.file_type['type']] %} @@ -57,6 +58,48 @@
{{ uploading_label }}

Общий объем загружаемых файлов не должен превышать {{ config.MAX_CONTENT_LENGTH//1024//1024 }} Mб.

+
+
+
+ +
+
+ + + + + + + + {% for criterion_name, criterion_descrpt in list_of_check.items() %} + + + {% endfor %} + +
Максимальный балл для каждого критерия: 11 +
Итоговый балл считается как среднее арифметическое.
+

+

Критерии:
  • {{ criterion_name }} +

    {% if criterion_descrpt %} + ({{ criterion_descrpt }}) + {% endif %} +

  • +
    + + + + + +
    diff --git a/assets/styles/upload.css b/assets/styles/upload.css index aa6724b8..e1258014 100644 --- a/assets/styles/upload.css +++ b/assets/styles/upload.css @@ -10,3 +10,20 @@ h5 { #upload_title { margin-bottom: 1rem !important; } + +.hidden-table { + display: none; + } + +#table_info { + width: 300%; +} + + +.btn-text { + background: none; + border: none; + padding: 0; + font: inherit; + color: blue; + } \ No newline at end of file From 4388efaf0f57798d19c3135fefb55762e38ec3af Mon Sep 17 00:00:00 2001 From: Marina Date: Fri, 4 Aug 2023 19:17:24 +0300 Subject: [PATCH 2/8] firt kind of check_info --- app/main/check_packs/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/main/check_packs/__init__.py b/app/main/check_packs/__init__.py index d299bdb1..aa36041f 100644 --- a/app/main/check_packs/__init__.py +++ b/app/main/check_packs/__init__.py @@ -1,4 +1,4 @@ from .base_criterion_pack import BaseCriterionPack from .pack_config import BASE_PACKS, DEFAULT_TYPE, DEFAULT_TYPE_INFO, DEFAULT_PRES_TYPE_INFO, DEFAULT_REPORT_TYPE_INFO, \ - REPORT_TYPES + REPORT_TYPES, BASE_PRES_CRITERION, BASE_REPORT_CRITERION from .utils import init_criterions From 456a180274d7e5a7eaf6ea562614538e5d76dc85 Mon Sep 17 00:00:00 2001 From: Marina Date: Wed, 9 Aug 2023 16:54:26 +0300 Subject: [PATCH 3/8] try fix button --- app/templates/upload.html | 13 ------------- assets/scripts/main.js | 1 + assets/scripts/upload.js | 11 ++++++++++- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/app/templates/upload.html b/app/templates/upload.html index 9c9ccd77..e6ae32bb 100644 --- a/app/templates/upload.html +++ b/app/templates/upload.html @@ -85,19 +85,6 @@
    {{ uploading_label }}
    - - - - diff --git a/assets/scripts/main.js b/assets/scripts/main.js index e3d9e070..7fc87133 100644 --- a/assets/scripts/main.js +++ b/assets/scripts/main.js @@ -51,3 +51,4 @@ export function collect_values_if_possible(...ids) { return result; } } + diff --git a/assets/scripts/upload.js b/assets/scripts/upload.js index cf152e27..673997fa 100644 --- a/assets/scripts/upload.js +++ b/assets/scripts/upload.js @@ -189,4 +189,13 @@ upload_button.click(async () => { upload_button.prop("disabled", true); await upload(); } -}); \ No newline at end of file +}); + +async function toggleTable() { + var table = document.getElementById("table_info"); + if (table.style.display === "none") { + table.style.display = "table"; + } else { + table.style.display = "none"; + } + } From 9e1d8d5e62d63c8fea6723155f6b215e50a859bd Mon Sep 17 00:00:00 2001 From: Marina Date: Sat, 12 Aug 2023 15:16:54 +0300 Subject: [PATCH 4/8] type of criteria_info 12.08.23 --- app/templates/upload.html | 48 +++++++++++++++++++-------------------- assets/scripts/upload.js | 20 +++++++++------- assets/styles/upload.css | 3 +-- 3 files changed, 36 insertions(+), 35 deletions(-) diff --git a/app/templates/upload.html b/app/templates/upload.html index e6ae32bb..090d40ec 100644 --- a/app/templates/upload.html +++ b/app/templates/upload.html @@ -61,32 +61,30 @@
    {{ uploading_label }}

    - -
    + +
    - - - - - - - - {% for criterion_name, criterion_descrpt in list_of_check.items() %} - - - {% endfor %} - -
    Максимальный балл для каждого критерия: 11 -
    Итоговый балл считается как среднее арифметическое.
    -

    -

    Критерии:
  • {{ criterion_name }} -

    {% if criterion_descrpt %} - ({{ criterion_descrpt }}) - {% endif %} -

  • -
    - - + + + + + + + + {% for criterion_name, criterion_descrpt in list_of_check.items() %} + + + {% endfor %} + +
    Максимальный балл для каждого критерия: 1 +
    Итоговый балл считается как среднее арифметическое.
    +

    +

    Критерии:
  • {{ criterion_name }} +

    {% if criterion_descrpt %} + ({{ criterion_descrpt }}) + {% endif %} +

  • +
    diff --git a/assets/scripts/upload.js b/assets/scripts/upload.js index 673997fa..97605252 100644 --- a/assets/scripts/upload.js +++ b/assets/scripts/upload.js @@ -21,6 +21,10 @@ file_formats = file_formats[file_formats.length - 1]; file_formats = file_formats.replaceAll(" ", ""); file_formats = file_formats.split(","); +$("#btn_table_info").click(function(){ + toggleTable('table_info'); +}); + const showSizeExceedMessage = () => { alert( "Объем загружаемых вами файлов превышает максимально разрешенный объем " + (file_upload_limit / 1024 / 1024) + " МБ." + @@ -191,11 +195,11 @@ upload_button.click(async () => { } }); -async function toggleTable() { - var table = document.getElementById("table_info"); - if (table.style.display === "none") { - table.style.display = "table"; - } else { - table.style.display = "none"; - } - } +function toggleTable(tableId) { + var table = document.getElementById(tableId); + if (table.classList.contains("hidden-table")) { + table.classList.remove("hidden-table"); + } else { + table.classList.add("hidden-table"); + } +} diff --git a/assets/styles/upload.css b/assets/styles/upload.css index e1258014..630c3f8a 100644 --- a/assets/styles/upload.css +++ b/assets/styles/upload.css @@ -19,11 +19,10 @@ h5 { width: 300%; } - .btn-text { background: none; border: none; padding: 0; font: inherit; color: blue; - } \ No newline at end of file + } From f358c71060d00d297a509588fcbe4e0f59d0a31e Mon Sep 17 00:00:00 2001 From: Marina Date: Mon, 13 Nov 2023 21:44:36 +0300 Subject: [PATCH 5/8] fix basic_pack for upload info --- app/servants/pre_luncher.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/servants/pre_luncher.py b/app/servants/pre_luncher.py index 31164022..4efaa98b 100644 --- a/app/servants/pre_luncher.py +++ b/app/servants/pre_luncher.py @@ -2,7 +2,7 @@ import logging from db.db_methods import add_user, get_user, get_client, edit_user, save_criteria_pack -from main.check_packs.pack_config import BASE_PACKS, DEFAULT_REPORT_TYPE_INFO +from main.check_packs.pack_config import BASE_PACKS, DEFAULT_REPORT_TYPE_INFO, DEFAULT_PRES_TYPE_INFO from pymongo.errors import ConnectionFailure from server import ALLOWED_EXTENSIONS @@ -35,8 +35,8 @@ def init(app, debug): user.is_admin = True edit_user(user) - user.file_type = DEFAULT_REPORT_TYPE_INFO - file_type = DEFAULT_REPORT_TYPE_INFO['type'] + user.file_type = DEFAULT_PRES_TYPE_INFO + file_type = DEFAULT_PRES_TYPE_INFO['type'] user.criteria = BASE_PACKS[file_type].name user.formats = list(ALLOWED_EXTENSIONS.get(file_type)) user.two_files = True From a88c5439dfc1cc9ccecd035af01ee78684a9a376 Mon Sep 17 00:00:00 2001 From: Marina Date: Mon, 13 Nov 2023 21:48:38 +0300 Subject: [PATCH 6/8] fix criteria_info for pres --- app/servants/pre_luncher.py | 4 ++-- app/server.py | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/servants/pre_luncher.py b/app/servants/pre_luncher.py index 4efaa98b..e12d2fc9 100644 --- a/app/servants/pre_luncher.py +++ b/app/servants/pre_luncher.py @@ -35,8 +35,8 @@ def init(app, debug): user.is_admin = True edit_user(user) - user.file_type = DEFAULT_PRES_TYPE_INFO - file_type = DEFAULT_PRES_TYPE_INFO['type'] + user.file_type = DEFAULT_REPORT_TYPE_INFO + file_type = DEFAULT_REPORT_TYPE_INFO['type'] user.criteria = BASE_PACKS[file_type].name user.formats = list(ALLOWED_EXTENSIONS.get(file_type)) user.two_files = True diff --git a/app/server.py b/app/server.py index 7ad721c5..bcad5518 100644 --- a/app/server.py +++ b/app/server.py @@ -273,7 +273,9 @@ def get_status(task_id): 'slides_headers': 'Заголовки слайдов присутствуют и занимают не более двух строк', 'goals_slide': 'Слайд "Цель и задачи"', 'probe_slide': 'Слайд "Апробация работы"', 'actual_slide': 'Слайд с описанием актуальности работы', 'conclusion_slide': 'Слайд с заключением', + 'find_slides': 'Поиск ключевого слова в заголовках', 'slide_every_task': 'Наличие слайдов, посвященных задачам', + 'find_on_slide': 'Поиск ключевого слова в тексте слайда', 'pres_right_words': 'Проверка наличия определенных (правильных) слов в презентации', 'pres_image_share': 'Проверка доли объема презентации, приходящейся на изображения', 'pres_banned_words_check': 'Проверка наличия запретных слов в презентации', @@ -299,6 +301,7 @@ def get_status(task_id): 'style_check': 'Проверка корректности форматирования текста', 'short_sections_check': "Поиск коротких разделов в отчёте", 'spelling_check': "Проверка наличия орфографических ошибок в тексте", + 'future_dev': 'Наличие направлений дальнейшего развития', } CRITERIA_DESCRIPTION = {'template_name': 'Шаблон названия: "Презентация_ВКР_Иванов", "ПРЕЗЕНТАЦИЯ_НИР_ИВАНОВ"', @@ -308,6 +311,8 @@ def get_status(task_id): 'goals_slide': 'Проверка наличия слайда', 'probe_slide': 'Проверка наличия слайда', 'conclusion_slide': 'Проверка наличия слайда', + 'find_slides': 'Ключевые слова: "Апробация", "Цели и задачи", "Заключение"', + 'find_on_slide': 'Ключевое слово: "Актуальность"', 'slide_every_task': 'Проверка на наличие слайдов', 'pres_right_words': '', 'pres_image_share': 'Доля изображений не должна превышать 0,9', @@ -334,6 +339,7 @@ def get_status(task_id): 'style_check': 'Соответствие допустимым стилям', 'short_sections_check': "Минимальное количество абзацев в разделе: 5, минимальное количество слов в абзаце: 20", 'spelling_check': "", + 'future_dev': 'Поиск направления развития в разделе "Заключение"', } @app.route("/results/", methods=["GET"]) From 6724db136ad84882700ca45b2d7d72aa574a4610 Mon Sep 17 00:00:00 2001 From: Marina Date: Mon, 13 Nov 2023 21:51:00 +0300 Subject: [PATCH 7/8] resolve conflicts --- app/servants/pre_luncher.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/servants/pre_luncher.py b/app/servants/pre_luncher.py index e12d2fc9..31164022 100644 --- a/app/servants/pre_luncher.py +++ b/app/servants/pre_luncher.py @@ -2,7 +2,7 @@ import logging from db.db_methods import add_user, get_user, get_client, edit_user, save_criteria_pack -from main.check_packs.pack_config import BASE_PACKS, DEFAULT_REPORT_TYPE_INFO, DEFAULT_PRES_TYPE_INFO +from main.check_packs.pack_config import BASE_PACKS, DEFAULT_REPORT_TYPE_INFO from pymongo.errors import ConnectionFailure from server import ALLOWED_EXTENSIONS From 79c8f7e6877f34ec90db04f92831252c11d120c2 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Tue, 20 Feb 2024 02:14:08 +0300 Subject: [PATCH 8/8] text and styles fixes --- app/templates/upload.html | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/templates/upload.html b/app/templates/upload.html index 090d40ec..895b2489 100644 --- a/app/templates/upload.html +++ b/app/templates/upload.html @@ -61,13 +61,14 @@
    {{ uploading_label }}

    - -
    +
    + +
    @@ -78,7 +79,7 @@
    {{ uploading_label }}
    {% endfor %}
    Максимальный балл для каждого критерия: 1 -
    Итоговый балл считается как среднее арифметическое.
    +
    Итоговый балл считается как сумма полученных баллов / общее количество баллов.

  • {{ criterion_name }}

    {% if criterion_descrpt %} - ({{ criterion_descrpt }}) + {{ criterion_descrpt }} {% endif %}