From 7867bc4ffdc6e697d2c797aecdf8068c60af3676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Seppo=20=C3=84yr=C3=A4v=C3=A4inen?= Date: Thu, 6 Feb 2025 13:38:07 +0200 Subject: [PATCH 1/6] Upgrade Bootstrap from version 3 to 5. --- .gitignore | 1 + aplus/settings.py | 16 +- apps/templates/plugins/rss.html | 2 +- assets/css/main.css | 18 +- assets/css/main.css.map | 2 +- .../bootstrap-icons/bootstrap-icons.css | 5 + .../bootstrap-icons/bootstrap-icons.css.map | 1 + .../bootstrap-icons/bootstrap-icons.min.css | 5 + .../bootstrap-icons.min.css.map | 1 + .../css/vendor/bootstrap5/bootstrap-grid.css | 5 + .../vendor/bootstrap5/bootstrap-grid.css.map | 1 + .../vendor/bootstrap5/bootstrap-reboot.css | 5 + .../bootstrap5/bootstrap-reboot.css.map | 1 + .../vendor/bootstrap5/bootstrap-utilities.css | 5 + .../bootstrap5/bootstrap-utilities.css.map | 1 + assets/css/vendor/bootstrap5/bootstrap.css | 5 + .../css/vendor/bootstrap5/bootstrap.css.map | 1 + .../fonts/bootstrap-icons/bootstrap-icons.css | 2078 ++++++++++++++++ .../bootstrap-icons/bootstrap-icons.json | 2052 ++++++++++++++++ .../bootstrap-icons/bootstrap-icons.min.css | 5 + .../bootstrap-icons/bootstrap-icons.scss | 2090 +++++++++++++++++ .../fonts/bootstrap-icons.woff | Bin 0 -> 176032 bytes .../fonts/bootstrap-icons.woff2 | Bin 0 -> 130396 bytes assets/js/ajax_search_select.js | 4 +- assets/js/aplus.js | 87 +- assets/js/bootstrap3.min.js | 6 - assets/js/bootstrap5.min.js | 7 + assets/js/buttons_popover.js | 2 +- assets/js/llama.min.js | 2 +- assets/js/participants.js | 32 +- assets/js/popper.min.js | 6 + assets/js/resize.js | 1 + assets/js/summary.js | 2 +- assets/js/table.js | 8 +- assets/js/tag_popover.js | 4 +- assets/js/translate.js | 44 +- assets/sass/base/_general.scss | 53 + assets/sass/components/_breadcrumb.scss | 10 + assets/sass/components/_frontpage-cards.scss | 6 +- assets/sass/components/_icons.scss | 7 +- .../sass/components/_menu-notification.scss | 8 +- assets/sass/components/_new-tab-links.scss | 6 +- assets/sass/components/_pagination.scss | 3 +- assets/sass/components/_progress-bar.scss | 8 +- assets/sass/components/_sidebar.scss | 3 +- assets/sass/layout/_footer.scss | 1 + assets/sass/layout/_header.scss | 7 +- assets/sass/legacy/_main.scss | 29 +- assets/sass/main.scss | 60 +- assets/sass/pages/_assessment.scss | 6 +- assets/sass/protocols/_quiz1.scss | 25 +- assets_src/bootstrap-icons/install.sh | 16 + assets_src/bootstrap-icons/package-lock.json | 13 + .../package.json | 6 +- assets_src/bootstrap3/install.sh | 26 - assets_src/bootstrap3/package-lock.json | 13 - assets_src/bootstrap5/install.sh | 23 + assets_src/bootstrap5/package-lock.json | 18 + assets_src/bootstrap5/package.json | 16 + course/static/course/usertagdropdown.js | 82 +- course/templates/course/_course_cards.html | 8 +- .../course/_course_dropdown_menu.html | 8 +- course/templates/course/_course_menu.html | 124 +- course/templates/course/_enroll_form.html | 2 +- course/templates/course/_group_select.html | 8 +- course/templates/course/_siblings.html | 8 +- course/templates/course/course.html | 4 +- course/templates/course/course_base.html | 23 +- course/templates/course/groups.html | 32 +- course/templates/course/index.html | 2 +- .../course/staff/_tag_remove_modal.html | 6 +- .../course/staff/all_submissions_table.html | 14 +- .../course/staff/enroll_students.html | 6 +- .../templates/course/staff/group_delete.html | 54 +- course/templates/course/staff/group_edit.html | 11 +- course/templates/course/staff/groups.html | 8 +- .../templates/course/staff/participants.html | 37 +- .../templates/deviations/_remove_modal.html | 13 +- deviations/templates/deviations/add_dl.html | 26 +- .../templates/deviations/add_submissions.html | 20 +- deviations/templates/deviations/list_dl.html | 24 +- .../deviations/list_submissions.html | 16 +- .../templates/deviations/override_dl.html | 26 +- .../deviations/override_submissions.html | 10 +- .../templates/deviations/remove_dl.html | 6 +- .../deviations/remove_submissions.html | 20 +- .../templates/diploma/_diploma_button.html | 4 +- diploma/templates/diploma/list.html | 12 +- e2e_tests/helpers.py | 8 + e2e_tests/test_compare_submissions.py | 45 +- e2e_tests/test_edit_exercise_page.py | 41 + e2e_tests/test_edit_module_page.py | 41 + e2e_tests/test_example.py | 3 +- e2e_tests/test_points_goal_set.py | 8 +- .../templates/edit_course/batch_assess.html | 8 +- .../templates/edit_course/build_log.html | 2 +- .../templates/edit_course/clone_instance.html | 22 +- .../templates/edit_course/edit_content.html | 113 +- .../edit_course/edit_course_base.html | 36 +- .../edit_course/edit_gitmanager.html | 40 +- .../templates/edit_course/edit_index.html | 18 +- .../templates/edit_course/edit_instance.html | 18 +- .../templates/edit_course/edit_model.html | 84 +- .../templates/edit_course/remove_model.html | 2 +- .../edit_course/submissiontag_add.html | 22 +- .../edit_course/submissiontag_delete.html | 4 +- .../edit_course/submissiontag_edit.html | 6 +- .../edit_course/submissiontag_list.html | 16 +- .../templates/edit_course/usertag_add.html | 6 +- .../templates/edit_course/usertag_delete.html | 4 +- .../templates/edit_course/usertag_edit.html | 6 +- .../templates/edit_course/usertag_list.html | 18 +- .../edit_course/usertagging_add.html | 6 +- exercise/cache/points.py | 2 +- exercise/forms.py | 2 +- exercise/static/exercise/assessment.js | 26 +- exercise/static/exercise/autosave.js | 67 +- .../static/exercise/bootstrap-multiselect.js | 2019 ++++++++++++++++ exercise/static/exercise/chapter.js | 10 +- .../exercise/css/bootstrap-multiselect.css | 48 + .../static/exercise/css/results_staff.css | 25 +- .../exercise/filter_submissions_by_tag.js | 6 +- exercise/static/exercise/language_link.js | 39 +- exercise/static/exercise/poll.js | 2 +- exercise/static/exercise/results_staff.js | 86 +- exercise/static/exercise/user_results.js | 22 +- .../templates/exercise/_category_points.html | 32 +- exercise/templates/exercise/_children.html | 2 +- .../exercise/_duplicate_submission_modal.html | 6 +- .../templates/exercise/_exercise_info.html | 52 +- .../templates/exercise/_exercise_wait.html | 2 +- exercise/templates/exercise/_file_link.html | 8 +- .../templates/exercise/_points_badge.html | 4 +- .../templates/exercise/_points_progress.html | 4 +- .../templates/exercise/_submission_info.html | 6 +- .../templates/exercise/_submission_list.html | 4 +- .../templates/exercise/_submit_progress.html | 6 +- .../templates/exercise/_user_results.html | 76 +- exercise/templates/exercise/_user_toc.html | 10 +- .../templates/exercise/_warnings_overlay.html | 4 +- exercise/templates/exercise/exercise.html | 10 +- .../templates/exercise/exercise_base.html | 110 +- .../templates/exercise/exercise_plain.html | 29 +- .../exercise/staff/_assessment_panel.html | 272 +-- .../exercise/staff/_deviationslink.html | 2 +- .../_late_submission_approval_modal.html | 5 +- .../exercise/staff/_regrade_submissions.html | 2 +- .../exercise/staff/_resubmit_modal.html | 7 +- .../staff/_submission_data_modal.html | 5 +- .../exercise/staff/_submissions_table.html | 34 +- .../staff/_submissions_table_compact.html | 20 +- .../exercise/staff/_submitters_table.html | 26 +- .../templates/exercise/staff/analytics.html | 48 +- .../exercise/staff/edit_submitters.html | 8 +- .../exercise/staff/inspect_submission.html | 2 +- .../templates/exercise/staff/results.html | 289 ++- exercise/templates/exercise/submission.html | 2 +- .../templates/exercise/submission_plain.html | 13 +- .../static/js/external_launcher.js | 47 +- .../templates/external_services/_launch.html | 4 +- .../templates/external_services/_privacy.html | 12 +- .../external_services/edit_menu.html | 6 +- .../external_services/list_menu.html | 14 +- locale/en/LC_MESSAGES/django.po | 15 +- locale/fi/LC_MESSAGES/django.po | 13 +- lti_tool/templates/lti_tool/lti_course.html | 10 +- news/templates/news/edit.html | 20 +- news/templates/news/list.html | 10 +- news/templates/news/user_news.html | 16 +- .../notification/_notification_menu.html | 11 +- .../notification/_notification_messages.html | 4 +- requirements.txt | 3 +- selenium_test/test/edit_exercise_page_test.py | 41 - selenium_test/test/edit_module_page_test.py | 41 - selenium_test/test/locators.py | 15 +- selenium_test/test/teacher_feedback_test.py | 59 - templates/404.html | 6 +- templates/500.html | 2 +- templates/_messages.html | 4 +- templates/ajax_search_select.html | 24 +- templates/base.html | 129 +- userprofile/static/userprofile/copy_token.js | 10 +- .../static/userprofile/extra_logins.js | 37 +- .../local_storage_external_services.js | 2 +- userprofile/templates/userprofile/login.html | 10 +- .../templates/userprofile/privacy.html | 2 +- .../templates/userprofile/profile.html | 8 +- 187 files changed, 10302 insertions(+), 1786 deletions(-) create mode 100644 assets/css/vendor/bootstrap-icons/bootstrap-icons.css create mode 100644 assets/css/vendor/bootstrap-icons/bootstrap-icons.css.map create mode 100644 assets/css/vendor/bootstrap-icons/bootstrap-icons.min.css create mode 100644 assets/css/vendor/bootstrap-icons/bootstrap-icons.min.css.map create mode 100644 assets/css/vendor/bootstrap5/bootstrap-grid.css create mode 100644 assets/css/vendor/bootstrap5/bootstrap-grid.css.map create mode 100644 assets/css/vendor/bootstrap5/bootstrap-reboot.css create mode 100644 assets/css/vendor/bootstrap5/bootstrap-reboot.css.map create mode 100644 assets/css/vendor/bootstrap5/bootstrap-utilities.css create mode 100644 assets/css/vendor/bootstrap5/bootstrap-utilities.css.map create mode 100644 assets/css/vendor/bootstrap5/bootstrap.css create mode 100644 assets/css/vendor/bootstrap5/bootstrap.css.map create mode 100644 assets/fonts/bootstrap-icons/bootstrap-icons.css create mode 100644 assets/fonts/bootstrap-icons/bootstrap-icons.json create mode 100644 assets/fonts/bootstrap-icons/bootstrap-icons.min.css create mode 100644 assets/fonts/bootstrap-icons/bootstrap-icons.scss create mode 100644 assets/fonts/bootstrap-icons/fonts/bootstrap-icons.woff create mode 100644 assets/fonts/bootstrap-icons/fonts/bootstrap-icons.woff2 delete mode 100644 assets/js/bootstrap3.min.js create mode 100644 assets/js/bootstrap5.min.js create mode 100644 assets/js/popper.min.js create mode 100755 assets_src/bootstrap-icons/install.sh create mode 100644 assets_src/bootstrap-icons/package-lock.json rename assets_src/{bootstrap3 => bootstrap-icons}/package.json (66%) delete mode 100755 assets_src/bootstrap3/install.sh delete mode 100644 assets_src/bootstrap3/package-lock.json create mode 100755 assets_src/bootstrap5/install.sh create mode 100644 assets_src/bootstrap5/package-lock.json create mode 100644 assets_src/bootstrap5/package.json create mode 100644 e2e_tests/test_edit_exercise_page.py create mode 100644 e2e_tests/test_edit_module_page.py create mode 100644 exercise/static/exercise/bootstrap-multiselect.js create mode 100644 exercise/static/exercise/css/bootstrap-multiselect.css delete mode 100644 selenium_test/test/edit_exercise_page_test.py delete mode 100644 selenium_test/test/edit_module_page_test.py delete mode 100644 selenium_test/test/teacher_feedback_test.py diff --git a/.gitignore b/.gitignore index 71f1e1b17..8fda04acf 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ aplus/secret_key.py *.sublime-workspace venv/ +venv_aplus/ /static/ /media/ diff --git a/aplus/settings.py b/aplus/settings.py index b9a1e182c..94fe761ed 100644 --- a/aplus/settings.py +++ b/aplus/settings.py @@ -71,14 +71,22 @@ # local_templates/possible_path/template_name.html ########################################################################## SITEWIDE_ALERT_TEXT = None -SITEWIDE_ADVERT = None +SITEWIDE_ADVERT = { + 'not-before': '2025-01-01', # start showing on 1st + 'not-after': '2026-01-04', # last visible date is 3rd + 'title': {'en': "Advert", 'fi': "Mainos"}, + 'text': {'en': "We have open positions", + 'fi': "Meillä on paikkoja"}, + 'href': "https://apluslms.github.io", + 'image': "https://apluslms.github.io/assets/images/apluslogo.png", +} BRAND_NAME = 'A+' BRAND_NAME_LONG = 'Aplus' BRAND_DESCRIPTION = 'Virtual Learning Environment' BRAND_INSTITUTION_NAME = 'Aalto University' BRAND_INSTITUTION_NAME_FI = 'Aalto-yliopisto' -WELCOME_TEXT = 'Welcome to A+ modern learning environment' +WELCOME_TEXT = 'Welcome to A+ modern learning environment' SHIBBOLETH_TITLE_TEXT = 'Aalto University users' SHIBBOLETH_BODY_TEXT = ( 'Log in with your Aalto University user account by clicking on the button below. ' @@ -100,7 +108,7 @@ 'For additional information, please see the privacy notice.' ) -WELCOME_TEXT_FI = 'A+ verkkopohjainen oppimisympäristö' +WELCOME_TEXT_FI = 'A+ verkkopohjainen oppimisympäristö' SHIBBOLETH_TITLE_TEXT_FI = 'Aalto-yliopiston käyttäjät' SHIBBOLETH_BODY_TEXT_FI = ( 'Kirjaudu palveluun Aalto-yliopiston käyttäjätunnuksella alla olevasta painikkeesta. ' @@ -166,7 +174,7 @@ 'django.forms', # 3rd party applications - 'bootstrapform', + 'django_bootstrap5', 'rest_framework', 'rest_framework.authtoken', 'pylti1p3.contrib.django.lti1p3_tool_config', diff --git a/apps/templates/plugins/rss.html b/apps/templates/plugins/rss.html index 6d52c119b..0aaa4bdb3 100644 --- a/apps/templates/plugins/rss.html +++ b/apps/templates/plugins/rss.html @@ -1,4 +1,4 @@ -

{{ title }} [www] [rss]

+

{{ title }} [www] [rss]