diff --git a/Makefile b/Makefile index ca8769f672..07d19c2a41 100644 --- a/Makefile +++ b/Makefile @@ -155,6 +155,8 @@ install-osx-requirements: ## Install OSX specific requirements using Homebrew install-local-ora: ## installs your local ORA2 code into the LMS and Studio python virtualenvs docker exec -t edx.devstack.lms bash -c '. /edx/app/edxapp/venvs/edxapp/bin/activate && cd /edx/app/edxapp/edx-platform && pip uninstall -y ora2 && pip install -e /edx/src/edx-ora2 && pip freeze | grep ora2' docker exec -t edx.devstack.cms bash -c '. /edx/app/edxapp/venvs/edxapp/bin/activate && cd /edx/app/edxapp/edx-platform && pip uninstall -y ora2 && pip install -e /edx/src/edx-ora2 && pip freeze | grep ora2' + docker exec -t edx.devstack.lms bash -c 'kill $$(ps aux | egrep "manage.py ?\w* runserver" | egrep -v "while|grep" | awk "{print \$$2}")' + docker exec -t edx.devstack.cms bash -c 'kill $$(ps aux | egrep "manage.py ?\w* runserver" | egrep -v "while|grep" | awk "{print \$$2}")' install_transifex_client: ## Install the Transifex client # Instaling client will skip CHANGELOG and LICENSE files from git changes diff --git a/openassessment/__init__.py b/openassessment/__init__.py index 625d402e2c..e0ec6036e3 100644 --- a/openassessment/__init__.py +++ b/openassessment/__init__.py @@ -2,4 +2,4 @@ Initialization Information for Open Assessment Module """ -__version__ = '5.5.6' +__version__ = '6.0.0' diff --git a/openassessment/assessment/api/peer.py b/openassessment/assessment/api/peer.py index b555c4a2d7..a2947a985e 100644 --- a/openassessment/assessment/api/peer.py +++ b/openassessment/assessment/api/peer.py @@ -687,7 +687,37 @@ def get_submitted_assessments(submission_uuid, limit=None): raise PeerAssessmentInternalError(error_message) from ex -def get_submission_to_assess(submission_uuid, graded_by): +def get_active_assessment_submission(submission_uuid): + """ + Gets the current active submission being assessed, or None if there is + no active assessment. This will not find a new submission to assess, for + that, call `get_submission_to_assess`. + """ + workflow = PeerWorkflow.get_by_submission_uuid(submission_uuid) + + if not workflow: + raise PeerAssessmentWorkflowError( + "A Peer Assessment Workflow does not exist for the student " + "with submission UUID {}".format(submission_uuid) + ) + + if workflow.is_cancelled: + return None + + active_assessment = workflow.find_active_assessments() + if not active_assessment: + return None + + try: + return sub_api.get_submission(active_assessment.submission_uuid) + except sub_api.SubmissionNotFoundError as ex: + error_message = "Could not find a submission with the uuid %s for student %s in the peer workflow." + error_message_args = (active_assessment.submission_uuid, workflow.student_id) + logger.exception(error_message, error_message_args[0], error_message_args[1]) + raise PeerAssessmentWorkflowError(error_message % error_message_args) from ex + + +def get_submission_to_assess(submission_uuid, graded_by, peek=False): """Get a submission to peer evaluate. Retrieves a submission for assessment for the given student. This will @@ -705,6 +735,8 @@ def get_submission_to_assess(submission_uuid, graded_by): associated Peer Workflow. graded_by (int): The number of assessments a submission requires before it has completed the peer assessment process. + peek (bool): When True, will verify a submission is available, without + creating a workflow to begin grading. Returns: dict: A peer submission for assessment. This contains a 'student_item', @@ -754,14 +786,15 @@ def get_submission_to_assess(submission_uuid, graded_by): if peer_submission_uuid: try: submission_data = sub_api.get_submission(peer_submission_uuid) - PeerWorkflow.create_item(workflow, peer_submission_uuid) - _log_workflow(peer_submission_uuid, workflow) + if not peek: + PeerWorkflow.create_item(workflow, peer_submission_uuid) + _log_workflow(peer_submission_uuid, workflow) return submission_data except sub_api.SubmissionNotFoundError as ex: error_message = "Could not find a submission with the uuid %s for student %s in the peer workflow." - error_meesage_args = (peer_submission_uuid, workflow.student_id) - logger.exception(error_message, error_meesage_args[0], error_meesage_args[1]) - raise PeerAssessmentWorkflowError(error_message % error_meesage_args) from ex + error_message_args = (peer_submission_uuid, workflow.student_id) + logger.exception(error_message, error_message_args[0], error_message_args[1]) + raise PeerAssessmentWorkflowError(error_message % error_message_args) from ex else: logger.info( "No submission found for %s to assess (%s, %s)", diff --git a/openassessment/assessment/api/staff.py b/openassessment/assessment/api/staff.py index 8dbe074d3c..674ff6ab26 100644 --- a/openassessment/assessment/api/staff.py +++ b/openassessment/assessment/api/staff.py @@ -12,7 +12,12 @@ from openassessment.assessment.errors import StaffAssessmentInternalError, StaffAssessmentRequestError from openassessment.assessment.models import Assessment, AssessmentPart, InvalidRubricSelection, StaffWorkflow -from openassessment.assessment.serializers import InvalidRubric, full_assessment_dict, rubric_from_dict +from openassessment.assessment.serializers import ( + InvalidRubric, + full_assessment_dict, + rubric_from_dict, + serialize_assessments, +) from openassessment.assessment.score_type_constants import STAFF_TYPE @@ -462,3 +467,34 @@ def bulk_retrieve_workflow_status(course_id, item_id, submission_uuids=None): return StaffWorkflow.bulk_retrieve_workflow_status( course_id, item_id, submission_uuids ) + + +def get_assessment(submission_uuid): + """ + Retrieve a staff-assessment for a submission_uuid. + + Args: + submission_uuid (str): The submission UUID for we want information for + regarding staff assessment. + + Returns: + assessment (dict) is a serialized Assessment model, or None (if the user has not yet self-assessed) + If multiple submissions or staff-assessments are found, returns the most recent one. + """ + # Retrieve assessments for the submission UUID + # We weakly enforce that number of staff-assessments per submission is <= 1, + # but not at the database level. Someone could take advantage of the race condition + # between checking the number of staff-assessments and creating a new staff-assessment. + # To be safe, we retrieve just the most recent submission. + serialized_assessments = serialize_assessments(Assessment.objects.filter( + score_type=STAFF_TYPE, submission_uuid=submission_uuid + ).order_by('-scored_at')[:1]) + + if not serialized_assessments: + logger.info("No staff-assessment found for submission %s", submission_uuid) + return None + + serialized_assessment = serialized_assessments[0] + logger.info("Retrieved staff-assessment for submission %s", submission_uuid) + + return serialized_assessment diff --git a/openassessment/assessment/models/peer.py b/openassessment/assessment/models/peer.py index f7d5743f3b..838c53d778 100644 --- a/openassessment/assessment/models/peer.py +++ b/openassessment/assessment/models/peer.py @@ -523,6 +523,16 @@ class PeerWorkflowItem(models.Model): # This WorkflowItem was used to determine the final score for the Workflow. scored = models.BooleanField(default=False) + @classmethod + def _get_assessments(cls, submission_uuid, scored): + return Assessment.objects.filter( + pk__in=[ + item.assessment.pk for item in PeerWorkflowItem.objects.filter( + submission_uuid=submission_uuid, scored=scored + ) + ] + ) + @classmethod def get_scored_assessments(cls, submission_uuid): """ @@ -533,15 +543,22 @@ def get_scored_assessments(cls, submission_uuid): Returns: QuerySet of Assessment objects. + """ + return cls._get_assessments(submission_uuid, True) + @classmethod + def get_unscored_assessments(cls, submission_uuid): """ - return Assessment.objects.filter( - pk__in=[ - item.assessment.pk for item in PeerWorkflowItem.objects.filter( - submission_uuid=submission_uuid, scored=True - ) - ] - ) + Return all unscored assessments for a given submission. + + Args: + submission_uuid (str): The UUID of the submission. + + Returns: + QuerySet of Assessment objects. + + """ + return cls._get_assessments(submission_uuid, False) @classmethod def get_bulk_scored_assessments(cls, submission_uuids): diff --git a/openassessment/assessment/test/test_peer.py b/openassessment/assessment/test/test_peer.py index c9a880bbfd..741e8605b5 100644 --- a/openassessment/assessment/test/test_peer.py +++ b/openassessment/assessment/test/test_peer.py @@ -13,6 +13,7 @@ from submissions import api as sub_api from openassessment.assessment.api import peer as peer_api +from openassessment.assessment.errors.peer import PeerAssessmentWorkflowError from openassessment.assessment.models import ( Assessment, AssessmentFeedback, @@ -2054,6 +2055,104 @@ def test_flexible_peer_grading_enabled(self, block_setting, course_override, exp ) assert result == expected_flexible + def test_get_active_assessment(self): + """ + Test for behavior of get_active_assessment + """ + # Three learners and submissions + alice_sub, _ = self._create_student_and_submission('alice', 'alice sub', steps=['peer']) + bob_sub, _ = self._create_student_and_submission('bob', 'bob sub', steps=['peer']) + carlos_sub, _ = self._create_student_and_submission('carlos', 'carlos sub', steps=['peer']) + + # No one has any active assessment currently + assert peer_api.get_active_assessment_submission(alice_sub['uuid']) is None + assert peer_api.get_active_assessment_submission(bob_sub['uuid']) is None + assert peer_api.get_active_assessment_submission(carlos_sub['uuid']) is None + + # Alice requests a peer to grade and is assigned bob + sub = peer_api.get_submission_to_assess(alice_sub['uuid'], 3) + assert sub['uuid'] == bob_sub['uuid'] + + # Alice's active assessment is now Bob, and Bob is unaffected + assert peer_api.get_active_assessment_submission(alice_sub['uuid'])['uuid'] == bob_sub['uuid'] + assert peer_api.get_active_assessment_submission(bob_sub['uuid']) is None + + # Alice assesses Bob and then should have no active assessment + peer_api.create_assessment( + alice_sub['uuid'], + 'alice', + ASSESSMENT_DICT['options_selected'], + ASSESSMENT_DICT['criterion_feedback'], + ASSESSMENT_DICT['overall_feedback'], + RUBRIC_DICT, + 3 + ) + assert peer_api.get_active_assessment_submission(alice_sub['uuid']) is None + + # Alice requests a new peer to assess and gets Carlos, who is now her active assessment + sub = peer_api.get_submission_to_assess(alice_sub['uuid'], 3) + assert sub['uuid'] == carlos_sub['uuid'] + assert peer_api.get_active_assessment_submission(alice_sub['uuid'])['uuid'] == carlos_sub['uuid'] + + # Assess Carlos, active assessment is now None + peer_api.create_assessment( + alice_sub['uuid'], + 'alice', + ASSESSMENT_DICT['options_selected'], + ASSESSMENT_DICT['criterion_feedback'], + ASSESSMENT_DICT['overall_feedback'], + RUBRIC_DICT, + 3 + ) + assert peer_api.get_active_assessment_submission(alice_sub['uuid']) is None + + # There are no more peers to assess, and the returned None does not affect the active assessment + assert peer_api.get_submission_to_assess(alice_sub['uuid'], 3) is None + assert peer_api.get_active_assessment_submission(alice_sub['uuid']) is None + + def test_get_active_assessment_cancelled(self): + # Two learners and submissions + alice_sub, _ = self._create_student_and_submission('alice', 'alice sub', steps=['peer']) + bob_sub, _ = self._create_student_and_submission('bob', 'bob sub', steps=['peer']) + + # Alice requests a peer to grade and is assigned bob + sub = peer_api.get_submission_to_assess(alice_sub['uuid'], 3) + assert sub['uuid'] == bob_sub['uuid'] + + # Alice is then cancelled, so then her active assessment is None + workflow_api.cancel_workflow( + alice_sub['uuid'], "cancel", "1", STEP_REQUIREMENTS, COURSE_SETTINGS + ) + assert peer_api.get_active_assessment_submission(alice_sub['uuid']) is None + + def test_get_active_assessment_nonexistant(self): + # If we request the active assessment submission for a nonexistant workflow, + # raise an error + with self.assertRaises(PeerAssessmentWorkflowError): + peer_api.get_active_assessment_submission('nonexistant-uuid') + + def test_get_active_assessment_error(self): + # Two learners and submissions + alice_sub, _ = self._create_student_and_submission('alice', 'alice sub', steps=['peer']) + bob_sub, bob_item = self._create_student_and_submission('bob', 'bob sub', steps=['peer']) + + # Alice requests a peer to grade and is assigned bob + sub = peer_api.get_submission_to_assess(alice_sub['uuid'], 3) + assert sub['uuid'] == bob_sub['uuid'] + + # Delete bob's submission to induce an error + sub_api.reset_score( + bob_item['student_id'], + bob_item['course_id'], + bob_item['item_id'], + clear_state=True, + emit_signal=False + ) + + # Expected error is raised + with self.assertRaises(PeerAssessmentWorkflowError): + peer_api.get_active_assessment_submission(alice_sub['uuid']) + class PeerWorkflowTest(CacheResetTest): """ diff --git a/openassessment/conf/locale/ar/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/ar/LC_MESSAGES/djangojs.po index a65388038e..f0e1c4aa32 100644 --- a/openassessment/conf/locale/ar/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/ar/LC_MESSAGES/djangojs.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Ghassan Maslamani , 2021\n" "Language-Team: Arabic (http://app.transifex.com/open-edx/edx-platform/language/ar/)\n" diff --git a/openassessment/conf/locale/ar_SA/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/ar_SA/LC_MESSAGES/djangojs.po index 8823e66a0e..3994bfb350 100644 --- a/openassessment/conf/locale/ar_SA/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/ar_SA/LC_MESSAGES/djangojs.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: NELC Open edX Translation , 2020\n" "Language-Team: Arabic (Saudi Arabia) (http://app.transifex.com/open-edx/edx-platform/language/ar_SA/)\n" diff --git a/openassessment/conf/locale/cs/LC_MESSAGES/django.po b/openassessment/conf/locale/cs/LC_MESSAGES/django.po index 3566136ed4..5c98d13b58 100644 --- a/openassessment/conf/locale/cs/LC_MESSAGES/django.po +++ b/openassessment/conf/locale/cs/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-17 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:03+0000\n" "Last-Translator: Jiří Podhorecký, 2023\n" "Language-Team: Czech (http://app.transifex.com/open-edx/edx-platform/language/cs/)\n" diff --git a/openassessment/conf/locale/cs/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/cs/LC_MESSAGES/djangojs.po index b2ebe97f5b..5802aff445 100644 --- a/openassessment/conf/locale/cs/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/cs/LC_MESSAGES/djangojs.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Jiří Podhorecký, 2023\n" "Language-Team: Czech (http://app.transifex.com/open-edx/edx-platform/language/cs/)\n" diff --git a/openassessment/conf/locale/da/LC_MESSAGES/django.mo b/openassessment/conf/locale/da/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..c457278b25 Binary files /dev/null and b/openassessment/conf/locale/da/LC_MESSAGES/django.mo differ diff --git a/openassessment/conf/locale/da/LC_MESSAGES/django.po b/openassessment/conf/locale/da/LC_MESSAGES/django.po new file mode 100644 index 0000000000..001ee30974 --- /dev/null +++ b/openassessment/conf/locale/da/LC_MESSAGES/django.po @@ -0,0 +1,2519 @@ +# #-#-#-#-# django.po (edx-ora2) #-#-#-#-# +# edX translation file +# Copyright (C) 2018 edX +# This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE. +# +# Translators: +# Anders Haugaard Iversen , 2016 +# Henrik Mondrup , 2015 +# Pia Jensen, 2023 +msgid "" +msgstr "" +"Project-Id-Version: edx-platform\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-08 18:36+0000\n" +"PO-Revision-Date: 2014-06-11 13:03+0000\n" +"Last-Translator: Pia Jensen, 2023\n" +"Language-Team: Danish (http://app.transifex.com/open-edx/edx-platform/language/da/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: assessment/api/student_training.py:179 +msgid "Could not parse serialized rubric" +msgstr "" + +#: assessment/api/student_training.py:191 +msgid "" +"If your assignment includes a learner training step, the rubric must have at" +" least one criterion, and that criterion must have at least one option." +msgstr "" + +#: assessment/api/student_training.py:203 +#, python-brace-format +msgid "Example {example_number} has a validation error: {error}" +msgstr "" + +#: assessment/api/student_training.py:217 +#, python-brace-format +msgid "" +"Example {example_number} has an invalid option for \"{criterion_name}\": " +"\"{option_name}\"" +msgstr "" + +#: assessment/api/student_training.py:227 +#, python-brace-format +msgid "Example {example_number} has an extra option for \"{criterion_name}\"" +msgstr "" + +#: assessment/api/student_training.py:240 +#, python-brace-format +msgid "Example {example_number} is missing an option for \"{criterion_name}\"" +msgstr "" + +#: data.py:533 +#, python-brace-format +msgid "Criterion {number}: {label}" +msgstr "" + +#: data.py:535 +#, python-brace-format +msgid "Points {number}" +msgstr "" + +#: data.py:536 +#, python-brace-format +msgid "Median Score {number}" +msgstr "" + +#: data.py:537 +#, python-brace-format +msgid "Feedback {number}" +msgstr "" + +#: data.py:866 +msgid "Item ID" +msgstr "" + +#: data.py:867 +msgid "Submission ID" +msgstr "" + +#: data.py:879 +msgid "Anonymized Student ID" +msgstr "" + +#: data.py:910 +msgid "Assessment ID" +msgstr "" + +#: data.py:911 +msgid "Assessment Scored Date" +msgstr "" + +#: data.py:912 +msgid "Assessment Scored Time" +msgstr "" + +#: data.py:913 +msgid "Assessment Type" +msgstr "" + +#: data.py:914 +msgid "Anonymous Scorer Id" +msgstr "" + +#: data.py:916 +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:59 +msgid "Overall Feedback" +msgstr "" + +#: data.py:917 +msgid "Assessment Score Earned" +msgstr "" + +#: data.py:918 +msgid "Assessment Scored At" +msgstr "" + +#: data.py:919 +msgid "Date/Time Final Score Given" +msgstr "" + +#: data.py:920 +msgid "Final Score Earned" +msgstr "" + +#: data.py:921 +msgid "Final Score Possible" +msgstr "" + +#: data.py:922 +msgid "Feedback Statements Selected" +msgstr "" + +#: data.py:923 +msgid "Feedback on Assessment" +msgstr "" + +#: data.py:925 +msgid "Response Files" +msgstr "" + +#: data.py:1316 +msgid "No description provided." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit.html:28 +msgid "Save" +msgstr "Gem" + +#: templates/openassessmentblock/edit/oa_edit.html:32 +msgid "Cancel" +msgstr "Annuller" + +#: templates/openassessmentblock/edit/oa_edit_assessment_steps.html:6 +msgid "" +"Open Response Assessments allow you to configure single or multiple steps in" +" a rubric based open response assessment sequence. The steps available below" +" can be enabled, disable, and ordered for a flexible set of pedagogical " +"needs." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:5 +msgid "Display Name " +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:8 +msgid "The display name for this component." +msgstr "Visningsnavnet for denne komponent." + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:12 +msgid "Text Response" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:20 +msgid "" +"Specify whether learners must include a text based response to this " +"problem's prompt." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:25 +msgid "Response Editor" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:33 +msgid "" +"Select which editor learners will use to include a text based response to " +"this problem's prompt." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:38 +msgid "File Uploads Response" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:46 +msgid "" +"Specify whether learners are able to upload files as a part of their " +"response." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:50 +msgid "Allow Multiple Files" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:52 +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:93 +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:131 +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:157 +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:45 +msgid "False" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:53 +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:94 +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:132 +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:158 +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:46 +msgid "True" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:56 +msgid "" +"Specify whether learners can upload more than one file. This has no effect " +"if File Uploads Response is set to None. This is automatically set to True " +"for Team Assignments. " +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:58 +msgid "File Upload Types" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:60 +msgid "PDF or Image Files" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:61 +msgid "Image Files" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:62 +msgid "Custom File Types" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:66 +msgid "" +"Specify whether learners can submit files along with their text responses." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:70 +msgid "File Types" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:79 +msgid "" +"Enter the file extensions, separated by commas, that you want learners to be" +" able to upload. For example: pdf,doc,docx." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:84 +msgid "" +"To add more file extensions, select Custom File Types and enter the full " +"list of acceptable file extensions to be included." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:91 +msgid "Allow LaTeX Responses" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:97 +msgid "Specify whether learners can write LaTeX formatted strings" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:102 +#: templates/openassessmentblock/leaderboard/oa_leaderboard_show.html:8 +#: templates/openassessmentblock/leaderboard/oa_leaderboard_waiting.html:10 +msgid "Top Responses" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:104 +msgid " (Disabled)" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:117 +msgid "" +"Specify the number of top scoring responses to display after the learner has" +" submitted a response. Valid numbers are 0 to 99. If the number is 0, the " +"Top Responses section does not appear to learners." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:122 +msgid "When Teams Enabled is set to true, Top Responses will be disabled." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:129 +msgid "Teams Enabled" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:136 +msgid "Specify whether team submissions are allowed for this response." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:141 +msgid "Select Team-Set" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:155 +msgid "Show Rubric During Response" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:162 +msgid "" +"Specify whether learners can see the rubric while they are working on their " +"response." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:6 +#: templates/openassessmentblock/staff_area/oa_student_info.html:122 +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:25 +msgid "Criterion" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:7 +msgid "You cannot delete a criterion after the assignment has been released." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:9 +#: templates/openassessmentblock/edit/oa_edit_option.html:7 +#: templates/openassessmentblock/edit/oa_edit_prompt.html:10 +#: templates/openassessmentblock/edit/oa_training_example.html:10 +msgid "Remove" +msgstr "Fjern" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:17 +msgid "Criterion Name" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:29 +msgid "Criterion Prompt" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:44 +msgid "Add Option" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:52 +msgid "Feedback for This Criterion" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:54 +#: xblock/studio_mixin.py:57 +msgid "None" +msgstr "Ingen" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:55 +#: xblock/studio_mixin.py:56 +msgid "Optional" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:56 +#: templates/openassessmentblock/oa_rubric.html:13 +#: templates/openassessmentblock/student_training/student_training.html:93 +#: xblock/studio_mixin.py:55 +msgid "Required" +msgstr "Nødvendig" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:61 +msgid "" +"Select one of the options above. This describes whether or not the reviewer " +"will have to provide criterion feedback." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:3 +msgid "Open Response Assessment" +msgstr "Åbn svarvurdering" + +#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:8 +#: templates/openassessmentblock/edit/oa_edit_prompt.html:7 +msgid "Prompt" +msgstr "Prompt" + +#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:15 +msgid "Rubric" +msgstr "Rubrik" + +#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:22 +msgid "Schedule" +msgstr "Tidsplan" + +#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:31 +msgid "Assessment steps" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:38 +msgid "Settings" +msgstr "Indstillinger" + +#: templates/openassessmentblock/edit/oa_edit_option.html:5 +msgid "Option" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_option.html:16 +msgid "Option Name" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_option.html:29 +msgid "Option Points" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_option.html:42 +msgid "Option Explanation" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:10 +msgid "Step: Peer Assessment" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:15 +msgid "" +"Peer Assessment allows students to provide feedback to other students and " +"also receive feedback from others in their final grade. Often, though not " +"always, this step is preceded by Self Assessment or Learner Training steps." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:18 +msgid "" +"Configuration: For this step to be configured you must specify the number of" +" peer reviews a student will be assessed with, and the number of peer a " +"student must grade. Additional options can be specified." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:23 +msgid "View Options & Configuration" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:29 +msgid "Must Grade" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:32 +msgid "" +"Specify the number of peer assessments that each learner must complete. " +"Valid numbers are 1 to 99." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:36 +msgid "Graded By" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:39 +msgid "" +"Specify the number of learners that each response must be assessed by. Valid" +" numbers are 1 to 99." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:43 +msgid "Enable Flexible Peer Grade Averaging" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:49 +#, python-format +msgid "" +"When enabled, learners who have received at least 30%% of the required \\" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:53 +msgid "" +"This feature is being enabled by the course-level setting. It can be found " +"under the Open Response Assessment Settings card on the Pages & Resources " +"studio page." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:5 +msgid "Peer Assessment Deadlines" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:10 +#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:10 +msgid "Start Date" +msgstr "Start dato" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:19 +#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:19 +msgid "Start Time" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:27 +msgid "The date and time when learners can begin assessing peer responses." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:31 +#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:31 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:119 +msgid "Due Date" +msgstr "Forfaldsdato" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:40 +#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:40 +msgid "Due Time" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:48 +msgid "The date and time when all peer assessments must be complete." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_prompt.html:8 +msgid "You cannot delete a prompt after the assignment has been released." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_prompts.html:10 +msgid "" +"Prompts. Replace the sample text with your own text. For more information, " +"see the ORA documentation." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_prompts.html:22 +msgid "Add Prompt" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_rubric.html:14 +msgid "" +"Rubrics are made up of criteria, which usually contain one or more options. " +"Each option has a point value. This template contains two sample criteria " +"and their options. Replace the sample text with your own text. For more " +"information, see the ORA documentation." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_rubric.html:29 +msgid "Add Criterion" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_rubric.html:35 +msgid "Feedback for This Response" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_rubric.html:40 +msgid "Feedback Instructions" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_rubric.html:44 +msgid "" +"Encourage learners to provide feedback on the response they have graded. You" +" can replace the sample text with your own." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_rubric.html:49 +msgid "Default Feedback Text" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_rubric.html:53 +msgid "" +"Enter feedback text that learners will see before they enter their own " +"feedback. Use this text to show learners a good example peer assessment." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:5 +msgid "Deadlines Configuration" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:9 +msgid "Select a deadline configuration option" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:13 +msgid " NEW" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:19 +msgid "Configure deadlines manually" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:23 +msgid "Match deadlines to the subsection due date" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:27 +msgid "Match deadlines to the course end date" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:30 +msgid "Learn more about open response date settings" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:40 +msgid "Response Start Date" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:53 +msgid "Response Start Time" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:62 +msgid "The date and time when learners can begin submitting responses." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:70 +msgid "Response Due Date" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:83 +msgid "Response Due Time" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:92 +msgid "The date and time when learners can no longer submit responses." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_self_assessment.html:8 +msgid "Step: Self Assessment" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_self_assessment.html:12 +msgid "" +"Self Assessment asks learners to grade their own submissions against the " +"rubric." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:5 +msgid "Self Assessment Deadlines" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:27 +msgid "The date and time when learners can begin assessing their responses." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:48 +msgid "The date and time when all self assessments must be complete." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_staff_assessment.html:8 +msgid "Step: Staff Assessment" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_staff_assessment.html:12 +msgid "" +"Staff Assessment gates sets the final grade for students if enabled with " +"other steps, though it can also be used as a standalone step." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_student_training.html:9 +msgid "Step: Learner Training" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_student_training.html:14 +msgid "" +"Learner Training is used to help students practice grading a simulated peer " +"submission in order to train them on the rubric and ensure learner's " +"understand the rubric for either Self or Peer Assessment steps." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_student_training.html:17 +msgid "" +"Configuration: For this step to be fully configured you must provide one or " +"more graded sample responses. Learners must then match this instructor score" +" to advance and are provided feedback when their score doesn't match the " +"sample response." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_student_training.html:22 +msgid "View / Add Sample Responses" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_student_training.html:32 +msgid "Add Sample Response" +msgstr "" + +#: templates/openassessmentblock/edit/oa_rubric_reuse.html:4 +msgid "Clone Rubric" +msgstr "" + +#: templates/openassessmentblock/edit/oa_rubric_reuse.html:7 +msgid "" +"To clone a rubric from an existing published or unpublished draft, you can " +"search by the Block ID. Note that cloning is one-way, meaning changes made " +"after cloning will only affect the rubric being modified, and will not " +"modify any rubric it was cloned from." +msgstr "" + +#: templates/openassessmentblock/edit/oa_rubric_reuse.html:9 +msgid "Block ID For this ORA:" +msgstr "" + +#: templates/openassessmentblock/edit/oa_rubric_reuse.html:19 +msgid "Block ID" +msgstr "" + +#: templates/openassessmentblock/edit/oa_rubric_reuse.html:21 +msgid "No other Open Response Assessments found in course" +msgstr "" + +#: templates/openassessmentblock/edit/oa_rubric_reuse.html:31 +msgid "Clone" +msgstr "" + +#: templates/openassessmentblock/edit/oa_rubric_reuse.html:37 +msgid "Rubric Successfully Cloned from Block ID: " +msgstr "" + +#: templates/openassessmentblock/edit/oa_training_example.html:7 +msgid "Scored Response" +msgstr "" + +#: templates/openassessmentblock/edit/oa_training_example.html:16 +msgid "Response Score" +msgstr "" + +#: templates/openassessmentblock/edit/oa_training_example.html:27 +msgid "Response" +msgstr "Svar" + +#: templates/openassessmentblock/edit/oa_training_example_criterion.html:10 +msgid "Not Selected" +msgstr "Ikke valg" + +#: templates/openassessmentblock/edit/oa_training_example_criterion.html:15 +#: templates/openassessmentblock/oa_rubric.html:43 +#: templates/openassessmentblock/student_training/student_training.html:128 +msgid "points" +msgstr "" + +#: templates/openassessmentblock/grade/oa_assessment_feedback.html:8 +#, python-format +msgid "" +"\n" +" %(start_tag)s%(title)s%(end_tag)s%(start_grade_tag)s - %(grade)s%(end_tag)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/grade/oa_assessment_title.html:7 +#, python-format +msgid "" +"\n" +" %(assessment_title)s - %(points)s point\n" +" " +msgid_plural "" +"\n" +" %(assessment_title)s - %(points)s points\n" +" " +msgstr[0] "" +msgstr[1] "" + +#: templates/openassessmentblock/grade/oa_assessment_title.html:24 +#, python-format +msgid "More information about %(name)s" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_cancelled.html:14 +#: templates/openassessmentblock/grade/oa_grade_complete.html:15 +#: templates/openassessmentblock/grade/oa_grade_complete.html:26 +#: templates/openassessmentblock/grade/oa_grade_incomplete.html:14 +#: templates/openassessmentblock/grade/oa_grade_not_started.html:14 +#: templates/openassessmentblock/grade/oa_grade_waiting.html:14 +msgid "Your Grade" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_cancelled.html:19 +#, python-format +msgid "" +"\n" +" %(points_earned)s out of %(points_possible)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_cancelled.html:38 +msgid "Your submission has been cancelled." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:19 +#, python-format +msgid "" +"\n" +" %(points_earned)s out of %(points_possible)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:38 +#: templates/openassessmentblock/response/oa_response.html:29 +msgid "Your Response" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:41 +msgid "Your Upload" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:46 +msgid "Assessments of Your Response" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:50 +#: templates/openassessmentblock/grade/oa_grade_complete.html:132 +#: templates/openassessmentblock/grade/oa_grade_incomplete.html:28 +#: templates/openassessmentblock/grade/oa_grade_waiting.html:28 +#: templates/openassessmentblock/message/oa_message_cancelled.html:4 +#: templates/openassessmentblock/message/oa_message_closed.html:4 +#: templates/openassessmentblock/message/oa_message_complete.html:4 +#: templates/openassessmentblock/message/oa_message_incomplete.html:4 +#: templates/openassessmentblock/peer/oa_peer_closed.html:33 +#: templates/openassessmentblock/peer/oa_peer_complete.html:30 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:40 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html:34 +#: templates/openassessmentblock/peer/oa_peer_waiting.html:34 +#: templates/openassessmentblock/response/oa_response_cancelled.html:31 +#: templates/openassessmentblock/response/oa_response_closed.html:29 +#: templates/openassessmentblock/response/oa_response_submitted.html:30 +#: templates/openassessmentblock/response/oa_response_team_already_submitted.html:25 +#: templates/openassessmentblock/self/oa_self_closed.html:30 +#: templates/openassessmentblock/student_training/student_training_closed.html:27 +msgid "Status" +msgstr "Status" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:65 +msgid "Overall Grade" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:70 +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:28 +msgid "Points" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:96 +msgid "Additional comments on your response" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:117 +msgid "Provide feedback on peer assessments" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:126 +msgid "Submitting Feedback" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:134 +msgid "" +"Your feedback has been submitted. Course staff will be able to see this " +"feedback when they review course records." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:140 +msgid "" +"Course staff will be able to see any feedback that you provide here when " +"they review course records." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:146 +msgid "" +"Select the statements below that best reflect your experience with peer " +"assessments." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:155 +msgid "These assessments were useful." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:164 +msgid "These assessments were not useful." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:173 +msgid "I disagree with one or more of the peer assessments of my response." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:182 +msgid "Some comments I received were inappropriate." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:187 +msgid "" +"Provide feedback on the grade or comments that you received from your peers." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:190 +msgid "I feel the feedback I received was..." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:200 +msgid "We could not submit your feedback" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:206 +msgid "Submit feedback on peer assessments" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_incomplete.html:16 +msgid "Not Completed" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_incomplete.html:33 +msgid "You have not completed all the steps of this problem." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_not_started.html:16 +msgid "Not Started" +msgstr "Ikke startet" + +#: templates/openassessmentblock/grade/oa_grade_not_started.html:27 +msgid "You have not started this problem yet." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_waiting.html:16 +msgid "Waiting for Assessments" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_waiting.html:33 +msgid "" +"You have completed your steps in the assignment, but some assessments still " +"need to be done on your response. When the assessments of your response are " +"complete, you will see feedback from everyone who assessed your response, " +"and you will receive your final grade." +msgstr "" + +#: templates/openassessmentblock/instructor_dashboard/oa_grade_available_responses.html:15 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:16 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:18 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:153 +msgid "Grade Available Responses" +msgstr "" + +#: templates/openassessmentblock/instructor_dashboard/oa_grade_available_responses.html:26 +msgid "" +"Grade Available Responses is unavailable. This item is not configured for " +"Staff Assessment." +msgstr "" + +#: templates/openassessmentblock/instructor_dashboard/oa_listing.html:6 +msgid "Please wait" +msgstr "Vent venligst" + +#: templates/openassessmentblock/instructor_dashboard/oa_waiting_step_details.html:15 +msgid "Waiting Step Details" +msgstr "" + +#: templates/openassessmentblock/instructor_dashboard/oa_waiting_step_details.html:24 +msgid "" +"Waiting Step details view is unavailable. This item is not configured for " +"peer assessments." +msgstr "" + +#: templates/openassessmentblock/leaderboard/oa_leaderboard_show.html:20 +#, python-format +msgid "%(num_points)s points" +msgstr "%(num_points)s points" + +#: templates/openassessmentblock/leaderboard/oa_leaderboard_show.html:24 +#: templates/openassessmentblock/peer/oa_peer_assessment.html:74 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:53 +msgid "Your peer's response to the prompt above" +msgstr "" + +#: templates/openassessmentblock/leaderboard/oa_leaderboard_waiting.html:19 +msgid "" +"After you complete all the steps of this assignment, you can see the top-" +"scoring responses from your peers." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_cancelled.html:8 +msgid "" +"Your team’s submission has been cancelled. Your team will receive a grade of" +" zero unless course staff resets your assessment to allow the team to " +"resubmit a response." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_cancelled.html:10 +msgid "" +"Your submission has been cancelled. You will receive a grade of zero unless " +"course staff resets your assessment to allow you to resubmit a response." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_closed.html:8 +msgid "" +"This task is not yet available. Check back to complete the assignment once " +"this section has opened." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_closed.html:10 +msgid "" +"This assignment has closed. One or more deadlines for this assignment have " +"passed. You will receive an incomplete grade for this assignment." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_complete.html:8 +msgid "" +"You have completed this assignment. Your final grade will be available when " +"the assessments of your response are complete." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_complete.html:10 +msgid "" +"You have completed this assignment. Review your grade and your assessment " +"details." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:9 +msgid "" +"This assignment is in progress. Learner training will close soon. Complete " +"the learner training step to move on." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:11 +msgid "" +"This assignment is in progress. Complete the learner training step to move " +"on." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:15 +#: templates/openassessmentblock/message/oa_message_incomplete.html:33 +msgid "" +"This assignment is in progress. Check back later when the assessment period " +"has started." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:20 +#, python-format +msgid "" +"\n" +" %(start_strong)sThis assignment is in progress. The self assessment step will close soon.%(end_strong)s You still need to complete the %(start_link)sself assessment%(end_link)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:24 +#, python-format +msgid "" +"\n" +" This assignment is in progress. You still need to complete the %(start_link)sself assessment%(end_link)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:38 +#, python-format +msgid "" +"\n" +" This assignment is in progress.%(start_strong)sThe peer assessment step will close soon.%(end_strong)s All submitted peer responses have been assessed. Check back later to see if more learners have submitted responses. You still need to complete the %(start_link)speer assessment%(end_link)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:42 +#, python-format +msgid "" +"\n" +" This assignment is in progress. All submitted peer responses have been assessed. Check back later to see if more learners have submitted responses. You still need to complete the %(start_link)speer assessment%(end_link)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:46 +#, python-format +msgid "" +"\n" +" This assignment is in progress. %(start_strong)sThe peer assessment step will close soon.%(end_strong)s You still need to complete the %(start_link)speer assessment%(end_link)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:50 +#, python-format +msgid "" +"\n" +" This assignment is in progress. You still need to complete the %(start_link)speer assessment%(end_link)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_no_team.html:4 +msgid "Team membership is required to view this assignment" +msgstr "" + +#: templates/openassessmentblock/message/oa_message_no_team.html:7 +#, python-format +msgid "" +"\n" +" This is a team assignment for team-set \"%(teamset_name)s\".\n" +" You are currently not on a team in team-set \"%(teamset_name)s\".\n" +" You must be on a team in team-set \"%(teamset_name)s\" to access this team assignment.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_open.html:7 +#, python-format +msgid "" +"\n" +" Assignment submissions will close soon. To receive a grade, first provide a response to the prompt, then complete the steps below the %(start_tag)sYour Response%(end_tag)s field.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_open.html:11 +#, python-format +msgid "" +"\n" +" This assignment has several steps. In the first step, you'll provide a response to the prompt. The other steps appear below the %(start_tag)sYour Response%(end_tag)s field.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_unavailable.html:4 +msgid "Instructions Unavailable" +msgstr "" + +#: templates/openassessmentblock/message/oa_message_unavailable.html:6 +msgid "The instructions for this step could not be loaded." +msgstr "" + +#: templates/openassessmentblock/oa_base.html:15 +msgid "" +"This assignment has several steps. In the first step, you'll provide a " +"response to the prompt. The other steps appear below the Your Response " +"field." +msgstr "" + +#: templates/openassessmentblock/oa_base.html:36 +msgid "Loading" +msgstr "Indlæser" + +#: templates/openassessmentblock/oa_latex_preview.html:6 +msgid "Preview in LaTeX" +msgstr "" + +#: templates/openassessmentblock/oa_latex_preview.html:9 +msgid "Click to preview your submission in LaTeX." +msgstr "" + +#: templates/openassessmentblock/oa_latex_preview.html:14 +msgid "Preview Response" +msgstr "" + +#: templates/openassessmentblock/oa_rubric.html:53 +msgid "Comments" +msgstr "Bemærkninger" + +#: templates/openassessmentblock/oa_submission_answer.html:8 +msgid "The question for this section" +msgstr "" + +#: templates/openassessmentblock/oa_team_uploaded_files.html:9 +msgid "Files that were uploaded by your teammates:" +msgstr "" + +#: templates/openassessmentblock/oa_team_uploaded_files.html:28 +#: templates/openassessmentblock/oa_uploaded_file.html:34 +msgid "View the files associated with this submission:" +msgstr "" + +#: templates/openassessmentblock/oa_team_uploaded_files.html:32 +msgid "Uploaded by" +msgstr "Uploaded af" + +#: templates/openassessmentblock/oa_uploaded_file.html:16 +msgid "Files that were uploaded by you:" +msgstr "" + +#: templates/openassessmentblock/oa_uploaded_file.html:48 +msgid "" +"Caution: These files were uploaded by another course learner and have not " +"been verified, screened, approved, reviewed, or endorsed by the site " +"administrator. If you access the files, you do so at your own risk.)" +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_assessment.html:26 +msgid "Assess Peers" +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "available August 13th, 2014 00:00 UTC (in +#. 5 days and 45 minutes)" +#: templates/openassessmentblock/peer/oa_peer_assessment.html:34 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "due August 13th, 2014 00:00 UTC (in 5 days +#. and 45 minutes)" +#: templates/openassessmentblock/peer/oa_peer_assessment.html:41 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_assessment.html:51 +#, python-format +msgid "" +"\n" +" In Progress (%(review_number)s of %(num_must_grade)s)\n" +" " +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_assessment.html:65 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:45 +msgid "Read and assess the following response from one of your peers." +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_assessment.html:77 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:56 +#: templates/openassessmentblock/self/oa_self_assessment.html:60 +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:45 +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:38 +#: templates/openassessmentblock/staff_area/oa_student_info.html:63 +msgid "Associated Files" +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_assessment.html:91 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:70 +#: templates/openassessmentblock/self/oa_self_assessment.html:71 +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:57 +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:50 +msgid "We could not submit your assessment" +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_cancelled.html:19 +#: templates/openassessmentblock/response/oa_response_cancelled.html:21 +#: templates/openassessmentblock/self/oa_self_cancelled.html:21 +#: templates/openassessmentblock/student_training/student_training_cancelled.html:18 +msgid "Cancelled" +msgstr "Aflyst" + +#: templates/openassessmentblock/peer/oa_peer_closed.html:20 +#, python-format +msgid "" +"\n" +" Incomplete (%(num_graded)s of %(num_must_grade)s)\n" +" " +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_closed.html:35 +msgid "" +"The due date for this step has passed. This step is now closed. You can no " +"longer complete peer assessments or continue with this assignment, and you " +"will receive a grade of Incomplete." +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_complete.html:13 +msgid "Completed" +msgstr "Fuldført" + +#: templates/openassessmentblock/peer/oa_peer_complete.html:31 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:41 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html:36 +msgid "" +"You have successfully completed all of the required peer assessments for " +"this assignment. You may assess additional peer responses if you want to. " +"Completing additional assessments will not affect your final grade." +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_complete.html:36 +msgid "We could not retrieve additional submissions for assessment" +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_complete.html:43 +msgid "Continue Assessing Peers" +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:26 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html:20 +#, python-format +msgid "" +"\n" +" Complete (%(num_graded)s)\n" +" " +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html:38 +msgid "" +"All submitted peer responses have been assessed. Check back later to see if " +"more learners have submitted responses." +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_unavailable.html:16 +#: templates/openassessmentblock/response/oa_response_unavailable.html:17 +#: templates/openassessmentblock/self/oa_self_unavailable.html:17 +#: templates/openassessmentblock/student_training/student_training_unavailable.html:16 +msgid "Not Available" +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_waiting.html:20 +#, python-format +msgid "" +"\n" +" In Progress (%(review_number)s of %(num_must_grade)s)\n" +" " +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_waiting.html:37 +msgid "" +"All available peer responses have been assessed. Check back later to see if " +"more learners have submitted responses. You will receive your grade after " +"you've completed all the steps for this problem and your peers have assessed" +" your response." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:27 +msgid "Your Team's Response" +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "available August 13th, 2014 (in 5 days and +#. 45 minutes)" +#: templates/openassessmentblock/response/oa_response.html:39 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "due August 13th, 2014 (in 5 days and 45 +#. minutes)" +#: templates/openassessmentblock/response/oa_response.html:46 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:54 +#: templates/openassessmentblock/self/oa_self_assessment.html:46 +msgid "In Progress" +msgstr "Behandles" + +#: templates/openassessmentblock/response/oa_response.html:66 +msgid "Enter your team's response to the prompt." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:68 +msgid "" +"\n" +" Your work will save automatically and you can return to complete your team's response at any time before the due date\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:81 +msgid "" +"\n" +" Your work will save automatically and you can return to complete your team's response at any time.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:86 +msgid "" +"After you submit a response on behalf of your team, it cannot be edited." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:89 +msgid "Enter your response to the prompt." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:92 +msgid "" +"Your work will save automatically and you can return to complete your " +"response at any time before the subsection due date " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:94 +msgid "" +"Your work will save automatically and you can return to complete your " +"response at any time before the course ends " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:96 +msgid "" +"Your work will save automatically and you can return to complete your " +"response at any time before the due date " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:108 +msgid "" +"Your work will save automatically and you can return to complete your " +"response at any time." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:110 +msgid "After you submit your response, you cannot edit it" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:120 +msgid "What will this assignment be graded on?" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:134 +msgid "The prompt for this section" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:148 +msgid "You are on team " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:150 +msgid "Team Members: " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:155 +#, python-format +msgid "" +"\n" +" %(team_members_with_external_submissions)s\n" +" have/has already submitted a response to this assignment with another team,\n" +" and will not be a part of your team's submission or assignment grade.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:171 +msgid "Team Response " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:173 +msgid "Your Response " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:177 +#: templates/openassessmentblock/response/oa_response.html:247 +msgid "(Required)" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:179 +#: templates/openassessmentblock/response/oa_response.html:249 +msgid "(Optional)" +msgstr "(Frivillig)" + +#: templates/openassessmentblock/response/oa_response.html:183 +msgid "" +"\n" +" Teams should designate one team member to submit a response on behalf of the\n" +" entire team. All team members can use this space to work on draft responses,\n" +" but you will not be able to see your teammates' drafts made in this space, so\n" +" please coordinate with them to decide on the final response the designated team\n" +" member should submit.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:197 +msgid "Enter your response to the prompt above." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:211 +#, python-format +msgid "" +"\n" +" You are currently on Team %(team_name)s. Since you were on Team %(previous_team_name)s\n" +" when they submitted a response to this assignment, you are seeing Team %(previous_team_name)s’s\n" +" response and will receive the same grade for this assignment as your former teammates.\n" +" You will not be part of Team %(team_name)s’s submission for this assignment and will not\n" +" receive a grade for their submission.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:224 +msgid "We could not save your progress" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:232 +msgid "Status of Your Response" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:245 +msgid "File Uploads " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:253 +msgid "" +"\n" +" Upload files and review files uploaded by you and your teammates below. Be sure to add\n" +" descriptions to your files to help your teammates identify them.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:261 +msgid "We could not upload files" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:267 +msgid "We could not delete files" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:274 +msgid "Select one or more files to upload for this submission." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:276 +msgid "Select a file to upload for this submission." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:280 +msgid "Supported file types: " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:285 +msgid "Upload files" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:287 +msgid "Upload file" +msgstr "Upload en fil" + +#: templates/openassessmentblock/response/oa_response.html:304 +msgid "This is a team submission." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:306 +msgid "" +"One team member should submit a response with the team’s shared files and a " +"text response on behalf of the entire team." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:308 +msgid "" +"One team member should submit a response with the team’s shared files on " +"behalf of the entire team." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:310 +msgid "" +"One team member should submit a text response on behalf of the entire team." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:312 +msgid "One team member should submit on behalf of the entire team." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:314 +msgid "" +"\n" +" Learn more about team assignments here: (link)\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:322 +msgid "We could not submit your response" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:332 +msgid "Submit your response and move to the next step" +msgstr "" + +#: templates/openassessmentblock/response/oa_response_cancelled.html:34 +msgid "Your submission was cancelled. " +msgstr "" + +#: templates/openassessmentblock/response/oa_response_cancelled.html:37 +#, python-format +msgid "" +"\n" +" Your submission has been cancelled by %(removed_by_username)s on %(removed_datetime)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response_cancelled.html:41 +#, python-format +msgid "" +"\n" +" Your submission was cancelled on %(removed_datetime)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response_cancelled.html:48 +#, python-format +msgid "" +"\n" +" Comments: %(comments)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response_closed.html:19 +#: templates/openassessmentblock/self/oa_self_closed.html:20 +#: templates/openassessmentblock/student_training/student_training_closed.html:17 +msgid "Incomplete" +msgstr "Ufuldstændig" + +#: templates/openassessmentblock/response/oa_response_closed.html:32 +msgid "" +"The due date for this step has passed. This step is now closed. You can no " +"longer submit a response or continue with this problem, and you will receive" +" a grade of Incomplete. If you saved but did not submit a response, the " +"response appears in the course records." +msgstr "" + +#: templates/openassessmentblock/response/oa_response_graded.html:20 +#: templates/openassessmentblock/response/oa_response_submitted.html:20 +#: templates/openassessmentblock/self/oa_self_complete.html:18 +#: templates/openassessmentblock/student_training/student_training_complete.html:17 +msgid "Complete" +msgstr "Fuldført" + +#: templates/openassessmentblock/response/oa_response_graded.html:30 +#: templates/openassessmentblock/response/oa_response_submitted.html:51 +#: templates/openassessmentblock/self/oa_self_assessment.html:57 +msgid "Your response" +msgstr "" + +#: templates/openassessmentblock/response/oa_response_graded.html:33 +#: templates/openassessmentblock/response/oa_response_submitted.html:54 +msgid "Your Uploaded Files" +msgstr "" + +#: templates/openassessmentblock/response/oa_response_submitted.html:32 +msgid "" +"Your response has been submitted. You will receive your grade after all " +"steps are complete and your response is fully assessed." +msgstr "" + +#: templates/openassessmentblock/response/oa_response_submitted.html:34 +#, python-format +msgid "" +"\n" +" You still need to complete the %(peer_start_tag)speer assessment%(end_tag)s and %(self_start_tag)sself assessment%(end_tag)s steps.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response_submitted.html:38 +#, python-format +msgid "" +"\n" +" You still need to complete the %(start_tag)speer assessment%(end_tag)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response_submitted.html:42 +#, python-format +msgid "" +"\n" +" You still need to complete the %(start_tag)sself assessment%(end_tag)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response_team_already_submitted.html:15 +msgid "Error" +msgstr "Fejl" + +#: templates/openassessmentblock/response/oa_response_team_already_submitted.html:29 +#, python-format +msgid "" +"\n" +" You joined Team %(team_name)s after they submitted a response for this assignment\n" +" and you will not receive a grade for their response. You have also not previously submitted\n" +" a response to this assignment with another team. Please contact course staff to discuss your\n" +" options for this assignment.\n" +" " +msgstr "" + +#: templates/openassessmentblock/self/oa_self_assessment.html:23 +msgid "Assess Your Response" +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "available August 13th, 2014 (in 5 days and +#. 45 minutes)" +#: templates/openassessmentblock/self/oa_self_assessment.html:31 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "due August 13th, 2014 (in 5 days and 45 +#. minutes)" +#: templates/openassessmentblock/self/oa_self_assessment.html:38 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#: templates/openassessmentblock/self/oa_self_assessment.html:78 +msgid "Submit your assessment" +msgstr "" + +#: templates/openassessmentblock/self/oa_self_closed.html:32 +msgid "" +"The due date for this step has passed. This step is now closed. You can no " +"longer complete a self assessment or continue with this assignment, and you " +"will receive a grade of Incomplete." +msgstr "" + +#: templates/openassessmentblock/staff/oa_staff_grade.html:13 +#: xblock/grade_mixin.py:365 +msgid "Staff Grade" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:8 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:35 +msgid "Manage Individual Learners" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:10 +msgid "Manage Team Responses" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:13 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:71 +msgid "View Assignment Statistics" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:22 +msgid "Demo the new Grading Experience" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:26 +msgid "View ORA in Studio" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:31 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:69 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:151 +msgid "Close" +msgstr "Luk" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:37 +msgid "Manage Teams" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:50 +msgid "Enter an individual learner's username or email" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:52 +msgid "Enter a team member's username or edX email" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:56 +msgid "Submit" +msgstr "Indsend" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:78 +msgid "Response total" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:84 +msgid "Location" +msgstr "Lokalitet" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:90 +msgid "Learner Progress" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:94 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:117 +msgid "Problem Step" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:95 +msgid "Active Learners in Step" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:113 +msgid "Dates" +msgstr "Datoer" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:118 +msgid "Release Date" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:131 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:137 +msgid "N/A" +msgstr "N/A" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners.html:7 +msgid "Staff Assessment" +msgstr "Personalevurdering" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:14 +msgid "Give this team a grade using the problem's rubric." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:16 +msgid "Give this learner a grade using the problem's rubric." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:26 +#, python-format +msgid "" +"\n" +" Response for: %(team_name)s with %(team_usernames)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:30 +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:20 +#, python-format +msgid "" +"\n" +" Response for: %(student_username)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:34 +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:24 +msgid "Learner Response" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:39 +msgid "The teams's response to the prompt above" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:41 +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:32 +#: templates/openassessmentblock/staff_area/oa_student_info.html:57 +msgid "The learner's response to the prompt above" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:64 +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:57 +msgid "Submit assessment" +msgstr "Send vurdering" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:70 +msgid "Submit assessment and continue grading" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_count.html:6 +#, python-format +msgid "" +"\n" +" %(ungraded)s Available and %(in_progress)s Checked Out\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:7 +msgid "Override this learner's current grade using the problem's rubric." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:9 +msgid "Override this team's current grade using the problem's rubric." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:27 +msgid "Team Response" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:34 +#: templates/openassessmentblock/staff_area/oa_student_info.html:59 +msgid "The team's response to the prompt above" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:11 +#, python-format +msgid "" +"\n" +" Viewing learner: %(learner)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:15 +#, python-format +msgid "" +"\n" +" Viewing team: %(team)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:28 +msgid "Learner's Response" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:30 +msgid "Team's Response" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:39 +#, python-format +msgid "" +"\n" +" Learner submission removed by %(removed_by_username)s on %(removed_datetime)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:43 +#, python-format +msgid "" +"\n" +" Learner submission removed on %(removed_datetime)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:50 +#, python-format +msgid "" +"\n" +" Comments: %(comments)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:71 +msgid "Peer Assessments for This Learner" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:76 +msgid "Peer Assessments Completed by This Learner" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:81 +msgid "Learner's Self Assessment" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:87 +msgid "Staff Assessment for This Learner" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:89 +msgid "Staff Assessment for this Team" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:100 +msgid "Learner's Final Grade" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:102 +msgid "Team's Final Grade" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:112 +#, python-format +msgid "" +"\n" +" Final grade: %(points_earned)s out of %(points_possible)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:119 +msgid "Final Grade Details" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:139 +#, python-format +msgid "" +"\n" +" %(assessment_label)s - %(points)s point\n" +" " +msgid_plural "" +"\n" +" %(assessment_label)s - %(points)s points\n" +" " +msgstr[0] "" +msgstr[1] "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:154 +msgid "Feedback Recorded" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:165 +msgid "The submission is waiting for assessments." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:170 +msgid "" +"The learner's submission has been removed from peer assessment. The learner " +"receives a grade of zero unless you delete the learner's state for the " +"problem to allow them to resubmit a response." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:172 +msgid "" +"The team’s submission has been removed from grading. The team receives a " +"grade of zero unless you delete the a team member’s state for the problem to" +" allow the team to resubmit a response." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:177 +msgid "The problem has not been started." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:181 +msgid "The problem has not been completed." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:193 +msgid "Submit Assessment Grade Override" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:195 +msgid "Submit Team Grade Override" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:204 +msgid "Unable to perform grade override" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:207 +msgid "" +"Grades are frozen. Grades are automatically frozen 30 days after the course " +"end date." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:212 +msgid "" +"This submission has been cancelled and cannot recieve a grade. Refer to " +"documentation for how to delete the learner’s state for this problem to " +"allow them to resubmit." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:230 +msgid "Remove Submission From Peer Grading" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:232 +msgid "Remove Team Submission from Grading" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:242 +msgid "Caution: This Action Cannot Be Undone" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:244 +msgid "" +"Removing a learner's submission cannot be undone and should be done with " +"caution." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:246 +msgid "" +"Removing a team's submission cannot be undone and should be done with " +"caution." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:252 +msgid "Comments:" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:261 +msgid "Remove submission" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:276 +msgid "A response was not found for this learner." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:16 +#, python-format +msgid "" +"\n" +" Assessment %(assessment_num)s:\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:22 +msgid "Assessment Details" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:26 +msgid "Selected Option" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:27 +msgid "Feedback" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:29 +msgid "Points Possible" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:18 +msgid "Learn to Assess Responses" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:27 +#, python-format +msgid "" +"\n" +" In Progress (%(current_progress_num)s of %(training_available_num)s)\n" +" " +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "available August 13th, 2014 (in 5 days and +#. 45 minutes)" +#: templates/openassessmentblock/student_training/student_training.html:38 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "due August 13th, 2014 (in 5 days and 45 +#. minutes)" +#: templates/openassessmentblock/student_training/student_training.html:45 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:58 +#: templates/openassessmentblock/student_training/student_training.html:66 +msgid "Learning to Assess Responses" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:61 +msgid "" +"Before you begin to assess your peers' responses, you'll learn how to " +"complete peer assessments by reviewing responses that instructors have " +"already assessed. If you select the same options for the response that the " +"instructor selected, you'll move to the next step. If you don't select the " +"same options, you'll review the response and try again." +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:69 +msgid "" +"Your assessment differs from the instructor's assessment of this response. " +"Review the response and consider why the instructor may have assessed it " +"differently. Then, try the assessment again." +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:76 +msgid "The response to the prompt above:" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:98 +msgid "Selected Options Agree" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:101 +msgid "The option you selected is the option that the instructor selected." +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:105 +msgid "Selected Options Differ" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:108 +msgid "" +"The option you selected is not the option that the instructor selected." +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:144 +msgid "We could not check your assessment" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:151 +msgid "Compare your selections with the instructor's selections" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training_closed.html:29 +msgid "" +"The due date for this step has passed. This step is now closed. You can no " +"longer continue with this assignment, and you will receive a grade of " +"Incomplete." +msgstr "" + +#: templates/openassessmentblock/student_training/student_training_error.html:18 +msgid "Error Loading Learner Training Examples" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training_error.html:21 +msgid "The Learner Training Step of this assignment could not be loaded." +msgstr "" + +#: xblock/grade_mixin.py:77 xblock/leaderboard_mixin.py:61 +msgid "An unexpected error occurred." +msgstr "Der opstod en uventet fejl" + +#: xblock/grade_mixin.py:179 +msgid "Peer Assessment" +msgstr "Fagfælde Vurdering" + +#: xblock/grade_mixin.py:181 +msgid "Self Assessment" +msgstr "Egen Vurdering" + +#: xblock/grade_mixin.py:221 +msgid "Assessment feedback could not be saved." +msgstr "Vurderings feedback kunne ikke gemmes" + +#: xblock/grade_mixin.py:232 +msgid "Feedback saved." +msgstr "Feedback gemt" + +#: xblock/grade_mixin.py:366 xblock/grade_mixin.py:512 +msgid "Staff Comments" +msgstr "" + +#: xblock/grade_mixin.py:372 +msgid "Peer Median Grade" +msgstr "" + +#: xblock/grade_mixin.py:377 xblock/grade_mixin.py:519 +#, python-brace-format +msgid "Peer {peer_index}" +msgstr "" + +#: xblock/grade_mixin.py:378 +msgid "Peer Comments" +msgstr "" + +#: xblock/grade_mixin.py:388 +msgid "Self Assessment Grade" +msgstr "" + +#: xblock/grade_mixin.py:388 +msgid "Your Self Assessment" +msgstr "" + +#: xblock/grade_mixin.py:389 xblock/grade_mixin.py:531 +msgid "Your Comments" +msgstr "" + +#: xblock/grade_mixin.py:485 +msgid "Waiting for peer reviews" +msgstr "" + +#: xblock/grade_mixin.py:524 +msgid "Peer" +msgstr "" + +#: xblock/grade_mixin.py:655 +msgid "The grade for this problem is determined by your Staff Grade." +msgstr "" + +#: xblock/grade_mixin.py:657 +msgid "" +"The grade for this problem is determined by the median score of your Peer " +"Assessments." +msgstr "" + +#: xblock/grade_mixin.py:660 +msgid "The grade for this problem is determined by your Self Assessment." +msgstr "" + +#: xblock/grade_mixin.py:666 +#, python-brace-format +msgid "" +"You have successfully completed this problem and received a " +"{earned_points}/{total_points}." +msgstr "" + +#: xblock/grade_mixin.py:674 +msgid "" +"You have not yet received all necessary peer reviews to determine your final" +" grade." +msgstr "" + +#: xblock/openassesment_template_mixin.py:66 +msgid "Peer Assessment Only" +msgstr "Kun peer-vurdering" + +#: xblock/openassesment_template_mixin.py:67 +msgid "Self Assessment Only" +msgstr "" + +#: xblock/openassesment_template_mixin.py:68 +msgid "Staff Assessment Only" +msgstr "" + +#: xblock/openassesment_template_mixin.py:69 +msgid "Self Assessment to Peer Assessment" +msgstr "" + +#: xblock/openassesment_template_mixin.py:70 +msgid "Self Assessment to Staff Assessment" +msgstr "" + +#: xblock/rubric_reuse_mixin.py:62 +msgid "You must specify a block id from which to copy a rubric." +msgstr "" + +#: xblock/rubric_reuse_mixin.py:66 +msgid "Invalid block id." +msgstr "" + +#: xblock/rubric_reuse_mixin.py:72 +#, python-brace-format +msgid "" +"No Open Response Assessment found in {course_id} with block id {block_id}" +msgstr "" + +#: xblock/staff_area_mixin.py:42 +msgid "You do not have permission to schedule training" +msgstr "" + +#: xblock/staff_area_mixin.py:43 +msgid "You do not have permission to reschedule tasks." +msgstr "" + +#: xblock/staff_area_mixin.py:69 +msgid "You do not have permission to access the ORA staff area" +msgstr "" + +#: xblock/staff_area_mixin.py:70 +msgid "You do not have permission to access ORA learner information." +msgstr "" + +#: xblock/staff_area_mixin.py:71 +msgid "You do not have permission to access ORA staff grading." +msgstr "" + +#: xblock/staff_area_mixin.py:242 +msgid "Pending" +msgstr "Afventer" + +#: xblock/staff_area_mixin.py:243 +msgid "Complete/Overwritten" +msgstr "" + +#: xblock/staff_area_mixin.py:246 +msgid "Not applicable" +msgstr "Ikke anvendelig" + +#: xblock/staff_area_mixin.py:247 +msgid "Not submitted" +msgstr "" + +#: xblock/staff_area_mixin.py:248 +msgid "Submitted" +msgstr "Sendt" + +#: xblock/staff_area_mixin.py:342 +msgid "Error getting learner information." +msgstr "" + +#: xblock/staff_area_mixin.py:385 +msgid "Error loading the checked out learner response." +msgstr "" + +#: xblock/staff_area_mixin.py:386 +msgid "No other learner responses are available for grading at this time." +msgstr "" + +#: xblock/staff_area_mixin.py:388 +msgid "Error getting staff grade information." +msgstr "" + +#: xblock/staff_area_mixin.py:409 +msgid "Error getting staff grade ungraded and checked out counts." +msgstr "" + +#: xblock/staff_area_mixin.py:703 +msgid "Please enter valid reason to remove the submission." +msgstr "" + +#: xblock/staff_area_mixin.py:714 +msgid "Submission not found" +msgstr "" + +#: xblock/staff_area_mixin.py:725 +msgid "Submission for team assignment has no associated team submission" +msgstr "" + +#: xblock/staff_area_mixin.py:754 +msgid "" +"The learner submission has been removed from peer assessment. The learner " +"receives a grade of zero unless you delete the learner's state for the " +"problem to allow them to resubmit a response." +msgstr "" + +#: xblock/staff_area_mixin.py:789 +msgid "" +"The team’s submission has been removed from grading. The team receives a " +"grade of zero unless you delete a team member’s state for the problem to " +"allow the team to resubmit a response." +msgstr "" + +#: xblock/studio_mixin.py:243 xblock/studio_mixin.py:255 +msgid "Error updating XBlock configuration" +msgstr "" + +#: xblock/studio_mixin.py:260 +msgid "Error: Text Response and File Upload Response cannot both be disabled" +msgstr "" + +#: xblock/studio_mixin.py:264 +msgid "" +"Error: When Text Response is disabled, File Upload Response must be Required" +msgstr "" + +#: xblock/studio_mixin.py:267 +msgid "" +"Error: When File Upload Response is disabled, Text Response must be Required" +msgstr "" + +#: xblock/studio_mixin.py:291 +#, python-brace-format +msgid "Validation error: {error}" +msgstr "" + +#: xblock/studio_mixin.py:323 +msgid "Successfully updated OpenAssessment XBlock" +msgstr "" + +#: xblock/ui_mixins/legacy/submissions/file_actions.py:71 +msgid "Files metadata could not be saved." +msgstr "" + +#: xblock/utils/data_conversion.py:315 +msgid "You must provide options selected in the assessment." +msgstr "" + +#: xblock/utils/data_conversion.py:318 +msgid "You must provide overall feedback in the assessment." +msgstr "" + +#: xblock/utils/data_conversion.py:321 +msgid "You must provide feedback for criteria in the assessment." +msgstr "" + +#: xblock/utils/resolve_dates.py:52 +#, python-brace-format +msgid "" +"'{date}' is an invalid date format. Make sure the date is formatted as YYYY-" +"MM-DDTHH:MM:SS." +msgstr "" + +#: xblock/utils/resolve_dates.py:57 +#, python-brace-format +msgid "'{date}' must be a date string or datetime" +msgstr "" + +#: xblock/utils/resolve_dates.py:210 +#, python-brace-format +msgid "" +"This step's start date '{start}' cannot be earlier than the previous step's " +"start date '{prev}'." +msgstr "" + +#: xblock/utils/resolve_dates.py:218 +#, python-brace-format +msgid "" +"This step's due date '{due}' cannot be later than the next step's due date " +"'{prev}'." +msgstr "" + +#: xblock/utils/resolve_dates.py:234 +#, python-brace-format +msgid "The start date '{start}' cannot be later than the due date '{due}'" +msgstr "" + +#: xblock/utils/validation.py:118 +msgid "This problem must include at least one assessment." +msgstr "" + +#: xblock/utils/validation.py:122 +msgid "The assessment order you selected is invalid." +msgstr "" + +#: xblock/utils/validation.py:132 +msgid "In peer assessment, the \"Must Grade\" value must be a positive integer." +msgstr "" + +#: xblock/utils/validation.py:135 +msgid "In peer assessment, the \"Graded By\" value must be a positive integer." +msgstr "" + +#: xblock/utils/validation.py:139 +msgid "" +"In peer assessment, the \"Must Grade\" value must be greater than or equal " +"to the \"Graded By\" value." +msgstr "" + +#: xblock/utils/validation.py:148 +msgid "You must provide at least one example response for learner training." +msgstr "" + +#: xblock/utils/validation.py:151 +msgid "Each example response for learner training must be unique." +msgstr "" + +#: xblock/utils/validation.py:158 +msgid "The \"required\" value must be true if staff assessment is the only step." +msgstr "" + +#: xblock/utils/validation.py:162 +msgid "" +"The number of assessments cannot be changed after the problem has been " +"released." +msgstr "" + +#: xblock/utils/validation.py:167 +msgid "" +"The assessment type cannot be changed after the problem has been released." +msgstr "" + +#: xblock/utils/validation.py:190 +msgid "This rubric definition is not valid." +msgstr "" + +#: xblock/utils/validation.py:196 +#, python-brace-format +msgid "Options in '{criterion}' have duplicate name(s): {duplicates}" +msgstr "" + +#: xblock/utils/validation.py:204 +msgid "Criteria with no options must require written feedback." +msgstr "" + +#: xblock/utils/validation.py:213 +msgid "Prompts cannot be created or deleted after a problem is released." +msgstr "" + +#: xblock/utils/validation.py:217 +msgid "The number of criteria cannot be changed after a problem is released." +msgstr "" + +#: xblock/utils/validation.py:230 +msgid "Criteria names cannot be changed after a problem is released" +msgstr "" + +#: xblock/utils/validation.py:235 +msgid "The number of options cannot be changed after a problem is released." +msgstr "" + +#: xblock/utils/validation.py:240 +msgid "Point values cannot be changed after a problem is released." +msgstr "" + +#: xblock/utils/validation.py:291 +msgid "Learner training must have at least one training example." +msgstr "" + +#: xblock/utils/validation.py:356 +msgid "Leaderboard number is invalid." +msgstr "" + +#: xblock/utils/validation.py:379 +msgid "The submission format is invalid." +msgstr "" diff --git a/openassessment/conf/locale/de_DE/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/de_DE/LC_MESSAGES/djangojs.po index 3e59d05640..167b5f6ce3 100644 --- a/openassessment/conf/locale/de_DE/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/de_DE/LC_MESSAGES/djangojs.po @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Stefania Trabucchi , 2020-2021\n" "Language-Team: German (Germany) (http://app.transifex.com/open-edx/edx-platform/language/de_DE/)\n" diff --git a/openassessment/conf/locale/el/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/el/LC_MESSAGES/djangojs.po index d88a16edc9..2cc1e38aa4 100644 --- a/openassessment/conf/locale/el/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/el/LC_MESSAGES/djangojs.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Angelos Chraniotis, 2023\n" "Language-Team: Greek (http://app.transifex.com/open-edx/edx-platform/language/el/)\n" diff --git a/openassessment/conf/locale/en/LC_MESSAGES/django.po b/openassessment/conf/locale/en/LC_MESSAGES/django.po index bf0b163f3e..cc454b3a33 100644 --- a/openassessment/conf/locale/en/LC_MESSAGES/django.po +++ b/openassessment/conf/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-ora2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-06 21:24+0000\n" +"POT-Creation-Date: 2023-10-25 14:38+0000\n" "PO-Revision-Date: 2014-06-04 15:41-0400\n" "Last-Translator: Muhammad Ayub khan \n" "Language-Team: openedx-translation \n" @@ -49,471 +49,469 @@ msgstr "" msgid "Example {example_number} is missing an option for \"{criterion_name}\"" msgstr "" -#: data.py:533 +#: data.py:534 #, python-brace-format msgid "Criterion {number}: {label}" msgstr "" -#: data.py:535 +#: data.py:536 #, python-brace-format msgid "Points {number}" msgstr "" -#: data.py:536 +#: data.py:537 #, python-brace-format msgid "Median Score {number}" msgstr "" -#: data.py:537 +#: data.py:538 #, python-brace-format msgid "Feedback {number}" msgstr "" -#: data.py:866 +#: data.py:867 msgid "Item ID" msgstr "" -#: data.py:867 +#: data.py:868 msgid "Submission ID" msgstr "" -#: data.py:879 +#: data.py:880 msgid "Anonymized Student ID" msgstr "" -#: data.py:910 +#: data.py:911 msgid "Assessment ID" msgstr "" -#: data.py:911 +#: data.py:912 msgid "Assessment Scored Date" msgstr "" -#: data.py:912 +#: data.py:913 msgid "Assessment Scored Time" msgstr "" -#: data.py:913 +#: data.py:914 msgid "Assessment Type" msgstr "" -#: data.py:914 +#: data.py:915 msgid "Anonymous Scorer Id" msgstr "" -#: data.py:916 -#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:59 +#: data.py:917 +#: templates/legacy/staff_area/oa_student_info_assessment_detail.html:59 msgid "Overall Feedback" msgstr "" -#: data.py:917 +#: data.py:918 msgid "Assessment Score Earned" msgstr "" -#: data.py:918 +#: data.py:919 msgid "Assessment Scored At" msgstr "" -#: data.py:919 +#: data.py:920 msgid "Date/Time Final Score Given" msgstr "" -#: data.py:920 +#: data.py:921 msgid "Final Score Earned" msgstr "" -#: data.py:921 +#: data.py:922 msgid "Final Score Possible" msgstr "" -#: data.py:922 +#: data.py:923 msgid "Feedback Statements Selected" msgstr "" -#: data.py:923 +#: data.py:924 msgid "Feedback on Assessment" msgstr "" -#: data.py:925 +#: data.py:926 msgid "Response Files" msgstr "" -#: data.py:1316 +#: data.py:1317 msgid "No description provided." msgstr "" -#: templates/openassessmentblock/edit/oa_edit.html:28 +#: templates/legacy/edit/oa_edit.html:28 msgid "Save" msgstr "" -#: templates/openassessmentblock/edit/oa_edit.html:32 +#: templates/legacy/edit/oa_edit.html:32 msgid "Cancel" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_assessment_steps.html:6 +#: templates/legacy/edit/oa_edit_assessment_steps.html:6 msgid "" "Open Response Assessments allow you to configure single or multiple steps in " "a rubric based open response assessment sequence. The steps available below " "can be enabled, disable, and ordered for a flexible set of pedagogical needs." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:5 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:5 msgid "Display Name " msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:8 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:8 msgid "The display name for this component." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:12 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:12 msgid "Text Response" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:20 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:20 msgid "" "Specify whether learners must include a text based response to this " "problem's prompt." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:25 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:25 msgid "Response Editor" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:33 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:33 msgid "" "Select which editor learners will use to include a text based response to " "this problem's prompt." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:38 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:38 msgid "File Uploads Response" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:46 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:46 msgid "" "Specify whether learners are able to upload files as a part of their " "response." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:50 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:50 msgid "Allow Multiple Files" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:52 -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:93 -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:131 -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:157 -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:45 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:52 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:93 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:131 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:157 +#: templates/legacy/edit/oa_edit_peer_assessment.html:45 msgid "False" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:53 -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:94 -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:132 -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:158 -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:46 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:53 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:94 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:132 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:158 +#: templates/legacy/edit/oa_edit_peer_assessment.html:46 msgid "True" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:56 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:56 msgid "" "Specify whether learners can upload more than one file. This has no effect " "if File Uploads Response is set to None. This is automatically set to True " "for Team Assignments. " msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:58 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:58 msgid "File Upload Types" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:60 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:60 msgid "PDF or Image Files" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:61 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:61 msgid "Image Files" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:62 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:62 msgid "Custom File Types" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:66 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:66 msgid "" "Specify whether learners can submit files along with their text responses." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:70 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:70 msgid "File Types" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:79 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:79 msgid "" "Enter the file extensions, separated by commas, that you want learners to be " "able to upload. For example: pdf,doc,docx." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:84 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:84 msgid "" "To add more file extensions, select Custom File Types and enter the full " "list of acceptable file extensions to be included." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:91 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:91 msgid "Allow LaTeX Responses" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:97 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:97 msgid "Specify whether learners can write LaTeX formatted strings" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:102 -#: templates/openassessmentblock/leaderboard/oa_leaderboard_show.html:8 -#: templates/openassessmentblock/leaderboard/oa_leaderboard_waiting.html:10 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:102 +#: templates/legacy/leaderboard/oa_leaderboard_show.html:8 +#: templates/legacy/leaderboard/oa_leaderboard_waiting.html:10 msgid "Top Responses" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:104 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:104 msgid " (Disabled)" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:117 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:117 msgid "" "Specify the number of top scoring responses to display after the learner has " "submitted a response. Valid numbers are 0 to 99. If the number is 0, the Top " "Responses section does not appear to learners." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:122 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:122 msgid "When Teams Enabled is set to true, Top Responses will be disabled." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:129 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:129 msgid "Teams Enabled" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:136 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:136 msgid "Specify whether team submissions are allowed for this response." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:141 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:141 msgid "Select Team-Set" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:155 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:155 msgid "Show Rubric During Response" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:162 +#: templates/legacy/edit/oa_edit_basic_settings_list.html:162 msgid "" "Specify whether learners can see the rubric while they are working on their " "response." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_criterion.html:6 -#: templates/openassessmentblock/staff_area/oa_student_info.html:122 -#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:25 +#: templates/legacy/edit/oa_edit_criterion.html:6 +#: templates/legacy/staff_area/oa_student_info.html:122 +#: templates/legacy/staff_area/oa_student_info_assessment_detail.html:25 msgid "Criterion" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_criterion.html:7 +#: templates/legacy/edit/oa_edit_criterion.html:7 msgid "You cannot delete a criterion after the assignment has been released." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_criterion.html:9 -#: templates/openassessmentblock/edit/oa_edit_option.html:7 -#: templates/openassessmentblock/edit/oa_edit_prompt.html:10 -#: templates/openassessmentblock/edit/oa_training_example.html:10 +#: templates/legacy/edit/oa_edit_criterion.html:9 +#: templates/legacy/edit/oa_edit_option.html:7 +#: templates/legacy/edit/oa_edit_prompt.html:10 +#: templates/legacy/edit/oa_training_example.html:10 msgid "Remove" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_criterion.html:17 +#: templates/legacy/edit/oa_edit_criterion.html:17 msgid "Criterion Name" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_criterion.html:29 +#: templates/legacy/edit/oa_edit_criterion.html:29 msgid "Criterion Prompt" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_criterion.html:44 +#: templates/legacy/edit/oa_edit_criterion.html:44 msgid "Add Option" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_criterion.html:52 +#: templates/legacy/edit/oa_edit_criterion.html:52 msgid "Feedback for This Criterion" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_criterion.html:54 -#: xblock/studio_mixin.py:57 +#: templates/legacy/edit/oa_edit_criterion.html:54 xblock/studio_mixin.py:57 msgid "None" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_criterion.html:55 -#: xblock/studio_mixin.py:56 +#: templates/legacy/edit/oa_edit_criterion.html:55 xblock/studio_mixin.py:56 msgid "Optional" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_criterion.html:56 -#: templates/openassessmentblock/oa_rubric.html:13 -#: templates/openassessmentblock/student_training/student_training.html:93 +#: templates/legacy/edit/oa_edit_criterion.html:56 +#: templates/legacy/oa_rubric.html:13 +#: templates/legacy/student_training/student_training.html:93 #: xblock/studio_mixin.py:55 msgid "Required" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_criterion.html:61 +#: templates/legacy/edit/oa_edit_criterion.html:61 msgid "" "Select one of the options above. This describes whether or not the reviewer " "will have to provide criterion feedback." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:3 +#: templates/legacy/edit/oa_edit_header_and_validation.html:3 msgid "Open Response Assessment" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:8 -#: templates/openassessmentblock/edit/oa_edit_prompt.html:7 +#: templates/legacy/edit/oa_edit_header_and_validation.html:8 +#: templates/legacy/edit/oa_edit_prompt.html:7 msgid "Prompt" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:15 +#: templates/legacy/edit/oa_edit_header_and_validation.html:15 msgid "Rubric" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:22 +#: templates/legacy/edit/oa_edit_header_and_validation.html:22 msgid "Schedule" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:31 +#: templates/legacy/edit/oa_edit_header_and_validation.html:31 msgid "Assessment steps" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:38 +#: templates/legacy/edit/oa_edit_header_and_validation.html:38 msgid "Settings" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_option.html:5 +#: templates/legacy/edit/oa_edit_option.html:5 msgid "Option" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_option.html:16 +#: templates/legacy/edit/oa_edit_option.html:16 msgid "Option Name" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_option.html:29 +#: templates/legacy/edit/oa_edit_option.html:29 msgid "Option Points" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_option.html:42 +#: templates/legacy/edit/oa_edit_option.html:42 msgid "Option Explanation" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:10 +#: templates/legacy/edit/oa_edit_peer_assessment.html:10 msgid "Step: Peer Assessment" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:15 +#: templates/legacy/edit/oa_edit_peer_assessment.html:15 msgid "" "Peer Assessment allows students to provide feedback to other students and " "also receive feedback from others in their final grade. Often, though not " "always, this step is preceded by Self Assessment or Learner Training steps." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:18 +#: templates/legacy/edit/oa_edit_peer_assessment.html:18 msgid "" "Configuration: For this step to be configured you must specify the number of " "peer reviews a student will be assessed with, and the number of peer a " "student must grade. Additional options can be specified." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:23 +#: templates/legacy/edit/oa_edit_peer_assessment.html:23 msgid "View Options & Configuration" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:29 +#: templates/legacy/edit/oa_edit_peer_assessment.html:29 msgid "Must Grade" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:32 +#: templates/legacy/edit/oa_edit_peer_assessment.html:32 msgid "" "Specify the number of peer assessments that each learner must complete. " "Valid numbers are 1 to 99." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:36 +#: templates/legacy/edit/oa_edit_peer_assessment.html:36 msgid "Graded By" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:39 +#: templates/legacy/edit/oa_edit_peer_assessment.html:39 msgid "" "Specify the number of learners that each response must be assessed by. Valid " "numbers are 1 to 99." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:43 +#: templates/legacy/edit/oa_edit_peer_assessment.html:43 msgid "Enable Flexible Peer Grade Averaging" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:49 +#: templates/legacy/edit/oa_edit_peer_assessment.html:49 #, python-format msgid "" "When enabled, learners who have received at least 30%% of the required \\" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:53 +#: templates/legacy/edit/oa_edit_peer_assessment.html:53 msgid "" "This feature is being enabled by the course-level setting. It can be found " "under the Open Response Assessment Settings card on the Pages & Resources " "studio page." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:5 +#: templates/legacy/edit/oa_edit_peer_assessment_schedule.html:5 msgid "Peer Assessment Deadlines" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:10 -#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:10 +#: templates/legacy/edit/oa_edit_peer_assessment_schedule.html:10 +#: templates/legacy/edit/oa_edit_self_assessment_schedule.html:10 msgid "Start Date" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:19 -#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:19 +#: templates/legacy/edit/oa_edit_peer_assessment_schedule.html:19 +#: templates/legacy/edit/oa_edit_self_assessment_schedule.html:19 msgid "Start Time" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:27 +#: templates/legacy/edit/oa_edit_peer_assessment_schedule.html:27 msgid "The date and time when learners can begin assessing peer responses." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:31 -#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:31 -#: templates/openassessmentblock/staff_area/oa_staff_area.html:119 +#: templates/legacy/edit/oa_edit_peer_assessment_schedule.html:31 +#: templates/legacy/edit/oa_edit_self_assessment_schedule.html:31 +#: templates/legacy/staff_area/oa_staff_area.html:119 msgid "Due Date" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:40 -#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:40 +#: templates/legacy/edit/oa_edit_peer_assessment_schedule.html:40 +#: templates/legacy/edit/oa_edit_self_assessment_schedule.html:40 msgid "Due Time" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:48 +#: templates/legacy/edit/oa_edit_peer_assessment_schedule.html:48 msgid "The date and time when all peer assessments must be complete." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_prompt.html:8 +#: templates/legacy/edit/oa_edit_prompt.html:8 msgid "You cannot delete a prompt after the assignment has been released." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_prompts.html:10 +#: templates/legacy/edit/oa_edit_prompts.html:10 msgid "" "Prompts. Replace the sample text with your own text. For more information, " "see the ORA documentation." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_prompts.html:22 +#: templates/legacy/edit/oa_edit_prompts.html:22 msgid "Add Prompt" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_rubric.html:14 +#: templates/legacy/edit/oa_edit_rubric.html:14 msgid "" "Rubrics are made up of criteria, which usually contain one or more options. " "Each option has a point value. This template contains two sample criteria " @@ -521,130 +519,130 @@ msgid "" "information, see the ORA documentation." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_rubric.html:29 +#: templates/legacy/edit/oa_edit_rubric.html:29 msgid "Add Criterion" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_rubric.html:35 +#: templates/legacy/edit/oa_edit_rubric.html:35 msgid "Feedback for This Response" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_rubric.html:40 +#: templates/legacy/edit/oa_edit_rubric.html:40 msgid "Feedback Instructions" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_rubric.html:44 +#: templates/legacy/edit/oa_edit_rubric.html:44 msgid "" "Encourage learners to provide feedback on the response they have graded. You " "can replace the sample text with your own." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_rubric.html:49 +#: templates/legacy/edit/oa_edit_rubric.html:49 msgid "Default Feedback Text" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_rubric.html:53 +#: templates/legacy/edit/oa_edit_rubric.html:53 msgid "" "Enter feedback text that learners will see before they enter their own " "feedback. Use this text to show learners a good example peer assessment." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_schedule.html:5 +#: templates/legacy/edit/oa_edit_schedule.html:5 msgid "Deadlines Configuration" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_schedule.html:9 +#: templates/legacy/edit/oa_edit_schedule.html:9 msgid "Select a deadline configuration option" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_schedule.html:13 +#: templates/legacy/edit/oa_edit_schedule.html:13 msgid " NEW" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_schedule.html:19 +#: templates/legacy/edit/oa_edit_schedule.html:19 msgid "Configure deadlines manually" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_schedule.html:23 +#: templates/legacy/edit/oa_edit_schedule.html:23 msgid "Match deadlines to the subsection due date" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_schedule.html:27 +#: templates/legacy/edit/oa_edit_schedule.html:27 msgid "Match deadlines to the course end date" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_schedule.html:30 +#: templates/legacy/edit/oa_edit_schedule.html:30 msgid "Learn more about open response date settings" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_schedule.html:40 +#: templates/legacy/edit/oa_edit_schedule.html:40 msgid "Response Start Date" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_schedule.html:53 +#: templates/legacy/edit/oa_edit_schedule.html:53 msgid "Response Start Time" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_schedule.html:62 +#: templates/legacy/edit/oa_edit_schedule.html:62 msgid "The date and time when learners can begin submitting responses." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_schedule.html:70 +#: templates/legacy/edit/oa_edit_schedule.html:70 msgid "Response Due Date" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_schedule.html:83 +#: templates/legacy/edit/oa_edit_schedule.html:83 msgid "Response Due Time" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_schedule.html:92 +#: templates/legacy/edit/oa_edit_schedule.html:92 msgid "The date and time when learners can no longer submit responses." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_self_assessment.html:8 +#: templates/legacy/edit/oa_edit_self_assessment.html:8 msgid "Step: Self Assessment" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_self_assessment.html:12 +#: templates/legacy/edit/oa_edit_self_assessment.html:12 msgid "" "Self Assessment asks learners to grade their own submissions against the " "rubric." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:5 +#: templates/legacy/edit/oa_edit_self_assessment_schedule.html:5 msgid "Self Assessment Deadlines" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:27 +#: templates/legacy/edit/oa_edit_self_assessment_schedule.html:27 msgid "The date and time when learners can begin assessing their responses." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:48 +#: templates/legacy/edit/oa_edit_self_assessment_schedule.html:48 msgid "The date and time when all self assessments must be complete." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_staff_assessment.html:8 +#: templates/legacy/edit/oa_edit_staff_assessment.html:8 msgid "Step: Staff Assessment" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_staff_assessment.html:12 +#: templates/legacy/edit/oa_edit_staff_assessment.html:12 msgid "" "Staff Assessment gates sets the final grade for students if enabled with " "other steps, though it can also be used as a standalone step." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_student_training.html:9 +#: templates/legacy/edit/oa_edit_student_training.html:9 msgid "Step: Learner Training" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_student_training.html:14 +#: templates/legacy/edit/oa_edit_student_training.html:14 msgid "" "Learner Training is used to help students practice grading a simulated peer " "submission in order to train them on the rubric and ensure learner's " "understand the rubric for either Self or Peer Assessment steps." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_student_training.html:17 +#: templates/legacy/edit/oa_edit_student_training.html:17 msgid "" "Configuration: For this step to be fully configured you must provide one or " "more graded sample responses. Learners must then match this instructor score " @@ -652,19 +650,19 @@ msgid "" "sample response." msgstr "" -#: templates/openassessmentblock/edit/oa_edit_student_training.html:22 +#: templates/legacy/edit/oa_edit_student_training.html:22 msgid "View / Add Sample Responses" msgstr "" -#: templates/openassessmentblock/edit/oa_edit_student_training.html:32 +#: templates/legacy/edit/oa_edit_student_training.html:32 msgid "Add Sample Response" msgstr "" -#: templates/openassessmentblock/edit/oa_rubric_reuse.html:4 +#: templates/legacy/edit/oa_rubric_reuse.html:4 msgid "Clone Rubric" msgstr "" -#: templates/openassessmentblock/edit/oa_rubric_reuse.html:7 +#: templates/legacy/edit/oa_rubric_reuse.html:7 msgid "" "To clone a rubric from an existing published or unpublished draft, you can " "search by the Block ID. Note that cloning is one-way, meaning changes made " @@ -672,49 +670,49 @@ msgid "" "modify any rubric it was cloned from." msgstr "" -#: templates/openassessmentblock/edit/oa_rubric_reuse.html:9 +#: templates/legacy/edit/oa_rubric_reuse.html:9 msgid "Block ID For this ORA:" msgstr "" -#: templates/openassessmentblock/edit/oa_rubric_reuse.html:19 +#: templates/legacy/edit/oa_rubric_reuse.html:19 msgid "Block ID" msgstr "" -#: templates/openassessmentblock/edit/oa_rubric_reuse.html:21 +#: templates/legacy/edit/oa_rubric_reuse.html:21 msgid "No other Open Response Assessments found in course" msgstr "" -#: templates/openassessmentblock/edit/oa_rubric_reuse.html:31 +#: templates/legacy/edit/oa_rubric_reuse.html:31 msgid "Clone" msgstr "" -#: templates/openassessmentblock/edit/oa_rubric_reuse.html:37 +#: templates/legacy/edit/oa_rubric_reuse.html:37 msgid "Rubric Successfully Cloned from Block ID: " msgstr "" -#: templates/openassessmentblock/edit/oa_training_example.html:7 +#: templates/legacy/edit/oa_training_example.html:7 msgid "Scored Response" msgstr "" -#: templates/openassessmentblock/edit/oa_training_example.html:16 +#: templates/legacy/edit/oa_training_example.html:16 msgid "Response Score" msgstr "" -#: templates/openassessmentblock/edit/oa_training_example.html:27 +#: templates/legacy/edit/oa_training_example.html:27 msgid "Response" msgstr "" -#: templates/openassessmentblock/edit/oa_training_example_criterion.html:10 +#: templates/legacy/edit/oa_training_example_criterion.html:10 msgid "Not Selected" msgstr "" -#: templates/openassessmentblock/edit/oa_training_example_criterion.html:15 -#: templates/openassessmentblock/oa_rubric.html:43 -#: templates/openassessmentblock/student_training/student_training.html:128 +#: templates/legacy/edit/oa_training_example_criterion.html:15 +#: templates/legacy/oa_rubric.html:43 +#: templates/legacy/student_training/student_training.html:128 msgid "points" msgstr "" -#: templates/openassessmentblock/grade/oa_assessment_feedback.html:8 +#: templates/legacy/grade/oa_assessment_feedback.html:8 #, python-format msgid "" "\n" @@ -723,7 +721,7 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/grade/oa_assessment_title.html:7 +#: templates/legacy/grade/oa_assessment_title.html:7 #, python-format msgid "" "\n" @@ -736,21 +734,21 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: templates/openassessmentblock/grade/oa_assessment_title.html:24 +#: templates/legacy/grade/oa_assessment_title.html:24 #, python-format msgid "More information about %(name)s" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_cancelled.html:14 -#: templates/openassessmentblock/grade/oa_grade_complete.html:15 -#: templates/openassessmentblock/grade/oa_grade_complete.html:26 -#: templates/openassessmentblock/grade/oa_grade_incomplete.html:14 -#: templates/openassessmentblock/grade/oa_grade_not_started.html:14 -#: templates/openassessmentblock/grade/oa_grade_waiting.html:14 +#: templates/legacy/grade/oa_grade_cancelled.html:14 +#: templates/legacy/grade/oa_grade_complete.html:15 +#: templates/legacy/grade/oa_grade_complete.html:26 +#: templates/legacy/grade/oa_grade_incomplete.html:14 +#: templates/legacy/grade/oa_grade_not_started.html:14 +#: templates/legacy/grade/oa_grade_waiting.html:14 msgid "Your Grade" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_cancelled.html:19 +#: templates/legacy/grade/oa_grade_cancelled.html:19 #, python-format msgid "" "\n" @@ -759,11 +757,11 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/grade/oa_grade_cancelled.html:38 +#: templates/legacy/grade/oa_grade_cancelled.html:38 msgid "Your submission has been cancelled." msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:19 +#: templates/legacy/grade/oa_grade_complete.html:19 #, python-format msgid "" "\n" @@ -772,134 +770,134 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:38 -#: templates/openassessmentblock/response/oa_response.html:29 +#: templates/legacy/grade/oa_grade_complete.html:38 +#: templates/legacy/response/oa_response.html:29 msgid "Your Response" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:41 +#: templates/legacy/grade/oa_grade_complete.html:41 msgid "Your Upload" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:46 +#: templates/legacy/grade/oa_grade_complete.html:46 msgid "Assessments of Your Response" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:50 -#: templates/openassessmentblock/grade/oa_grade_complete.html:132 -#: templates/openassessmentblock/grade/oa_grade_incomplete.html:28 -#: templates/openassessmentblock/grade/oa_grade_waiting.html:28 -#: templates/openassessmentblock/message/oa_message_cancelled.html:4 -#: templates/openassessmentblock/message/oa_message_closed.html:4 -#: templates/openassessmentblock/message/oa_message_complete.html:4 -#: templates/openassessmentblock/message/oa_message_incomplete.html:4 -#: templates/openassessmentblock/peer/oa_peer_closed.html:33 -#: templates/openassessmentblock/peer/oa_peer_complete.html:30 -#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:40 -#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html:34 -#: templates/openassessmentblock/peer/oa_peer_waiting.html:34 -#: templates/openassessmentblock/response/oa_response_cancelled.html:31 -#: templates/openassessmentblock/response/oa_response_closed.html:29 -#: templates/openassessmentblock/response/oa_response_submitted.html:30 -#: templates/openassessmentblock/response/oa_response_team_already_submitted.html:25 -#: templates/openassessmentblock/self/oa_self_closed.html:30 -#: templates/openassessmentblock/student_training/student_training_closed.html:27 +#: templates/legacy/grade/oa_grade_complete.html:50 +#: templates/legacy/grade/oa_grade_complete.html:132 +#: templates/legacy/grade/oa_grade_incomplete.html:28 +#: templates/legacy/grade/oa_grade_waiting.html:28 +#: templates/legacy/message/oa_message_cancelled.html:4 +#: templates/legacy/message/oa_message_closed.html:4 +#: templates/legacy/message/oa_message_complete.html:4 +#: templates/legacy/message/oa_message_incomplete.html:4 +#: templates/legacy/peer/oa_peer_closed.html:33 +#: templates/legacy/peer/oa_peer_complete.html:30 +#: templates/legacy/peer/oa_peer_turbo_mode.html:40 +#: templates/legacy/peer/oa_peer_turbo_mode_waiting.html:34 +#: templates/legacy/peer/oa_peer_waiting.html:34 +#: templates/legacy/response/oa_response_cancelled.html:31 +#: templates/legacy/response/oa_response_closed.html:29 +#: templates/legacy/response/oa_response_submitted.html:30 +#: templates/legacy/response/oa_response_team_already_submitted.html:25 +#: templates/legacy/self/oa_self_closed.html:30 +#: templates/legacy/student_training/student_training_closed.html:27 msgid "Status" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:65 +#: templates/legacy/grade/oa_grade_complete.html:65 msgid "Overall Grade" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:70 -#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:28 +#: templates/legacy/grade/oa_grade_complete.html:70 +#: templates/legacy/staff_area/oa_student_info_assessment_detail.html:28 msgid "Points" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:96 +#: templates/legacy/grade/oa_grade_complete.html:96 msgid "Additional comments on your response" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:117 +#: templates/legacy/grade/oa_grade_complete.html:117 msgid "Provide feedback on peer assessments" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:126 +#: templates/legacy/grade/oa_grade_complete.html:126 msgid "Submitting Feedback" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:134 +#: templates/legacy/grade/oa_grade_complete.html:134 msgid "" "Your feedback has been submitted. Course staff will be able to see this " "feedback when they review course records." msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:140 +#: templates/legacy/grade/oa_grade_complete.html:140 msgid "" "Course staff will be able to see any feedback that you provide here when " "they review course records." msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:146 +#: templates/legacy/grade/oa_grade_complete.html:146 msgid "" "Select the statements below that best reflect your experience with peer " "assessments." msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:155 +#: templates/legacy/grade/oa_grade_complete.html:155 msgid "These assessments were useful." msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:164 +#: templates/legacy/grade/oa_grade_complete.html:164 msgid "These assessments were not useful." msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:173 +#: templates/legacy/grade/oa_grade_complete.html:173 msgid "I disagree with one or more of the peer assessments of my response." msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:182 +#: templates/legacy/grade/oa_grade_complete.html:182 msgid "Some comments I received were inappropriate." msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:187 +#: templates/legacy/grade/oa_grade_complete.html:187 msgid "" "Provide feedback on the grade or comments that you received from your peers." msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:190 +#: templates/legacy/grade/oa_grade_complete.html:190 msgid "I feel the feedback I received was..." msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:200 +#: templates/legacy/grade/oa_grade_complete.html:200 msgid "We could not submit your feedback" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_complete.html:206 +#: templates/legacy/grade/oa_grade_complete.html:206 msgid "Submit feedback on peer assessments" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_incomplete.html:16 +#: templates/legacy/grade/oa_grade_incomplete.html:16 msgid "Not Completed" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_incomplete.html:33 +#: templates/legacy/grade/oa_grade_incomplete.html:33 msgid "You have not completed all the steps of this problem." msgstr "" -#: templates/openassessmentblock/grade/oa_grade_not_started.html:16 +#: templates/legacy/grade/oa_grade_not_started.html:16 msgid "Not Started" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_not_started.html:27 +#: templates/legacy/grade/oa_grade_not_started.html:27 msgid "You have not started this problem yet." msgstr "" -#: templates/openassessmentblock/grade/oa_grade_waiting.html:16 +#: templates/legacy/grade/oa_grade_waiting.html:16 msgid "Waiting for Assessments" msgstr "" -#: templates/openassessmentblock/grade/oa_grade_waiting.html:33 +#: templates/legacy/grade/oa_grade_waiting.html:33 msgid "" "You have completed your steps in the assignment, but some assessments still " "need to be done on your response. When the assessments of your response are " @@ -907,107 +905,107 @@ msgid "" "and you will receive your final grade." msgstr "" -#: templates/openassessmentblock/instructor_dashboard/oa_grade_available_responses.html:15 -#: templates/openassessmentblock/staff_area/oa_staff_area.html:16 -#: templates/openassessmentblock/staff_area/oa_staff_area.html:18 -#: templates/openassessmentblock/staff_area/oa_staff_area.html:153 +#: templates/legacy/instructor_dashboard/oa_grade_available_responses.html:15 +#: templates/legacy/staff_area/oa_staff_area.html:16 +#: templates/legacy/staff_area/oa_staff_area.html:18 +#: templates/legacy/staff_area/oa_staff_area.html:153 msgid "Grade Available Responses" msgstr "" -#: templates/openassessmentblock/instructor_dashboard/oa_grade_available_responses.html:26 +#: templates/legacy/instructor_dashboard/oa_grade_available_responses.html:26 msgid "" "Grade Available Responses is unavailable. This item is not configured for " "Staff Assessment." msgstr "" -#: templates/openassessmentblock/instructor_dashboard/oa_listing.html:6 +#: templates/legacy/instructor_dashboard/oa_listing.html:6 msgid "Please wait" msgstr "" -#: templates/openassessmentblock/instructor_dashboard/oa_waiting_step_details.html:15 +#: templates/legacy/instructor_dashboard/oa_waiting_step_details.html:15 msgid "Waiting Step Details" msgstr "" -#: templates/openassessmentblock/instructor_dashboard/oa_waiting_step_details.html:24 +#: templates/legacy/instructor_dashboard/oa_waiting_step_details.html:24 msgid "" "Waiting Step details view is unavailable. This item is not configured for " "peer assessments." msgstr "" -#: templates/openassessmentblock/leaderboard/oa_leaderboard_show.html:20 +#: templates/legacy/leaderboard/oa_leaderboard_show.html:20 #, python-format msgid "%(num_points)s points" msgstr "" -#: templates/openassessmentblock/leaderboard/oa_leaderboard_show.html:24 -#: templates/openassessmentblock/peer/oa_peer_assessment.html:74 -#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:53 +#: templates/legacy/leaderboard/oa_leaderboard_show.html:24 +#: templates/legacy/peer/oa_peer_assessment.html:74 +#: templates/legacy/peer/oa_peer_turbo_mode.html:53 msgid "Your peer's response to the prompt above" msgstr "" -#: templates/openassessmentblock/leaderboard/oa_leaderboard_waiting.html:19 +#: templates/legacy/leaderboard/oa_leaderboard_waiting.html:19 msgid "" "After you complete all the steps of this assignment, you can see the top-" "scoring responses from your peers." msgstr "" -#: templates/openassessmentblock/message/oa_message_cancelled.html:8 +#: templates/legacy/message/oa_message_cancelled.html:8 msgid "" "Your team’s submission has been cancelled. Your team will receive a grade of " "zero unless course staff resets your assessment to allow the team to " "resubmit a response." msgstr "" -#: templates/openassessmentblock/message/oa_message_cancelled.html:10 +#: templates/legacy/message/oa_message_cancelled.html:10 msgid "" "Your submission has been cancelled. You will receive a grade of zero unless " "course staff resets your assessment to allow you to resubmit a response." msgstr "" -#: templates/openassessmentblock/message/oa_message_closed.html:8 +#: templates/legacy/message/oa_message_closed.html:8 msgid "" "This task is not yet available. Check back to complete the assignment once " "this section has opened." msgstr "" -#: templates/openassessmentblock/message/oa_message_closed.html:10 +#: templates/legacy/message/oa_message_closed.html:10 msgid "" "This assignment has closed. One or more deadlines for this assignment have " "passed. You will receive an incomplete grade for this assignment." msgstr "" -#: templates/openassessmentblock/message/oa_message_complete.html:8 +#: templates/legacy/message/oa_message_complete.html:8 msgid "" "You have completed this assignment. Your final grade will be available when " "the assessments of your response are complete." msgstr "" -#: templates/openassessmentblock/message/oa_message_complete.html:10 +#: templates/legacy/message/oa_message_complete.html:10 msgid "" "You have completed this assignment. Review your grade and your assessment " "details." msgstr "" -#: templates/openassessmentblock/message/oa_message_incomplete.html:9 +#: templates/legacy/message/oa_message_incomplete.html:9 msgid "" "This assignment is in progress. Learner training will close soon. Complete " "the learner training step to move on." msgstr "" -#: templates/openassessmentblock/message/oa_message_incomplete.html:11 +#: templates/legacy/message/oa_message_incomplete.html:11 msgid "" "This assignment is in progress. Complete the learner training step to move " "on." msgstr "" -#: templates/openassessmentblock/message/oa_message_incomplete.html:15 -#: templates/openassessmentblock/message/oa_message_incomplete.html:33 +#: templates/legacy/message/oa_message_incomplete.html:15 +#: templates/legacy/message/oa_message_incomplete.html:33 msgid "" "This assignment is in progress. Check back later when the assessment period " "has started." msgstr "" -#: templates/openassessmentblock/message/oa_message_incomplete.html:20 +#: templates/legacy/message/oa_message_incomplete.html:20 #, python-format msgid "" "\n" @@ -1017,7 +1015,7 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/message/oa_message_incomplete.html:24 +#: templates/legacy/message/oa_message_incomplete.html:24 #, python-format msgid "" "\n" @@ -1026,7 +1024,7 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/message/oa_message_incomplete.html:38 +#: templates/legacy/message/oa_message_incomplete.html:38 #, python-format msgid "" "\n" @@ -1038,7 +1036,7 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/message/oa_message_incomplete.html:42 +#: templates/legacy/message/oa_message_incomplete.html:42 #, python-format msgid "" "\n" @@ -1049,7 +1047,7 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/message/oa_message_incomplete.html:46 +#: templates/legacy/message/oa_message_incomplete.html:46 #, python-format msgid "" "\n" @@ -1059,7 +1057,7 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/message/oa_message_incomplete.html:50 +#: templates/legacy/message/oa_message_incomplete.html:50 #, python-format msgid "" "\n" @@ -1068,11 +1066,11 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/message/oa_message_no_team.html:4 +#: templates/legacy/message/oa_message_no_team.html:4 msgid "Team membership is required to view this assignment" msgstr "" -#: templates/openassessmentblock/message/oa_message_no_team.html:7 +#: templates/legacy/message/oa_message_no_team.html:7 #, python-format msgid "" "\n" @@ -1084,7 +1082,7 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/message/oa_message_open.html:7 +#: templates/legacy/message/oa_message_open.html:7 #, python-format msgid "" "\n" @@ -1094,7 +1092,7 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/message/oa_message_open.html:11 +#: templates/legacy/message/oa_message_open.html:11 #, python-format msgid "" "\n" @@ -1104,74 +1102,75 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/message/oa_message_unavailable.html:4 +#: templates/legacy/message/oa_message_unavailable.html:4 msgid "Instructions Unavailable" msgstr "" -#: templates/openassessmentblock/message/oa_message_unavailable.html:6 +#: templates/legacy/message/oa_message_unavailable.html:6 msgid "The instructions for this step could not be loaded." msgstr "" -#: templates/openassessmentblock/oa_base.html:15 +#: templates/legacy/oa_base.html:15 templates/openassessmentblock/base.html:21 msgid "" "This assignment has several steps. In the first step, you'll provide a " "response to the prompt. The other steps appear below the Your Response field." msgstr "" -#: templates/openassessmentblock/oa_base.html:36 +#: templates/legacy/oa_base.html:36 templates/openassessmentblock/base.html:42 +#: templates/openassessmentblock/base.html:82 msgid "Loading" msgstr "" -#: templates/openassessmentblock/oa_latex_preview.html:6 +#: templates/legacy/oa_latex_preview.html:6 msgid "Preview in LaTeX" msgstr "" -#: templates/openassessmentblock/oa_latex_preview.html:9 +#: templates/legacy/oa_latex_preview.html:9 msgid "Click to preview your submission in LaTeX." msgstr "" -#: templates/openassessmentblock/oa_latex_preview.html:14 +#: templates/legacy/oa_latex_preview.html:14 msgid "Preview Response" msgstr "" -#: templates/openassessmentblock/oa_rubric.html:53 +#: templates/legacy/oa_rubric.html:53 msgid "Comments" msgstr "" -#: templates/openassessmentblock/oa_submission_answer.html:8 +#: templates/legacy/oa_submission_answer.html:8 msgid "The question for this section" msgstr "" -#: templates/openassessmentblock/oa_team_uploaded_files.html:9 +#: templates/legacy/oa_team_uploaded_files.html:9 msgid "Files that were uploaded by your teammates:" msgstr "" -#: templates/openassessmentblock/oa_team_uploaded_files.html:28 -#: templates/openassessmentblock/oa_uploaded_file.html:34 +#: templates/legacy/oa_team_uploaded_files.html:28 +#: templates/legacy/oa_uploaded_file.html:34 msgid "View the files associated with this submission:" msgstr "" -#: templates/openassessmentblock/oa_team_uploaded_files.html:32 +#: templates/legacy/oa_team_uploaded_files.html:32 msgid "Uploaded by" msgstr "" -#: templates/openassessmentblock/oa_uploaded_file.html:16 +#: templates/legacy/oa_uploaded_file.html:16 msgid "Files that were uploaded by you:" msgstr "" -#: templates/openassessmentblock/oa_uploaded_file.html:48 +#: templates/legacy/oa_uploaded_file.html:48 msgid "" "Caution: These files were uploaded by another course learner and have not " "been verified, screened, approved, reviewed, or endorsed by the site " "administrator. If you access the files, you do so at your own risk.)" msgstr "" -#: templates/openassessmentblock/peer/oa_peer_assessment.html:26 +#: templates/legacy/peer/oa_peer_assessment.html:26 msgid "Assess Peers" msgstr "" #. Translators: This string displays a date to the user, then tells them the time until that date. Example: "available August 13th, 2014 00:00 UTC (in 5 days and 45 minutes)" -#: templates/openassessmentblock/peer/oa_peer_assessment.html:34 +#: templates/legacy/peer/oa_peer_assessment.html:34 #, python-format, python-brace-format msgid "" "\n" @@ -1183,7 +1182,7 @@ msgid "" msgstr "" #. Translators: This string displays a date to the user, then tells them the time until that date. Example: "due August 13th, 2014 00:00 UTC (in 5 days and 45 minutes)" -#: templates/openassessmentblock/peer/oa_peer_assessment.html:41 +#: templates/legacy/peer/oa_peer_assessment.html:41 #, python-format, python-brace-format msgid "" "\n" @@ -1194,7 +1193,7 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/peer/oa_peer_assessment.html:51 +#: templates/legacy/peer/oa_peer_assessment.html:51 #, python-format msgid "" "\n" @@ -1202,36 +1201,36 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/peer/oa_peer_assessment.html:65 -#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:45 +#: templates/legacy/peer/oa_peer_assessment.html:65 +#: templates/legacy/peer/oa_peer_turbo_mode.html:45 msgid "Read and assess the following response from one of your peers." msgstr "" -#: templates/openassessmentblock/peer/oa_peer_assessment.html:77 -#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:56 -#: templates/openassessmentblock/self/oa_self_assessment.html:60 -#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:45 -#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:38 -#: templates/openassessmentblock/staff_area/oa_student_info.html:63 +#: templates/legacy/peer/oa_peer_assessment.html:77 +#: templates/legacy/peer/oa_peer_turbo_mode.html:56 +#: templates/legacy/self/oa_self_assessment.html:60 +#: templates/legacy/staff_area/oa_staff_grade_learners_assessment.html:45 +#: templates/legacy/staff_area/oa_staff_override_assessment.html:38 +#: templates/legacy/staff_area/oa_student_info.html:63 msgid "Associated Files" msgstr "" -#: templates/openassessmentblock/peer/oa_peer_assessment.html:91 -#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:70 -#: templates/openassessmentblock/self/oa_self_assessment.html:71 -#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:57 -#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:50 +#: templates/legacy/peer/oa_peer_assessment.html:91 +#: templates/legacy/peer/oa_peer_turbo_mode.html:70 +#: templates/legacy/self/oa_self_assessment.html:71 +#: templates/legacy/staff_area/oa_staff_grade_learners_assessment.html:57 +#: templates/legacy/staff_area/oa_staff_override_assessment.html:50 msgid "We could not submit your assessment" msgstr "" -#: templates/openassessmentblock/peer/oa_peer_cancelled.html:19 -#: templates/openassessmentblock/response/oa_response_cancelled.html:21 -#: templates/openassessmentblock/self/oa_self_cancelled.html:21 -#: templates/openassessmentblock/student_training/student_training_cancelled.html:18 +#: templates/legacy/peer/oa_peer_cancelled.html:19 +#: templates/legacy/response/oa_response_cancelled.html:21 +#: templates/legacy/self/oa_self_cancelled.html:21 +#: templates/legacy/student_training/student_training_cancelled.html:18 msgid "Cancelled" msgstr "" -#: templates/openassessmentblock/peer/oa_peer_closed.html:20 +#: templates/legacy/peer/oa_peer_closed.html:20 #, python-format msgid "" "\n" @@ -1239,36 +1238,36 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/peer/oa_peer_closed.html:35 +#: templates/legacy/peer/oa_peer_closed.html:35 msgid "" "The due date for this step has passed. This step is now closed. You can no " "longer complete peer assessments or continue with this assignment, and you " "will receive a grade of Incomplete." msgstr "" -#: templates/openassessmentblock/peer/oa_peer_complete.html:13 +#: templates/legacy/peer/oa_peer_complete.html:13 msgid "Completed" msgstr "" -#: templates/openassessmentblock/peer/oa_peer_complete.html:31 -#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:41 -#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html:36 +#: templates/legacy/peer/oa_peer_complete.html:31 +#: templates/legacy/peer/oa_peer_turbo_mode.html:41 +#: templates/legacy/peer/oa_peer_turbo_mode_waiting.html:36 msgid "" "You have successfully completed all of the required peer assessments for " "this assignment. You may assess additional peer responses if you want to. " "Completing additional assessments will not affect your final grade." msgstr "" -#: templates/openassessmentblock/peer/oa_peer_complete.html:36 +#: templates/legacy/peer/oa_peer_complete.html:36 msgid "We could not retrieve additional submissions for assessment" msgstr "" -#: templates/openassessmentblock/peer/oa_peer_complete.html:43 +#: templates/legacy/peer/oa_peer_complete.html:43 msgid "Continue Assessing Peers" msgstr "" -#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:26 -#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html:20 +#: templates/legacy/peer/oa_peer_turbo_mode.html:26 +#: templates/legacy/peer/oa_peer_turbo_mode_waiting.html:20 #, python-format msgid "" "\n" @@ -1276,20 +1275,20 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html:38 +#: templates/legacy/peer/oa_peer_turbo_mode_waiting.html:38 msgid "" "All submitted peer responses have been assessed. Check back later to see if " "more learners have submitted responses." msgstr "" -#: templates/openassessmentblock/peer/oa_peer_unavailable.html:16 -#: templates/openassessmentblock/response/oa_response_unavailable.html:17 -#: templates/openassessmentblock/self/oa_self_unavailable.html:17 -#: templates/openassessmentblock/student_training/student_training_unavailable.html:16 +#: templates/legacy/peer/oa_peer_unavailable.html:16 +#: templates/legacy/response/oa_response_unavailable.html:17 +#: templates/legacy/self/oa_self_unavailable.html:17 +#: templates/legacy/student_training/student_training_unavailable.html:16 msgid "Not Available" msgstr "" -#: templates/openassessmentblock/peer/oa_peer_waiting.html:20 +#: templates/legacy/peer/oa_peer_waiting.html:20 #, python-format msgid "" "\n" @@ -1297,7 +1296,7 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/peer/oa_peer_waiting.html:37 +#: templates/legacy/peer/oa_peer_waiting.html:37 msgid "" "All available peer responses have been assessed. Check back later to see if " "more learners have submitted responses. You will receive your grade after " @@ -1305,12 +1304,12 @@ msgid "" "your response." msgstr "" -#: templates/openassessmentblock/response/oa_response.html:27 +#: templates/legacy/response/oa_response.html:27 msgid "Your Team's Response" msgstr "" #. Translators: This string displays a date to the user, then tells them the time until that date. Example: "available August 13th, 2014 (in 5 days and 45 minutes)" -#: templates/openassessmentblock/response/oa_response.html:39 +#: templates/legacy/response/oa_response.html:39 #, python-format, python-brace-format msgid "" "\n" @@ -1322,7 +1321,7 @@ msgid "" msgstr "" #. Translators: This string displays a date to the user, then tells them the time until that date. Example: "due August 13th, 2014 (in 5 days and 45 minutes)" -#: templates/openassessmentblock/response/oa_response.html:46 +#: templates/legacy/response/oa_response.html:46 #, python-format, python-brace-format msgid "" "\n" @@ -1333,16 +1332,16 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:54 -#: templates/openassessmentblock/self/oa_self_assessment.html:46 +#: templates/legacy/response/oa_response.html:54 +#: templates/legacy/self/oa_self_assessment.html:46 msgid "In Progress" msgstr "" -#: templates/openassessmentblock/response/oa_response.html:66 +#: templates/legacy/response/oa_response.html:66 msgid "Enter your team's response to the prompt." msgstr "" -#: templates/openassessmentblock/response/oa_response.html:68 +#: templates/legacy/response/oa_response.html:68 msgid "" "\n" " Your work will save automatically and you can return " @@ -1350,7 +1349,7 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:81 +#: templates/legacy/response/oa_response.html:81 msgid "" "\n" " Your work will save automatically and you can return " @@ -1358,60 +1357,60 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:86 +#: templates/legacy/response/oa_response.html:86 msgid "" "After you submit a response on behalf of your team, it cannot be edited." msgstr "" -#: templates/openassessmentblock/response/oa_response.html:89 +#: templates/legacy/response/oa_response.html:89 msgid "Enter your response to the prompt." msgstr "" -#: templates/openassessmentblock/response/oa_response.html:92 +#: templates/legacy/response/oa_response.html:92 msgid "" "Your work will save automatically and you can return to complete your " "response at any time before the subsection due date " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:94 +#: templates/legacy/response/oa_response.html:94 msgid "" "Your work will save automatically and you can return to complete your " "response at any time before the course ends " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:96 +#: templates/legacy/response/oa_response.html:96 msgid "" "Your work will save automatically and you can return to complete your " "response at any time before the due date " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:108 +#: templates/legacy/response/oa_response.html:108 msgid "" "Your work will save automatically and you can return to complete your " "response at any time." msgstr "" -#: templates/openassessmentblock/response/oa_response.html:110 +#: templates/legacy/response/oa_response.html:110 msgid "After you submit your response, you cannot edit it" msgstr "" -#: templates/openassessmentblock/response/oa_response.html:120 +#: templates/legacy/response/oa_response.html:120 msgid "What will this assignment be graded on?" msgstr "" -#: templates/openassessmentblock/response/oa_response.html:134 +#: templates/legacy/response/oa_response.html:134 msgid "The prompt for this section" msgstr "" -#: templates/openassessmentblock/response/oa_response.html:148 +#: templates/legacy/response/oa_response.html:148 msgid "You are on team " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:150 +#: templates/legacy/response/oa_response.html:150 msgid "Team Members: " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:155 +#: templates/legacy/response/oa_response.html:155 #, python-format msgid "" "\n" @@ -1423,25 +1422,25 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:171 +#: templates/legacy/response/oa_response.html:171 msgid "Team Response " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:173 +#: templates/legacy/response/oa_response.html:173 msgid "Your Response " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:177 -#: templates/openassessmentblock/response/oa_response.html:247 +#: templates/legacy/response/oa_response.html:177 +#: templates/legacy/response/oa_response.html:247 msgid "(Required)" msgstr "" -#: templates/openassessmentblock/response/oa_response.html:179 -#: templates/openassessmentblock/response/oa_response.html:249 +#: templates/legacy/response/oa_response.html:179 +#: templates/legacy/response/oa_response.html:249 msgid "(Optional)" msgstr "" -#: templates/openassessmentblock/response/oa_response.html:183 +#: templates/legacy/response/oa_response.html:183 msgid "" "\n" " Teams should designate one " @@ -1456,11 +1455,11 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:197 +#: templates/legacy/response/oa_response.html:197 msgid "Enter your response to the prompt above." msgstr "" -#: templates/openassessmentblock/response/oa_response.html:211 +#: templates/legacy/response/oa_response.html:211 #, python-format msgid "" "\n" @@ -1476,19 +1475,19 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:224 +#: templates/legacy/response/oa_response.html:224 msgid "We could not save your progress" msgstr "" -#: templates/openassessmentblock/response/oa_response.html:232 +#: templates/legacy/response/oa_response.html:232 msgid "Status of Your Response" msgstr "" -#: templates/openassessmentblock/response/oa_response.html:245 +#: templates/legacy/response/oa_response.html:245 msgid "File Uploads " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:253 +#: templates/legacy/response/oa_response.html:253 msgid "" "\n" " Upload files and review files uploaded by " @@ -1498,60 +1497,60 @@ msgid "" " " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:261 +#: templates/legacy/response/oa_response.html:261 msgid "We could not upload files" msgstr "" -#: templates/openassessmentblock/response/oa_response.html:267 +#: templates/legacy/response/oa_response.html:267 msgid "We could not delete files" msgstr "" -#: templates/openassessmentblock/response/oa_response.html:274 +#: templates/legacy/response/oa_response.html:274 msgid "Select one or more files to upload for this submission." msgstr "" -#: templates/openassessmentblock/response/oa_response.html:276 +#: templates/legacy/response/oa_response.html:276 msgid "Select a file to upload for this submission." msgstr "" -#: templates/openassessmentblock/response/oa_response.html:280 +#: templates/legacy/response/oa_response.html:280 msgid "Supported file types: " msgstr "" -#: templates/openassessmentblock/response/oa_response.html:285 +#: templates/legacy/response/oa_response.html:285 msgid "Upload files" msgstr "" -#: templates/openassessmentblock/response/oa_response.html:287 +#: templates/legacy/response/oa_response.html:287 msgid "Upload file" msgstr "" -#: templates/openassessmentblock/response/oa_response.html:304 +#: templates/legacy/response/oa_response.html:304 msgid "This is a team submission." msgstr "" -#: templates/openassessmentblock/response/oa_response.html:306 +#: templates/legacy/response/oa_response.html:306 msgid "" "One team member should submit a response with the team’s shared files and a " "text response on behalf of the entire team." msgstr "" -#: templates/openassessmentblock/response/oa_response.html:308 +#: templates/legacy/response/oa_response.html:308 msgid "" "One team member should submit a response with the team’s shared files on " "behalf of the entire team." msgstr "" -#: templates/openassessmentblock/response/oa_response.html:310 +#: templates/legacy/response/oa_response.html:310 msgid "" "One team member should submit a text response on behalf of the entire team." msgstr "" -#: templates/openassessmentblock/response/oa_response.html:312 +#: templates/legacy/response/oa_response.html:312 msgid "One team member should submit on behalf of the entire team." msgstr "" -#: templates/openassessmentblock/response/oa_response.html:314 +#: templates/legacy/response/oa_response.html:314 msgid "" "\n" " Learn more about team assignments here: (\n" "Language-Team: openedx-translation \n" @@ -18,430 +18,512 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:77 xblock/static/js/src/oa_server.js:113 #: xblock/static/js/src/oa_server.js:137 msgid "This section could not be loaded." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:158 msgid "The staff assessment form could not be loaded." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:180 msgid "The display of ungraded and checked out responses could not be loaded." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:214 msgid "This response could not be submitted." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:237 msgid "Please check your internet connection." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:262 msgid "This feedback could not be submitted." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:287 xblock/static/js/src/oa_server.js:378 #: xblock/static/js/src/oa_server.js:401 msgid "This assessment could not be submitted." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:424 msgid "One or more rescheduling tasks failed." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:484 msgid "This problem could not be saved." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:505 msgid "The server could not be contacted." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:531 msgid "Could not retrieve upload url." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:550 xblock/static/js/src/oa_server.js:569 msgid "Server error." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:589 msgid "Could not retrieve download url." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:615 msgid "The submission could not be removed from the grading pool." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:671 msgid "Multiple teams returned for course" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:678 msgid "Could not load teams information." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:700 msgid "User lookup failed" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:705 msgid "Error when looking up username" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:8 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:8 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:8 #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js:1 #: xblock/static/js/src/oa_server.js:729 msgid "Failed to clone rubric" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 #: xblock/static/js/src/lms/oa_course_items_listing.js:61 msgid "View and grade responses" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 #: xblock/static/js/src/lms/oa_course_items_listing.js:61 msgid "Demo the new Grading Experience" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "Unit Name" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "Units" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "Assessment" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "Assessments" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "Total Responses" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "Training" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "Peer" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "Self" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "Waiting" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "Staff" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "Final Grade Received" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "Staff Grader" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "List of Open Assessments is unavailable" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "Please wait" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "Block view is unavailable" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:314 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:314 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:314 msgid "Back to Full List" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_confirmation_alert.js:5 msgid "Confirm" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_confirmation_alert.js:7 msgid "Cancel" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:253 msgid "" "There is still file upload in progress. Please wait until it is finished." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:243 msgid "Cannot submit empty response even everything is optional." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:235 msgid "Please upload a file." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:228 msgid "Please provide a response." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:328 msgid "No files selected for upload." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:335 msgid "Please provide a description for each file you are uploading." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:344 msgid "Your file has been deleted or path has been changed: " msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:439 msgid "Saving draft" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:446 msgid "" "If you leave this page without saving or submitting your response, you will " "lose any work you have done on the response." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:461 msgid "Saving draft..." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:477 msgid "Draft saved!" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:490 msgid "Error" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:511 msgid "Confirm Submit Response" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:514 msgid "" "You're about to submit your response for this assignment. After you submit " "this response, you can't change it or submit a new response." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:589 msgid "Individual file size must be {max_files_mb}MB or less." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:603 msgid "" "File upload failed: unsupported file type. Only the supported file types can " "be uploaded. If you have questions, please reach out to the course team." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:614 msgid "The maximum number files that can be saved is " msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:682 #: xblock/static/js/src/lms/oa_response.js:688 msgid "Describe " msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:682 msgid "(required):" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:702 msgid "Thumbnail view of " msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:779 msgid "Confirm Delete Uploaded File" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_response.js:804 msgid "" "Are you sure you want to delete the following file? It cannot be restored.\n" "File: " msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_self.js:138 msgid "" "If you leave this page without submitting your self assessment, you will " "lose any work you have done." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_staff_area.js:143 #: xblock/static/js/src/lms/oa_staff_area.js:253 msgid "Unexpected server error." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_staff_area.js:147 msgid "You must provide a learner name." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_staff_area.js:214 msgid "" "This grade will be applied to all members of the team. Do you want to " "continue?" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_staff_area.js:218 msgid "Confirm Grade Team Submission" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_staff_area.js:304 msgid "Error getting the number of ungraded responses" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 msgid "" "If you leave this page without submitting your staff assessment, you will " "lose any work you have done." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_training.js:130 msgid "Feedback available for selection." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:369 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:369 #: xblock/static/js/src/lms/oa_peer.js:217 msgid "" "If you leave this page without submitting your peer assessment, you will " "lose any work you have done." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:375 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:375 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:375 msgid "Refresh" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:375 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:375 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:375 msgid "Username" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:375 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:375 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:375 msgid "Peers Assessed" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:375 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:375 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:375 msgid "Peer Responses Received" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:375 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:375 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:375 msgid "Time Spent On Current Step" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:375 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:375 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:375 msgid "Staff assessment" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:375 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:375 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:375 msgid "Grade Status" msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:375 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:375 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:375 msgid "" "The \"{name}\" problem is configured to require a minimum of {min_grades} " "peer grades, and asks to review {min_graded} peers." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:375 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:375 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:375 msgid "" "There are currently {stuck_learners} learners in the waiting state, meaning " "they have not yet met all requirements for Peer Assessment. " msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:375 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:375 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:375 msgid "" "However, {overwritten_count} of these students have received a grade through " "the staff grade override tool already." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:375 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:375 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:375 msgid "Error while fetching student data." msgstr "" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:375 +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js:375 +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js:375 msgid "Unable to load" msgstr "" diff --git a/openassessment/conf/locale/eo/LC_MESSAGES/django.mo b/openassessment/conf/locale/eo/LC_MESSAGES/django.mo index 6e62cc5d76..b29b55f0fc 100644 Binary files a/openassessment/conf/locale/eo/LC_MESSAGES/django.mo and b/openassessment/conf/locale/eo/LC_MESSAGES/django.mo differ diff --git a/openassessment/conf/locale/eo/LC_MESSAGES/django.po b/openassessment/conf/locale/eo/LC_MESSAGES/django.po index e6ff8356dd..00cffc1ed3 100644 --- a/openassessment/conf/locale/eo/LC_MESSAGES/django.po +++ b/openassessment/conf/locale/eo/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-ora2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-06 21:24+0000\n" +"POT-Creation-Date: 2023-10-25 14:38+0000\n" "PO-Revision-Date: 2014-06-04 15:41-0400\n" "Last-Translator: Muhammad Ayub khan \n" "Language-Team: openedx-translation \n" @@ -119,8 +119,7 @@ msgstr "Àsséssmént Týpé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" msgid "Anonymous Scorer Id" msgstr "Ànönýmöüs Sçörér Ìd Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#" -#: data.py -#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html +#: data.py templates/legacy/staff_area/oa_student_info_assessment_detail.html msgid "Overall Feedback" msgstr "Övéräll Féédßäçk Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" @@ -160,15 +159,15 @@ msgstr "Réspönsé Fïlés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#" msgid "No description provided." msgstr "Nö désçrïptïön prövïdéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢ση#" -#: templates/openassessmentblock/edit/oa_edit.html +#: templates/legacy/edit/oa_edit.html msgid "Save" msgstr "Sävé Ⱡ'σяєм ι#" -#: templates/openassessmentblock/edit/oa_edit.html +#: templates/legacy/edit/oa_edit.html msgid "Cancel" msgstr "Çänçél Ⱡ'σяєм ιρѕυ#" -#: templates/openassessmentblock/edit/oa_edit_assessment_steps.html +#: templates/legacy/edit/oa_edit_assessment_steps.html msgid "" "Open Response Assessments allow you to configure single or multiple steps in" " a rubric based open response assessment sequence. The steps available below" @@ -184,21 +183,21 @@ msgstr "" "¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт" " єѕѕє ¢ιłłυм ∂σłσяє#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "Display Name " msgstr "Dïspläý Nämé Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "The display name for this component." msgstr "" "Thé dïspläý nämé för thïs çömpönént. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυ#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "Text Response" msgstr "Téxt Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "" "Specify whether learners must include a text based response to this " "problem's prompt." @@ -206,11 +205,11 @@ msgstr "" "Spéçïfý whéthér léärnérs müst ïnçlüdé ä téxt ßäséd réspönsé tö thïs " "prößlém's prömpt. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "Response Editor" msgstr "Réspönsé Édïtör Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "" "Select which editor learners will use to include a text based response to " "this problem's prompt." @@ -218,11 +217,11 @@ msgstr "" "Séléçt whïçh édïtör léärnérs wïll üsé tö ïnçlüdé ä téxt ßäséd réspönsé tö " "thïs prößlém's prömpt. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "File Uploads Response" msgstr "Fïlé Ûplöäds Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "" "Specify whether learners are able to upload files as a part of their " "response." @@ -230,27 +229,27 @@ msgstr "" "Spéçïfý whéthér léärnérs äré äßlé tö üplöäd fïlés äs ä pärt öf théïr " "réspönsé. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "Allow Multiple Files" msgstr "Àllöw Mültïplé Fïlés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_peer_assessment.html msgid "False" msgstr "Fälsé Ⱡ'σяєм ιρѕ#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_peer_assessment.html msgid "True" msgstr "Trüé Ⱡ'σяєм ι#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "" "Specify whether learners can upload more than one file. This has no effect " "if File Uploads Response is set to None. This is automatically set to True " @@ -265,34 +264,34 @@ msgstr "" "νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт " "σ¢¢αє¢αт ¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυ#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "File Upload Types" msgstr "Fïlé Ûplöäd Týpés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "PDF or Image Files" msgstr "PDF ör Ìmägé Fïlés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "Image Files" msgstr "Ìmägé Fïlés Ⱡ'σяєм ιρѕυм ∂σłσя #" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "Custom File Types" msgstr "Çüstöm Fïlé Týpés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "" "Specify whether learners can submit files along with their text responses." msgstr "" "Spéçïfý whéthér léärnérs çän süßmït fïlés älöng wïth théïr téxt réspönsés. " "Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυ#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "File Types" msgstr "Fïlé Týpés Ⱡ'σяєм ιρѕυм ∂σłσ#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "" "Enter the file extensions, separated by commas, that you want learners to be" " able to upload. For example: pdf,doc,docx." @@ -300,7 +299,7 @@ msgstr "" "Éntér thé fïlé éxténsïöns, sépärätéd ßý çömmäs, thät ýöü wänt léärnérs tö ßé" " äßlé tö üplöäd. För éxämplé: pdf,döç,döçx. Ⱡ'σяєм ιρѕυм#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "" "To add more file extensions, select Custom File Types and enter the full " "list of acceptable file extensions to be included." @@ -308,27 +307,27 @@ msgstr "" "Tö ädd möré fïlé éxténsïöns, séléçt Çüstöm Fïlé Týpés änd éntér thé füll " "lïst öf äççéptäßlé fïlé éxténsïöns tö ßé ïnçlüdéd. Ⱡ'σяєм ιρ#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "Allow LaTeX Responses" msgstr "Àllöw LäTéX Réspönsés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "Specify whether learners can write LaTeX formatted strings" msgstr "" "Spéçïfý whéthér léärnérs çän wrïté LäTéX förmättéd strïngs Ⱡ'σяєм ιρѕυм " "∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html -#: templates/openassessmentblock/leaderboard/oa_leaderboard_show.html -#: templates/openassessmentblock/leaderboard/oa_leaderboard_waiting.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html +#: templates/legacy/leaderboard/oa_leaderboard_show.html +#: templates/legacy/leaderboard/oa_leaderboard_waiting.html msgid "Top Responses" msgstr "Töp Réspönsés Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid " (Disabled)" msgstr " (Dïsäßléd) Ⱡ'σяєм ιρѕυм ∂σłσя #" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "" "Specify the number of top scoring responses to display after the learner has" " submitted a response. Valid numbers are 0 to 99. If the number is 0, the " @@ -343,31 +342,31 @@ msgstr "" "αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ " "ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "When Teams Enabled is set to true, Top Responses will be disabled." msgstr "" "Whén Téäms Énäßléd ïs sét tö trüé, Töp Réspönsés wïll ßé dïsäßléd. Ⱡ'σяєм " "ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "Teams Enabled" msgstr "Téäms Énäßléd Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "Specify whether team submissions are allowed for this response." msgstr "" "Spéçïfý whéthér téäm süßmïssïöns äré ällöwéd för thïs réspönsé. Ⱡ'σяєм ιρѕυм" " ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "Select Team-Set" msgstr "Séléçt Téäm-Sét Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "Show Rubric During Response" msgstr "Shöw Rüßrïç Dürïng Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє#" -#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html +#: templates/legacy/edit/oa_edit_basic_settings_list.html msgid "" "Specify whether learners can see the rubric while they are working on their " "response." @@ -375,59 +374,57 @@ msgstr "" "Spéçïfý whéthér léärnérs çän séé thé rüßrïç whïlé théý äré wörkïng ön théïr " "réspönsé. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢#" -#: templates/openassessmentblock/edit/oa_edit_criterion.html -#: templates/openassessmentblock/staff_area/oa_student_info.html -#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html +#: templates/legacy/edit/oa_edit_criterion.html +#: templates/legacy/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info_assessment_detail.html msgid "Criterion" msgstr "Çrïtérïön Ⱡ'σяєм ιρѕυм ∂σł#" -#: templates/openassessmentblock/edit/oa_edit_criterion.html +#: templates/legacy/edit/oa_edit_criterion.html msgid "You cannot delete a criterion after the assignment has been released." msgstr "" "Ýöü çännöt délété ä çrïtérïön äftér thé ässïgnmént häs ßéén réléäséd. Ⱡ'σяєм" " ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/edit/oa_edit_criterion.html -#: templates/openassessmentblock/edit/oa_edit_option.html -#: templates/openassessmentblock/edit/oa_edit_prompt.html -#: templates/openassessmentblock/edit/oa_training_example.html +#: templates/legacy/edit/oa_edit_criterion.html +#: templates/legacy/edit/oa_edit_option.html +#: templates/legacy/edit/oa_edit_prompt.html +#: templates/legacy/edit/oa_training_example.html msgid "Remove" msgstr "Rémövé Ⱡ'σяєм ιρѕυ#" -#: templates/openassessmentblock/edit/oa_edit_criterion.html +#: templates/legacy/edit/oa_edit_criterion.html msgid "Criterion Name" msgstr "Çrïtérïön Nämé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#" -#: templates/openassessmentblock/edit/oa_edit_criterion.html +#: templates/legacy/edit/oa_edit_criterion.html msgid "Criterion Prompt" msgstr "Çrïtérïön Prömpt Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" -#: templates/openassessmentblock/edit/oa_edit_criterion.html +#: templates/legacy/edit/oa_edit_criterion.html msgid "Add Option" msgstr "Àdd Öptïön Ⱡ'σяєм ιρѕυм ∂σłσ#" -#: templates/openassessmentblock/edit/oa_edit_criterion.html +#: templates/legacy/edit/oa_edit_criterion.html msgid "Feedback for This Criterion" msgstr "Féédßäçk för Thïs Çrïtérïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє#" -#: templates/openassessmentblock/edit/oa_edit_criterion.html -#: xblock/studio_mixin.py +#: templates/legacy/edit/oa_edit_criterion.html xblock/studio_mixin.py msgid "None" msgstr "Nöné Ⱡ'σяєм ι#" -#: templates/openassessmentblock/edit/oa_edit_criterion.html -#: xblock/studio_mixin.py +#: templates/legacy/edit/oa_edit_criterion.html xblock/studio_mixin.py msgid "Optional" msgstr "Öptïönäl Ⱡ'σяєм ιρѕυм ∂#" -#: templates/openassessmentblock/edit/oa_edit_criterion.html -#: templates/openassessmentblock/oa_rubric.html -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/edit/oa_edit_criterion.html +#: templates/legacy/oa_rubric.html +#: templates/legacy/student_training/student_training.html #: xblock/studio_mixin.py msgid "Required" msgstr "Réqüïréd Ⱡ'σяєм ιρѕυм ∂#" -#: templates/openassessmentblock/edit/oa_edit_criterion.html +#: templates/legacy/edit/oa_edit_criterion.html msgid "" "Select one of the options above. This describes whether or not the reviewer " "will have to provide criterion feedback." @@ -435,52 +432,52 @@ msgstr "" "Séléçt öné öf thé öptïöns äßövé. Thïs désçrïßés whéthér ör nöt thé révïéwér " "wïll hävé tö prövïdé çrïtérïön féédßäçk. Ⱡ'σяєм ιρѕυм ∂σ#" -#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html +#: templates/legacy/edit/oa_edit_header_and_validation.html msgid "Open Response Assessment" msgstr "Öpén Réspönsé Àsséssmént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢ση#" -#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html -#: templates/openassessmentblock/edit/oa_edit_prompt.html +#: templates/legacy/edit/oa_edit_header_and_validation.html +#: templates/legacy/edit/oa_edit_prompt.html msgid "Prompt" msgstr "Prömpt Ⱡ'σяєм ιρѕυ#" -#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html +#: templates/legacy/edit/oa_edit_header_and_validation.html msgid "Rubric" msgstr "Rüßrïç Ⱡ'σяєм ιρѕυ#" -#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html +#: templates/legacy/edit/oa_edit_header_and_validation.html msgid "Schedule" msgstr "Sçhédülé Ⱡ'σяєм ιρѕυм ∂#" -#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html +#: templates/legacy/edit/oa_edit_header_and_validation.html msgid "Assessment steps" msgstr "Àsséssmént stéps Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" -#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html +#: templates/legacy/edit/oa_edit_header_and_validation.html msgid "Settings" msgstr "Séttïngs Ⱡ'σяєм ιρѕυм ∂#" -#: templates/openassessmentblock/edit/oa_edit_option.html +#: templates/legacy/edit/oa_edit_option.html msgid "Option" msgstr "Öptïön Ⱡ'σяєм ιρѕυ#" -#: templates/openassessmentblock/edit/oa_edit_option.html +#: templates/legacy/edit/oa_edit_option.html msgid "Option Name" msgstr "Öptïön Nämé Ⱡ'σяєм ιρѕυм ∂σłσя #" -#: templates/openassessmentblock/edit/oa_edit_option.html +#: templates/legacy/edit/oa_edit_option.html msgid "Option Points" msgstr "Öptïön Pöïnts Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" -#: templates/openassessmentblock/edit/oa_edit_option.html +#: templates/legacy/edit/oa_edit_option.html msgid "Option Explanation" msgstr "Öptïön Éxplänätïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html +#: templates/legacy/edit/oa_edit_peer_assessment.html msgid "Step: Peer Assessment" msgstr "Stép: Péér Àsséssmént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html +#: templates/legacy/edit/oa_edit_peer_assessment.html msgid "" "Peer Assessment allows students to provide feedback to other students and " "also receive feedback from others in their final grade. Often, though not " @@ -495,7 +492,7 @@ msgstr "" "¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє " "¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυ#" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html +#: templates/legacy/edit/oa_edit_peer_assessment.html msgid "" "Configuration: For this step to be configured you must specify the number of" " peer reviews a student will be assessed with, and the number of peer a " @@ -510,15 +507,15 @@ msgstr "" "αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ " "ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢#" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html +#: templates/legacy/edit/oa_edit_peer_assessment.html msgid "View Options & Configuration" msgstr "Vïéw Öptïöns & Çönfïgürätïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢#" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html +#: templates/legacy/edit/oa_edit_peer_assessment.html msgid "Must Grade" msgstr "Müst Grädé Ⱡ'σяєм ιρѕυм ∂σłσ#" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html +#: templates/legacy/edit/oa_edit_peer_assessment.html msgid "" "Specify the number of peer assessments that each learner must complete. " "Valid numbers are 1 to 99." @@ -526,11 +523,11 @@ msgstr "" "Spéçïfý thé nümßér öf péér ässéssménts thät éäçh léärnér müst çömplété. " "Välïd nümßérs äré 1 tö 99. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html +#: templates/legacy/edit/oa_edit_peer_assessment.html msgid "Graded By" msgstr "Grädéd Bý Ⱡ'σяєм ιρѕυм ∂σł#" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html +#: templates/legacy/edit/oa_edit_peer_assessment.html msgid "" "Specify the number of learners that each response must be assessed by. Valid" " numbers are 1 to 99." @@ -538,13 +535,13 @@ msgstr "" "Spéçïfý thé nümßér öf léärnérs thät éäçh réspönsé müst ßé ässésséd ßý. Välïd" " nümßérs äré 1 tö 99. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html +#: templates/legacy/edit/oa_edit_peer_assessment.html msgid "Enable Flexible Peer Grade Averaging" msgstr "" "Énäßlé Fléxïßlé Péér Grädé Àvérägïng Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυ#" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html +#: templates/legacy/edit/oa_edit_peer_assessment.html #, python-format msgid "" "When enabled, learners who have received at least 30%% of the required \\" @@ -552,7 +549,7 @@ msgstr "" "Whén énäßléd, léärnérs whö hävé réçéïvéd ät léäst 30%% öf thé réqüïréd \\ " "Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя#" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html +#: templates/legacy/edit/oa_edit_peer_assessment.html msgid "" "This feature is being enabled by the course-level setting. It can be found " "under the Open Response Assessment Settings card on the Pages & Resources " @@ -567,50 +564,50 @@ msgstr "" "νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт " "¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕє#" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html +#: templates/legacy/edit/oa_edit_peer_assessment_schedule.html msgid "Peer Assessment Deadlines" msgstr "Péér Àsséssmént Déädlïnés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html -#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html +#: templates/legacy/edit/oa_edit_peer_assessment_schedule.html +#: templates/legacy/edit/oa_edit_self_assessment_schedule.html msgid "Start Date" msgstr "Stärt Däté Ⱡ'σяєм ιρѕυм ∂σłσ#" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html -#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html +#: templates/legacy/edit/oa_edit_peer_assessment_schedule.html +#: templates/legacy/edit/oa_edit_self_assessment_schedule.html msgid "Start Time" msgstr "Stärt Tïmé Ⱡ'σяєм ιρѕυм ∂σłσ#" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html +#: templates/legacy/edit/oa_edit_peer_assessment_schedule.html msgid "The date and time when learners can begin assessing peer responses." msgstr "" "Thé däté änd tïmé whén léärnérs çän ßégïn ässéssïng péér réspönsés. Ⱡ'σяєм " "ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html -#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/edit/oa_edit_peer_assessment_schedule.html +#: templates/legacy/edit/oa_edit_self_assessment_schedule.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Due Date" msgstr "Düé Däté Ⱡ'σяєм ιρѕυм ∂#" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html -#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html +#: templates/legacy/edit/oa_edit_peer_assessment_schedule.html +#: templates/legacy/edit/oa_edit_self_assessment_schedule.html msgid "Due Time" msgstr "Düé Tïmé Ⱡ'σяєм ιρѕυм ∂#" -#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html +#: templates/legacy/edit/oa_edit_peer_assessment_schedule.html msgid "The date and time when all peer assessments must be complete." msgstr "" "Thé däté änd tïmé whén äll péér ässéssménts müst ßé çömplété. Ⱡ'σяєм ιρѕυм " "∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/edit/oa_edit_prompt.html +#: templates/legacy/edit/oa_edit_prompt.html msgid "You cannot delete a prompt after the assignment has been released." msgstr "" "Ýöü çännöt délété ä prömpt äftér thé ässïgnmént häs ßéén réléäséd. Ⱡ'σяєм " "ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/edit/oa_edit_prompts.html +#: templates/legacy/edit/oa_edit_prompts.html msgid "" "Prompts. Replace the sample text with your own text. For more information, " "see the ORA documentation." @@ -618,11 +615,11 @@ msgstr "" "Prömpts. Répläçé thé sämplé téxt wïth ýöür öwn téxt. För möré ïnförmätïön, " "séé thé ÖRÀ döçüméntätïön. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#" -#: templates/openassessmentblock/edit/oa_edit_prompts.html +#: templates/legacy/edit/oa_edit_prompts.html msgid "Add Prompt" msgstr "Àdd Prömpt Ⱡ'σяєм ιρѕυм ∂σłσ#" -#: templates/openassessmentblock/edit/oa_edit_rubric.html +#: templates/legacy/edit/oa_edit_rubric.html msgid "" "Rubrics are made up of criteria, which usually contain one or more options. " "Each option has a point value. This template contains two sample criteria " @@ -638,19 +635,19 @@ msgstr "" "υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє " "∂σł#" -#: templates/openassessmentblock/edit/oa_edit_rubric.html +#: templates/legacy/edit/oa_edit_rubric.html msgid "Add Criterion" msgstr "Àdd Çrïtérïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" -#: templates/openassessmentblock/edit/oa_edit_rubric.html +#: templates/legacy/edit/oa_edit_rubric.html msgid "Feedback for This Response" msgstr "Féédßäçk för Thïs Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: templates/openassessmentblock/edit/oa_edit_rubric.html +#: templates/legacy/edit/oa_edit_rubric.html msgid "Feedback Instructions" msgstr "Féédßäçk Ìnstrüçtïöns Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" -#: templates/openassessmentblock/edit/oa_edit_rubric.html +#: templates/legacy/edit/oa_edit_rubric.html msgid "" "Encourage learners to provide feedback on the response they have graded. You" " can replace the sample text with your own." @@ -658,11 +655,11 @@ msgstr "" "Énçöürägé léärnérs tö prövïdé féédßäçk ön thé réspönsé théý hävé grädéd. Ýöü" " çän répläçé thé sämplé téxt wïth ýöür öwn. Ⱡ'σяєм ιρѕυм#" -#: templates/openassessmentblock/edit/oa_edit_rubric.html +#: templates/legacy/edit/oa_edit_rubric.html msgid "Default Feedback Text" msgstr "Défäült Féédßäçk Téxt Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" -#: templates/openassessmentblock/edit/oa_edit_rubric.html +#: templates/legacy/edit/oa_edit_rubric.html msgid "" "Enter feedback text that learners will see before they enter their own " "feedback. Use this text to show learners a good example peer assessment." @@ -676,75 +673,75 @@ msgstr "" "¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт " "ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυηт мσłłιт αηιм ι∂ єѕ#" -#: templates/openassessmentblock/edit/oa_edit_schedule.html +#: templates/legacy/edit/oa_edit_schedule.html msgid "Deadlines Configuration" msgstr "Déädlïnés Çönfïgürätïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σ#" -#: templates/openassessmentblock/edit/oa_edit_schedule.html +#: templates/legacy/edit/oa_edit_schedule.html msgid "Select a deadline configuration option" msgstr "" "Séléçt ä déädlïné çönfïgürätïön öptïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя#" -#: templates/openassessmentblock/edit/oa_edit_schedule.html +#: templates/legacy/edit/oa_edit_schedule.html msgid " NEW" msgstr " NÉW Ⱡ'σяєм ι#" -#: templates/openassessmentblock/edit/oa_edit_schedule.html +#: templates/legacy/edit/oa_edit_schedule.html msgid "Configure deadlines manually" msgstr "Çönfïgüré déädlïnés mänüällý Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢#" -#: templates/openassessmentblock/edit/oa_edit_schedule.html +#: templates/legacy/edit/oa_edit_schedule.html msgid "Match deadlines to the subsection due date" msgstr "" "Mätçh déädlïnés tö thé süßséçtïön düé däté Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/edit/oa_edit_schedule.html +#: templates/legacy/edit/oa_edit_schedule.html msgid "Match deadlines to the course end date" msgstr "" "Mätçh déädlïnés tö thé çöürsé énd däté Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя#" -#: templates/openassessmentblock/edit/oa_edit_schedule.html +#: templates/legacy/edit/oa_edit_schedule.html msgid "Learn more about open response date settings" msgstr "" "Léärn möré äßöüt öpén réspönsé däté séttïngs Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/edit/oa_edit_schedule.html +#: templates/legacy/edit/oa_edit_schedule.html msgid "Response Start Date" msgstr "Réspönsé Stärt Däté Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#" -#: templates/openassessmentblock/edit/oa_edit_schedule.html +#: templates/legacy/edit/oa_edit_schedule.html msgid "Response Start Time" msgstr "Réspönsé Stärt Tïmé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#" -#: templates/openassessmentblock/edit/oa_edit_schedule.html +#: templates/legacy/edit/oa_edit_schedule.html msgid "The date and time when learners can begin submitting responses." msgstr "" "Thé däté änd tïmé whén léärnérs çän ßégïn süßmïttïng réspönsés. Ⱡ'σяєм ιρѕυм" " ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/edit/oa_edit_schedule.html +#: templates/legacy/edit/oa_edit_schedule.html msgid "Response Due Date" msgstr "Réspönsé Düé Däté Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#" -#: templates/openassessmentblock/edit/oa_edit_schedule.html +#: templates/legacy/edit/oa_edit_schedule.html msgid "Response Due Time" msgstr "Réspönsé Düé Tïmé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#" -#: templates/openassessmentblock/edit/oa_edit_schedule.html +#: templates/legacy/edit/oa_edit_schedule.html msgid "The date and time when learners can no longer submit responses." msgstr "" "Thé däté änd tïmé whén léärnérs çän nö löngér süßmït réspönsés. Ⱡ'σяєм ιρѕυм" " ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/edit/oa_edit_self_assessment.html +#: templates/legacy/edit/oa_edit_self_assessment.html msgid "Step: Self Assessment" msgstr "Stép: Sélf Àsséssmént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" -#: templates/openassessmentblock/edit/oa_edit_self_assessment.html +#: templates/legacy/edit/oa_edit_self_assessment.html msgid "" "Self Assessment asks learners to grade their own submissions against the " "rubric." @@ -752,27 +749,27 @@ msgstr "" "Sélf Àsséssmént äsks léärnérs tö grädé théïr öwn süßmïssïöns ägäïnst thé " "rüßrïç. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html +#: templates/legacy/edit/oa_edit_self_assessment_schedule.html msgid "Self Assessment Deadlines" msgstr "Sélf Àsséssmént Déädlïnés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html +#: templates/legacy/edit/oa_edit_self_assessment_schedule.html msgid "The date and time when learners can begin assessing their responses." msgstr "" "Thé däté änd tïmé whén léärnérs çän ßégïn ässéssïng théïr réspönsés. Ⱡ'σяєм " "ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html +#: templates/legacy/edit/oa_edit_self_assessment_schedule.html msgid "The date and time when all self assessments must be complete." msgstr "" "Thé däté änd tïmé whén äll sélf ässéssménts müst ßé çömplété. Ⱡ'σяєм ιρѕυм " "∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/edit/oa_edit_staff_assessment.html +#: templates/legacy/edit/oa_edit_staff_assessment.html msgid "Step: Staff Assessment" msgstr "Stép: Stäff Àsséssmént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢#" -#: templates/openassessmentblock/edit/oa_edit_staff_assessment.html +#: templates/legacy/edit/oa_edit_staff_assessment.html msgid "" "Staff Assessment gates sets the final grade for students if enabled with " "other steps, though it can also be used as a standalone step." @@ -786,11 +783,11 @@ msgstr "" "¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт " "ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυηт мσłłιт αηιм ι∂ єѕт łαвσяυм#" -#: templates/openassessmentblock/edit/oa_edit_student_training.html +#: templates/legacy/edit/oa_edit_student_training.html msgid "Step: Learner Training" msgstr "Stép: Léärnér Träïnïng Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢#" -#: templates/openassessmentblock/edit/oa_edit_student_training.html +#: templates/legacy/edit/oa_edit_student_training.html msgid "" "Learner Training is used to help students practice grading a simulated peer " "submission in order to train them on the rubric and ensure learner's " @@ -805,7 +802,7 @@ msgstr "" "¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє " "¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕ#" -#: templates/openassessmentblock/edit/oa_edit_student_training.html +#: templates/legacy/edit/oa_edit_student_training.html msgid "" "Configuration: For this step to be fully configured you must provide one or " "more graded sample responses. Learners must then match this instructor score" @@ -821,19 +818,19 @@ msgstr "" "єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє" " νєłιт#" -#: templates/openassessmentblock/edit/oa_edit_student_training.html +#: templates/legacy/edit/oa_edit_student_training.html msgid "View / Add Sample Responses" msgstr "Vïéw / Àdd Sämplé Réspönsés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє#" -#: templates/openassessmentblock/edit/oa_edit_student_training.html +#: templates/legacy/edit/oa_edit_student_training.html msgid "Add Sample Response" msgstr "Àdd Sämplé Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#" -#: templates/openassessmentblock/edit/oa_rubric_reuse.html +#: templates/legacy/edit/oa_rubric_reuse.html msgid "Clone Rubric" msgstr "Çlöné Rüßrïç Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" -#: templates/openassessmentblock/edit/oa_rubric_reuse.html +#: templates/legacy/edit/oa_rubric_reuse.html msgid "" "To clone a rubric from an existing published or unpublished draft, you can " "search by the Block ID. Note that cloning is one-way, meaning changes made " @@ -849,53 +846,53 @@ msgstr "" "υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє " "∂σłσя ιη #" -#: templates/openassessmentblock/edit/oa_rubric_reuse.html +#: templates/legacy/edit/oa_rubric_reuse.html msgid "Block ID For this ORA:" msgstr "Blöçk ÌD För thïs ÖRÀ: Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢#" -#: templates/openassessmentblock/edit/oa_rubric_reuse.html +#: templates/legacy/edit/oa_rubric_reuse.html msgid "Block ID" msgstr "Blöçk ÌD Ⱡ'σяєм ιρѕυм ∂#" -#: templates/openassessmentblock/edit/oa_rubric_reuse.html +#: templates/legacy/edit/oa_rubric_reuse.html msgid "No other Open Response Assessments found in course" msgstr "" "Nö öthér Öpén Réspönsé Àsséssménts föünd ïn çöürsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт " "αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/edit/oa_rubric_reuse.html +#: templates/legacy/edit/oa_rubric_reuse.html msgid "Clone" msgstr "Çlöné Ⱡ'σяєм ιρѕ#" -#: templates/openassessmentblock/edit/oa_rubric_reuse.html +#: templates/legacy/edit/oa_rubric_reuse.html msgid "Rubric Successfully Cloned from Block ID: " msgstr "" "Rüßrïç Süççéssfüllý Çlönéd fröm Blöçk ÌD: Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/edit/oa_training_example.html +#: templates/legacy/edit/oa_training_example.html msgid "Scored Response" msgstr "Sçöréd Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" -#: templates/openassessmentblock/edit/oa_training_example.html +#: templates/legacy/edit/oa_training_example.html msgid "Response Score" msgstr "Réspönsé Sçöré Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#" -#: templates/openassessmentblock/edit/oa_training_example.html +#: templates/legacy/edit/oa_training_example.html msgid "Response" msgstr "Réspönsé Ⱡ'σяєм ιρѕυм ∂#" -#: templates/openassessmentblock/edit/oa_training_example_criterion.html +#: templates/legacy/edit/oa_training_example_criterion.html msgid "Not Selected" msgstr "Nöt Séléçtéd Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" -#: templates/openassessmentblock/edit/oa_training_example_criterion.html -#: templates/openassessmentblock/oa_rubric.html -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/edit/oa_training_example_criterion.html +#: templates/legacy/oa_rubric.html +#: templates/legacy/student_training/student_training.html msgid "points" msgstr "pöïnts Ⱡ'σяєм ιρѕυ#" -#: templates/openassessmentblock/grade/oa_assessment_feedback.html +#: templates/legacy/grade/oa_assessment_feedback.html #, python-format msgid "" "\n" @@ -906,7 +903,7 @@ msgstr "" " %(start_tag)s%(title)s%(end_tag)s%(start_grade_tag)s - %(grade)s%(end_tag)s\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/grade/oa_assessment_title.html +#: templates/legacy/grade/oa_assessment_title.html #, python-format msgid "" "\n" @@ -925,21 +922,21 @@ msgstr[1] "" " %(assessment_title)s - %(points)s pöïnts\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/grade/oa_assessment_title.html +#: templates/legacy/grade/oa_assessment_title.html #, python-format msgid "More information about %(name)s" msgstr "Möré ïnförmätïön äßöüt %(name)s Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: templates/openassessmentblock/grade/oa_grade_cancelled.html -#: templates/openassessmentblock/grade/oa_grade_complete.html -#: templates/openassessmentblock/grade/oa_grade_complete.html -#: templates/openassessmentblock/grade/oa_grade_incomplete.html -#: templates/openassessmentblock/grade/oa_grade_not_started.html -#: templates/openassessmentblock/grade/oa_grade_waiting.html +#: templates/legacy/grade/oa_grade_cancelled.html +#: templates/legacy/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_incomplete.html +#: templates/legacy/grade/oa_grade_not_started.html +#: templates/legacy/grade/oa_grade_waiting.html msgid "Your Grade" msgstr "Ýöür Grädé Ⱡ'σяєм ιρѕυм ∂σłσ#" -#: templates/openassessmentblock/grade/oa_grade_cancelled.html +#: templates/legacy/grade/oa_grade_cancelled.html #, python-format msgid "" "\n" @@ -950,12 +947,12 @@ msgstr "" " %(points_earned)s öüt öf %(points_possible)s\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢ση#" -#: templates/openassessmentblock/grade/oa_grade_cancelled.html +#: templates/legacy/grade/oa_grade_cancelled.html msgid "Your submission has been cancelled." msgstr "" "Ýöür süßmïssïön häs ßéén çänçélléd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html #, python-format msgid "" "\n" @@ -966,67 +963,67 @@ msgstr "" " %(points_earned)s öüt öf %(points_possible)s\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" -#: templates/openassessmentblock/grade/oa_grade_complete.html -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/grade/oa_grade_complete.html +#: templates/legacy/response/oa_response.html msgid "Your Response" msgstr "Ýöür Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "Your Upload" msgstr "Ýöür Ûplöäd Ⱡ'σяєм ιρѕυм ∂σłσя #" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "Assessments of Your Response" msgstr "Àsséssménts öf Ýöür Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢#" -#: templates/openassessmentblock/grade/oa_grade_complete.html -#: templates/openassessmentblock/grade/oa_grade_complete.html -#: templates/openassessmentblock/grade/oa_grade_incomplete.html -#: templates/openassessmentblock/grade/oa_grade_waiting.html -#: templates/openassessmentblock/message/oa_message_cancelled.html -#: templates/openassessmentblock/message/oa_message_closed.html -#: templates/openassessmentblock/message/oa_message_complete.html -#: templates/openassessmentblock/message/oa_message_incomplete.html -#: templates/openassessmentblock/peer/oa_peer_closed.html -#: templates/openassessmentblock/peer/oa_peer_complete.html -#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html -#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html -#: templates/openassessmentblock/peer/oa_peer_waiting.html -#: templates/openassessmentblock/response/oa_response_cancelled.html -#: templates/openassessmentblock/response/oa_response_closed.html -#: templates/openassessmentblock/response/oa_response_submitted.html -#: templates/openassessmentblock/response/oa_response_team_already_submitted.html -#: templates/openassessmentblock/self/oa_self_closed.html -#: templates/openassessmentblock/student_training/student_training_closed.html +#: templates/legacy/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_incomplete.html +#: templates/legacy/grade/oa_grade_waiting.html +#: templates/legacy/message/oa_message_cancelled.html +#: templates/legacy/message/oa_message_closed.html +#: templates/legacy/message/oa_message_complete.html +#: templates/legacy/message/oa_message_incomplete.html +#: templates/legacy/peer/oa_peer_closed.html +#: templates/legacy/peer/oa_peer_complete.html +#: templates/legacy/peer/oa_peer_turbo_mode.html +#: templates/legacy/peer/oa_peer_turbo_mode_waiting.html +#: templates/legacy/peer/oa_peer_waiting.html +#: templates/legacy/response/oa_response_cancelled.html +#: templates/legacy/response/oa_response_closed.html +#: templates/legacy/response/oa_response_submitted.html +#: templates/legacy/response/oa_response_team_already_submitted.html +#: templates/legacy/self/oa_self_closed.html +#: templates/legacy/student_training/student_training_closed.html msgid "Status" msgstr "Stätüs Ⱡ'σяєм ιρѕυ#" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "Overall Grade" msgstr "Övéräll Grädé Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" -#: templates/openassessmentblock/grade/oa_grade_complete.html -#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html +#: templates/legacy/grade/oa_grade_complete.html +#: templates/legacy/staff_area/oa_student_info_assessment_detail.html msgid "Points" msgstr "Pöïnts Ⱡ'σяєм ιρѕυ#" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "Additional comments on your response" msgstr "" "Àddïtïönäl çömménts ön ýöür réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυ#" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "Provide feedback on peer assessments" msgstr "" "Prövïdé féédßäçk ön péér ässéssménts Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυ#" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "Submitting Feedback" msgstr "Süßmïttïng Féédßäçk Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "" "Your feedback has been submitted. Course staff will be able to see this " "feedback when they review course records." @@ -1034,7 +1031,7 @@ msgstr "" "Ýöür féédßäçk häs ßéén süßmïttéd. Çöürsé stäff wïll ßé äßlé tö séé thïs " "féédßäçk whén théý révïéw çöürsé réçörds. Ⱡ'σяєм ιρѕυм ∂σłσ#" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "" "Course staff will be able to see any feedback that you provide here when " "they review course records." @@ -1042,7 +1039,7 @@ msgstr "" "Çöürsé stäff wïll ßé äßlé tö séé äný féédßäçk thät ýöü prövïdé héré whén " "théý révïéw çöürsé réçörds. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "" "Select the statements below that best reflect your experience with peer " "assessments." @@ -1050,75 +1047,75 @@ msgstr "" "Séléçt thé stätéménts ßélöw thät ßést réfléçt ýöür éxpérïénçé wïth péér " "ässéssménts. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢т#" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "These assessments were useful." msgstr "Thésé ässéssménts wéré üséfül. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢т#" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "These assessments were not useful." msgstr "" "Thésé ässéssménts wéré nöt üséfül. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "I disagree with one or more of the peer assessments of my response." msgstr "" "Ì dïsägréé wïth öné ör möré öf thé péér ässéssménts öf mý réspönsé. Ⱡ'σяєм " "ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "Some comments I received were inappropriate." msgstr "" "Sömé çömménts Ì réçéïvéd wéré ïnäppröprïäté. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "" "Provide feedback on the grade or comments that you received from your peers." msgstr "" "Prövïdé féédßäçk ön thé grädé ör çömménts thät ýöü réçéïvéd fröm ýöür péérs." " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυ#" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "I feel the feedback I received was..." msgstr "" "Ì féél thé féédßäçk Ì réçéïvéd wäs... Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυ#" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "We could not submit your feedback" msgstr "" "Wé çöüld nöt süßmït ýöür féédßäçk Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/grade/oa_grade_complete.html +#: templates/legacy/grade/oa_grade_complete.html msgid "Submit feedback on peer assessments" msgstr "" "Süßmït féédßäçk ön péér ässéssménts Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: templates/openassessmentblock/grade/oa_grade_incomplete.html +#: templates/legacy/grade/oa_grade_incomplete.html msgid "Not Completed" msgstr "Nöt Çömplétéd Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" -#: templates/openassessmentblock/grade/oa_grade_incomplete.html +#: templates/legacy/grade/oa_grade_incomplete.html msgid "You have not completed all the steps of this problem." msgstr "" "Ýöü hävé nöt çömplétéd äll thé stéps öf thïs prößlém. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт" " αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/grade/oa_grade_not_started.html +#: templates/legacy/grade/oa_grade_not_started.html msgid "Not Started" msgstr "Nöt Stärtéd Ⱡ'σяєм ιρѕυм ∂σłσя #" -#: templates/openassessmentblock/grade/oa_grade_not_started.html +#: templates/legacy/grade/oa_grade_not_started.html msgid "You have not started this problem yet." msgstr "" "Ýöü hävé nöt stärtéd thïs prößlém ýét. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя#" -#: templates/openassessmentblock/grade/oa_grade_waiting.html +#: templates/legacy/grade/oa_grade_waiting.html msgid "Waiting for Assessments" msgstr "Wäïtïng för Àsséssménts Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σ#" -#: templates/openassessmentblock/grade/oa_grade_waiting.html +#: templates/legacy/grade/oa_grade_waiting.html msgid "" "You have completed your steps in the assignment, but some assessments still " "need to be done on your response. When the assessments of your response are " @@ -1133,14 +1130,14 @@ msgstr "" "∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση " "υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυ#" -#: templates/openassessmentblock/instructor_dashboard/oa_grade_available_responses.html -#: templates/openassessmentblock/staff_area/oa_staff_area.html -#: templates/openassessmentblock/staff_area/oa_staff_area.html -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/instructor_dashboard/oa_grade_available_responses.html +#: templates/legacy/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Grade Available Responses" msgstr "Grädé Àväïläßlé Réspönsés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: templates/openassessmentblock/instructor_dashboard/oa_grade_available_responses.html +#: templates/legacy/instructor_dashboard/oa_grade_available_responses.html msgid "" "Grade Available Responses is unavailable. This item is not configured for " "Staff Assessment." @@ -1148,15 +1145,15 @@ msgstr "" "Grädé Àväïläßlé Réspönsés ïs ünäväïläßlé. Thïs ïtém ïs nöt çönfïgüréd för " "Stäff Àsséssmént. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢ση#" -#: templates/openassessmentblock/instructor_dashboard/oa_listing.html +#: templates/legacy/instructor_dashboard/oa_listing.html msgid "Please wait" msgstr "Pléäsé wäït Ⱡ'σяєм ιρѕυм ∂σłσя #" -#: templates/openassessmentblock/instructor_dashboard/oa_waiting_step_details.html +#: templates/legacy/instructor_dashboard/oa_waiting_step_details.html msgid "Waiting Step Details" msgstr "Wäïtïng Stép Détäïls Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" -#: templates/openassessmentblock/instructor_dashboard/oa_waiting_step_details.html +#: templates/legacy/instructor_dashboard/oa_waiting_step_details.html msgid "" "Waiting Step details view is unavailable. This item is not configured for " "peer assessments." @@ -1164,20 +1161,20 @@ msgstr "" "Wäïtïng Stép détäïls vïéw ïs ünäväïläßlé. Thïs ïtém ïs nöt çönfïgüréd för " "péér ässéssménts. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢ση#" -#: templates/openassessmentblock/leaderboard/oa_leaderboard_show.html +#: templates/legacy/leaderboard/oa_leaderboard_show.html #, python-format msgid "%(num_points)s points" msgstr "%(num_points)s pöïnts Ⱡ'σяєм ιρѕυм ∂σłσ#" -#: templates/openassessmentblock/leaderboard/oa_leaderboard_show.html -#: templates/openassessmentblock/peer/oa_peer_assessment.html -#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html +#: templates/legacy/leaderboard/oa_leaderboard_show.html +#: templates/legacy/peer/oa_peer_assessment.html +#: templates/legacy/peer/oa_peer_turbo_mode.html msgid "Your peer's response to the prompt above" msgstr "" "Ýöür péér's réspönsé tö thé prömpt äßövé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя#" -#: templates/openassessmentblock/leaderboard/oa_leaderboard_waiting.html +#: templates/legacy/leaderboard/oa_leaderboard_waiting.html msgid "" "After you complete all the steps of this assignment, you can see the top-" "scoring responses from your peers." @@ -1185,7 +1182,7 @@ msgstr "" "Àftér ýöü çömplété äll thé stéps öf thïs ässïgnmént, ýöü çän séé thé töp-" "sçörïng réspönsés fröm ýöür péérs. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#" -#: templates/openassessmentblock/message/oa_message_cancelled.html +#: templates/legacy/message/oa_message_cancelled.html msgid "" "Your team’s submission has been cancelled. Your team will receive a grade of" " zero unless course staff resets your assessment to allow the team to " @@ -1200,7 +1197,7 @@ msgstr "" "νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт " "σ¢¢αє¢αт ¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ι#" -#: templates/openassessmentblock/message/oa_message_cancelled.html +#: templates/legacy/message/oa_message_cancelled.html msgid "" "Your submission has been cancelled. You will receive a grade of zero unless " "course staff resets your assessment to allow you to resubmit a response." @@ -1214,7 +1211,7 @@ msgstr "" "¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт " "ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυηт мσłłιт αηιм#" -#: templates/openassessmentblock/message/oa_message_closed.html +#: templates/legacy/message/oa_message_closed.html msgid "" "This task is not yet available. Check back to complete the assignment once " "this section has opened." @@ -1222,7 +1219,7 @@ msgstr "" "Thïs täsk ïs nöt ýét äväïläßlé. Çhéçk ßäçk tö çömplété thé ässïgnmént önçé " "thïs séçtïön häs öpénéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" -#: templates/openassessmentblock/message/oa_message_closed.html +#: templates/legacy/message/oa_message_closed.html msgid "" "This assignment has closed. One or more deadlines for this assignment have " "passed. You will receive an incomplete grade for this assignment." @@ -1236,7 +1233,7 @@ msgstr "" "¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт " "ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυηт мσłłιт αηιм ι∂ єѕт ł#" -#: templates/openassessmentblock/message/oa_message_complete.html +#: templates/legacy/message/oa_message_complete.html msgid "" "You have completed this assignment. Your final grade will be available when " "the assessments of your response are complete." @@ -1244,7 +1241,7 @@ msgstr "" "Ýöü hävé çömplétéd thïs ässïgnmént. Ýöür fïnäl grädé wïll ßé äväïläßlé whén " "thé ässéssménts öf ýöür réspönsé äré çömplété. Ⱡ'σяєм ιρѕ#" -#: templates/openassessmentblock/message/oa_message_complete.html +#: templates/legacy/message/oa_message_complete.html msgid "" "You have completed this assignment. Review your grade and your assessment " "details." @@ -1252,7 +1249,7 @@ msgstr "" "Ýöü hävé çömplétéd thïs ässïgnmént. Révïéw ýöür grädé änd ýöür ässéssmént " "détäïls. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/message/oa_message_incomplete.html +#: templates/legacy/message/oa_message_incomplete.html msgid "" "This assignment is in progress. Learner training will close soon. Complete " "the learner training step to move on." @@ -1260,7 +1257,7 @@ msgstr "" "Thïs ässïgnmént ïs ïn prögréss. Léärnér träïnïng wïll çlösé söön. Çömplété " "thé léärnér träïnïng stép tö mövé ön. Ⱡ'σяєм ιρѕυм ∂σłσя#" -#: templates/openassessmentblock/message/oa_message_incomplete.html +#: templates/legacy/message/oa_message_incomplete.html msgid "" "This assignment is in progress. Complete the learner training step to move " "on." @@ -1268,8 +1265,8 @@ msgstr "" "Thïs ässïgnmént ïs ïn prögréss. Çömplété thé léärnér träïnïng stép tö mövé " "ön. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: templates/openassessmentblock/message/oa_message_incomplete.html -#: templates/openassessmentblock/message/oa_message_incomplete.html +#: templates/legacy/message/oa_message_incomplete.html +#: templates/legacy/message/oa_message_incomplete.html msgid "" "This assignment is in progress. Check back later when the assessment period " "has started." @@ -1277,7 +1274,7 @@ msgstr "" "Thïs ässïgnmént ïs ïn prögréss. Çhéçk ßäçk lätér whén thé ässéssmént pérïöd " "häs stärtéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє#" -#: templates/openassessmentblock/message/oa_message_incomplete.html +#: templates/legacy/message/oa_message_incomplete.html #, python-format msgid "" "\n" @@ -1288,7 +1285,7 @@ msgstr "" " %(start_strong)sThïs ässïgnmént ïs ïn prögréss. Thé sélf ässéssmént stép wïll çlösé söön.%(end_strong)s Ýöü stïll nééd tö çömplété thé %(start_link)ssélf ässéssmént%(end_link)s stép.\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕ#" -#: templates/openassessmentblock/message/oa_message_incomplete.html +#: templates/legacy/message/oa_message_incomplete.html #, python-format msgid "" "\n" @@ -1299,7 +1296,7 @@ msgstr "" " Thïs ässïgnmént ïs ïn prögréss. Ýöü stïll nééd tö çömplété thé %(start_link)ssélf ässéssmént%(end_link)s stép.\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυ#" -#: templates/openassessmentblock/message/oa_message_incomplete.html +#: templates/legacy/message/oa_message_incomplete.html #, python-format msgid "" "\n" @@ -1310,7 +1307,7 @@ msgstr "" " Thïs ässïgnmént ïs ïn prögréss.%(start_strong)sThé péér ässéssmént stép wïll çlösé söön.%(end_strong)s Àll süßmïttéd péér réspönsés hävé ßéén ässésséd. Çhéçk ßäçk lätér tö séé ïf möré léärnérs hävé süßmïttéd réspönsés. Ýöü stïll nééd tö çömplété thé %(start_link)spéér ässéssmént%(end_link)s stép.\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιq#" -#: templates/openassessmentblock/message/oa_message_incomplete.html +#: templates/legacy/message/oa_message_incomplete.html #, python-format msgid "" "\n" @@ -1321,7 +1318,7 @@ msgstr "" " Thïs ässïgnmént ïs ïn prögréss. Àll süßmïttéd péér réspönsés hävé ßéén ässésséd. Çhéçk ßäçk lätér tö séé ïf möré léärnérs hävé süßmïttéd réspönsés. Ýöü stïll nééd tö çömplété thé %(start_link)spéér ässéssmént%(end_link)s stép.\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ #" -#: templates/openassessmentblock/message/oa_message_incomplete.html +#: templates/legacy/message/oa_message_incomplete.html #, python-format msgid "" "\n" @@ -1332,7 +1329,7 @@ msgstr "" " Thïs ässïgnmént ïs ïn prögréss. %(start_strong)sThé péér ässéssmént stép wïll çlösé söön.%(end_strong)s Ýöü stïll nééd tö çömplété thé %(start_link)spéér ässéssmént%(end_link)s stép.\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕ#" -#: templates/openassessmentblock/message/oa_message_incomplete.html +#: templates/legacy/message/oa_message_incomplete.html #, python-format msgid "" "\n" @@ -1343,13 +1340,13 @@ msgstr "" " Thïs ässïgnmént ïs ïn prögréss. Ýöü stïll nééd tö çömplété thé %(start_link)spéér ässéssmént%(end_link)s stép.\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυ#" -#: templates/openassessmentblock/message/oa_message_no_team.html +#: templates/legacy/message/oa_message_no_team.html msgid "Team membership is required to view this assignment" msgstr "" "Téäm mémßérshïp ïs réqüïréd tö vïéw thïs ässïgnmént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт " "αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/message/oa_message_no_team.html +#: templates/legacy/message/oa_message_no_team.html #, python-format msgid "" "\n" @@ -1364,7 +1361,7 @@ msgstr "" " Ýöü müst ßé ön ä téäm ïn téäm-sét \"%(teamset_name)s\" tö äççéss thïs téäm ässïgnmént.\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяι#" -#: templates/openassessmentblock/message/oa_message_open.html +#: templates/legacy/message/oa_message_open.html #, python-format msgid "" "\n" @@ -1375,7 +1372,7 @@ msgstr "" " Àssïgnmént süßmïssïöns wïll çlösé söön. Tö réçéïvé ä grädé, fïrst prövïdé ä réspönsé tö thé prömpt, thén çömplété thé stéps ßélöw thé %(start_tag)sÝöür Réspönsé%(end_tag)s fïéld.\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υ#" -#: templates/openassessmentblock/message/oa_message_open.html +#: templates/legacy/message/oa_message_open.html #, python-format msgid "" "\n" @@ -1386,17 +1383,17 @@ msgstr "" " Thïs ässïgnmént häs sévéräl stéps. Ìn thé fïrst stép, ýöü'll prövïdé ä réspönsé tö thé prömpt. Thé öthér stéps äppéär ßélöw thé %(start_tag)sÝöür Réspönsé%(end_tag)s fïéld.\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт ησ#" -#: templates/openassessmentblock/message/oa_message_unavailable.html +#: templates/legacy/message/oa_message_unavailable.html msgid "Instructions Unavailable" msgstr "Ìnstrüçtïöns Ûnäväïläßlé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢ση#" -#: templates/openassessmentblock/message/oa_message_unavailable.html +#: templates/legacy/message/oa_message_unavailable.html msgid "The instructions for this step could not be loaded." msgstr "" "Thé ïnstrüçtïöns för thïs stép çöüld nöt ßé löädéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт " "αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/oa_base.html +#: templates/legacy/oa_base.html templates/openassessmentblock/base.html msgid "" "This assignment has several steps. In the first step, you'll provide a " "response to the prompt. The other steps appear below the Your Response " @@ -1411,55 +1408,56 @@ msgstr "" " єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт " "¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυηт мσłłιт αηιм#" -#: templates/openassessmentblock/oa_base.html +#: templates/legacy/oa_base.html templates/openassessmentblock/base.html +#: templates/openassessmentblock/base.html msgid "Loading" msgstr "Löädïng Ⱡ'σяєм ιρѕυм #" -#: templates/openassessmentblock/oa_latex_preview.html +#: templates/legacy/oa_latex_preview.html msgid "Preview in LaTeX" msgstr "Prévïéw ïn LäTéX Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" -#: templates/openassessmentblock/oa_latex_preview.html +#: templates/legacy/oa_latex_preview.html msgid "Click to preview your submission in LaTeX." msgstr "" "Çlïçk tö prévïéw ýöür süßmïssïön ïn LäTéX. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/oa_latex_preview.html +#: templates/legacy/oa_latex_preview.html msgid "Preview Response" msgstr "Prévïéw Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" -#: templates/openassessmentblock/oa_rubric.html +#: templates/legacy/oa_rubric.html msgid "Comments" msgstr "Çömménts Ⱡ'σяєм ιρѕυм ∂#" -#: templates/openassessmentblock/oa_submission_answer.html +#: templates/legacy/oa_submission_answer.html msgid "The question for this section" msgstr "Thé qüéstïön för thïs séçtïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢#" -#: templates/openassessmentblock/oa_team_uploaded_files.html +#: templates/legacy/oa_team_uploaded_files.html msgid "Files that were uploaded by your teammates:" msgstr "" "Fïlés thät wéré üplöädéd ßý ýöür téämmätés: Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/oa_team_uploaded_files.html -#: templates/openassessmentblock/oa_uploaded_file.html +#: templates/legacy/oa_team_uploaded_files.html +#: templates/legacy/oa_uploaded_file.html msgid "View the files associated with this submission:" msgstr "" "Vïéw thé fïlés ässöçïätéd wïth thïs süßmïssïön: Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт," " ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/oa_team_uploaded_files.html +#: templates/legacy/oa_team_uploaded_files.html msgid "Uploaded by" msgstr "Ûplöädéd ßý Ⱡ'σяєм ιρѕυм ∂σłσя #" -#: templates/openassessmentblock/oa_uploaded_file.html +#: templates/legacy/oa_uploaded_file.html msgid "Files that were uploaded by you:" msgstr "" "Fïlés thät wéré üplöädéd ßý ýöü: Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/oa_uploaded_file.html +#: templates/legacy/oa_uploaded_file.html msgid "" "Caution: These files were uploaded by another course learner and have not " "been verified, screened, approved, reviewed, or endorsed by the site " @@ -1474,14 +1472,14 @@ msgstr "" "¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє " "¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρт#" -#: templates/openassessmentblock/peer/oa_peer_assessment.html +#: templates/legacy/peer/oa_peer_assessment.html msgid "Assess Peers" msgstr "Àsséss Péérs Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" #. Translators: This string displays a date to the user, then tells them the #. time until that date. Example: "available August 13th, 2014 00:00 UTC (in #. 5 days and 45 minutes)" -#: templates/openassessmentblock/peer/oa_peer_assessment.html +#: templates/legacy/peer/oa_peer_assessment.html #, python-format, python-brace-format msgid "" "\n" @@ -1495,7 +1493,7 @@ msgstr "" #. Translators: This string displays a date to the user, then tells them the #. time until that date. Example: "due August 13th, 2014 00:00 UTC (in 5 days #. and 45 minutes)" -#: templates/openassessmentblock/peer/oa_peer_assessment.html +#: templates/legacy/peer/oa_peer_assessment.html #, python-format, python-brace-format msgid "" "\n" @@ -1506,7 +1504,7 @@ msgstr "" " \n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/peer/oa_peer_assessment.html +#: templates/legacy/peer/oa_peer_assessment.html #, python-format msgid "" "\n" @@ -1517,27 +1515,27 @@ msgstr "" " Ìn Prögréss (%(review_number)s öf %(num_must_grade)s)\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/peer/oa_peer_assessment.html -#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html +#: templates/legacy/peer/oa_peer_assessment.html +#: templates/legacy/peer/oa_peer_turbo_mode.html msgid "Read and assess the following response from one of your peers." msgstr "" "Réäd änd ässéss thé föllöwïng réspönsé fröm öné öf ýöür péérs. Ⱡ'σяєм ιρѕυм " "∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/peer/oa_peer_assessment.html -#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html -#: templates/openassessmentblock/self/oa_self_assessment.html -#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html -#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/peer/oa_peer_assessment.html +#: templates/legacy/peer/oa_peer_turbo_mode.html +#: templates/legacy/self/oa_self_assessment.html +#: templates/legacy/staff_area/oa_staff_grade_learners_assessment.html +#: templates/legacy/staff_area/oa_staff_override_assessment.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Associated Files" msgstr "Àssöçïätéd Fïlés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" -#: templates/openassessmentblock/peer/oa_peer_assessment.html -#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html -#: templates/openassessmentblock/self/oa_self_assessment.html -#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html -#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html +#: templates/legacy/peer/oa_peer_assessment.html +#: templates/legacy/peer/oa_peer_turbo_mode.html +#: templates/legacy/self/oa_self_assessment.html +#: templates/legacy/staff_area/oa_staff_grade_learners_assessment.html +#: templates/legacy/staff_area/oa_staff_override_assessment.html msgid "We could not submit your assessment" msgstr "" "Wé çöüld nöt süßmït ýöür ässéssmént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" @@ -1549,7 +1547,7 @@ msgstr "" msgid "Cancelled" msgstr "Çänçélléd Ⱡ'σяєм ιρѕυм ∂σł#" -#: templates/openassessmentblock/peer/oa_peer_closed.html +#: templates/legacy/peer/oa_peer_closed.html #, python-format msgid "" "\n" @@ -1560,7 +1558,7 @@ msgstr "" " Ìnçömplété (%(num_graded)s öf %(num_must_grade)s)\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/peer/oa_peer_closed.html +#: templates/legacy/peer/oa_peer_closed.html msgid "" "The due date for this step has passed. This step is now closed. You can no " "longer complete peer assessments or continue with this assignment, and you " @@ -1575,13 +1573,13 @@ msgstr "" "яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα " "ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт ηση ρяσι∂єηт#" -#: templates/openassessmentblock/peer/oa_peer_complete.html +#: templates/legacy/peer/oa_peer_complete.html msgid "Completed" msgstr "Çömplétéd Ⱡ'σяєм ιρѕυм ∂σł#" -#: templates/openassessmentblock/peer/oa_peer_complete.html -#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html -#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html +#: templates/legacy/peer/oa_peer_complete.html +#: templates/legacy/peer/oa_peer_turbo_mode.html +#: templates/legacy/peer/oa_peer_turbo_mode_waiting.html msgid "" "You have successfully completed all of the required peer assessments for " "this assignment. You may assess additional peer responses if you want to. " @@ -1596,18 +1594,18 @@ msgstr "" "¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє " "¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. є#" -#: templates/openassessmentblock/peer/oa_peer_complete.html +#: templates/legacy/peer/oa_peer_complete.html msgid "We could not retrieve additional submissions for assessment" msgstr "" "Wé çöüld nöt rétrïévé äddïtïönäl süßmïssïöns för ässéssmént Ⱡ'σяєм ιρѕυм " "∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/peer/oa_peer_complete.html +#: templates/legacy/peer/oa_peer_complete.html msgid "Continue Assessing Peers" msgstr "Çöntïnüé Àsséssïng Péérs Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢ση#" -#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html -#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html +#: templates/legacy/peer/oa_peer_turbo_mode.html +#: templates/legacy/peer/oa_peer_turbo_mode_waiting.html #, python-format msgid "" "\n" @@ -1618,7 +1616,7 @@ msgstr "" " Çömplété (%(num_graded)s)\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢т#" -#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html +#: templates/legacy/peer/oa_peer_turbo_mode_waiting.html msgid "" "All submitted peer responses have been assessed. Check back later to see if " "more learners have submitted responses." @@ -1633,7 +1631,7 @@ msgstr "" msgid "Not Available" msgstr "Nöt Àväïläßlé Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" -#: templates/openassessmentblock/peer/oa_peer_waiting.html +#: templates/legacy/peer/oa_peer_waiting.html #, python-format msgid "" "\n" @@ -1644,7 +1642,7 @@ msgstr "" " Ìn Prögréss (%(review_number)s öf %(num_must_grade)s)\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/peer/oa_peer_waiting.html +#: templates/legacy/peer/oa_peer_waiting.html msgid "" "All available peer responses have been assessed. Check back later to see if " "more learners have submitted responses. You will receive your grade after " @@ -1660,14 +1658,14 @@ msgstr "" "єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє" " νєłιт#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "Your Team's Response" msgstr "Ýöür Téäm's Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" #. Translators: This string displays a date to the user, then tells them the #. time until that date. Example: "available August 13th, 2014 (in 5 days and #. 45 minutes)" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html #, python-format, python-brace-format msgid "" "\n" @@ -1681,7 +1679,7 @@ msgstr "" #. Translators: This string displays a date to the user, then tells them the #. time until that date. Example: "due August 13th, 2014 (in 5 days and 45 #. minutes)" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html #, python-format, python-brace-format msgid "" "\n" @@ -1692,18 +1690,18 @@ msgstr "" " \n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/response/oa_response.html -#: templates/openassessmentblock/self/oa_self_assessment.html +#: templates/legacy/response/oa_response.html +#: templates/legacy/self/oa_self_assessment.html msgid "In Progress" msgstr "Ìn Prögréss Ⱡ'σяєм ιρѕυм ∂σłσя #" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "Enter your team's response to the prompt." msgstr "" "Éntér ýöür téäm's réspönsé tö thé prömpt. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "" "\n" " Your work will save automatically and you can return to complete your team's response at any time before the due date\n" @@ -1713,7 +1711,7 @@ msgstr "" " Ýöür wörk wïll sävé äütömätïçällý änd ýöü çän rétürn tö çömplété ýöür téäm's réspönsé ät äný tïmé ßéföré thé düé däté\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "" "\n" " Your work will save automatically and you can return to complete your team's response at any time.\n" @@ -1723,19 +1721,19 @@ msgstr "" " Ýöür wörk wïll sävé äütömätïçällý änd ýöü çän rétürn tö çömplété ýöür téäm's réspönsé ät äný tïmé.\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυηт мσłłιт αηιм ι#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "" "After you submit a response on behalf of your team, it cannot be edited." msgstr "" "Àftér ýöü süßmït ä réspönsé ön ßéhälf öf ýöür téäm, ït çännöt ßé édïtéd. " "Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "Enter your response to the prompt." msgstr "" "Éntér ýöür réspönsé tö thé prömpt. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "" "Your work will save automatically and you can return to complete your " "response at any time before the subsection due date " @@ -1743,7 +1741,7 @@ msgstr "" "Ýöür wörk wïll sävé äütömätïçällý änd ýöü çän rétürn tö çömplété ýöür " "réspönsé ät äný tïmé ßéföré thé süßséçtïön düé däté Ⱡ'σяєм ιρѕ#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "" "Your work will save automatically and you can return to complete your " "response at any time before the course ends " @@ -1751,7 +1749,7 @@ msgstr "" "Ýöür wörk wïll sävé äütömätïçällý änd ýöü çän rétürn tö çömplété ýöür " "réspönsé ät äný tïmé ßéföré thé çöürsé énds Ⱡ'σяєм ιρѕυм ∂σł#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "" "Your work will save automatically and you can return to complete your " "response at any time before the due date " @@ -1759,7 +1757,7 @@ msgstr "" "Ýöür wörk wïll sävé äütömätïçällý änd ýöü çän rétürn tö çömplété ýöür " "réspönsé ät äný tïmé ßéföré thé düé däté Ⱡ'σяєм ιρѕυм ∂σłσя #" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "" "Your work will save automatically and you can return to complete your " "response at any time." @@ -1767,31 +1765,31 @@ msgstr "" "Ýöür wörk wïll sävé äütömätïçällý änd ýöü çän rétürn tö çömplété ýöür " "réspönsé ät äný tïmé. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢ση#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "After you submit your response, you cannot edit it" msgstr "" "Àftér ýöü süßmït ýöür réspönsé, ýöü çännöt édït ït Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт " "αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "What will this assignment be graded on?" msgstr "" "Whät wïll thïs ässïgnmént ßé grädéd ön? Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "The prompt for this section" msgstr "Thé prömpt för thïs séçtïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "You are on team " msgstr "Ýöü äré ön téäm Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "Team Members: " msgstr "Téäm Mémßérs: Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html #, python-format msgid "" "\n" @@ -1806,25 +1804,25 @@ msgstr "" " änd wïll nöt ßé ä pärt öf ýöür téäm's süßmïssïön ör ässïgnmént grädé.\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє є#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "Team Response " msgstr "Téäm Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "Your Response " msgstr "Ýöür Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#" -#: templates/openassessmentblock/response/oa_response.html -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "(Required)" msgstr "(Réqüïréd) Ⱡ'σяєм ιρѕυм ∂σłσ#" -#: templates/openassessmentblock/response/oa_response.html -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "(Optional)" msgstr "(Öptïönäl) Ⱡ'σяєм ιρѕυм ∂σłσ#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "" "\n" " Teams should designate one team member to submit a response on behalf of the\n" @@ -1842,13 +1840,13 @@ msgstr "" " mémßér shöüld süßmït.\n" " #" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "Enter your response to the prompt above." msgstr "" "Éntér ýöür réspönsé tö thé prömpt äßövé. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html #, python-format msgid "" "\n" @@ -1867,19 +1865,19 @@ msgstr "" " réçéïvé ä grädé för théïr süßmïssïön.\n" " #" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "We could not save your progress" msgstr "Wé çöüld nöt sävé ýöür prögréss Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢т#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "Status of Your Response" msgstr "Stätüs öf Ýöür Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σ#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "File Uploads " msgstr "Fïlé Ûplöäds Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "" "\n" " Upload files and review files uploaded by you and your teammates below. Be sure to add\n" @@ -1891,43 +1889,43 @@ msgstr "" " désçrïptïöns tö ýöür fïlés tö hélp ýöür téämmätés ïdéntïfý thém.\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "We could not upload files" msgstr "Wé çöüld nöt üplöäd fïlés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "We could not delete files" msgstr "Wé çöüld nöt délété fïlés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "Select one or more files to upload for this submission." msgstr "" "Séléçt öné ör möré fïlés tö üplöäd för thïs süßmïssïön. Ⱡ'σяєм ιρѕυм ∂σłσя " "ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "Select a file to upload for this submission." msgstr "" "Séléçt ä fïlé tö üplöäd för thïs süßmïssïön. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "Supported file types: " msgstr "Süppörtéd fïlé týpés: Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "Upload files" msgstr "Ûplöäd fïlés Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "Upload file" msgstr "Ûplöäd fïlé Ⱡ'σяєм ιρѕυм ∂σłσя #" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "This is a team submission." msgstr "Thïs ïs ä téäm süßmïssïön. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "" "One team member should submit a response with the team’s shared files and a " "text response on behalf of the entire team." @@ -1935,7 +1933,7 @@ msgstr "" "Öné téäm mémßér shöüld süßmït ä réspönsé wïth thé téäm’s shäréd fïlés änd ä " "téxt réspönsé ön ßéhälf öf thé éntïré téäm. Ⱡ'σяєм ιρѕυм#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "" "One team member should submit a response with the team’s shared files on " "behalf of the entire team." @@ -1943,20 +1941,20 @@ msgstr "" "Öné téäm mémßér shöüld süßmït ä réspönsé wïth thé téäm’s shäréd fïlés ön " "ßéhälf öf thé éntïré téäm. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "" "One team member should submit a text response on behalf of the entire team." msgstr "" "Öné téäm mémßér shöüld süßmït ä téxt réspönsé ön ßéhälf öf thé éntïré téäm. " "Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυ#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "One team member should submit on behalf of the entire team." msgstr "" "Öné téäm mémßér shöüld süßmït ön ßéhälf öf thé éntïré téäm. Ⱡ'σяєм ιρѕυм " "∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "" "\n" " Learn more about team assignments here: (link)\n" @@ -1966,22 +1964,22 @@ msgstr "" " Léärn möré äßöüt téäm ässïgnménts héré: (lïnk)\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "We could not submit your response" msgstr "" "Wé çöüld nöt süßmït ýöür réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/response/oa_response.html +#: templates/legacy/response/oa_response.html msgid "Submit your response and move to the next step" msgstr "" "Süßmït ýöür réspönsé änd mövé tö thé néxt stép Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/response/oa_response_cancelled.html +#: templates/legacy/response/oa_response_cancelled.html msgid "Your submission was cancelled. " msgstr "Ýöür süßmïssïön wäs çänçélléd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢т#" -#: templates/openassessmentblock/response/oa_response_cancelled.html +#: templates/legacy/response/oa_response_cancelled.html #, python-format msgid "" "\n" @@ -1992,7 +1990,7 @@ msgstr "" " Ýöür süßmïssïön häs ßéén çänçélléd ßý %(removed_by_username)s ön %(removed_datetime)s\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" -#: templates/openassessmentblock/response/oa_response_cancelled.html +#: templates/legacy/response/oa_response_cancelled.html #, python-format msgid "" "\n" @@ -2003,7 +2001,7 @@ msgstr "" " Ýöür süßmïssïön wäs çänçélléd ön %(removed_datetime)s\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" -#: templates/openassessmentblock/response/oa_response_cancelled.html +#: templates/legacy/response/oa_response_cancelled.html #, python-format msgid "" "\n" @@ -2014,13 +2012,13 @@ msgstr "" " Çömménts: %(comments)s\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/response/oa_response_closed.html -#: templates/openassessmentblock/self/oa_self_closed.html -#: templates/openassessmentblock/student_training/student_training_closed.html +#: templates/legacy/response/oa_response_closed.html +#: templates/legacy/self/oa_self_closed.html +#: templates/legacy/student_training/student_training_closed.html msgid "Incomplete" msgstr "Ìnçömplété Ⱡ'σяєм ιρѕυм ∂σłσ#" -#: templates/openassessmentblock/response/oa_response_closed.html +#: templates/legacy/response/oa_response_closed.html msgid "" "The due date for this step has passed. This step is now closed. You can no " "longer submit a response or continue with this problem, and you will receive" @@ -2042,18 +2040,18 @@ msgstr "" msgid "Complete" msgstr "Çömplété Ⱡ'σяєм ιρѕυм ∂#" -#: templates/openassessmentblock/response/oa_response_graded.html -#: templates/openassessmentblock/response/oa_response_submitted.html -#: templates/openassessmentblock/self/oa_self_assessment.html +#: templates/legacy/response/oa_response_graded.html +#: templates/legacy/response/oa_response_submitted.html +#: templates/legacy/self/oa_self_assessment.html msgid "Your response" msgstr "Ýöür réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" -#: templates/openassessmentblock/response/oa_response_graded.html -#: templates/openassessmentblock/response/oa_response_submitted.html +#: templates/legacy/response/oa_response_graded.html +#: templates/legacy/response/oa_response_submitted.html msgid "Your Uploaded Files" msgstr "Ýöür Ûplöädéd Fïlés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#" -#: templates/openassessmentblock/response/oa_response_submitted.html +#: templates/legacy/response/oa_response_submitted.html msgid "" "Your response has been submitted. You will receive your grade after all " "steps are complete and your response is fully assessed." @@ -2061,7 +2059,7 @@ msgstr "" "Ýöür réspönsé häs ßéén süßmïttéd. Ýöü wïll réçéïvé ýöür grädé äftér äll " "stéps äré çömplété änd ýöür réspönsé ïs füllý ässésséd. Ⱡ'σяє#" -#: templates/openassessmentblock/response/oa_response_submitted.html +#: templates/legacy/response/oa_response_submitted.html #, python-format msgid "" "\n" @@ -2072,7 +2070,7 @@ msgstr "" " Ýöü stïll nééd tö çömplété thé %(peer_start_tag)spéér ässéssmént%(end_tag)s änd %(self_start_tag)ssélf ässéssmént%(end_tag)s stéps.\n" " Ⱡ#" -#: templates/openassessmentblock/response/oa_response_submitted.html +#: templates/legacy/response/oa_response_submitted.html #, python-format msgid "" "\n" @@ -2083,7 +2081,7 @@ msgstr "" " Ýöü stïll nééd tö çömplété thé %(start_tag)spéér ässéssmént%(end_tag)s stép.\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" -#: templates/openassessmentblock/response/oa_response_submitted.html +#: templates/legacy/response/oa_response_submitted.html #, python-format msgid "" "\n" @@ -2094,11 +2092,11 @@ msgstr "" " Ýöü stïll nééd tö çömplété thé %(start_tag)ssélf ässéssmént%(end_tag)s stép.\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" -#: templates/openassessmentblock/response/oa_response_team_already_submitted.html +#: templates/legacy/response/oa_response_team_already_submitted.html msgid "Error" msgstr "Érrör Ⱡ'σяєм ιρѕ#" -#: templates/openassessmentblock/response/oa_response_team_already_submitted.html +#: templates/legacy/response/oa_response_team_already_submitted.html #, python-format msgid "" "\n" @@ -2115,14 +2113,14 @@ msgstr "" " öptïöns för thïs ässïgnmént.\n" " #" -#: templates/openassessmentblock/self/oa_self_assessment.html +#: templates/legacy/self/oa_self_assessment.html msgid "Assess Your Response" msgstr "Àsséss Ýöür Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" #. Translators: This string displays a date to the user, then tells them the #. time until that date. Example: "available August 13th, 2014 (in 5 days and #. 45 minutes)" -#: templates/openassessmentblock/self/oa_self_assessment.html +#: templates/legacy/self/oa_self_assessment.html #, python-format, python-brace-format msgid "" "\n" @@ -2136,7 +2134,7 @@ msgstr "" #. Translators: This string displays a date to the user, then tells them the #. time until that date. Example: "due August 13th, 2014 (in 5 days and 45 #. minutes)" -#: templates/openassessmentblock/self/oa_self_assessment.html +#: templates/legacy/self/oa_self_assessment.html #, python-format, python-brace-format msgid "" "\n" @@ -2147,11 +2145,11 @@ msgstr "" " \n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: templates/openassessmentblock/self/oa_self_assessment.html +#: templates/legacy/self/oa_self_assessment.html msgid "Submit your assessment" msgstr "Süßmït ýöür ässéssmént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢#" -#: templates/openassessmentblock/self/oa_self_closed.html +#: templates/legacy/self/oa_self_closed.html msgid "" "The due date for this step has passed. This step is now closed. You can no " "longer complete a self assessment or continue with this assignment, and you " @@ -2166,110 +2164,109 @@ msgstr "" "яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα " "ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт ηση ρяσι∂є#" -#: templates/openassessmentblock/staff/oa_staff_grade.html -#: xblock/grade_mixin.py +#: templates/legacy/staff/oa_staff_grade.html xblock/grade_mixin.py msgid "Staff Grade" msgstr "Stäff Grädé Ⱡ'σяєм ιρѕυм ∂σłσя #" -#: templates/openassessmentblock/staff_area/oa_staff_area.html -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Manage Individual Learners" msgstr "Mänägé Ìndïvïdüäl Léärnérs Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Manage Team Responses" msgstr "Mänägé Téäm Réspönsés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" -#: templates/openassessmentblock/staff_area/oa_staff_area.html -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "View Assignment Statistics" msgstr "Vïéw Àssïgnmént Stätïstïçs Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Demo the new Grading Experience" msgstr "Démö thé néw Grädïng Éxpérïénçé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢т#" -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "View ORA in Studio" msgstr "Vïéw ÖRÀ ïn Stüdïö Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" -#: templates/openassessmentblock/staff_area/oa_staff_area.html -#: templates/openassessmentblock/staff_area/oa_staff_area.html -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Close" msgstr "Çlösé Ⱡ'σяєм ιρѕ#" -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Manage Teams" msgstr "Mänägé Téäms Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Enter an individual learner's username or email" msgstr "" "Éntér än ïndïvïdüäl léärnér's üsérnämé ör émäïl Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт," " ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Enter a team member's username or edX email" msgstr "" "Éntér ä téäm mémßér's üsérnämé ör édX émäïl Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Submit" msgstr "Süßmït Ⱡ'σяєм ιρѕυ#" -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Response total" msgstr "Réspönsé tötäl Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#" -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Location" msgstr "Löçätïön Ⱡ'σяєм ιρѕυм ∂#" -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Learner Progress" msgstr "Léärnér Prögréss Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" -#: templates/openassessmentblock/staff_area/oa_staff_area.html -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Problem Step" msgstr "Prößlém Stép Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Active Learners in Step" msgstr "Àçtïvé Léärnérs ïn Stép Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σ#" -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Dates" msgstr "Dätés Ⱡ'σяєм ιρѕ#" -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "Release Date" msgstr "Réléäsé Däté Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" -#: templates/openassessmentblock/staff_area/oa_staff_area.html -#: templates/openassessmentblock/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html +#: templates/legacy/staff_area/oa_staff_area.html msgid "N/A" msgstr "N/À Ⱡ'σяєм#" -#: templates/openassessmentblock/staff_area/oa_staff_grade_learners.html +#: templates/legacy/staff_area/oa_staff_grade_learners.html msgid "Staff Assessment" msgstr "Stäff Àsséssmént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" -#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html +#: templates/legacy/staff_area/oa_staff_grade_learners_assessment.html msgid "Give this team a grade using the problem's rubric." msgstr "" "Gïvé thïs téäm ä grädé üsïng thé prößlém's rüßrïç. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт " "αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html +#: templates/legacy/staff_area/oa_staff_grade_learners_assessment.html msgid "Give this learner a grade using the problem's rubric." msgstr "" "Gïvé thïs léärnér ä grädé üsïng thé prößlém's rüßrïç. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт" " αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html +#: templates/legacy/staff_area/oa_staff_grade_learners_assessment.html #, python-format msgid "" "\n" @@ -2280,8 +2277,8 @@ msgstr "" " Réspönsé för: %(team_name)s wïth %(team_usernames)s\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" -#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html -#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html +#: templates/legacy/staff_area/oa_staff_grade_learners_assessment.html +#: templates/legacy/staff_area/oa_staff_override_assessment.html #, python-format msgid "" "\n" @@ -2292,37 +2289,37 @@ msgstr "" " Réspönsé för: %(student_username)s\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢#" -#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html -#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html +#: templates/legacy/staff_area/oa_staff_grade_learners_assessment.html +#: templates/legacy/staff_area/oa_staff_override_assessment.html msgid "Learner Response" msgstr "Léärnér Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" -#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html +#: templates/legacy/staff_area/oa_staff_grade_learners_assessment.html msgid "The teams's response to the prompt above" msgstr "" "Thé téäms's réspönsé tö thé prömpt äßövé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя#" -#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html -#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_staff_grade_learners_assessment.html +#: templates/legacy/staff_area/oa_staff_override_assessment.html +#: templates/legacy/staff_area/oa_student_info.html msgid "The learner's response to the prompt above" msgstr "" "Thé léärnér's réspönsé tö thé prömpt äßövé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html -#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html +#: templates/legacy/staff_area/oa_staff_grade_learners_assessment.html +#: templates/legacy/staff_area/oa_staff_override_assessment.html msgid "Submit assessment" msgstr "Süßmït ässéssmént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#" -#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html +#: templates/legacy/staff_area/oa_staff_grade_learners_assessment.html msgid "Submit assessment and continue grading" msgstr "" "Süßmït ässéssmént änd çöntïnüé grädïng Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя#" -#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_count.html +#: templates/legacy/staff_area/oa_staff_grade_learners_count.html #, python-format msgid "" "\n" @@ -2333,30 +2330,30 @@ msgstr "" " %(ungraded)s Àväïläßlé änd %(in_progress)s Çhéçkéd Öüt\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html +#: templates/legacy/staff_area/oa_staff_override_assessment.html msgid "Override this learner's current grade using the problem's rubric." msgstr "" "Övérrïdé thïs léärnér's çürrént grädé üsïng thé prößlém's rüßrïç. Ⱡ'σяєм " "ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html +#: templates/legacy/staff_area/oa_staff_override_assessment.html msgid "Override this team's current grade using the problem's rubric." msgstr "" "Övérrïdé thïs téäm's çürrént grädé üsïng thé prößlém's rüßrïç. Ⱡ'σяєм ιρѕυм " "∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html +#: templates/legacy/staff_area/oa_staff_override_assessment.html msgid "Team Response" msgstr "Téäm Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" -#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_staff_override_assessment.html +#: templates/legacy/staff_area/oa_student_info.html msgid "The team's response to the prompt above" msgstr "" "Thé téäm's réspönsé tö thé prömpt äßövé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html #, python-format msgid "" "\n" @@ -2367,7 +2364,7 @@ msgstr "" " Vïéwïng léärnér: %(learner)s\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html #, python-format msgid "" "\n" @@ -2378,15 +2375,15 @@ msgstr "" " Vïéwïng téäm: %(team)s\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Learner's Response" msgstr "Léärnér's Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Team's Response" msgstr "Téäm's Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html #, python-format msgid "" "\n" @@ -2397,7 +2394,7 @@ msgstr "" " Léärnér süßmïssïön rémövéd ßý %(removed_by_username)s ön %(removed_datetime)s\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html #, python-format msgid "" "\n" @@ -2408,7 +2405,7 @@ msgstr "" " Léärnér süßmïssïön rémövéd ön %(removed_datetime)s\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html #, python-format msgid "" "\n" @@ -2419,39 +2416,39 @@ msgstr "" " Çömménts: %(comments)s\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Peer Assessments for This Learner" msgstr "" "Péér Àsséssménts för Thïs Léärnér Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Peer Assessments Completed by This Learner" msgstr "" "Péér Àsséssménts Çömplétéd ßý Thïs Léärnér Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Learner's Self Assessment" msgstr "Léärnér's Sélf Àsséssmént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Staff Assessment for This Learner" msgstr "" "Stäff Àsséssmént för Thïs Léärnér Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Staff Assessment for this Team" msgstr "Stäff Àsséssmént för thïs Téäm Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢т#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Learner's Final Grade" msgstr "Léärnér's Fïnäl Grädé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Team's Final Grade" msgstr "Téäm's Fïnäl Grädé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html #, python-format msgid "" "\n" @@ -2462,11 +2459,11 @@ msgstr "" " Fïnäl grädé: %(points_earned)s öüt öf %(points_possible)s\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Final Grade Details" msgstr "Fïnäl Grädé Détäïls Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html #, python-format msgid "" "\n" @@ -2485,17 +2482,17 @@ msgstr[1] "" " %(assessment_label)s - %(points)s pöïnts\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Feedback Recorded" msgstr "Féédßäçk Réçördéd Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "The submission is waiting for assessments." msgstr "" "Thé süßmïssïön ïs wäïtïng för ässéssménts. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "" "The learner's submission has been removed from peer assessment. The learner " "receives a grade of zero unless you delete the learner's state for the " @@ -2510,7 +2507,7 @@ msgstr "" "∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα" " ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт ησ#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "" "The team’s submission has been removed from grading. The team receives a " "grade of zero unless you delete the a team member’s state for the problem to" @@ -2525,31 +2522,31 @@ msgstr "" "∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα" " ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт ηση ρяσ#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "The problem has not been started." msgstr "" "Thé prößlém häs nöt ßéén stärtéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "The problem has not been completed." msgstr "" "Thé prößlém häs nöt ßéén çömplétéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Submit Assessment Grade Override" msgstr "" "Süßmït Àsséssmént Grädé Övérrïdé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Submit Team Grade Override" msgstr "Süßmït Téäm Grädé Övérrïdé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Unable to perform grade override" msgstr "" "Ûnäßlé tö pérförm grädé övérrïdé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "" "Grades are frozen. Grades are automatically frozen 30 days after the course " "end date." @@ -2557,7 +2554,7 @@ msgstr "" "Grädés äré frözén. Grädés äré äütömätïçällý frözén 30 däýs äftér thé çöürsé " "énd däté. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "" "This submission has been cancelled and cannot recieve a grade. Refer to " "documentation for how to delete the learner’s state for this problem to " @@ -2572,23 +2569,23 @@ msgstr "" "νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт " "σ¢¢αє¢αт ¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Remove Submission From Peer Grading" msgstr "" "Rémövé Süßmïssïön Fröm Péér Grädïng Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Remove Team Submission from Grading" msgstr "" "Rémövé Téäm Süßmïssïön fröm Grädïng Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Caution: This Action Cannot Be Undone" msgstr "" "Çäütïön: Thïs Àçtïön Çännöt Bé Ûndöné Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυ#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "" "Removing a learner's submission cannot be undone and should be done with " "caution." @@ -2596,7 +2593,7 @@ msgstr "" "Rémövïng ä léärnér's süßmïssïön çännöt ßé ündöné änd shöüld ßé döné wïth " "çäütïön. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "" "Removing a team's submission cannot be undone and should be done with " "caution." @@ -2604,21 +2601,21 @@ msgstr "" "Rémövïng ä téäm's süßmïssïön çännöt ßé ündöné änd shöüld ßé döné wïth " "çäütïön. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Comments:" msgstr "Çömménts: Ⱡ'σяєм ιρѕυм ∂σł#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "Remove submission" msgstr "Rémövé süßmïssïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#" -#: templates/openassessmentblock/staff_area/oa_student_info.html +#: templates/legacy/staff_area/oa_student_info.html msgid "A response was not found for this learner." msgstr "" "À réspönsé wäs nöt föünd för thïs léärnér. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html +#: templates/legacy/staff_area/oa_student_info_assessment_detail.html #, python-format msgid "" "\n" @@ -2629,27 +2626,27 @@ msgstr "" " Àsséssmént %(assessment_num)s:\n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html +#: templates/legacy/staff_area/oa_student_info_assessment_detail.html msgid "Assessment Details" msgstr "Àsséssmént Détäïls Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" -#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html +#: templates/legacy/staff_area/oa_student_info_assessment_detail.html msgid "Selected Option" msgstr "Séléçtéd Öptïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" -#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html +#: templates/legacy/staff_area/oa_student_info_assessment_detail.html msgid "Feedback" msgstr "Féédßäçk Ⱡ'σяєм ιρѕυм ∂#" -#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html +#: templates/legacy/staff_area/oa_student_info_assessment_detail.html msgid "Points Possible" msgstr "Pöïnts Pössïßlé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/student_training/student_training.html msgid "Learn to Assess Responses" msgstr "Léärn tö Àsséss Réspönsés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/student_training/student_training.html #, python-format msgid "" "\n" @@ -2663,7 +2660,7 @@ msgstr "" #. Translators: This string displays a date to the user, then tells them the #. time until that date. Example: "available August 13th, 2014 (in 5 days and #. 45 minutes)" -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/student_training/student_training.html #, python-format, python-brace-format msgid "" "\n" @@ -2677,7 +2674,7 @@ msgstr "" #. Translators: This string displays a date to the user, then tells them the #. time until that date. Example: "due August 13th, 2014 (in 5 days and 45 #. minutes)" -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/student_training/student_training.html #, python-format, python-brace-format msgid "" "\n" @@ -2688,12 +2685,12 @@ msgstr "" " \n" " Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/student_training/student_training.html -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/student_training/student_training.html +#: templates/legacy/student_training/student_training.html msgid "Learning to Assess Responses" msgstr "Léärnïng tö Àsséss Réspönsés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢#" -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/student_training/student_training.html msgid "" "Before you begin to assess your peers' responses, you'll learn how to " "complete peer assessments by reviewing responses that instructors have " @@ -2708,7 +2705,7 @@ msgstr "" "sämé öptïöns, ýöü'll révïéw thé réspönsé änd trý ägäïn. Ⱡ'σяєм ιρѕυм ∂σłσя " "ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єι#" -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/student_training/student_training.html msgid "" "Your assessment differs from the instructor's assessment of this response. " "Review the response and consider why the instructor may have assessed it " @@ -2723,44 +2720,44 @@ msgstr "" "∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα" " ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт ησ#" -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/student_training/student_training.html msgid "The response to the prompt above:" msgstr "" "Thé réspönsé tö thé prömpt äßövé: Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/student_training/student_training.html msgid "Selected Options Agree" msgstr "Séléçtéd Öptïöns Àgréé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢#" -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/student_training/student_training.html msgid "The option you selected is the option that the instructor selected." msgstr "" "Thé öptïön ýöü séléçtéd ïs thé öptïön thät thé ïnstrüçtör séléçtéd. Ⱡ'σяєм " "ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя #" -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/student_training/student_training.html msgid "Selected Options Differ" msgstr "Séléçtéd Öptïöns Dïffér Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σ#" -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/student_training/student_training.html msgid "" "The option you selected is not the option that the instructor selected." msgstr "" "Thé öptïön ýöü séléçtéd ïs nöt thé öptïön thät thé ïnstrüçtör séléçtéd. " "Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя#" -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/student_training/student_training.html msgid "We could not check your assessment" msgstr "" "Wé çöüld nöt çhéçk ýöür ässéssmént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: templates/openassessmentblock/student_training/student_training.html +#: templates/legacy/student_training/student_training.html msgid "Compare your selections with the instructor's selections" msgstr "" "Çömpäré ýöür séléçtïöns wïth thé ïnstrüçtör's séléçtïöns Ⱡ'σяєм ιρѕυм ∂σłσя " "ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: templates/openassessmentblock/student_training/student_training_closed.html +#: templates/legacy/student_training/student_training_closed.html msgid "" "The due date for this step has passed. This step is now closed. You can no " "longer continue with this assignment, and you will receive a grade of " @@ -2775,13 +2772,13 @@ msgstr "" "νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт " "¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυηт мσ#" -#: templates/openassessmentblock/student_training/student_training_error.html +#: templates/legacy/student_training/student_training_error.html msgid "Error Loading Learner Training Examples" msgstr "" "Érrör Löädïng Léärnér Träïnïng Éxämplés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя#" -#: templates/openassessmentblock/student_training/student_training_error.html +#: templates/legacy/student_training/student_training_error.html msgid "The Learner Training Step of this assignment could not be loaded." msgstr "" "Thé Léärnér Träïnïng Stép öf thïs ässïgnmént çöüld nöt ßé löädéd. Ⱡ'σяєм " @@ -3084,11 +3081,6 @@ msgstr "" "Süççéssfüllý üpdätéd ÖpénÀsséssmént XBlöçk Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" -#: xblock/ui_mixins/legacy/submissions/file_actions.py -msgid "Files metadata could not be saved." -msgstr "" -"Fïlés métädätä çöüld nöt ßé sävéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" - #: xblock/utils/data_conversion.py msgid "You must provide options selected in the assessment." msgstr "" diff --git a/openassessment/conf/locale/eo/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/eo/LC_MESSAGES/djangojs.po index 146df4cd78..9cfeea421e 100644 --- a/openassessment/conf/locale/eo/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/eo/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-ora2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-06 21:24+0000\n" +"POT-Creation-Date: 2023-10-25 14:38+0000\n" "PO-Revision-Date: 2014-06-04 15:41-0400\n" "Last-Translator: Muhammad Ayub khan \n" "Language-Team: openedx-translation \n" @@ -18,7 +18,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js xblock/static/js/src/oa_server.js #: xblock/static/js/src/oa_server.js @@ -26,7 +27,8 @@ msgid "This section could not be loaded." msgstr "" "Thïs séçtïön çöüld nöt ßé löädéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "The staff assessment form could not be loaded." @@ -34,7 +36,8 @@ msgstr "" "Thé stäff ässéssmént förm çöüld nöt ßé löädéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя α#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "The display of ungraded and checked out responses could not be loaded." @@ -42,7 +45,8 @@ msgstr "" "Thé dïspläý öf üngrädéd änd çhéçkéd öüt réspönsés çöüld nöt ßé löädéd. " "Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя #" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "This response could not be submitted." @@ -50,7 +54,8 @@ msgstr "" "Thïs réspönsé çöüld nöt ßé süßmïttéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "Please check your internet connection." @@ -58,7 +63,8 @@ msgstr "" "Pléäsé çhéçk ýöür ïntérnét çönnéçtïön. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "This feedback could not be submitted." @@ -66,7 +72,8 @@ msgstr "" "Thïs féédßäçk çöüld nöt ßé süßmïttéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js xblock/static/js/src/oa_server.js #: xblock/static/js/src/oa_server.js @@ -75,7 +82,8 @@ msgstr "" "Thïs ässéssmént çöüld nöt ßé süßmïttéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "One or more rescheduling tasks failed." @@ -83,40 +91,46 @@ msgstr "" "Öné ör möré résçhédülïng täsks fäïléd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "This problem could not be saved." msgstr "" "Thïs prößlém çöüld nöt ßé sävéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "The server could not be contacted." msgstr "" "Thé sérvér çöüld nöt ßé çöntäçtéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "Could not retrieve upload url." msgstr "Çöüld nöt rétrïévé üplöäd ürl. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢т#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js xblock/static/js/src/oa_server.js msgid "Server error." msgstr "Sérvér érrör. Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "Could not retrieve download url." msgstr "" "Çöüld nöt rétrïévé döwnlöäd ürl. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "The submission could not be removed from the grading pool." @@ -124,125 +138,151 @@ msgstr "" "Thé süßmïssïön çöüld nöt ßé rémövéd fröm thé grädïng pööl. Ⱡ'σяєм ιρѕυм " "∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "Multiple teams returned for course" msgstr "" "Mültïplé téäms rétürnéd för çöürsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "Could not load teams information." msgstr "" "Çöüld nöt löäd téäms ïnförmätïön. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "User lookup failed" msgstr "Ûsér lööküp fäïléd Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "Error when looking up username" msgstr "Érrör whén löökïng üp üsérnämé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢т#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/dist/openassessment-studio.979e8b88dd0d9cee68f7.js #: xblock/static/js/src/oa_server.js msgid "Failed to clone rubric" msgstr "Fäïléd tö çlöné rüßrïç Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_course_items_listing.js msgid "View and grade responses" msgstr "Vïéw änd grädé réspönsés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢ση#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_course_items_listing.js msgid "Demo the new Grading Experience" msgstr "Démö thé néw Grädïng Éxpérïénçé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢т#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Unit Name" msgstr "Ûnït Nämé Ⱡ'σяєм ιρѕυм ∂σł#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Units" msgstr "Ûnïts Ⱡ'σяєм ιρѕ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Assessment" msgstr "Àsséssmént Ⱡ'σяєм ιρѕυм ∂σłσ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Assessments" msgstr "Àsséssménts Ⱡ'σяєм ιρѕυм ∂σłσя #" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Total Responses" msgstr "Tötäl Réspönsés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Training" msgstr "Träïnïng Ⱡ'σяєм ιρѕυм ∂#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Peer" msgstr "Péér Ⱡ'σяєм ι#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Self" msgstr "Sélf Ⱡ'σяєм ι#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Waiting" msgstr "Wäïtïng Ⱡ'σяєм ιρѕυм #" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Staff" msgstr "Stäff Ⱡ'σяєм ιρѕ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Final Grade Received" msgstr "Fïnäl Grädé Réçéïvéd Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Staff Grader" msgstr "Stäff Grädér Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "List of Open Assessments is unavailable" msgstr "" "Lïst öf Öpén Àsséssménts ïs ünäväïläßlé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Please wait" msgstr "Pléäsé wäït Ⱡ'σяєм ιρѕυм ∂σłσя #" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Block view is unavailable" msgstr "Blöçk vïéw ïs ünäväïläßlé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Back to Full List" msgstr "Bäçk tö Füll Lïst Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_confirmation_alert.js msgid "Confirm" msgstr "Çönfïrm Ⱡ'σяєм ιρѕυм #" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_confirmation_alert.js msgid "Cancel" msgstr "Çänçél Ⱡ'σяєм ιρѕυ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "" "There is still file upload in progress. Please wait until it is finished." @@ -250,48 +290,56 @@ msgstr "" "Théré ïs stïll fïlé üplöäd ïn prögréss. Pléäsé wäït üntïl ït ïs fïnïshéd. " "Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "Cannot submit empty response even everything is optional." msgstr "" "Çännöt süßmït émptý réspönsé évén évérýthïng ïs öptïönäl. Ⱡ'σяєм ιρѕυм ∂σłσя" " ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "Please upload a file." msgstr "Pléäsé üplöäd ä fïlé. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "Please provide a response." msgstr "Pléäsé prövïdé ä réspönsé. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "No files selected for upload." msgstr "Nö fïlés séléçtéd för üplöäd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "Please provide a description for each file you are uploading." msgstr "" "Pléäsé prövïdé ä désçrïptïön för éäçh fïlé ýöü äré üplöädïng. Ⱡ'σяєм ιρѕυм " "∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "Your file has been deleted or path has been changed: " msgstr "" "Ýöür fïlé häs ßéén délétéd ör päth häs ßéén çhängéd: Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт" " αмєт, ¢σηѕє¢тєтυя α#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "Saving draft" msgstr "Sävïng dräft Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "" "If you leave this page without saving or submitting your response, you will " @@ -300,27 +348,32 @@ msgstr "" "Ìf ýöü léävé thïs pägé wïthöüt sävïng ör süßmïttïng ýöür réspönsé, ýöü wïll " "lösé äný wörk ýöü hävé döné ön thé réspönsé. Ⱡ'σяєм ιρѕυ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "Saving draft..." msgstr "Sävïng dräft... Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "Draft saved!" msgstr "Dräft sävéd! Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "Error" msgstr "Érrör Ⱡ'σяєм ιρѕ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "Confirm Submit Response" msgstr "Çönfïrm Süßmït Réspönsé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "" "You're about to submit your response for this assignment. After you submit " @@ -335,14 +388,16 @@ msgstr "" "¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт " "ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυηт мσłłιт αηιм ι∂ єѕт łαвσяυ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "Individual file size must be {max_files_mb}MB or less." msgstr "" "Ìndïvïdüäl fïlé sïzé müst ßé {max_files_mb}MB ör léss. Ⱡ'σяєм ιρѕυм ∂σłσя " "ѕιт αмєт, ¢σηѕє¢тєтυя #" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "" "File upload failed: unsupported file type. Only the supported file types can" @@ -357,35 +412,41 @@ msgstr "" "¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт " "ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυηт мσłłιт αηι#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "The maximum number files that can be saved is " msgstr "" "Thé mäxïmüm nümßér fïlés thät çän ßé sävéd ïs Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя α#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js #: xblock/static/js/src/lms/oa_response.js msgid "Describe " msgstr "Désçrïßé Ⱡ'σяєм ιρѕυм ∂σł#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "(required):" msgstr "(réqüïréd): Ⱡ'σяєм ιρѕυм ∂σłσя #" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "Thumbnail view of " msgstr "Thümßnäïl vïéw öf Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "Confirm Delete Uploaded File" msgstr "Çönfïrm Délété Ûplöädéd Fïlé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_response.js msgid "" "Are you sure you want to delete the following file? It cannot be restored.\n" @@ -394,7 +455,8 @@ msgstr "" "Àré ýöü süré ýöü wänt tö délété thé föllöwïng fïlé? Ìt çännöt ßé réstöréd.\n" "Fïlé: Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_self.js msgid "" "If you leave this page without submitting your self assessment, you will " @@ -403,19 +465,22 @@ msgstr "" "Ìf ýöü léävé thïs pägé wïthöüt süßmïttïng ýöür sélf ässéssmént, ýöü wïll " "lösé äný wörk ýöü hävé döné. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_staff_area.js #: xblock/static/js/src/lms/oa_staff_area.js msgid "Unexpected server error." msgstr "Ûnéxpéçtéd sérvér érrör. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢ση#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_staff_area.js msgid "You must provide a learner name." msgstr "" "Ýöü müst prövïdé ä léärnér nämé. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_staff_area.js msgid "" "This grade will be applied to all members of the team. Do you want to " @@ -424,19 +489,22 @@ msgstr "" "Thïs grädé wïll ßé äpplïéd tö äll mémßérs öf thé téäm. Dö ýöü wänt tö " "çöntïnüé? Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_staff_area.js msgid "Confirm Grade Team Submission" msgstr "Çönfïrm Grädé Téäm Süßmïssïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_staff_area.js msgid "Error getting the number of ungraded responses" msgstr "" "Érrör géttïng thé nümßér öf üngrädéd réspönsés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя α#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "" "If you leave this page without submitting your staff assessment, you will " "lose any work you have done." @@ -444,13 +512,15 @@ msgstr "" "Ìf ýöü léävé thïs pägé wïthöüt süßmïttïng ýöür stäff ässéssmént, ýöü wïll " "lösé äný wörk ýöü hävé döné. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_training.js msgid "Feedback available for selection." msgstr "" "Féédßäçk äväïläßlé för séléçtïön. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js #: xblock/static/js/src/lms/oa_peer.js msgid "" "If you leave this page without submitting your peer assessment, you will " @@ -459,35 +529,43 @@ msgstr "" "Ìf ýöü léävé thïs pägé wïthöüt süßmïttïng ýöür péér ässéssmént, ýöü wïll " "lösé äný wörk ýöü hävé döné. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Refresh" msgstr "Réfrésh Ⱡ'σяєм ιρѕυм #" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Username" msgstr "Ûsérnämé Ⱡ'σяєм ιρѕυм ∂#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Peers Assessed" msgstr "Péérs Àssésséd Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Peer Responses Received" msgstr "Péér Réspönsés Réçéïvéd Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Time Spent On Current Step" msgstr "Tïmé Spént Ön Çürrént Stép Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Staff assessment" msgstr "Stäff ässéssmént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Grade Status" msgstr "Grädé Stätüs Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "" "The \"{name}\" problem is configured to require a minimum of {min_grades} " "peer grades, and asks to review {min_graded} peers." @@ -496,7 +574,8 @@ msgstr "" "péér grädés, änd äsks tö révïéw {min_graded} péérs. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт " "αм#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "" "There are currently {stuck_learners} learners in the waiting state, meaning " "they have not yet met all requirements for Peer Assessment. " @@ -504,7 +583,8 @@ msgstr "" "Théré äré çürréntlý {stuck_learners} léärnérs ïn thé wäïtïng stäté, méänïng " "théý hävé nöt ýét mét äll réqüïréménts för Péér Àsséssmént. Ⱡ'σяєм ιρ#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "" "However, {overwritten_count} of these students have received a grade through" " the staff grade override tool already." @@ -512,12 +592,14 @@ msgstr "" "Höwévér, {overwritten_count} öf thésé stüdénts hävé réçéïvéd ä grädé thröügh" " thé stäff grädé övérrïdé tööl älréädý. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Error while fetching student data." msgstr "" "Érrör whïlé fétçhïng stüdént dätä. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +#: xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js +#: xblock/static/dist/openassessment-lms.983dceadf8449ca82c4f.js msgid "Unable to load" msgstr "Ûnäßlé tö löäd Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#" diff --git a/openassessment/conf/locale/es_419/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/es_419/LC_MESSAGES/djangojs.po index 5b1734791a..d00406e472 100644 --- a/openassessment/conf/locale/es_419/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/es_419/LC_MESSAGES/djangojs.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Jesica Greco, 2023\n" "Language-Team: Spanish (Latin America) (http://app.transifex.com/open-edx/edx-platform/language/es_419/)\n" diff --git a/openassessment/conf/locale/es_AR/LC_MESSAGES/django.mo b/openassessment/conf/locale/es_AR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..7142d36ae5 Binary files /dev/null and b/openassessment/conf/locale/es_AR/LC_MESSAGES/django.mo differ diff --git a/openassessment/conf/locale/es_AR/LC_MESSAGES/django.po b/openassessment/conf/locale/es_AR/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ec8f7ffb45 --- /dev/null +++ b/openassessment/conf/locale/es_AR/LC_MESSAGES/django.po @@ -0,0 +1,2520 @@ +# #-#-#-#-# django.po (edx-ora2) #-#-#-#-# +# edX translation file +# Copyright (C) 2018 edX +# This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE. +# +# Translators: +# Jesica Greco, 2023 +# Leangseu Kim, 2023 +msgid "" +msgstr "" +"Project-Id-Version: edx-platform\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" +"PO-Revision-Date: 2014-06-11 13:03+0000\n" +"Last-Translator: Jesica Greco, 2023\n" +"Language-Team: Spanish (Argentina) (http://app.transifex.com/open-edx/edx-platform/language/es_AR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_AR\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" + +#: assessment/api/student_training.py:179 +msgid "Could not parse serialized rubric" +msgstr "No se pudo analizar la rúbrica serializada" + +#: assessment/api/student_training.py:191 +msgid "" +"If your assignment includes a learner training step, the rubric must have at" +" least one criterion, and that criterion must have at least one option." +msgstr "Si su tarea incluye un paso de capacitación del alumno, la rúbrica debe tener al menos un criterio y ese criterio debe tener al menos una opción." + +#: assessment/api/student_training.py:203 +#, python-brace-format +msgid "Example {example_number} has a validation error: {error}" +msgstr "El ejemplo {example_number} tiene un error de validación: {error}" + +#: assessment/api/student_training.py:217 +#, python-brace-format +msgid "" +"Example {example_number} has an invalid option for \"{criterion_name}\": " +"\"{option_name}\"" +msgstr "El ejemplo {example_number} tiene una opción no válida para \"{criterion_name}\": \"{option_name}\"" + +#: assessment/api/student_training.py:227 +#, python-brace-format +msgid "Example {example_number} has an extra option for \"{criterion_name}\"" +msgstr "Ejemplo {example_number} tiene una opción extra para \"{criterion_name}\"" + +#: assessment/api/student_training.py:240 +#, python-brace-format +msgid "Example {example_number} is missing an option for \"{criterion_name}\"" +msgstr "Al ejemplo {example_number} le falta una opción de \"{criterion_name}\"" + +#: data.py:533 +#, python-brace-format +msgid "Criterion {number}: {label}" +msgstr "Criterio {number}: {label}" + +#: data.py:535 +#, python-brace-format +msgid "Points {number}" +msgstr "Puntos {number}" + +#: data.py:536 +#, python-brace-format +msgid "Median Score {number}" +msgstr "Puntuación media {number}" + +#: data.py:537 +#, python-brace-format +msgid "Feedback {number}" +msgstr "Feedback {number}" + +#: data.py:866 +msgid "Item ID" +msgstr "ID del elemento" + +#: data.py:867 +msgid "Submission ID" +msgstr "ID de envío" + +#: data.py:879 +msgid "Anonymized Student ID" +msgstr "ID del estudiante anonimizado" + +#: data.py:910 +msgid "Assessment ID" +msgstr "ID de evaluación" + +#: data.py:911 +msgid "Assessment Scored Date" +msgstr "Fecha de puntuación de la evaluación" + +#: data.py:912 +msgid "Assessment Scored Time" +msgstr "Evaluación Tiempo puntuado" + +#: data.py:913 +msgid "Assessment Type" +msgstr "Tipo de evaluación" + +#: data.py:914 +msgid "Anonymous Scorer Id" +msgstr "Identificación del goleador anónimo" + +#: data.py:916 +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:59 +msgid "Overall Feedback" +msgstr "Comentarios generales" + +#: data.py:917 +msgid "Assessment Score Earned" +msgstr "Puntuación de evaluación obtenida" + +#: data.py:918 +msgid "Assessment Scored At" +msgstr "Evaluación puntuada en" + +#: data.py:919 +msgid "Date/Time Final Score Given" +msgstr "Fecha/Hora Puntuación final otorgada" + +#: data.py:920 +msgid "Final Score Earned" +msgstr "Puntuación final obtenida" + +#: data.py:921 +msgid "Final Score Possible" +msgstr "Puntuación final posible" + +#: data.py:922 +msgid "Feedback Statements Selected" +msgstr "Declaraciones de comentarios seleccionadas" + +#: data.py:923 +msgid "Feedback on Assessment" +msgstr "Comentarios sobre la evaluación" + +#: data.py:925 +msgid "Response Files" +msgstr "Archivos de respuesta" + +#: data.py:1316 +msgid "No description provided." +msgstr "No se proporciona descripción." + +#: templates/openassessmentblock/edit/oa_edit.html:28 +msgid "Save" +msgstr "Guardar" + +#: templates/openassessmentblock/edit/oa_edit.html:32 +msgid "Cancel" +msgstr "Cancelar" + +#: templates/openassessmentblock/edit/oa_edit_assessment_steps.html:6 +msgid "" +"Open Response Assessments allow you to configure single or multiple steps in" +" a rubric based open response assessment sequence. The steps available below" +" can be enabled, disable, and ordered for a flexible set of pedagogical " +"needs." +msgstr "Las evaluaciones de respuesta abierta le permiten configurar uno o varios pasos en una secuencia de evaluación de respuesta abierta basada en rúbricas. Los pasos disponibles a continuación se pueden habilitar, deshabilitar y ordenar para un conjunto flexible de necesidades pedagógicas." + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:5 +msgid "Display Name " +msgstr "Nombre para mostrar" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:8 +msgid "The display name for this component." +msgstr "El nombre para mostrar de este componente." + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:12 +msgid "Text Response" +msgstr "Respuesta de texto" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:20 +msgid "" +"Specify whether learners must include a text based response to this " +"problem's prompt." +msgstr "Especifique si los alumnos deben incluir una respuesta basada en texto al mensaje de este problema." + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:25 +msgid "Response Editor" +msgstr "Editor de respuestas" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:33 +msgid "" +"Select which editor learners will use to include a text based response to " +"this problem's prompt." +msgstr "Seleccione qué editor utilizarán los alumnos para incluir una respuesta basada en texto al mensaje de este problema." + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:38 +msgid "File Uploads Response" +msgstr "Respuesta de carga de archivos" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:46 +msgid "" +"Specify whether learners are able to upload files as a part of their " +"response." +msgstr "Especifique si los alumnos pueden cargar archivos como parte de su respuesta." + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:50 +msgid "Allow Multiple Files" +msgstr "Permitir múltiples archivos" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:52 +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:93 +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:131 +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:157 +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:45 +msgid "False" +msgstr "Falso" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:53 +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:94 +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:132 +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:158 +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:46 +msgid "True" +msgstr "Verdadero" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:56 +msgid "" +"Specify whether learners can upload more than one file. This has no effect " +"if File Uploads Response is set to None. This is automatically set to True " +"for Team Assignments. " +msgstr "Especifique si los alumnos pueden cargar más de un archivo. Esto no tiene ningún efecto si la Respuesta de carga de archivos está configurada en Ninguna. Esto se establece automáticamente en Verdadero para las asignaciones de equipo." + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:58 +msgid "File Upload Types" +msgstr "Tipos de carga de archivos" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:60 +msgid "PDF or Image Files" +msgstr "Archivos PDF o de imagen" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:61 +msgid "Image Files" +msgstr "Archivos de imagen" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:62 +msgid "Custom File Types" +msgstr "Tipos de archivos personalizados" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:66 +msgid "" +"Specify whether learners can submit files along with their text responses." +msgstr "Especifique si los alumnos pueden enviar archivos junto con sus respuestas de texto." + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:70 +msgid "File Types" +msgstr "Tipos de archivo" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:79 +msgid "" +"Enter the file extensions, separated by commas, that you want learners to be" +" able to upload. For example: pdf,doc,docx." +msgstr "Introduce las extensiones de fichero, separadas por comas, que permitirás cargar a tus estudiantes. Por ejemplo: pdf,doc,docx." + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:84 +msgid "" +"To add more file extensions, select Custom File Types and enter the full " +"list of acceptable file extensions to be included." +msgstr "Para agregar más extensiones de archivo, seleccione Tipos de archivos personalizados e ingrese la lista completa de extensiones de archivos aceptables para incluir." + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:91 +msgid "Allow LaTeX Responses" +msgstr "Permitir respuestas LaTeX" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:97 +msgid "Specify whether learners can write LaTeX formatted strings" +msgstr "Especificar si los alumnos pueden escribir cadenas formateadas en LaTeX." + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:102 +#: templates/openassessmentblock/leaderboard/oa_leaderboard_show.html:8 +#: templates/openassessmentblock/leaderboard/oa_leaderboard_waiting.html:10 +msgid "Top Responses" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:104 +msgid " (Disabled)" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:117 +msgid "" +"Specify the number of top scoring responses to display after the learner has" +" submitted a response. Valid numbers are 0 to 99. If the number is 0, the " +"Top Responses section does not appear to learners." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:122 +msgid "When Teams Enabled is set to true, Top Responses will be disabled." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:129 +msgid "Teams Enabled" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:136 +msgid "Specify whether team submissions are allowed for this response." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:141 +msgid "Select Team-Set" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:155 +msgid "Show Rubric During Response" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:162 +msgid "" +"Specify whether learners can see the rubric while they are working on their " +"response." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:6 +#: templates/openassessmentblock/staff_area/oa_student_info.html:122 +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:25 +msgid "Criterion" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:7 +msgid "You cannot delete a criterion after the assignment has been released." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:9 +#: templates/openassessmentblock/edit/oa_edit_option.html:7 +#: templates/openassessmentblock/edit/oa_edit_prompt.html:10 +#: templates/openassessmentblock/edit/oa_training_example.html:10 +msgid "Remove" +msgstr "Quitar" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:17 +msgid "Criterion Name" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:29 +msgid "Criterion Prompt" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:44 +msgid "Add Option" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:52 +msgid "Feedback for This Criterion" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:54 +#: xblock/studio_mixin.py:57 +msgid "None" +msgstr "Nada" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:55 +#: xblock/studio_mixin.py:56 +msgid "Optional" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:56 +#: templates/openassessmentblock/oa_rubric.html:13 +#: templates/openassessmentblock/student_training/student_training.html:93 +#: xblock/studio_mixin.py:55 +msgid "Required" +msgstr "Requerido" + +#: templates/openassessmentblock/edit/oa_edit_criterion.html:61 +msgid "" +"Select one of the options above. This describes whether or not the reviewer " +"will have to provide criterion feedback." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:3 +msgid "Open Response Assessment" +msgstr "Evaluación de respuesta abierta" + +#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:8 +#: templates/openassessmentblock/edit/oa_edit_prompt.html:7 +msgid "Prompt" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:15 +msgid "Rubric" +msgstr "Rúbrica" + +#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:22 +msgid "Schedule" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:31 +msgid "Assessment steps" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_header_and_validation.html:38 +msgid "Settings" +msgstr "Configuración" + +#: templates/openassessmentblock/edit/oa_edit_option.html:5 +msgid "Option" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_option.html:16 +msgid "Option Name" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_option.html:29 +msgid "Option Points" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_option.html:42 +msgid "Option Explanation" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:10 +msgid "Step: Peer Assessment" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:15 +msgid "" +"Peer Assessment allows students to provide feedback to other students and " +"also receive feedback from others in their final grade. Often, though not " +"always, this step is preceded by Self Assessment or Learner Training steps." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:18 +msgid "" +"Configuration: For this step to be configured you must specify the number of" +" peer reviews a student will be assessed with, and the number of peer a " +"student must grade. Additional options can be specified." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:23 +msgid "View Options & Configuration" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:29 +msgid "Must Grade" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:32 +msgid "" +"Specify the number of peer assessments that each learner must complete. " +"Valid numbers are 1 to 99." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:36 +msgid "Graded By" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:39 +msgid "" +"Specify the number of learners that each response must be assessed by. Valid" +" numbers are 1 to 99." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:43 +msgid "Enable Flexible Peer Grade Averaging" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:49 +#, python-format +msgid "" +"When enabled, learners who have received at least 30%% of the required \\" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment.html:53 +msgid "" +"This feature is being enabled by the course-level setting. It can be found " +"under the Open Response Assessment Settings card on the Pages & Resources " +"studio page." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:5 +msgid "Peer Assessment Deadlines" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:10 +#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:10 +msgid "Start Date" +msgstr "Fecha de inicio" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:19 +#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:19 +msgid "Start Time" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:27 +msgid "The date and time when learners can begin assessing peer responses." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:31 +#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:31 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:119 +msgid "Due Date" +msgstr "Fecha de vencimiento" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:40 +#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:40 +msgid "Due Time" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_peer_assessment_schedule.html:48 +msgid "The date and time when all peer assessments must be complete." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_prompt.html:8 +msgid "You cannot delete a prompt after the assignment has been released." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_prompts.html:10 +msgid "" +"Prompts. Replace the sample text with your own text. For more information, " +"see the ORA documentation." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_prompts.html:22 +msgid "Add Prompt" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_rubric.html:14 +msgid "" +"Rubrics are made up of criteria, which usually contain one or more options. " +"Each option has a point value. This template contains two sample criteria " +"and their options. Replace the sample text with your own text. For more " +"information, see the ORA documentation." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_rubric.html:29 +msgid "Add Criterion" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_rubric.html:35 +msgid "Feedback for This Response" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_rubric.html:40 +msgid "Feedback Instructions" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_rubric.html:44 +msgid "" +"Encourage learners to provide feedback on the response they have graded. You" +" can replace the sample text with your own." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_rubric.html:49 +msgid "Default Feedback Text" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_rubric.html:53 +msgid "" +"Enter feedback text that learners will see before they enter their own " +"feedback. Use this text to show learners a good example peer assessment." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:5 +msgid "Deadlines Configuration" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:9 +msgid "Select a deadline configuration option" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:13 +msgid " NEW" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:19 +msgid "Configure deadlines manually" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:23 +msgid "Match deadlines to the subsection due date" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:27 +msgid "Match deadlines to the course end date" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:30 +msgid "Learn more about open response date settings" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:40 +msgid "Response Start Date" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:53 +msgid "Response Start Time" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:62 +msgid "The date and time when learners can begin submitting responses." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:70 +msgid "Response Due Date" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:83 +msgid "Response Due Time" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_schedule.html:92 +msgid "The date and time when learners can no longer submit responses." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_self_assessment.html:8 +msgid "Step: Self Assessment" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_self_assessment.html:12 +msgid "" +"Self Assessment asks learners to grade their own submissions against the " +"rubric." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:5 +msgid "Self Assessment Deadlines" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:27 +msgid "The date and time when learners can begin assessing their responses." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_self_assessment_schedule.html:48 +msgid "The date and time when all self assessments must be complete." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_staff_assessment.html:8 +msgid "Step: Staff Assessment" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_staff_assessment.html:12 +msgid "" +"Staff Assessment gates sets the final grade for students if enabled with " +"other steps, though it can also be used as a standalone step." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_student_training.html:9 +msgid "Step: Learner Training" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_student_training.html:14 +msgid "" +"Learner Training is used to help students practice grading a simulated peer " +"submission in order to train them on the rubric and ensure learner's " +"understand the rubric for either Self or Peer Assessment steps." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_student_training.html:17 +msgid "" +"Configuration: For this step to be fully configured you must provide one or " +"more graded sample responses. Learners must then match this instructor score" +" to advance and are provided feedback when their score doesn't match the " +"sample response." +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_student_training.html:22 +msgid "View / Add Sample Responses" +msgstr "" + +#: templates/openassessmentblock/edit/oa_edit_student_training.html:32 +msgid "Add Sample Response" +msgstr "" + +#: templates/openassessmentblock/edit/oa_rubric_reuse.html:4 +msgid "Clone Rubric" +msgstr "" + +#: templates/openassessmentblock/edit/oa_rubric_reuse.html:7 +msgid "" +"To clone a rubric from an existing published or unpublished draft, you can " +"search by the Block ID. Note that cloning is one-way, meaning changes made " +"after cloning will only affect the rubric being modified, and will not " +"modify any rubric it was cloned from." +msgstr "" + +#: templates/openassessmentblock/edit/oa_rubric_reuse.html:9 +msgid "Block ID For this ORA:" +msgstr "" + +#: templates/openassessmentblock/edit/oa_rubric_reuse.html:19 +msgid "Block ID" +msgstr "" + +#: templates/openassessmentblock/edit/oa_rubric_reuse.html:21 +msgid "No other Open Response Assessments found in course" +msgstr "" + +#: templates/openassessmentblock/edit/oa_rubric_reuse.html:31 +msgid "Clone" +msgstr "" + +#: templates/openassessmentblock/edit/oa_rubric_reuse.html:37 +msgid "Rubric Successfully Cloned from Block ID: " +msgstr "" + +#: templates/openassessmentblock/edit/oa_training_example.html:7 +msgid "Scored Response" +msgstr "" + +#: templates/openassessmentblock/edit/oa_training_example.html:16 +msgid "Response Score" +msgstr "" + +#: templates/openassessmentblock/edit/oa_training_example.html:27 +msgid "Response" +msgstr "" + +#: templates/openassessmentblock/edit/oa_training_example_criterion.html:10 +msgid "Not Selected" +msgstr "No seleccionado" + +#: templates/openassessmentblock/edit/oa_training_example_criterion.html:15 +#: templates/openassessmentblock/oa_rubric.html:43 +#: templates/openassessmentblock/student_training/student_training.html:128 +msgid "points" +msgstr "" + +#: templates/openassessmentblock/grade/oa_assessment_feedback.html:8 +#, python-format +msgid "" +"\n" +" %(start_tag)s%(title)s%(end_tag)s%(start_grade_tag)s - %(grade)s%(end_tag)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/grade/oa_assessment_title.html:7 +#, python-format +msgid "" +"\n" +" %(assessment_title)s - %(points)s point\n" +" " +msgid_plural "" +"\n" +" %(assessment_title)s - %(points)s points\n" +" " +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/openassessmentblock/grade/oa_assessment_title.html:24 +#, python-format +msgid "More information about %(name)s" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_cancelled.html:14 +#: templates/openassessmentblock/grade/oa_grade_complete.html:15 +#: templates/openassessmentblock/grade/oa_grade_complete.html:26 +#: templates/openassessmentblock/grade/oa_grade_incomplete.html:14 +#: templates/openassessmentblock/grade/oa_grade_not_started.html:14 +#: templates/openassessmentblock/grade/oa_grade_waiting.html:14 +msgid "Your Grade" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_cancelled.html:19 +#, python-format +msgid "" +"\n" +" %(points_earned)s out of %(points_possible)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_cancelled.html:38 +msgid "Your submission has been cancelled." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:19 +#, python-format +msgid "" +"\n" +" %(points_earned)s out of %(points_possible)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:38 +#: templates/openassessmentblock/response/oa_response.html:29 +msgid "Your Response" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:41 +msgid "Your Upload" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:46 +msgid "Assessments of Your Response" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:50 +#: templates/openassessmentblock/grade/oa_grade_complete.html:132 +#: templates/openassessmentblock/grade/oa_grade_incomplete.html:28 +#: templates/openassessmentblock/grade/oa_grade_waiting.html:28 +#: templates/openassessmentblock/message/oa_message_cancelled.html:4 +#: templates/openassessmentblock/message/oa_message_closed.html:4 +#: templates/openassessmentblock/message/oa_message_complete.html:4 +#: templates/openassessmentblock/message/oa_message_incomplete.html:4 +#: templates/openassessmentblock/peer/oa_peer_closed.html:33 +#: templates/openassessmentblock/peer/oa_peer_complete.html:30 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:40 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html:34 +#: templates/openassessmentblock/peer/oa_peer_waiting.html:34 +#: templates/openassessmentblock/response/oa_response_cancelled.html:31 +#: templates/openassessmentblock/response/oa_response_closed.html:29 +#: templates/openassessmentblock/response/oa_response_submitted.html:30 +#: templates/openassessmentblock/response/oa_response_team_already_submitted.html:25 +#: templates/openassessmentblock/self/oa_self_closed.html:30 +#: templates/openassessmentblock/student_training/student_training_closed.html:27 +msgid "Status" +msgstr "Estado" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:65 +msgid "Overall Grade" +msgstr "Nota global" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:70 +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:28 +msgid "Points" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:96 +msgid "Additional comments on your response" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:117 +msgid "Provide feedback on peer assessments" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:126 +msgid "Submitting Feedback" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:134 +msgid "" +"Your feedback has been submitted. Course staff will be able to see this " +"feedback when they review course records." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:140 +msgid "" +"Course staff will be able to see any feedback that you provide here when " +"they review course records." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:146 +msgid "" +"Select the statements below that best reflect your experience with peer " +"assessments." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:155 +msgid "These assessments were useful." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:164 +msgid "These assessments were not useful." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:173 +msgid "I disagree with one or more of the peer assessments of my response." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:182 +msgid "Some comments I received were inappropriate." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:187 +msgid "" +"Provide feedback on the grade or comments that you received from your peers." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:190 +msgid "I feel the feedback I received was..." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:200 +msgid "We could not submit your feedback" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_complete.html:206 +msgid "Submit feedback on peer assessments" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_incomplete.html:16 +msgid "Not Completed" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_incomplete.html:33 +msgid "You have not completed all the steps of this problem." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_not_started.html:16 +msgid "Not Started" +msgstr "No empezado" + +#: templates/openassessmentblock/grade/oa_grade_not_started.html:27 +msgid "You have not started this problem yet." +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_waiting.html:16 +msgid "Waiting for Assessments" +msgstr "" + +#: templates/openassessmentblock/grade/oa_grade_waiting.html:33 +msgid "" +"You have completed your steps in the assignment, but some assessments still " +"need to be done on your response. When the assessments of your response are " +"complete, you will see feedback from everyone who assessed your response, " +"and you will receive your final grade." +msgstr "" + +#: templates/openassessmentblock/instructor_dashboard/oa_grade_available_responses.html:15 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:16 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:18 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:153 +msgid "Grade Available Responses" +msgstr "" + +#: templates/openassessmentblock/instructor_dashboard/oa_grade_available_responses.html:26 +msgid "" +"Grade Available Responses is unavailable. This item is not configured for " +"Staff Assessment." +msgstr "" + +#: templates/openassessmentblock/instructor_dashboard/oa_listing.html:6 +msgid "Please wait" +msgstr "Espere por favor" + +#: templates/openassessmentblock/instructor_dashboard/oa_waiting_step_details.html:15 +msgid "Waiting Step Details" +msgstr "" + +#: templates/openassessmentblock/instructor_dashboard/oa_waiting_step_details.html:24 +msgid "" +"Waiting Step details view is unavailable. This item is not configured for " +"peer assessments." +msgstr "" + +#: templates/openassessmentblock/leaderboard/oa_leaderboard_show.html:20 +#, python-format +msgid "%(num_points)s points" +msgstr "" + +#: templates/openassessmentblock/leaderboard/oa_leaderboard_show.html:24 +#: templates/openassessmentblock/peer/oa_peer_assessment.html:74 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:53 +msgid "Your peer's response to the prompt above" +msgstr "" + +#: templates/openassessmentblock/leaderboard/oa_leaderboard_waiting.html:19 +msgid "" +"After you complete all the steps of this assignment, you can see the top-" +"scoring responses from your peers." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_cancelled.html:8 +msgid "" +"Your team’s submission has been cancelled. Your team will receive a grade of" +" zero unless course staff resets your assessment to allow the team to " +"resubmit a response." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_cancelled.html:10 +msgid "" +"Your submission has been cancelled. You will receive a grade of zero unless " +"course staff resets your assessment to allow you to resubmit a response." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_closed.html:8 +msgid "" +"This task is not yet available. Check back to complete the assignment once " +"this section has opened." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_closed.html:10 +msgid "" +"This assignment has closed. One or more deadlines for this assignment have " +"passed. You will receive an incomplete grade for this assignment." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_complete.html:8 +msgid "" +"You have completed this assignment. Your final grade will be available when " +"the assessments of your response are complete." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_complete.html:10 +msgid "" +"You have completed this assignment. Review your grade and your assessment " +"details." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:9 +msgid "" +"This assignment is in progress. Learner training will close soon. Complete " +"the learner training step to move on." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:11 +msgid "" +"This assignment is in progress. Complete the learner training step to move " +"on." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:15 +#: templates/openassessmentblock/message/oa_message_incomplete.html:33 +msgid "" +"This assignment is in progress. Check back later when the assessment period " +"has started." +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:20 +#, python-format +msgid "" +"\n" +" %(start_strong)sThis assignment is in progress. The self assessment step will close soon.%(end_strong)s You still need to complete the %(start_link)sself assessment%(end_link)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:24 +#, python-format +msgid "" +"\n" +" This assignment is in progress. You still need to complete the %(start_link)sself assessment%(end_link)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:38 +#, python-format +msgid "" +"\n" +" This assignment is in progress.%(start_strong)sThe peer assessment step will close soon.%(end_strong)s All submitted peer responses have been assessed. Check back later to see if more learners have submitted responses. You still need to complete the %(start_link)speer assessment%(end_link)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:42 +#, python-format +msgid "" +"\n" +" This assignment is in progress. All submitted peer responses have been assessed. Check back later to see if more learners have submitted responses. You still need to complete the %(start_link)speer assessment%(end_link)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:46 +#, python-format +msgid "" +"\n" +" This assignment is in progress. %(start_strong)sThe peer assessment step will close soon.%(end_strong)s You still need to complete the %(start_link)speer assessment%(end_link)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_incomplete.html:50 +#, python-format +msgid "" +"\n" +" This assignment is in progress. You still need to complete the %(start_link)speer assessment%(end_link)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_no_team.html:4 +msgid "Team membership is required to view this assignment" +msgstr "" + +#: templates/openassessmentblock/message/oa_message_no_team.html:7 +#, python-format +msgid "" +"\n" +" This is a team assignment for team-set \"%(teamset_name)s\".\n" +" You are currently not on a team in team-set \"%(teamset_name)s\".\n" +" You must be on a team in team-set \"%(teamset_name)s\" to access this team assignment.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_open.html:7 +#, python-format +msgid "" +"\n" +" Assignment submissions will close soon. To receive a grade, first provide a response to the prompt, then complete the steps below the %(start_tag)sYour Response%(end_tag)s field.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_open.html:11 +#, python-format +msgid "" +"\n" +" This assignment has several steps. In the first step, you'll provide a response to the prompt. The other steps appear below the %(start_tag)sYour Response%(end_tag)s field.\n" +" " +msgstr "" + +#: templates/openassessmentblock/message/oa_message_unavailable.html:4 +msgid "Instructions Unavailable" +msgstr "" + +#: templates/openassessmentblock/message/oa_message_unavailable.html:6 +msgid "The instructions for this step could not be loaded." +msgstr "" + +#: templates/openassessmentblock/oa_base.html:15 +msgid "" +"This assignment has several steps. In the first step, you'll provide a " +"response to the prompt. The other steps appear below the Your Response " +"field." +msgstr "" + +#: templates/openassessmentblock/oa_base.html:36 +msgid "Loading" +msgstr "Cargando" + +#: templates/openassessmentblock/oa_latex_preview.html:6 +msgid "Preview in LaTeX" +msgstr "" + +#: templates/openassessmentblock/oa_latex_preview.html:9 +msgid "Click to preview your submission in LaTeX." +msgstr "" + +#: templates/openassessmentblock/oa_latex_preview.html:14 +msgid "Preview Response" +msgstr "" + +#: templates/openassessmentblock/oa_rubric.html:53 +msgid "Comments" +msgstr "Comentarios" + +#: templates/openassessmentblock/oa_submission_answer.html:8 +msgid "The question for this section" +msgstr "" + +#: templates/openassessmentblock/oa_team_uploaded_files.html:9 +msgid "Files that were uploaded by your teammates:" +msgstr "" + +#: templates/openassessmentblock/oa_team_uploaded_files.html:28 +#: templates/openassessmentblock/oa_uploaded_file.html:34 +msgid "View the files associated with this submission:" +msgstr "" + +#: templates/openassessmentblock/oa_team_uploaded_files.html:32 +msgid "Uploaded by" +msgstr "Subido por" + +#: templates/openassessmentblock/oa_uploaded_file.html:16 +msgid "Files that were uploaded by you:" +msgstr "" + +#: templates/openassessmentblock/oa_uploaded_file.html:48 +msgid "" +"Caution: These files were uploaded by another course learner and have not " +"been verified, screened, approved, reviewed, or endorsed by the site " +"administrator. If you access the files, you do so at your own risk.)" +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_assessment.html:26 +msgid "Assess Peers" +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "available August 13th, 2014 00:00 UTC (in +#. 5 days and 45 minutes)" +#: templates/openassessmentblock/peer/oa_peer_assessment.html:34 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "due August 13th, 2014 00:00 UTC (in 5 days +#. and 45 minutes)" +#: templates/openassessmentblock/peer/oa_peer_assessment.html:41 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_assessment.html:51 +#, python-format +msgid "" +"\n" +" In Progress (%(review_number)s of %(num_must_grade)s)\n" +" " +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_assessment.html:65 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:45 +msgid "Read and assess the following response from one of your peers." +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_assessment.html:77 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:56 +#: templates/openassessmentblock/self/oa_self_assessment.html:60 +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:45 +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:38 +#: templates/openassessmentblock/staff_area/oa_student_info.html:63 +msgid "Associated Files" +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_assessment.html:91 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:70 +#: templates/openassessmentblock/self/oa_self_assessment.html:71 +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:57 +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:50 +msgid "We could not submit your assessment" +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_cancelled.html:19 +#: templates/openassessmentblock/response/oa_response_cancelled.html:21 +#: templates/openassessmentblock/self/oa_self_cancelled.html:21 +#: templates/openassessmentblock/student_training/student_training_cancelled.html:18 +msgid "Cancelled" +msgstr "Cancelado" + +#: templates/openassessmentblock/peer/oa_peer_closed.html:20 +#, python-format +msgid "" +"\n" +" Incomplete (%(num_graded)s of %(num_must_grade)s)\n" +" " +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_closed.html:35 +msgid "" +"The due date for this step has passed. This step is now closed. You can no " +"longer complete peer assessments or continue with this assignment, and you " +"will receive a grade of Incomplete." +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_complete.html:13 +msgid "Completed" +msgstr "Terminado" + +#: templates/openassessmentblock/peer/oa_peer_complete.html:31 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:41 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html:36 +msgid "" +"You have successfully completed all of the required peer assessments for " +"this assignment. You may assess additional peer responses if you want to. " +"Completing additional assessments will not affect your final grade." +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_complete.html:36 +msgid "We could not retrieve additional submissions for assessment" +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_complete.html:43 +msgid "Continue Assessing Peers" +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_turbo_mode.html:26 +#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html:20 +#, python-format +msgid "" +"\n" +" Complete (%(num_graded)s)\n" +" " +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html:38 +msgid "" +"All submitted peer responses have been assessed. Check back later to see if " +"more learners have submitted responses." +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_unavailable.html:16 +#: templates/openassessmentblock/response/oa_response_unavailable.html:17 +#: templates/openassessmentblock/self/oa_self_unavailable.html:17 +#: templates/openassessmentblock/student_training/student_training_unavailable.html:16 +msgid "Not Available" +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_waiting.html:20 +#, python-format +msgid "" +"\n" +" In Progress (%(review_number)s of %(num_must_grade)s)\n" +" " +msgstr "" + +#: templates/openassessmentblock/peer/oa_peer_waiting.html:37 +msgid "" +"All available peer responses have been assessed. Check back later to see if " +"more learners have submitted responses. You will receive your grade after " +"you've completed all the steps for this problem and your peers have assessed" +" your response." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:27 +msgid "Your Team's Response" +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "available August 13th, 2014 (in 5 days and +#. 45 minutes)" +#: templates/openassessmentblock/response/oa_response.html:39 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "due August 13th, 2014 (in 5 days and 45 +#. minutes)" +#: templates/openassessmentblock/response/oa_response.html:46 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:54 +#: templates/openassessmentblock/self/oa_self_assessment.html:46 +msgid "In Progress" +msgstr "En progreso" + +#: templates/openassessmentblock/response/oa_response.html:66 +msgid "Enter your team's response to the prompt." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:68 +msgid "" +"\n" +" Your work will save automatically and you can return to complete your team's response at any time before the due date\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:81 +msgid "" +"\n" +" Your work will save automatically and you can return to complete your team's response at any time.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:86 +msgid "" +"After you submit a response on behalf of your team, it cannot be edited." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:89 +msgid "Enter your response to the prompt." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:92 +msgid "" +"Your work will save automatically and you can return to complete your " +"response at any time before the subsection due date " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:94 +msgid "" +"Your work will save automatically and you can return to complete your " +"response at any time before the course ends " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:96 +msgid "" +"Your work will save automatically and you can return to complete your " +"response at any time before the due date " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:108 +msgid "" +"Your work will save automatically and you can return to complete your " +"response at any time." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:110 +msgid "After you submit your response, you cannot edit it" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:120 +msgid "What will this assignment be graded on?" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:134 +msgid "The prompt for this section" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:148 +msgid "You are on team " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:150 +msgid "Team Members: " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:155 +#, python-format +msgid "" +"\n" +" %(team_members_with_external_submissions)s\n" +" have/has already submitted a response to this assignment with another team,\n" +" and will not be a part of your team's submission or assignment grade.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:171 +msgid "Team Response " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:173 +msgid "Your Response " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:177 +#: templates/openassessmentblock/response/oa_response.html:247 +msgid "(Required)" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:179 +#: templates/openassessmentblock/response/oa_response.html:249 +msgid "(Optional)" +msgstr "(Opcional)" + +#: templates/openassessmentblock/response/oa_response.html:183 +msgid "" +"\n" +" Teams should designate one team member to submit a response on behalf of the\n" +" entire team. All team members can use this space to work on draft responses,\n" +" but you will not be able to see your teammates' drafts made in this space, so\n" +" please coordinate with them to decide on the final response the designated team\n" +" member should submit.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:197 +msgid "Enter your response to the prompt above." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:211 +#, python-format +msgid "" +"\n" +" You are currently on Team %(team_name)s. Since you were on Team %(previous_team_name)s\n" +" when they submitted a response to this assignment, you are seeing Team %(previous_team_name)s’s\n" +" response and will receive the same grade for this assignment as your former teammates.\n" +" You will not be part of Team %(team_name)s’s submission for this assignment and will not\n" +" receive a grade for their submission.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:224 +msgid "We could not save your progress" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:232 +msgid "Status of Your Response" +msgstr "Estado de su respuesta" + +#: templates/openassessmentblock/response/oa_response.html:245 +msgid "File Uploads " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:253 +msgid "" +"\n" +" Upload files and review files uploaded by you and your teammates below. Be sure to add\n" +" descriptions to your files to help your teammates identify them.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:261 +msgid "We could not upload files" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:267 +msgid "We could not delete files" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:274 +msgid "Select one or more files to upload for this submission." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:276 +msgid "Select a file to upload for this submission." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:280 +msgid "Supported file types: " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:285 +msgid "Upload files" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:287 +msgid "Upload file" +msgstr "Cargar archivo" + +#: templates/openassessmentblock/response/oa_response.html:304 +msgid "This is a team submission." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:306 +msgid "" +"One team member should submit a response with the team’s shared files and a " +"text response on behalf of the entire team." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:308 +msgid "" +"One team member should submit a response with the team’s shared files on " +"behalf of the entire team." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:310 +msgid "" +"One team member should submit a text response on behalf of the entire team." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:312 +msgid "One team member should submit on behalf of the entire team." +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:314 +msgid "" +"\n" +" Learn more about team assignments here: (link)\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:322 +msgid "We could not submit your response" +msgstr "" + +#: templates/openassessmentblock/response/oa_response.html:332 +msgid "Submit your response and move to the next step" +msgstr "" + +#: templates/openassessmentblock/response/oa_response_cancelled.html:34 +msgid "Your submission was cancelled. " +msgstr "" + +#: templates/openassessmentblock/response/oa_response_cancelled.html:37 +#, python-format +msgid "" +"\n" +" Your submission has been cancelled by %(removed_by_username)s on %(removed_datetime)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response_cancelled.html:41 +#, python-format +msgid "" +"\n" +" Your submission was cancelled on %(removed_datetime)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response_cancelled.html:48 +#, python-format +msgid "" +"\n" +" Comments: %(comments)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response_closed.html:19 +#: templates/openassessmentblock/self/oa_self_closed.html:20 +#: templates/openassessmentblock/student_training/student_training_closed.html:17 +msgid "Incomplete" +msgstr "Incompleto" + +#: templates/openassessmentblock/response/oa_response_closed.html:32 +msgid "" +"The due date for this step has passed. This step is now closed. You can no " +"longer submit a response or continue with this problem, and you will receive" +" a grade of Incomplete. If you saved but did not submit a response, the " +"response appears in the course records." +msgstr "" + +#: templates/openassessmentblock/response/oa_response_graded.html:20 +#: templates/openassessmentblock/response/oa_response_submitted.html:20 +#: templates/openassessmentblock/self/oa_self_complete.html:18 +#: templates/openassessmentblock/student_training/student_training_complete.html:17 +msgid "Complete" +msgstr "Completo" + +#: templates/openassessmentblock/response/oa_response_graded.html:30 +#: templates/openassessmentblock/response/oa_response_submitted.html:51 +#: templates/openassessmentblock/self/oa_self_assessment.html:57 +msgid "Your response" +msgstr "" + +#: templates/openassessmentblock/response/oa_response_graded.html:33 +#: templates/openassessmentblock/response/oa_response_submitted.html:54 +msgid "Your Uploaded Files" +msgstr "" + +#: templates/openassessmentblock/response/oa_response_submitted.html:32 +msgid "" +"Your response has been submitted. You will receive your grade after all " +"steps are complete and your response is fully assessed." +msgstr "" + +#: templates/openassessmentblock/response/oa_response_submitted.html:34 +#, python-format +msgid "" +"\n" +" You still need to complete the %(peer_start_tag)speer assessment%(end_tag)s and %(self_start_tag)sself assessment%(end_tag)s steps.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response_submitted.html:38 +#, python-format +msgid "" +"\n" +" You still need to complete the %(start_tag)speer assessment%(end_tag)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response_submitted.html:42 +#, python-format +msgid "" +"\n" +" You still need to complete the %(start_tag)sself assessment%(end_tag)s step.\n" +" " +msgstr "" + +#: templates/openassessmentblock/response/oa_response_team_already_submitted.html:15 +msgid "Error" +msgstr "Error" + +#: templates/openassessmentblock/response/oa_response_team_already_submitted.html:29 +#, python-format +msgid "" +"\n" +" You joined Team %(team_name)s after they submitted a response for this assignment\n" +" and you will not receive a grade for their response. You have also not previously submitted\n" +" a response to this assignment with another team. Please contact course staff to discuss your\n" +" options for this assignment.\n" +" " +msgstr "" + +#: templates/openassessmentblock/self/oa_self_assessment.html:23 +msgid "Assess Your Response" +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "available August 13th, 2014 (in 5 days and +#. 45 minutes)" +#: templates/openassessmentblock/self/oa_self_assessment.html:31 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "due August 13th, 2014 (in 5 days and 45 +#. minutes)" +#: templates/openassessmentblock/self/oa_self_assessment.html:38 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#: templates/openassessmentblock/self/oa_self_assessment.html:78 +msgid "Submit your assessment" +msgstr "" + +#: templates/openassessmentblock/self/oa_self_closed.html:32 +msgid "" +"The due date for this step has passed. This step is now closed. You can no " +"longer complete a self assessment or continue with this assignment, and you " +"will receive a grade of Incomplete." +msgstr "" + +#: templates/openassessmentblock/staff/oa_staff_grade.html:13 +#: xblock/grade_mixin.py:365 +msgid "Staff Grade" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:8 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:35 +msgid "Manage Individual Learners" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:10 +msgid "Manage Team Responses" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:13 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:71 +msgid "View Assignment Statistics" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:22 +msgid "Demo the new Grading Experience" +msgstr "Demostración de la nueva experiencia de calificación" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:26 +msgid "View ORA in Studio" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:31 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:69 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:151 +msgid "Close" +msgstr "Cerrar" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:37 +msgid "Manage Teams" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:50 +msgid "Enter an individual learner's username or email" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:52 +msgid "Enter a team member's username or edX email" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:56 +msgid "Submit" +msgstr "Enviar" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:78 +msgid "Response total" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:84 +msgid "Location" +msgstr "Ubicación" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:90 +msgid "Learner Progress" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:94 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:117 +msgid "Problem Step" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:95 +msgid "Active Learners in Step" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:113 +msgid "Dates" +msgstr "fechas" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:118 +msgid "Release Date" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_area.html:131 +#: templates/openassessmentblock/staff_area/oa_staff_area.html:137 +msgid "N/A" +msgstr "N/A" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners.html:7 +msgid "Staff Assessment" +msgstr "Evaluación del equipo " + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:14 +msgid "Give this team a grade using the problem's rubric." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:16 +msgid "Give this learner a grade using the problem's rubric." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:26 +#, python-format +msgid "" +"\n" +" Response for: %(team_name)s with %(team_usernames)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:30 +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:20 +#, python-format +msgid "" +"\n" +" Response for: %(student_username)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:34 +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:24 +msgid "Learner Response" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:39 +msgid "The teams's response to the prompt above" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:41 +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:32 +#: templates/openassessmentblock/staff_area/oa_student_info.html:57 +msgid "The learner's response to the prompt above" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:64 +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:57 +msgid "Submit assessment" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html:70 +msgid "Submit assessment and continue grading" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_grade_learners_count.html:6 +#, python-format +msgid "" +"\n" +" %(ungraded)s Available and %(in_progress)s Checked Out\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:7 +msgid "Override this learner's current grade using the problem's rubric." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:9 +msgid "Override this team's current grade using the problem's rubric." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:27 +msgid "Team Response" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_staff_override_assessment.html:34 +#: templates/openassessmentblock/staff_area/oa_student_info.html:59 +msgid "The team's response to the prompt above" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:11 +#, python-format +msgid "" +"\n" +" Viewing learner: %(learner)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:15 +#, python-format +msgid "" +"\n" +" Viewing team: %(team)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:28 +msgid "Learner's Response" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:30 +msgid "Team's Response" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:39 +#, python-format +msgid "" +"\n" +" Learner submission removed by %(removed_by_username)s on %(removed_datetime)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:43 +#, python-format +msgid "" +"\n" +" Learner submission removed on %(removed_datetime)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:50 +#, python-format +msgid "" +"\n" +" Comments: %(comments)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:71 +msgid "Peer Assessments for This Learner" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:76 +msgid "Peer Assessments Completed by This Learner" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:81 +msgid "Learner's Self Assessment" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:87 +msgid "Staff Assessment for This Learner" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:89 +msgid "Staff Assessment for this Team" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:100 +msgid "Learner's Final Grade" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:102 +msgid "Team's Final Grade" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:112 +#, python-format +msgid "" +"\n" +" Final grade: %(points_earned)s out of %(points_possible)s\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:119 +msgid "Final Grade Details" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:139 +#, python-format +msgid "" +"\n" +" %(assessment_label)s - %(points)s point\n" +" " +msgid_plural "" +"\n" +" %(assessment_label)s - %(points)s points\n" +" " +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:154 +msgid "Feedback Recorded" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:165 +msgid "The submission is waiting for assessments." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:170 +msgid "" +"The learner's submission has been removed from peer assessment. The learner " +"receives a grade of zero unless you delete the learner's state for the " +"problem to allow them to resubmit a response." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:172 +msgid "" +"The team’s submission has been removed from grading. The team receives a " +"grade of zero unless you delete the a team member’s state for the problem to" +" allow the team to resubmit a response." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:177 +msgid "The problem has not been started." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:181 +msgid "The problem has not been completed." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:193 +msgid "Submit Assessment Grade Override" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:195 +msgid "Submit Team Grade Override" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:204 +msgid "Unable to perform grade override" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:207 +msgid "" +"Grades are frozen. Grades are automatically frozen 30 days after the course " +"end date." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:212 +msgid "" +"This submission has been cancelled and cannot recieve a grade. Refer to " +"documentation for how to delete the learner’s state for this problem to " +"allow them to resubmit." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:230 +msgid "Remove Submission From Peer Grading" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:232 +msgid "Remove Team Submission from Grading" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:242 +msgid "Caution: This Action Cannot Be Undone" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:244 +msgid "" +"Removing a learner's submission cannot be undone and should be done with " +"caution." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:246 +msgid "" +"Removing a team's submission cannot be undone and should be done with " +"caution." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:252 +msgid "Comments:" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:261 +msgid "Remove submission" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info.html:276 +msgid "A response was not found for this learner." +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:16 +#, python-format +msgid "" +"\n" +" Assessment %(assessment_num)s:\n" +" " +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:22 +msgid "Assessment Details" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:26 +msgid "Selected Option" +msgstr "" + +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:27 +msgid "Feedback" +msgstr "Comentarios" + +#: templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html:29 +msgid "Points Possible" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:18 +msgid "Learn to Assess Responses" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:27 +#, python-format +msgid "" +"\n" +" In Progress (%(current_progress_num)s of %(training_available_num)s)\n" +" " +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "available August 13th, 2014 (in 5 days and +#. 45 minutes)" +#: templates/openassessmentblock/student_training/student_training.html:38 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#. Translators: This string displays a date to the user, then tells them the +#. time until that date. Example: "due August 13th, 2014 (in 5 days and 45 +#. minutes)" +#: templates/openassessmentblock/student_training/student_training.html:45 +#, python-format, python-brace-format +msgid "" +"\n" +" \n" +" " +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:58 +#: templates/openassessmentblock/student_training/student_training.html:66 +msgid "Learning to Assess Responses" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:61 +msgid "" +"Before you begin to assess your peers' responses, you'll learn how to " +"complete peer assessments by reviewing responses that instructors have " +"already assessed. If you select the same options for the response that the " +"instructor selected, you'll move to the next step. If you don't select the " +"same options, you'll review the response and try again." +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:69 +msgid "" +"Your assessment differs from the instructor's assessment of this response. " +"Review the response and consider why the instructor may have assessed it " +"differently. Then, try the assessment again." +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:76 +msgid "The response to the prompt above:" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:98 +msgid "Selected Options Agree" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:101 +msgid "The option you selected is the option that the instructor selected." +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:105 +msgid "Selected Options Differ" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:108 +msgid "" +"The option you selected is not the option that the instructor selected." +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:144 +msgid "We could not check your assessment" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training.html:151 +msgid "Compare your selections with the instructor's selections" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training_closed.html:29 +msgid "" +"The due date for this step has passed. This step is now closed. You can no " +"longer continue with this assignment, and you will receive a grade of " +"Incomplete." +msgstr "" + +#: templates/openassessmentblock/student_training/student_training_error.html:18 +msgid "Error Loading Learner Training Examples" +msgstr "" + +#: templates/openassessmentblock/student_training/student_training_error.html:21 +msgid "The Learner Training Step of this assignment could not be loaded." +msgstr "" + +#: xblock/grade_mixin.py:77 xblock/leaderboard_mixin.py:61 +msgid "An unexpected error occurred." +msgstr "" + +#: xblock/grade_mixin.py:179 +msgid "Peer Assessment" +msgstr "Evaluación de pares" + +#: xblock/grade_mixin.py:181 +msgid "Self Assessment" +msgstr "Autoevaluación" + +#: xblock/grade_mixin.py:221 +msgid "Assessment feedback could not be saved." +msgstr "" + +#: xblock/grade_mixin.py:232 +msgid "Feedback saved." +msgstr "" + +#: xblock/grade_mixin.py:366 xblock/grade_mixin.py:512 +msgid "Staff Comments" +msgstr "" + +#: xblock/grade_mixin.py:372 +msgid "Peer Median Grade" +msgstr "" + +#: xblock/grade_mixin.py:377 xblock/grade_mixin.py:519 +#, python-brace-format +msgid "Peer {peer_index}" +msgstr "" + +#: xblock/grade_mixin.py:378 +msgid "Peer Comments" +msgstr "" + +#: xblock/grade_mixin.py:388 +msgid "Self Assessment Grade" +msgstr "" + +#: xblock/grade_mixin.py:388 +msgid "Your Self Assessment" +msgstr "" + +#: xblock/grade_mixin.py:389 xblock/grade_mixin.py:531 +msgid "Your Comments" +msgstr "" + +#: xblock/grade_mixin.py:485 +msgid "Waiting for peer reviews" +msgstr "" + +#: xblock/grade_mixin.py:524 +msgid "Peer" +msgstr "Par" + +#: xblock/grade_mixin.py:655 +msgid "The grade for this problem is determined by your Staff Grade." +msgstr "" + +#: xblock/grade_mixin.py:657 +msgid "" +"The grade for this problem is determined by the median score of your Peer " +"Assessments." +msgstr "" + +#: xblock/grade_mixin.py:660 +msgid "The grade for this problem is determined by your Self Assessment." +msgstr "" + +#: xblock/grade_mixin.py:666 +#, python-brace-format +msgid "" +"You have successfully completed this problem and received a " +"{earned_points}/{total_points}." +msgstr "" + +#: xblock/grade_mixin.py:674 +msgid "" +"You have not yet received all necessary peer reviews to determine your final" +" grade." +msgstr "" + +#: xblock/openassesment_template_mixin.py:66 +msgid "Peer Assessment Only" +msgstr "Solo Evaluación Par" + +#: xblock/openassesment_template_mixin.py:67 +msgid "Self Assessment Only" +msgstr "" + +#: xblock/openassesment_template_mixin.py:68 +msgid "Staff Assessment Only" +msgstr "" + +#: xblock/openassesment_template_mixin.py:69 +msgid "Self Assessment to Peer Assessment" +msgstr "" + +#: xblock/openassesment_template_mixin.py:70 +msgid "Self Assessment to Staff Assessment" +msgstr "" + +#: xblock/rubric_reuse_mixin.py:62 +msgid "You must specify a block id from which to copy a rubric." +msgstr "" + +#: xblock/rubric_reuse_mixin.py:66 +msgid "Invalid block id." +msgstr "" + +#: xblock/rubric_reuse_mixin.py:72 +#, python-brace-format +msgid "" +"No Open Response Assessment found in {course_id} with block id {block_id}" +msgstr "" + +#: xblock/staff_area_mixin.py:42 +msgid "You do not have permission to schedule training" +msgstr "" + +#: xblock/staff_area_mixin.py:43 +msgid "You do not have permission to reschedule tasks." +msgstr "" + +#: xblock/staff_area_mixin.py:69 +msgid "You do not have permission to access the ORA staff area" +msgstr "" + +#: xblock/staff_area_mixin.py:70 +msgid "You do not have permission to access ORA learner information." +msgstr "" + +#: xblock/staff_area_mixin.py:71 +msgid "You do not have permission to access ORA staff grading." +msgstr "" + +#: xblock/staff_area_mixin.py:242 +msgid "Pending" +msgstr "Pendiente" + +#: xblock/staff_area_mixin.py:243 +msgid "Complete/Overwritten" +msgstr "" + +#: xblock/staff_area_mixin.py:246 +msgid "Not applicable" +msgstr "No aplica" + +#: xblock/staff_area_mixin.py:247 +msgid "Not submitted" +msgstr "" + +#: xblock/staff_area_mixin.py:248 +msgid "Submitted" +msgstr "Presentado" + +#: xblock/staff_area_mixin.py:342 +msgid "Error getting learner information." +msgstr "" + +#: xblock/staff_area_mixin.py:385 +msgid "Error loading the checked out learner response." +msgstr "" + +#: xblock/staff_area_mixin.py:386 +msgid "No other learner responses are available for grading at this time." +msgstr "" + +#: xblock/staff_area_mixin.py:388 +msgid "Error getting staff grade information." +msgstr "" + +#: xblock/staff_area_mixin.py:409 +msgid "Error getting staff grade ungraded and checked out counts." +msgstr "" + +#: xblock/staff_area_mixin.py:703 +msgid "Please enter valid reason to remove the submission." +msgstr "" + +#: xblock/staff_area_mixin.py:714 +msgid "Submission not found" +msgstr "" + +#: xblock/staff_area_mixin.py:725 +msgid "Submission for team assignment has no associated team submission" +msgstr "" + +#: xblock/staff_area_mixin.py:754 +msgid "" +"The learner submission has been removed from peer assessment. The learner " +"receives a grade of zero unless you delete the learner's state for the " +"problem to allow them to resubmit a response." +msgstr "" + +#: xblock/staff_area_mixin.py:789 +msgid "" +"The team’s submission has been removed from grading. The team receives a " +"grade of zero unless you delete a team member’s state for the problem to " +"allow the team to resubmit a response." +msgstr "" + +#: xblock/studio_mixin.py:243 xblock/studio_mixin.py:255 +msgid "Error updating XBlock configuration" +msgstr "" + +#: xblock/studio_mixin.py:260 +msgid "Error: Text Response and File Upload Response cannot both be disabled" +msgstr "" + +#: xblock/studio_mixin.py:264 +msgid "" +"Error: When Text Response is disabled, File Upload Response must be Required" +msgstr "" + +#: xblock/studio_mixin.py:267 +msgid "" +"Error: When File Upload Response is disabled, Text Response must be Required" +msgstr "" + +#: xblock/studio_mixin.py:291 +#, python-brace-format +msgid "Validation error: {error}" +msgstr "" + +#: xblock/studio_mixin.py:323 +msgid "Successfully updated OpenAssessment XBlock" +msgstr "" + +#: xblock/ui_mixins/legacy/submissions/file_actions.py:71 +msgid "Files metadata could not be saved." +msgstr "" + +#: xblock/utils/data_conversion.py:315 +msgid "You must provide options selected in the assessment." +msgstr "" + +#: xblock/utils/data_conversion.py:318 +msgid "You must provide overall feedback in the assessment." +msgstr "" + +#: xblock/utils/data_conversion.py:321 +msgid "You must provide feedback for criteria in the assessment." +msgstr "" + +#: xblock/utils/resolve_dates.py:52 +#, python-brace-format +msgid "" +"'{date}' is an invalid date format. Make sure the date is formatted as YYYY-" +"MM-DDTHH:MM:SS." +msgstr "" + +#: xblock/utils/resolve_dates.py:57 +#, python-brace-format +msgid "'{date}' must be a date string or datetime" +msgstr "" + +#: xblock/utils/resolve_dates.py:210 +#, python-brace-format +msgid "" +"This step's start date '{start}' cannot be earlier than the previous step's " +"start date '{prev}'." +msgstr "" + +#: xblock/utils/resolve_dates.py:218 +#, python-brace-format +msgid "" +"This step's due date '{due}' cannot be later than the next step's due date " +"'{prev}'." +msgstr "" + +#: xblock/utils/resolve_dates.py:234 +#, python-brace-format +msgid "The start date '{start}' cannot be later than the due date '{due}'" +msgstr "" + +#: xblock/utils/validation.py:118 +msgid "This problem must include at least one assessment." +msgstr "" + +#: xblock/utils/validation.py:122 +msgid "The assessment order you selected is invalid." +msgstr "" + +#: xblock/utils/validation.py:132 +msgid "In peer assessment, the \"Must Grade\" value must be a positive integer." +msgstr "" + +#: xblock/utils/validation.py:135 +msgid "In peer assessment, the \"Graded By\" value must be a positive integer." +msgstr "" + +#: xblock/utils/validation.py:139 +msgid "" +"In peer assessment, the \"Must Grade\" value must be greater than or equal " +"to the \"Graded By\" value." +msgstr "" + +#: xblock/utils/validation.py:148 +msgid "You must provide at least one example response for learner training." +msgstr "" + +#: xblock/utils/validation.py:151 +msgid "Each example response for learner training must be unique." +msgstr "" + +#: xblock/utils/validation.py:158 +msgid "The \"required\" value must be true if staff assessment is the only step." +msgstr "" + +#: xblock/utils/validation.py:162 +msgid "" +"The number of assessments cannot be changed after the problem has been " +"released." +msgstr "" + +#: xblock/utils/validation.py:167 +msgid "" +"The assessment type cannot be changed after the problem has been released." +msgstr "" + +#: xblock/utils/validation.py:190 +msgid "This rubric definition is not valid." +msgstr "" + +#: xblock/utils/validation.py:196 +#, python-brace-format +msgid "Options in '{criterion}' have duplicate name(s): {duplicates}" +msgstr "" + +#: xblock/utils/validation.py:204 +msgid "Criteria with no options must require written feedback." +msgstr "" + +#: xblock/utils/validation.py:213 +msgid "Prompts cannot be created or deleted after a problem is released." +msgstr "" + +#: xblock/utils/validation.py:217 +msgid "The number of criteria cannot be changed after a problem is released." +msgstr "" + +#: xblock/utils/validation.py:230 +msgid "Criteria names cannot be changed after a problem is released" +msgstr "" + +#: xblock/utils/validation.py:235 +msgid "The number of options cannot be changed after a problem is released." +msgstr "" + +#: xblock/utils/validation.py:240 +msgid "Point values cannot be changed after a problem is released." +msgstr "" + +#: xblock/utils/validation.py:291 +msgid "Learner training must have at least one training example." +msgstr "" + +#: xblock/utils/validation.py:356 +msgid "Leaderboard number is invalid." +msgstr "" + +#: xblock/utils/validation.py:379 +msgid "The submission format is invalid." +msgstr "" diff --git a/openassessment/conf/locale/es_AR/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/es_AR/LC_MESSAGES/djangojs.po index 9c7201faab..802809168b 100644 --- a/openassessment/conf/locale/es_AR/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/es_AR/LC_MESSAGES/djangojs.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Jesica Greco, 2023\n" "Language-Team: Spanish (Argentina) (http://app.transifex.com/open-edx/edx-platform/language/es_AR/)\n" diff --git a/openassessment/conf/locale/es_ES/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/es_ES/LC_MESSAGES/djangojs.po index 65e9f5e4d6..8266da21c9 100644 --- a/openassessment/conf/locale/es_ES/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/es_ES/LC_MESSAGES/djangojs.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Jesica Greco, 2022-2023\n" "Language-Team: Spanish (Spain) (http://app.transifex.com/open-edx/edx-platform/language/es_ES/)\n" diff --git a/openassessment/conf/locale/eu_ES/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/eu_ES/LC_MESSAGES/djangojs.po index 11a28ca8e9..2428da61d6 100644 --- a/openassessment/conf/locale/eu_ES/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/eu_ES/LC_MESSAGES/djangojs.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Abel Camacho , 2017,2019-2020\n" "Language-Team: Basque (Spain) (http://app.transifex.com/open-edx/edx-platform/language/eu_ES/)\n" diff --git a/openassessment/conf/locale/fa_IR/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/fa_IR/LC_MESSAGES/djangojs.po index 7d1b127801..cee985d342 100644 --- a/openassessment/conf/locale/fa_IR/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/fa_IR/LC_MESSAGES/djangojs.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: SeyedMahdi Saeid , 2023\n" "Language-Team: Persian (Iran) (http://app.transifex.com/open-edx/edx-platform/language/fa_IR/)\n" diff --git a/openassessment/conf/locale/fr/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/fr/LC_MESSAGES/djangojs.po index ed5803117b..654283cf34 100644 --- a/openassessment/conf/locale/fr/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/fr/LC_MESSAGES/djangojs.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: iderr , 2021-2022\n" "Language-Team: French (http://app.transifex.com/open-edx/edx-platform/language/fr/)\n" diff --git a/openassessment/conf/locale/fr_CA/LC_MESSAGES/django.po b/openassessment/conf/locale/fr_CA/LC_MESSAGES/django.po index 5216c6bc24..409fc760f5 100644 --- a/openassessment/conf/locale/fr_CA/LC_MESSAGES/django.po +++ b/openassessment/conf/locale/fr_CA/LC_MESSAGES/django.po @@ -97,7 +97,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-17 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:03+0000\n" "Last-Translator: Pierre Mailhot , 2016-2023\n" "Language-Team: French (Canada) (http://app.transifex.com/open-edx/edx-platform/language/fr_CA/)\n" @@ -311,7 +311,7 @@ msgid "" "Specify whether learners can upload more than one file. This has no effect " "if File Uploads Response is set to None. This is automatically set to True " "for Team Assignments. " -msgstr "Indiquez si les apprenants peuvent télécharger plusieurs fichiers. Cela n'a aucun effet si la réponse aux téléchargements de fichiers est définie sur None. Ceci est automatiquement défini sur True pour les affectations d'équipe." +msgstr "Indiquez si les apprenants peuvent téleverser plusieurs fichiers. Cela n'a aucun effet si la réponse aux téléversements de fichiers est définie sur None. Ceci est automatiquement défini sur True pour les affectations d'équipe." #: templates/openassessmentblock/edit/oa_edit_basic_settings_list.html:58 msgid "File Upload Types" @@ -1541,7 +1541,7 @@ msgstr "État de votre réponse" #: templates/openassessmentblock/response/oa_response.html:245 msgid "File Uploads " -msgstr "Téléchargements de fichiers" +msgstr "Téléversements de fichiers" #: templates/openassessmentblock/response/oa_response.html:253 msgid "" @@ -1960,7 +1960,7 @@ msgid "" "\n" " Learner submission removed on %(removed_datetime)s\n" " " -msgstr "\nRéponse de l'étudiant retirée le %(removed_datetime)s" +msgstr "\nRéponse de l'étudiant supprimée le %(removed_datetime)s" #: templates/openassessmentblock/staff_area/oa_student_info.html:50 #, python-format @@ -2037,14 +2037,14 @@ msgid "" "The learner's submission has been removed from peer assessment. The learner " "receives a grade of zero unless you delete the learner's state for the " "problem to allow them to resubmit a response." -msgstr "La réponse de l'étudiant a été retirée de la notation par les pairs. L'étudiant obtient une note nulle à moins de supprimer l'état de l'exercice pour l'étudiant afin de lui permettre de proposer une nouvelle réponse." +msgstr "La réponse de l'étudiant a été supprimée de la notation par les pairs. L'étudiant obtient une note nulle à moins de supprimer l'état de l'exercice pour l'étudiant afin de lui permettre de proposer une nouvelle réponse." #: templates/openassessmentblock/staff_area/oa_student_info.html:172 msgid "" "The team’s submission has been removed from grading. The team receives a " "grade of zero unless you delete the a team member’s state for the problem to" " allow the team to resubmit a response." -msgstr "La soumission de l'équipe a été retirée de la notation. L’équipe reçoit une note de zéro, sauf si vous supprimez l’état d’un membre de l’équipe pour le problème afin de permettre à l’équipe de renvoyer une réponse." +msgstr "La soumission de l'équipe a été supprimée de la notation. L’équipe reçoit une note de zéro, sauf si vous supprimez l’état d’un membre de l’équipe pour le problème afin de permettre à l’équipe de renvoyer une réponse." #: templates/openassessmentblock/staff_area/oa_student_info.html:177 msgid "The problem has not been started." @@ -2433,14 +2433,14 @@ msgid "" "The learner submission has been removed from peer assessment. The learner " "receives a grade of zero unless you delete the learner's state for the " "problem to allow them to resubmit a response." -msgstr "La réponse de l'étudiant a été retirée de la notation par les pairs. L'étudiant obtient une note nulle à moins de supprimer l'état de l'exercice pour l'étudiant afin de lui permettre de proposer une nouvelle réponse." +msgstr "La réponse de l'étudiant a été supprimée de la notation par les pairs. L'étudiant obtient une note nulle à moins de supprimer l'état de l'exercice pour l'étudiant afin de lui permettre de proposer une nouvelle réponse." #: xblock/staff_area_mixin.py:789 msgid "" "The team’s submission has been removed from grading. The team receives a " "grade of zero unless you delete a team member’s state for the problem to " "allow the team to resubmit a response." -msgstr "La soumission de l'équipe a été retirée de l'évaluation. L’équipe reçoit une note de zéro, sauf si vous supprimez l’état d’un membre de l’équipe pour le problème afin de permettre à l’équipe de renvoyer une réponse." +msgstr "La soumission de l'équipe a été supprimée de l'évaluation. L’équipe reçoit une note de zéro, sauf si vous supprimez l’état d’un membre de l’équipe pour le problème afin de permettre à l’équipe de renvoyer une réponse." #: xblock/studio_mixin.py:243 xblock/studio_mixin.py:255 msgid "Error updating XBlock configuration" @@ -2448,17 +2448,17 @@ msgstr "Erreur lors de la mise à jour de la configuration du XBlock" #: xblock/studio_mixin.py:260 msgid "Error: Text Response and File Upload Response cannot both be disabled" -msgstr "Erreur : la réponse textuelle et la réponse avec téléchargement de fichier ne peuvent pas être toutes les deux désactivées" +msgstr "Erreur : la réponse textuelle et la réponse avec téléversement de fichier ne peuvent pas être toutes les deux désactivées" #: xblock/studio_mixin.py:264 msgid "" "Error: When Text Response is disabled, File Upload Response must be Required" -msgstr "Erreur : lorsque la réponse textuelle est désactivée, la réponse de téléchargement avec fichier doit être requise" +msgstr "Erreur : lorsque la réponse textuelle est désactivée, la réponse de téléversement avec fichier doit être requise" #: xblock/studio_mixin.py:267 msgid "" "Error: When File Upload Response is disabled, Text Response must be Required" -msgstr "Erreur : lorsque la réponse avec téléchargement de fichier est désactivée, la réponse textuelle doit être requise" +msgstr "Erreur : lorsque la réponse avec téléversement de fichier est désactivée, la réponse textuelle doit être requise" #: xblock/studio_mixin.py:291 #, python-brace-format @@ -2526,17 +2526,17 @@ msgstr "L'ordre de l'évaluation que vous avez sélectionné est invalide." #: xblock/utils/validation.py:132 msgid "In peer assessment, the \"Must Grade\" value must be a positive integer." -msgstr "Dans l'évaluation par les pair, la valeur \"Doit Noter\" doit être une valeur entière et positive." +msgstr "Dans l'évaluation par les pairs, la valeur \"Doit Noter\" doit être une valeur entière et positive." #: xblock/utils/validation.py:135 msgid "In peer assessment, the \"Graded By\" value must be a positive integer." -msgstr "Dans l'évaluation par les pair, la valeur \"Noté Par\" doit être une valeur entière et positive." +msgstr "Dans l'évaluation par les pairs, la valeur \"Noté Par\" doit être une valeur entière et positive." #: xblock/utils/validation.py:139 msgid "" "In peer assessment, the \"Must Grade\" value must be greater than or equal " "to the \"Graded By\" value." -msgstr "Dans l'évaluation par les pair, la valeur \"Doit Noter\" doit être une valeur plus grande ou égale à celle de la valeur \"Noté Par\"." +msgstr "Dans l'évaluation par les pairs, la valeur \"Doit Noter\" doit être une valeur plus grande ou égale à celle de la valeur \"Noté Par\"." #: xblock/utils/validation.py:148 msgid "You must provide at least one example response for learner training." @@ -2584,7 +2584,7 @@ msgstr "Le nombre de critères ne peut pas être modifié une fois le problème #: xblock/utils/validation.py:230 msgid "Criteria names cannot be changed after a problem is released" -msgstr "Les noms des critères ne peuvent pas être changés après que le problème ait été publié" +msgstr "Les noms des critères ne peuvent pas être modifiés après que le problème ait été publié" #: xblock/utils/validation.py:235 msgid "The number of options cannot be changed after a problem is released." diff --git a/openassessment/conf/locale/fr_CA/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/fr_CA/LC_MESSAGES/djangojs.po index 74b31a31e9..8d1915d748 100644 --- a/openassessment/conf/locale/fr_CA/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/fr_CA/LC_MESSAGES/djangojs.po @@ -58,7 +58,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-24 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Pierre Mailhot , 2016,2018-2023\n" "Language-Team: French (Canada) (http://app.transifex.com/open-edx/edx-platform/language/fr_CA/)\n" @@ -272,7 +272,7 @@ msgstr "Annuler" #: xblock/static/js/src/lms/oa_response.js:253 msgid "" "There is still file upload in progress. Please wait until it is finished." -msgstr "Le téléchargement du fichier est toujours en cours. Veuillez patienter jusqu'à ce qu'il soit terminé." +msgstr "Le téléversement du fichier est toujours en cours. Veuillez patienter jusqu'à ce qu'il soit terminé." #: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 #: xblock/static/js/src/lms/oa_response.js:243 @@ -282,7 +282,7 @@ msgstr "Impossible de soumettre une réponse vide même si tout est facultatif." #: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 #: xblock/static/js/src/lms/oa_response.js:235 msgid "Please upload a file." -msgstr "Veuillez télécharger un fichier." +msgstr "Veuillez téléverser un fichier." #: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 #: xblock/static/js/src/lms/oa_response.js:228 @@ -292,12 +292,12 @@ msgstr "Veuillez fournir une réponse." #: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 #: xblock/static/js/src/lms/oa_response.js:328 msgid "No files selected for upload." -msgstr "Aucun fichier sélectionné pour le téléchargement." +msgstr "Aucun fichier sélectionné pour le téléversement." #: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 #: xblock/static/js/src/lms/oa_response.js:335 msgid "Please provide a description for each file you are uploading." -msgstr "Veuillez fournir une description pour chaque fichier que vous téléchargez." +msgstr "Veuillez fournir une description pour chaque fichier que vous téléversez." #: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 #: xblock/static/js/src/lms/oa_response.js:344 @@ -307,7 +307,7 @@ msgstr "Votre fichier a été supprimé ou le chemin a été modifié :" #: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 #: xblock/static/js/src/lms/oa_response.js:439 msgid "Saving draft" -msgstr "Enregistrer le brouillon" +msgstr "Enregistrement du brouillon" #: xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js:369 #: xblock/static/js/src/lms/oa_response.js:446 diff --git a/openassessment/conf/locale/he/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/he/LC_MESSAGES/djangojs.po index afa898bde9..5a26fef2c8 100644 --- a/openassessment/conf/locale/he/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/he/LC_MESSAGES/djangojs.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Hodaya Zada , 2019\n" "Language-Team: Hebrew (http://app.transifex.com/open-edx/edx-platform/language/he/)\n" diff --git a/openassessment/conf/locale/hi/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/hi/LC_MESSAGES/djangojs.po index bbd0369af7..3aee883a36 100644 --- a/openassessment/conf/locale/hi/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/hi/LC_MESSAGES/djangojs.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Manish Manish , 2021\n" "Language-Team: Hindi (http://app.transifex.com/open-edx/edx-platform/language/hi/)\n" diff --git a/openassessment/conf/locale/id/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/id/LC_MESSAGES/djangojs.po index 7cf68b6703..7ec3f2f1aa 100644 --- a/openassessment/conf/locale/id/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/id/LC_MESSAGES/djangojs.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Faizar Septiawan , 2022\n" "Language-Team: Indonesian (http://app.transifex.com/open-edx/edx-platform/language/id/)\n" diff --git a/openassessment/conf/locale/it_IT/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/it_IT/LC_MESSAGES/djangojs.po index 8f476d18d2..e002cb078b 100644 --- a/openassessment/conf/locale/it_IT/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/it_IT/LC_MESSAGES/djangojs.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Domenico Casanica , 2021\n" "Language-Team: Italian (Italy) (http://app.transifex.com/open-edx/edx-platform/language/it_IT/)\n" diff --git a/openassessment/conf/locale/ja_JP/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/ja_JP/LC_MESSAGES/djangojs.po index 2fa065f282..d55b1c036b 100644 --- a/openassessment/conf/locale/ja_JP/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/ja_JP/LC_MESSAGES/djangojs.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Toshiboumi Ohta , 2018\n" "Language-Team: Japanese (Japan) (http://app.transifex.com/open-edx/edx-platform/language/ja_JP/)\n" diff --git a/openassessment/conf/locale/ka/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/ka/LC_MESSAGES/djangojs.po index b06397164a..6a25465d3e 100644 --- a/openassessment/conf/locale/ka/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/ka/LC_MESSAGES/djangojs.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Giorgi Goderdzishvili , 2016\n" "Language-Team: Georgian (http://app.transifex.com/open-edx/edx-platform/language/ka/)\n" diff --git a/openassessment/conf/locale/lt_LT/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/lt_LT/LC_MESSAGES/djangojs.po index 30a763e580..d500fedee8 100644 --- a/openassessment/conf/locale/lt_LT/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/lt_LT/LC_MESSAGES/djangojs.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Edukometrija , 2015\n" "Language-Team: Lithuanian (Lithuania) (http://app.transifex.com/open-edx/edx-platform/language/lt_LT/)\n" diff --git a/openassessment/conf/locale/lv/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/lv/LC_MESSAGES/djangojs.po index af343b6df0..d9eeca4387 100644 --- a/openassessment/conf/locale/lv/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/lv/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Muhammad Ayub khan \n" "Language-Team: Latvian (http://app.transifex.com/open-edx/edx-platform/language/lv/)\n" diff --git a/openassessment/conf/locale/nb/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/nb/LC_MESSAGES/djangojs.po index 748ed3014b..f4f9dd0d3c 100644 --- a/openassessment/conf/locale/nb/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/nb/LC_MESSAGES/djangojs.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Frode Arntsen , 2018\n" "Language-Team: Norwegian Bokmål (http://app.transifex.com/open-edx/edx-platform/language/nb/)\n" diff --git a/openassessment/conf/locale/pl/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/pl/LC_MESSAGES/djangojs.po index f4b52b6f28..185d97c767 100644 --- a/openassessment/conf/locale/pl/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/pl/LC_MESSAGES/djangojs.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Magdalena Dulęba , 2022\n" "Language-Team: Polish (http://app.transifex.com/open-edx/edx-platform/language/pl/)\n" diff --git a/openassessment/conf/locale/pt_BR/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/pt_BR/LC_MESSAGES/djangojs.po index 1289e82d46..d387281244 100644 --- a/openassessment/conf/locale/pt_BR/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/pt_BR/LC_MESSAGES/djangojs.po @@ -24,7 +24,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Emmanuel Halbout , 2020\n" "Language-Team: Portuguese (Brazil) (http://app.transifex.com/open-edx/edx-platform/language/pt_BR/)\n" diff --git a/openassessment/conf/locale/pt_PT/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/pt_PT/LC_MESSAGES/djangojs.po index 531d1538af..ad0bc2bb05 100644 --- a/openassessment/conf/locale/pt_PT/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/pt_PT/LC_MESSAGES/djangojs.po @@ -25,7 +25,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Ivo Branco , 2023\n" "Language-Team: Portuguese (Portugal) (http://app.transifex.com/open-edx/edx-platform/language/pt_PT/)\n" diff --git a/openassessment/conf/locale/ro/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/ro/LC_MESSAGES/djangojs.po index bc8631a01b..16ccc9425d 100644 --- a/openassessment/conf/locale/ro/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/ro/LC_MESSAGES/djangojs.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Manuel, 2021\n" "Language-Team: Romanian (http://app.transifex.com/open-edx/edx-platform/language/ro/)\n" diff --git a/openassessment/conf/locale/ru/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/ru/LC_MESSAGES/djangojs.po index 29e437bdf4..6af2a5f78f 100644 --- a/openassessment/conf/locale/ru/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/ru/LC_MESSAGES/djangojs.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: ashed , 2022-2023\n" "Language-Team: Russian (http://app.transifex.com/open-edx/edx-platform/language/ru/)\n" diff --git a/openassessment/conf/locale/sk/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/sk/LC_MESSAGES/djangojs.po index 8de82e16fc..d90a7df4b9 100644 --- a/openassessment/conf/locale/sk/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/sk/LC_MESSAGES/djangojs.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Vladimír Záhradník , 2015\n" "Language-Team: Slovak (http://app.transifex.com/open-edx/edx-platform/language/sk/)\n" diff --git a/openassessment/conf/locale/sq/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/sq/LC_MESSAGES/djangojs.po index 39c755f537..8a40423a47 100644 --- a/openassessment/conf/locale/sq/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/sq/LC_MESSAGES/djangojs.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Faton Nuha , 2014,2016\n" "Language-Team: Albanian (http://app.transifex.com/open-edx/edx-platform/language/sq/)\n" diff --git a/openassessment/conf/locale/sw_KE/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/sw_KE/LC_MESSAGES/djangojs.po index d5ef21915e..cd03240b0d 100644 --- a/openassessment/conf/locale/sw_KE/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/sw_KE/LC_MESSAGES/djangojs.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Innocent Masue , 2017\n" "Language-Team: Swahili (Kenya) (http://app.transifex.com/open-edx/edx-platform/language/sw_KE/)\n" diff --git a/openassessment/conf/locale/th/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/th/LC_MESSAGES/djangojs.po index 8abf135d4c..692150758a 100644 --- a/openassessment/conf/locale/th/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/th/LC_MESSAGES/djangojs.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Jirayu Chamamahattana , 2015\n" "Language-Team: Thai (http://app.transifex.com/open-edx/edx-platform/language/th/)\n" diff --git a/openassessment/conf/locale/tr_TR/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/tr_TR/LC_MESSAGES/djangojs.po index 6963d5f2f4..a51690418f 100644 --- a/openassessment/conf/locale/tr_TR/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/tr_TR/LC_MESSAGES/djangojs.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Leangseu Kim, 2023\n" "Language-Team: Turkish (Turkey) (http://app.transifex.com/open-edx/edx-platform/language/tr_TR/)\n" diff --git a/openassessment/conf/locale/uk/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/uk/LC_MESSAGES/djangojs.po index 91ad0d5d80..788abbf007 100644 --- a/openassessment/conf/locale/uk/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/uk/LC_MESSAGES/djangojs.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Danylo Shcherbak , 2021\n" "Language-Team: Ukrainian (http://app.transifex.com/open-edx/edx-platform/language/uk/)\n" diff --git a/openassessment/conf/locale/vi/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/vi/LC_MESSAGES/djangojs.po index a818b58362..70d8fd5350 100644 --- a/openassessment/conf/locale/vi/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/vi/LC_MESSAGES/djangojs.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Le Minh Tri , 2020\n" "Language-Team: Vietnamese (http://app.transifex.com/open-edx/edx-platform/language/vi/)\n" diff --git a/openassessment/conf/locale/zh_CN/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/zh_CN/LC_MESSAGES/djangojs.po index f333ef1db8..8f3bb858a5 100644 --- a/openassessment/conf/locale/zh_CN/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/zh_CN/LC_MESSAGES/djangojs.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: jsgang , 2015,2017,2021\n" "Language-Team: Chinese (China) (http://app.transifex.com/open-edx/edx-platform/language/zh_CN/)\n" diff --git a/openassessment/conf/locale/zh_TW/LC_MESSAGES/djangojs.po b/openassessment/conf/locale/zh_TW/LC_MESSAGES/djangojs.po index 1c84361491..c129064c6f 100644 --- a/openassessment/conf/locale/zh_TW/LC_MESSAGES/djangojs.po +++ b/openassessment/conf/locale/zh_TW/LC_MESSAGES/djangojs.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-10 18:36+0000\n" +"POT-Creation-Date: 2023-10-22 18:36+0000\n" "PO-Revision-Date: 2014-06-11 13:04+0000\n" "Last-Translator: Mose Chen , 2017\n" "Language-Team: Chinese (Taiwan) (http://app.transifex.com/open-edx/edx-platform/language/zh_TW/)\n" diff --git a/openassessment/data.py b/openassessment/data.py index fb8c1823a7..2659893ab7 100644 --- a/openassessment/data.py +++ b/openassessment/data.py @@ -21,6 +21,7 @@ from submissions import api as sub_api from submissions.errors import SubmissionNotFoundError +from openassessment.fileupload.exceptions import FileUploadInternalError from openassessment.runtime_imports.classes import import_block_structure_transformers, import_external_id from openassessment.runtime_imports.functions import get_course_blocks, modulestore from openassessment.assessment.api import peer as peer_api @@ -1315,11 +1316,12 @@ class SubmissionFileUpload: DEFAULT_DESCRIPTION = _("No description provided.") - def __init__(self, key, name=None, description=None, size=0): + def __init__(self, key, name=None, description=None, size=0, url=None): self.key = key self.name = name if name is not None else SubmissionFileUpload.generate_name_from_key(key) self.description = description if description is not None else SubmissionFileUpload.DEFAULT_DESCRIPTION self.size = size + self.url = url @staticmethod def generate_name_from_key(key): @@ -1367,7 +1369,7 @@ def get_text_responses(self): """ raise NotImplementedError() - def get_file_uploads(self, missing_blank=False): + def get_file_uploads(self, missing_blank=False, generate_urls=False): """ Get the list of FileUploads for this submission """ @@ -1393,7 +1395,7 @@ def get_text_responses(self): self.text_responses = [part.get('text') for part in self.raw_answer.get('parts', [])] return self.text_responses - def get_file_uploads(self, missing_blank=False): + def get_file_uploads(self, missing_blank=False, generate_urls=False): return [] @@ -1510,7 +1512,20 @@ def _index_safe_get(self, i, target_list, default=None): except IndexError: return default - def get_file_uploads(self, missing_blank=False): + def _safe_get_download_url(self, key): + """ Helper to get a download URL """ + try: + return get_download_url(key) + except FileUploadInternalError as exc: + logger.exception( + "FileUploadError: Download url for file key %s failed with error %s", + key, + exc, + exc_info=True + ) + return None + + def get_file_uploads(self, missing_blank=False, generate_urls=False): """ Parse and cache file upload responses from the raw_answer """ @@ -1530,8 +1545,14 @@ def get_file_uploads(self, missing_blank=False): name = self._index_safe_get(i, file_names, default_missing_value) description = self._index_safe_get(i, file_descriptions, default_missing_value) size = self._index_safe_get(i, file_sizes, 0) - - file_upload = SubmissionFileUpload(key, name=name, description=description, size=size) + url = None if not generate_urls else self._safe_get_download_url(key) + file_upload = SubmissionFileUpload( + key, + name=name, + description=description, + size=size, + url=url + ) files.append(file_upload) self.file_uploads = files return self.file_uploads diff --git a/openassessment/staffgrader/serializers/assessments.py b/openassessment/staffgrader/serializers/assessments.py index c6b4dee88d..ddf9c48494 100644 --- a/openassessment/staffgrader/serializers/assessments.py +++ b/openassessment/staffgrader/serializers/assessments.py @@ -11,7 +11,7 @@ class SubmissionDetailFileSerilaizer(serializers.Serializer): """ Serialized info about a single file """ - download_url = serializers.URLField() + download_url = serializers.URLField(source="url") description = serializers.CharField() name = serializers.CharField() size = serializers.IntegerField() diff --git a/openassessment/staffgrader/staff_grader_mixin.py b/openassessment/staffgrader/staff_grader_mixin.py index ae37eec386..d413b0a4b0 100644 --- a/openassessment/staffgrader/staff_grader_mixin.py +++ b/openassessment/staffgrader/staff_grader_mixin.py @@ -12,7 +12,7 @@ from submissions.api import get_student_ids_by_submission_uuid, get_submission from submissions.errors import SubmissionInternalError, SubmissionNotFoundError, SubmissionRequestError, SubmissionError from submissions.team_api import get_team_ids_by_team_submission_uuid, get_team_submission - +from openassessment.assessment.errors.staff import StaffAssessmentError from openassessment.assessment.models.base import Assessment, AssessmentPart from openassessment.assessment.models.staff import StaffWorkflow, TeamStaffWorkflow from openassessment.data import map_anonymized_ids_to_usernames, OraSubmissionAnswerFactory, VersionNotFoundException @@ -27,6 +27,7 @@ TeamSubmissionListSerializer, ) from openassessment.xblock.staff_area_mixin import require_course_staff +from openassessment.xblock.apis.assessments.staff_assessment_api import do_staff_assessment, do_team_staff_assessment log = logging.getLogger(__name__) @@ -372,7 +373,7 @@ def get_submission_info(self, submission_uuid, _, suffix=''): # pylint: disable return { 'files': [ SubmissionDetailFileSerilaizer(file_data).data - for file_data in self.get_download_urls_from_submission(submission) + for file_data in answer.get_file_uploads(generate_urls=True) ], 'text': answer.get_text_responses() } @@ -450,9 +451,23 @@ def submit_staff_assessment(self, submission_uuid, data, suffix=''): # pylint: 'msg': String/Empty - error string, if failure occurred } """ - if self.is_team_assignment(): - success, err_msg = self.do_team_staff_assessment(data, team_submission_uuid=submission_uuid) - else: - success, err_msg = self.do_staff_assessment(data) - - return {'success': success, 'msg': err_msg} + try: + args = ( + submission_uuid, + data['options_selected'], + data['criterion_feedback'], + data['overall_feedback'], + data.get('assess_type', 'regrade'), + self.config_data, + self.staff_data, + ) + if self.is_team_assignment(): + do_team_staff_assessment(*args, team_submission_uuid=submission_uuid) + else: + do_staff_assessment(*args) + except StaffAssessmentError: + return { + 'success': False, + 'msg': self.config_data.translate('Your team assessment could not be submitted.') + } + return {'success': True, 'msg': ''} diff --git a/openassessment/staffgrader/tests/test_base.py b/openassessment/staffgrader/tests/test_base.py index 884edae6e5..c61cc687b4 100644 --- a/openassessment/staffgrader/tests/test_base.py +++ b/openassessment/staffgrader/tests/test_base.py @@ -19,11 +19,10 @@ def setUp(self): self.maxDiff = None @contextmanager - def _mock_get_url_by_file_key(self, xblock): - """ Mock the submission_mixin._get_url_by_file_key method since it relies on the backend. """ - with patch.object(xblock.__class__, '_get_url_by_file_key') as mocked_get: - mocked_get.side_effect = lambda file_key: f"www.file_url.com/{file_key}" - yield mocked_get + def _mock_get_download_url(self): + with patch('openassessment.data.get_download_url') as mock_get_url: + mock_get_url.side_effect = lambda file_key: f"www.file_url.com/{file_key}" + yield mock_get_url @contextmanager def _mock_get_submission(self, **kwargs): diff --git a/openassessment/staffgrader/tests/test_get_submission_info.py b/openassessment/staffgrader/tests/test_get_submission_info.py index 03e54e3b01..769c72dd6d 100644 --- a/openassessment/staffgrader/tests/test_get_submission_info.py +++ b/openassessment/staffgrader/tests/test_get_submission_info.py @@ -39,9 +39,11 @@ def _mock_parse_submission_raw_answer(self, **kwargs): ) as mock_parse: yield mock_parse - def _mock_get_download_urls_from_submission(self, xblock, **kwargs): + @contextmanager + def _mock_get_download_urls(self, **kwargs): """ Helper method to mock the get_download_urls_from_submission method """ - xblock.get_download_urls_from_submission = Mock(**kwargs) + with patch("openassessment.data.get_download_url", **kwargs) as mock_get_download_url: + yield mock_get_download_url @scenario('data/simple_self_staff_scenario.xml', user_id='Bob') def test_get_submission_error(self, xblock): @@ -77,6 +79,14 @@ def test_get_submission_info(self, xblock): "This is my answer for Prompt Two", "This is my response for Prompt Three" ] + file_uploads = [ + { + "url": 'A', "description": 'B', "name": 'C', "size": 100 + }, + { + "url": '1', "description": '2', "name": '3', "size": 300 + }, + ] file_responses = [ { "download_url": 'A', "description": 'B', "name": 'C', "size": 100 @@ -90,11 +100,12 @@ def test_get_submission_info(self, xblock): mock_submission = Mock() mock_answer = Mock() mock_answer.get_text_responses.return_value = text_responses + mock_answer.get_file_uploads.return_value = file_uploads self.set_staff_user(xblock, 'Bob') with self._mock_get_submission(return_value=mock_submission): with self._mock_parse_submission_raw_answer(return_value=mock_answer): - self._mock_get_download_urls_from_submission(xblock, return_value=file_responses) - response = self.request(xblock, {'submission_uuid': submission_uuid}) + with self._mock_get_download_urls(): + response = self.request(xblock, {'submission_uuid': submission_uuid}) self.assert_response( response, @@ -123,7 +134,7 @@ def test_get_submission_info__integration(self, xblock): submission, _ = self._create_student_and_submission(student_id, test_answer) self.set_staff_user(xblock, 'Bob') - with self._mock_get_url_by_file_key(xblock): + with self._mock_get_download_url(): response = self.request(xblock, {'submission_uuid': submission['uuid']}) expected_submission_info = { diff --git a/openassessment/staffgrader/tests/test_staff_grader_mixin.py b/openassessment/staffgrader/tests/test_staff_grader_mixin.py index 808514e813..10a112f9ae 100644 --- a/openassessment/staffgrader/tests/test_staff_grader_mixin.py +++ b/openassessment/staffgrader/tests/test_staff_grader_mixin.py @@ -1,16 +1,18 @@ """ Tests for Staff Grader mixin """ +import copy from datetime import timedelta import json from unittest.mock import Mock, patch from uuid import uuid4 from freezegun import freeze_time +from openassessment.assessment.errors.staff import StaffAssessmentError from openassessment.staffgrader.models.submission_lock import SubmissionGradingLock from openassessment.tests.factories import UserFactory -from openassessment.xblock.test.base import XBlockHandlerTestCase, scenario +from openassessment.xblock.test.base import XBlockHandlerTestCase, scenario, STAFF_GOOD_ASSESSMENT @freeze_time("1969-07-20T22:56:00-04:00") @@ -273,37 +275,74 @@ def test_batch_delete_submission_locks(self, xblock): ).exists() @patch('openassessment.staffgrader.staff_grader_mixin.get_submission') + @patch('openassessment.staffgrader.staff_grader_mixin.do_staff_assessment') @scenario('data/basic_scenario.xml', user_id="staff") - def test_submit_staff_assessment(self, xblock, _): + def test_submit_staff_assessment(self, xblock, mock_do_assessment, _): """Simple connectivity and routing test for submit staff assessment""" - xblock.xmodule_runtime = Mock(user_is_staff=True) + xblock.xmodule_runtime = Mock(user_is_staff=True, anonymous_student_id=self.staff_user_id) xblock.is_team_assignment = Mock(return_value=False) - xblock.do_staff_assessment = Mock(return_value=(True, '')) - request_data = {'submission_uuid': self.test_submission_uuid, 'foo': 'bar'} + request_data = copy.deepcopy(STAFF_GOOD_ASSESSMENT) + request_data['submission_uuid'] = self.test_submission_uuid response = self.request(xblock, 'submit_staff_assessment', json.dumps(request_data), response_format='json') - xblock.do_staff_assessment.assert_called_once_with(request_data) + mock_do_assessment.assert_called_once() + assert len(mock_do_assessment.call_args.args) == 7 + assert mock_do_assessment.call_args.args[0:5] == ( + self.test_submission_uuid, + request_data['options_selected'], + request_data['criterion_feedback'], + request_data['overall_feedback'], + request_data['assess_type'], + ) + assert not mock_do_assessment.call_args.kwargs + self.assertDictEqual(response, { 'success': True, 'msg': '' }) @patch('openassessment.staffgrader.staff_grader_mixin.get_team_submission') + @patch('openassessment.staffgrader.staff_grader_mixin.do_team_staff_assessment') @scenario('data/team_submission.xml', user_id="staff") - def test_submit_team_staff_assessment(self, xblock, _): + def test_submit_team_staff_assessment(self, xblock, mock_do_assessment, _): """Simple connectivity and routing test for submit team staff assessment""" - xblock.xmodule_runtime = Mock(user_is_staff=True) + xblock.xmodule_runtime = Mock(user_is_staff=True, anonymous_student_id=self.staff_user_id) xblock.is_team_assignment = Mock(return_value=True) - xblock.do_team_staff_assessment = Mock(return_value=(True, '')) - request_data = {'submission_uuid': self.test_team_submission_uuid, 'foo': 'bar'} + request_data = copy.deepcopy(STAFF_GOOD_ASSESSMENT) + request_data['submission_uuid'] = self.test_team_submission_uuid response = self.request(xblock, 'submit_staff_assessment', json.dumps(request_data), response_format='json') - xblock.do_team_staff_assessment.assert_called_once_with( - request_data, team_submission_uuid=self.test_team_submission_uuid + mock_do_assessment.assert_called_once() + assert len(mock_do_assessment.call_args.args) == 7 + assert mock_do_assessment.call_args.args[0:5] == ( + self.test_team_submission_uuid, + request_data['options_selected'], + request_data['criterion_feedback'], + request_data['overall_feedback'], + request_data['assess_type'], ) + assert mock_do_assessment.call_args.kwargs['team_submission_uuid'] == self.test_team_submission_uuid + self.assertDictEqual(response, { 'success': True, 'msg': '' }) + + @patch('openassessment.staffgrader.staff_grader_mixin.get_submission') + @patch('openassessment.staffgrader.staff_grader_mixin.do_staff_assessment') + @scenario('data/basic_scenario.xml', user_id="staff") + def test_submit_staff_assessment__error(self, xblock, mock_do_assessment, _): + """Error case for submit_staff_assessment""" + xblock.xmodule_runtime = Mock(user_is_staff=True, anonymous_student_id=self.staff_user_id) + xblock.is_team_assignment = Mock(return_value=False) + mock_do_assessment.side_effect = StaffAssessmentError() + + request_data = copy.deepcopy(STAFF_GOOD_ASSESSMENT) + request_data['submission_uuid'] = self.test_submission_uuid + response = self.request(xblock, 'submit_staff_assessment', json.dumps(request_data), response_format='json') + self.assertDictEqual(response, { + 'success': False, + 'msg': 'Your team assessment could not be submitted.' + }) diff --git a/openassessment/templates/openassessmentblock/edit/oa_edit.html b/openassessment/templates/legacy/edit/oa_edit.html similarity index 62% rename from openassessment/templates/openassessmentblock/edit/oa_edit.html rename to openassessment/templates/legacy/edit/oa_edit.html index 67290879dd..5c389d46b3 100644 --- a/openassessment/templates/openassessmentblock/edit/oa_edit.html +++ b/openassessment/templates/legacy/edit/oa_edit.html @@ -7,17 +7,17 @@ data-is-released="{{ is_released|lower }}" >
- {% include "openassessmentblock/edit/oa_edit_header_and_validation.html" %} + {% include "legacy/edit/oa_edit_header_and_validation.html" %} - {% include "openassessmentblock/edit/oa_edit_prompts.html" %} + {% include "legacy/edit/oa_edit_prompts.html" %} - {% include "openassessmentblock/edit/oa_edit_rubric.html" %} + {% include "legacy/edit/oa_edit_rubric.html" %} - {% include "openassessmentblock/edit/oa_edit_schedule.html" %} + {% include "legacy/edit/oa_edit_schedule.html" %} - {% include "openassessmentblock/edit/oa_edit_assessment_steps.html" %} + {% include "legacy/edit/oa_edit_assessment_steps.html" %} - {% include "openassessmentblock/edit/oa_edit_settings.html" %} + {% include "legacy/edit/oa_edit_settings.html" %}
diff --git a/openassessment/templates/openassessmentblock/edit/oa_edit_assessment_steps.html b/openassessment/templates/legacy/edit/oa_edit_assessment_steps.html similarity index 88% rename from openassessment/templates/openassessmentblock/edit/oa_edit_assessment_steps.html rename to openassessment/templates/legacy/edit/oa_edit_assessment_steps.html index b9c447441d..a019de8845 100644 --- a/openassessment/templates/openassessmentblock/edit/oa_edit_assessment_steps.html +++ b/openassessment/templates/legacy/edit/oa_edit_assessment_steps.html @@ -9,7 +9,7 @@
    {% for assessment in editor_assessments_order %} - {% with "openassessmentblock/edit/oa_edit_"|add:assessment|add:".html" as template %} + {% with "legacy/edit/oa_edit_"|add:assessment|add:".html" as template %} {% include template %} {% endwith %} {% endfor %} diff --git a/openassessment/templates/openassessmentblock/edit/oa_edit_basic_settings_list.html b/openassessment/templates/legacy/edit/oa_edit_basic_settings_list.html similarity index 100% rename from openassessment/templates/openassessmentblock/edit/oa_edit_basic_settings_list.html rename to openassessment/templates/legacy/edit/oa_edit_basic_settings_list.html diff --git a/openassessment/templates/openassessmentblock/edit/oa_edit_criterion.html b/openassessment/templates/legacy/edit/oa_edit_criterion.html similarity index 94% rename from openassessment/templates/openassessmentblock/edit/oa_edit_criterion.html rename to openassessment/templates/legacy/edit/oa_edit_criterion.html index e6ab7d3c17..120d088daf 100644 --- a/openassessment/templates/openassessmentblock/edit/oa_edit_criterion.html +++ b/openassessment/templates/legacy/edit/oa_edit_criterion.html @@ -35,7 +35,7 @@
    {% if criterion_options %} {% for option in criterion_options %} - {% include "openassessmentblock/edit/oa_edit_option.html" with criterion_name=criterion_name option_name=option.name option_label=option.label option_points=option.points option_explanation=option.explanation %} + {% include "legacy/edit/oa_edit_option.html" with criterion_name=criterion_name option_name=option.name option_label=option.label option_points=option.points option_explanation=option.explanation %} {% endfor %} {% endif %} diff --git a/openassessment/templates/openassessmentblock/edit/oa_edit_header_and_validation.html b/openassessment/templates/legacy/edit/oa_edit_header_and_validation.html similarity index 85% rename from openassessment/templates/openassessmentblock/edit/oa_edit_header_and_validation.html rename to openassessment/templates/legacy/edit/oa_edit_header_and_validation.html index ef24cf6b4c..fa1f5fc21f 100644 --- a/openassessment/templates/openassessmentblock/edit/oa_edit_header_and_validation.html +++ b/openassessment/templates/legacy/edit/oa_edit_header_and_validation.html @@ -4,21 +4,21 @@

    {% endwith %}
    {% trans "Your peer's response to the prompt above" as translated_label %} - {% include "openassessmentblock/oa_submission_answer.html" with answer=topscore.submission.answer answer_text_label=translated_label %} - {% include "openassessmentblock/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=topscore.files class_prefix="submission__answer" including_template="leaderboard_show" xblock_id=xblock_id %} + {% include "legacy/oa_submission_answer.html" with answer=topscore.submission.answer answer_text_label=translated_label %} + {% include "legacy/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=topscore.files class_prefix="submission__answer" including_template="leaderboard_show" xblock_id=xblock_id %}
    {% endfor %} diff --git a/openassessment/templates/openassessmentblock/leaderboard/oa_leaderboard_waiting.html b/openassessment/templates/legacy/leaderboard/oa_leaderboard_waiting.html similarity index 100% rename from openassessment/templates/openassessmentblock/leaderboard/oa_leaderboard_waiting.html rename to openassessment/templates/legacy/leaderboard/oa_leaderboard_waiting.html diff --git a/openassessment/templates/openassessmentblock/message/oa_message_cancelled.html b/openassessment/templates/legacy/message/oa_message_cancelled.html similarity index 100% rename from openassessment/templates/openassessmentblock/message/oa_message_cancelled.html rename to openassessment/templates/legacy/message/oa_message_cancelled.html diff --git a/openassessment/templates/openassessmentblock/message/oa_message_closed.html b/openassessment/templates/legacy/message/oa_message_closed.html similarity index 100% rename from openassessment/templates/openassessmentblock/message/oa_message_closed.html rename to openassessment/templates/legacy/message/oa_message_closed.html diff --git a/openassessment/templates/openassessmentblock/message/oa_message_complete.html b/openassessment/templates/legacy/message/oa_message_complete.html similarity index 100% rename from openassessment/templates/openassessmentblock/message/oa_message_complete.html rename to openassessment/templates/legacy/message/oa_message_complete.html diff --git a/openassessment/templates/openassessmentblock/message/oa_message_incomplete.html b/openassessment/templates/legacy/message/oa_message_incomplete.html similarity index 100% rename from openassessment/templates/openassessmentblock/message/oa_message_incomplete.html rename to openassessment/templates/legacy/message/oa_message_incomplete.html diff --git a/openassessment/templates/openassessmentblock/message/oa_message_no_team.html b/openassessment/templates/legacy/message/oa_message_no_team.html similarity index 100% rename from openassessment/templates/openassessmentblock/message/oa_message_no_team.html rename to openassessment/templates/legacy/message/oa_message_no_team.html diff --git a/openassessment/templates/openassessmentblock/message/oa_message_open.html b/openassessment/templates/legacy/message/oa_message_open.html similarity index 100% rename from openassessment/templates/openassessmentblock/message/oa_message_open.html rename to openassessment/templates/legacy/message/oa_message_open.html diff --git a/openassessment/templates/openassessmentblock/message/oa_message_unavailable.html b/openassessment/templates/legacy/message/oa_message_unavailable.html similarity index 100% rename from openassessment/templates/openassessmentblock/message/oa_message_unavailable.html rename to openassessment/templates/legacy/message/oa_message_unavailable.html diff --git a/openassessment/templates/openassessmentblock/oa_base.html b/openassessment/templates/legacy/oa_base.html similarity index 100% rename from openassessment/templates/openassessmentblock/oa_base.html rename to openassessment/templates/legacy/oa_base.html diff --git a/openassessment/templates/openassessmentblock/oa_error.html b/openassessment/templates/legacy/oa_error.html similarity index 100% rename from openassessment/templates/openassessmentblock/oa_error.html rename to openassessment/templates/legacy/oa_error.html diff --git a/openassessment/templates/openassessmentblock/oa_latex_preview.html b/openassessment/templates/legacy/oa_latex_preview.html similarity index 100% rename from openassessment/templates/openassessmentblock/oa_latex_preview.html rename to openassessment/templates/legacy/oa_latex_preview.html diff --git a/openassessment/templates/openassessmentblock/oa_rubric.html b/openassessment/templates/legacy/oa_rubric.html similarity index 95% rename from openassessment/templates/openassessmentblock/oa_rubric.html rename to openassessment/templates/legacy/oa_rubric.html index f93341de71..1e21f19512 100644 --- a/openassessment/templates/openassessmentblock/oa_rubric.html +++ b/openassessment/templates/legacy/oa_rubric.html @@ -62,7 +62,7 @@ {% if criterion.feedback == 'required' %}required{% endif %} > - {% include "openassessmentblock/oa_latex_preview.html" with id="criteria__"|add:rubric_type|add:criterion.order_num elem="div" preview_name="criteria__" %} + {% include "legacy/oa_latex_preview.html" with id="criteria__"|add:rubric_type|add:criterion.order_num elem="div" preview_name="criteria__" %} {% endif %} @@ -86,7 +86,7 @@ maxlength="10000" > - {% include "openassessmentblock/oa_latex_preview.html" with id="feedback__"|add:rubric_type elem="div" preview_name="feedback" %} + {% include "legacy/oa_latex_preview.html" with id="feedback__"|add:rubric_type elem="div" preview_name="feedback" %} {% endif %} diff --git a/openassessment/templates/openassessmentblock/oa_submission_answer.html b/openassessment/templates/legacy/oa_submission_answer.html similarity index 100% rename from openassessment/templates/openassessmentblock/oa_submission_answer.html rename to openassessment/templates/legacy/oa_submission_answer.html diff --git a/openassessment/templates/openassessmentblock/oa_team_uploaded_files.html b/openassessment/templates/legacy/oa_team_uploaded_files.html similarity index 100% rename from openassessment/templates/openassessmentblock/oa_team_uploaded_files.html rename to openassessment/templates/legacy/oa_team_uploaded_files.html diff --git a/openassessment/templates/openassessmentblock/oa_uploaded_file.html b/openassessment/templates/legacy/oa_uploaded_file.html similarity index 100% rename from openassessment/templates/openassessmentblock/oa_uploaded_file.html rename to openassessment/templates/legacy/oa_uploaded_file.html diff --git a/openassessment/templates/openassessmentblock/peer/oa_peer_assessment.html b/openassessment/templates/legacy/peer/oa_peer_assessment.html similarity index 89% rename from openassessment/templates/openassessmentblock/peer/oa_peer_assessment.html rename to openassessment/templates/legacy/peer/oa_peer_assessment.html index c4352270a2..2054d9e065 100644 --- a/openassessment/templates/openassessmentblock/peer/oa_peer_assessment.html +++ b/openassessment/templates/legacy/peer/oa_peer_assessment.html @@ -72,14 +72,14 @@

    {% trans "Your peer's response to the prompt above" as translated_label %} - {% include "openassessmentblock/oa_submission_answer.html" with answer=peer_submission.answer answer_text_label=translated_label %} + {% include "legacy/oa_submission_answer.html" with answer=peer_submission.answer answer_text_label=translated_label %} {% trans "Associated Files" as translated_header %} - {% include "openassessmentblock/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=peer_file_urls header=translated_header class_prefix="peer-assessment" show_warning="true" including_template="peer_assessment" xblock_id=xblock_id %} + {% include "legacy/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=peer_file_urls header=translated_header class_prefix="peer-assessment" show_warning="true" including_template="peer_assessment" xblock_id=xblock_id %}
    - {% include "openassessmentblock/oa_rubric.html" with rubric_type="peer" submission=peer_submission %} + {% include "legacy/oa_rubric.html" with rubric_type="peer" submission=peer_submission %}
    diff --git a/openassessment/templates/openassessmentblock/peer/oa_peer_cancelled.html b/openassessment/templates/legacy/peer/oa_peer_cancelled.html similarity index 90% rename from openassessment/templates/openassessmentblock/peer/oa_peer_cancelled.html rename to openassessment/templates/legacy/peer/oa_peer_cancelled.html index 653df6e5cd..89871f427a 100644 --- a/openassessment/templates/openassessmentblock/peer/oa_peer_cancelled.html +++ b/openassessment/templates/legacy/peer/oa_peer_cancelled.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/peer/oa_peer_assessment.html" %} +{% extends "legacy/peer/oa_peer_assessment.html" %} {% load i18n %} {% load tz %} diff --git a/openassessment/templates/openassessmentblock/peer/oa_peer_closed.html b/openassessment/templates/legacy/peer/oa_peer_closed.html similarity index 96% rename from openassessment/templates/openassessmentblock/peer/oa_peer_closed.html rename to openassessment/templates/legacy/peer/oa_peer_closed.html index b2550965d4..f7825b1b00 100644 --- a/openassessment/templates/openassessmentblock/peer/oa_peer_closed.html +++ b/openassessment/templates/legacy/peer/oa_peer_closed.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/peer/oa_peer_assessment.html" %} +{% extends "legacy/peer/oa_peer_assessment.html" %} {% load i18n %} {% block list_item %} diff --git a/openassessment/templates/openassessmentblock/peer/oa_peer_complete.html b/openassessment/templates/legacy/peer/oa_peer_complete.html similarity index 97% rename from openassessment/templates/openassessmentblock/peer/oa_peer_complete.html rename to openassessment/templates/legacy/peer/oa_peer_complete.html index 71c31dba61..518dbbf361 100644 --- a/openassessment/templates/openassessmentblock/peer/oa_peer_complete.html +++ b/openassessment/templates/legacy/peer/oa_peer_complete.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/peer/oa_peer_assessment.html" %} +{% extends "legacy/peer/oa_peer_assessment.html" %} {% load i18n %} {% block list_item %} diff --git a/openassessment/templates/openassessmentblock/peer/oa_peer_turbo_mode.html b/openassessment/templates/legacy/peer/oa_peer_turbo_mode.html similarity index 83% rename from openassessment/templates/openassessmentblock/peer/oa_peer_turbo_mode.html rename to openassessment/templates/legacy/peer/oa_peer_turbo_mode.html index 5b56ef3c50..0e93a07609 100644 --- a/openassessment/templates/openassessmentblock/peer/oa_peer_turbo_mode.html +++ b/openassessment/templates/legacy/peer/oa_peer_turbo_mode.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/peer/oa_peer_assessment.html" %} +{% extends "legacy/peer/oa_peer_assessment.html" %} {% load i18n %} {% block list_item %} @@ -51,14 +51,14 @@

    {% trans "Status" %}
    {% trans "Your peer's response to the prompt above" as translated_label %} - {% include "openassessmentblock/oa_submission_answer.html" with answer=peer_submission.answer answer_text_label=translated_label %} + {% include "legacy/oa_submission_answer.html" with answer=peer_submission.answer answer_text_label=translated_label %} {% trans "Associated Files" as translated_header %} - {% include "openassessmentblock/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=peer_file_urls header=translated_header class_prefix="peer-assessment" show_warning="true" including_template="peer_turbo_mode" xblock_id=xblock_id %} + {% include "legacy/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=peer_file_urls header=translated_header class_prefix="peer-assessment" show_warning="true" including_template="peer_turbo_mode" xblock_id=xblock_id %}
    - {% include "openassessmentblock/oa_rubric.html" with rubric_type="peer" submission=peer_submission %} + {% include "legacy/oa_rubric.html" with rubric_type="peer" submission=peer_submission %}
    diff --git a/openassessment/templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html b/openassessment/templates/legacy/peer/oa_peer_turbo_mode_waiting.html similarity index 96% rename from openassessment/templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html rename to openassessment/templates/legacy/peer/oa_peer_turbo_mode_waiting.html index 5a29aeed30..c6f35b99e1 100644 --- a/openassessment/templates/openassessmentblock/peer/oa_peer_turbo_mode_waiting.html +++ b/openassessment/templates/legacy/peer/oa_peer_turbo_mode_waiting.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/peer/oa_peer_assessment.html" %} +{% extends "legacy/peer/oa_peer_assessment.html" %} {% load i18n %} {% block list_item %} diff --git a/openassessment/templates/openassessmentblock/peer/oa_peer_unavailable.html b/openassessment/templates/legacy/peer/oa_peer_unavailable.html similarity index 89% rename from openassessment/templates/openassessmentblock/peer/oa_peer_unavailable.html rename to openassessment/templates/legacy/peer/oa_peer_unavailable.html index 854d3d1164..eb51ac32c6 100644 --- a/openassessment/templates/openassessmentblock/peer/oa_peer_unavailable.html +++ b/openassessment/templates/legacy/peer/oa_peer_unavailable.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/peer/oa_peer_assessment.html" %} +{% extends "legacy/peer/oa_peer_assessment.html" %} {% load i18n %} {% block list_item %} diff --git a/openassessment/templates/openassessmentblock/peer/oa_peer_waiting.html b/openassessment/templates/legacy/peer/oa_peer_waiting.html similarity index 96% rename from openassessment/templates/openassessmentblock/peer/oa_peer_waiting.html rename to openassessment/templates/legacy/peer/oa_peer_waiting.html index 19f78def78..b9eaa335f8 100644 --- a/openassessment/templates/openassessmentblock/peer/oa_peer_waiting.html +++ b/openassessment/templates/legacy/peer/oa_peer_waiting.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/peer/oa_peer_assessment.html" %} +{% extends "legacy/peer/oa_peer_assessment.html" %} {% load i18n %} {% block list_item %} diff --git a/openassessment/templates/openassessmentblock/response/oa_response.html b/openassessment/templates/legacy/response/oa_response.html similarity index 96% rename from openassessment/templates/openassessmentblock/response/oa_response.html rename to openassessment/templates/legacy/response/oa_response.html index ab49b7c48d..3ba0c66fbc 100644 --- a/openassessment/templates/openassessmentblock/response/oa_response.html +++ b/openassessment/templates/legacy/response/oa_response.html @@ -121,7 +121,7 @@

    - {% include "openassessmentblock/oa_rubric.html" with rubric_type="read_only" %} + {% include "legacy/oa_rubric.html" with rubric_type="read_only" %}
    @@ -199,7 +199,7 @@

    {% trans "The prompt for this >{{ part.text }} {% with forloop.counter|stringformat:"s" as submission_num %} - {% include "openassessmentblock/oa_latex_preview.html" with id="submission__"|add:xblock_id|add:submission_num elem="div" preview_name="submission__"|add:submission_num %} + {% include "legacy/oa_latex_preview.html" with id="submission__"|add:xblock_id|add:submission_num elem="div" preview_name="submission__"|add:submission_num %} {% endwith %} {% endif %} @@ -291,10 +291,10 @@
    {% trans "We could not delete files" %}
    {% endif %}
  1. - {% include "openassessmentblock/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=file_urls class_prefix="submission__answer" including_template="response" xblock_id=xblock_id %} + {% include "legacy/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=file_urls class_prefix="submission__answer" including_template="response" xblock_id=xblock_id %}
  2. - {% include "openassessmentblock/oa_team_uploaded_files.html" with file_upload_type=file_upload_type team_file_urls=team_file_urls class_prefix="submission__team__answer" including_template="response" xblock_id=xblock_id %} + {% include "legacy/oa_team_uploaded_files.html" with file_upload_type=file_upload_type team_file_urls=team_file_urls class_prefix="submission__team__answer" including_template="response" xblock_id=xblock_id %}
diff --git a/openassessment/templates/openassessmentblock/response/oa_response_cancelled.html b/openassessment/templates/legacy/response/oa_response_cancelled.html similarity index 97% rename from openassessment/templates/openassessmentblock/response/oa_response_cancelled.html rename to openassessment/templates/legacy/response/oa_response_cancelled.html index 3be6eada94..a546c1e8b8 100644 --- a/openassessment/templates/openassessmentblock/response/oa_response_cancelled.html +++ b/openassessment/templates/legacy/response/oa_response_cancelled.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/response/oa_response.html" %} +{% extends "legacy/response/oa_response.html" %} {% load i18n %} {% load tz %} diff --git a/openassessment/templates/openassessmentblock/response/oa_response_closed.html b/openassessment/templates/legacy/response/oa_response_closed.html similarity index 96% rename from openassessment/templates/openassessmentblock/response/oa_response_closed.html rename to openassessment/templates/legacy/response/oa_response_closed.html index 4e86f9bc54..87394fa78f 100644 --- a/openassessment/templates/openassessmentblock/response/oa_response_closed.html +++ b/openassessment/templates/legacy/response/oa_response_closed.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/response/oa_response.html" %} +{% extends "legacy/response/oa_response.html" %} {% load i18n %} {% block list_item %}
  • {% trans "Your response" as translated_label %} - {% include "openassessmentblock/oa_submission_answer.html" with answer=student_submission.answer answer_text_label=translated_label %} + {% include "legacy/oa_submission_answer.html" with answer=student_submission.answer answer_text_label=translated_label %} {% trans "Your Uploaded Files" as translated_header %} - {% include "openassessmentblock/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=file_urls header=translated_header class_prefix="submission__answer" including_template="response_graded" xblock_id=xblock_id %} + {% include "legacy/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=file_urls header=translated_header class_prefix="submission__answer" including_template="response_graded" xblock_id=xblock_id %} - {% include "openassessmentblock/oa_team_uploaded_files.html" with file_upload_type=file_upload_type team_file_urls=team_file_urls class_prefix="submission__team__answer" including_template="response_graded" xblock_id=xblock_id %} + {% include "legacy/oa_team_uploaded_files.html" with file_upload_type=file_upload_type team_file_urls=team_file_urls class_prefix="submission__team__answer" including_template="response_graded" xblock_id=xblock_id %}
    diff --git a/openassessment/templates/openassessmentblock/response/oa_response_studio_preview.html b/openassessment/templates/legacy/response/oa_response_studio_preview.html similarity index 100% rename from openassessment/templates/openassessmentblock/response/oa_response_studio_preview.html rename to openassessment/templates/legacy/response/oa_response_studio_preview.html diff --git a/openassessment/templates/openassessmentblock/response/oa_response_submitted.html b/openassessment/templates/legacy/response/oa_response_submitted.html similarity index 80% rename from openassessment/templates/openassessmentblock/response/oa_response_submitted.html rename to openassessment/templates/legacy/response/oa_response_submitted.html index 38dac4377d..e8fa2de3ad 100644 --- a/openassessment/templates/openassessmentblock/response/oa_response_submitted.html +++ b/openassessment/templates/legacy/response/oa_response_submitted.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/response/oa_response.html" %} +{% extends "legacy/response/oa_response.html" %} {% load i18n %} {% block list_item %} @@ -49,12 +49,12 @@
    {% trans "Status" %}
    {% trans "Your response" as translated_label %} - {% include "openassessmentblock/oa_submission_answer.html" with answer=student_submission.answer answer_text_label=translated_label %} + {% include "legacy/oa_submission_answer.html" with answer=student_submission.answer answer_text_label=translated_label %} {% trans "Your Uploaded Files" as translated_header %} - {% include "openassessmentblock/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=file_urls header=translated_header class_prefix="submission__answer" including_template="response_submitted" xblock_id=xblock_id %} + {% include "legacy/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=file_urls header=translated_header class_prefix="submission__answer" including_template="response_submitted" xblock_id=xblock_id %} - {% include "openassessmentblock/oa_team_uploaded_files.html" with file_upload_type=file_upload_type team_file_urls=team_file_urls header=translated_header class_prefix="submission__team__answer" including_template="response_submitted" xblock_id=xblock_id %} + {% include "legacy/oa_team_uploaded_files.html" with file_upload_type=file_upload_type team_file_urls=team_file_urls header=translated_header class_prefix="submission__team__answer" including_template="response_submitted" xblock_id=xblock_id %}
    diff --git a/openassessment/templates/openassessmentblock/response/oa_response_team_already_submitted.html b/openassessment/templates/legacy/response/oa_response_team_already_submitted.html similarity index 96% rename from openassessment/templates/openassessmentblock/response/oa_response_team_already_submitted.html rename to openassessment/templates/legacy/response/oa_response_team_already_submitted.html index 11654a3e44..2b9363b5f2 100644 --- a/openassessment/templates/openassessmentblock/response/oa_response_team_already_submitted.html +++ b/openassessment/templates/legacy/response/oa_response_team_already_submitted.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/response/oa_response.html" %} +{% extends "legacy/response/oa_response.html" %} {% load i18n %} {% load tz %} diff --git a/openassessment/templates/openassessmentblock/response/oa_response_unavailable.html b/openassessment/templates/legacy/response/oa_response_unavailable.html similarity index 89% rename from openassessment/templates/openassessmentblock/response/oa_response_unavailable.html rename to openassessment/templates/legacy/response/oa_response_unavailable.html index da62660255..0d8d30f52f 100644 --- a/openassessment/templates/openassessmentblock/response/oa_response_unavailable.html +++ b/openassessment/templates/legacy/response/oa_response_unavailable.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/response/oa_response.html" %} +{% extends "legacy/response/oa_response.html" %} {% load i18n %} {% block list_item %} diff --git a/openassessment/templates/openassessmentblock/self/oa_self_assessment.html b/openassessment/templates/legacy/self/oa_self_assessment.html similarity index 88% rename from openassessment/templates/openassessmentblock/self/oa_self_assessment.html rename to openassessment/templates/legacy/self/oa_self_assessment.html index be274d3678..69427fdaa8 100644 --- a/openassessment/templates/openassessmentblock/self/oa_self_assessment.html +++ b/openassessment/templates/legacy/self/oa_self_assessment.html @@ -55,14 +55,14 @@

    {% trans "Your response" as translated_label %} - {% include "openassessmentblock/oa_submission_answer.html" with answer=self_submission.answer answer_text_label=translated_label %} + {% include "legacy/oa_submission_answer.html" with answer=self_submission.answer answer_text_label=translated_label %} {% trans "Associated Files" as translated_header %} - {% include "openassessmentblock/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=self_file_urls header=translated_header class_prefix="self-assessment" including_template="self_assessment" xblock_id=xblock_id %} + {% include "legacy/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=self_file_urls header=translated_header class_prefix="self-assessment" including_template="self_assessment" xblock_id=xblock_id %}
    - {% include "openassessmentblock/oa_rubric.html" with rubric_type="self" submission=self_submission %} + {% include "legacy/oa_rubric.html" with rubric_type="self" submission=self_submission %}
    diff --git a/openassessment/templates/openassessmentblock/self/oa_self_cancelled.html b/openassessment/templates/legacy/self/oa_self_cancelled.html similarity index 91% rename from openassessment/templates/openassessmentblock/self/oa_self_cancelled.html rename to openassessment/templates/legacy/self/oa_self_cancelled.html index 9ba79d2d68..9105e8f06c 100644 --- a/openassessment/templates/openassessmentblock/self/oa_self_cancelled.html +++ b/openassessment/templates/legacy/self/oa_self_cancelled.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/self/oa_self_assessment.html" %} +{% extends "legacy/self/oa_self_assessment.html" %} {% load i18n %} {% load tz %} diff --git a/openassessment/templates/openassessmentblock/self/oa_self_closed.html b/openassessment/templates/legacy/self/oa_self_closed.html similarity index 95% rename from openassessment/templates/openassessmentblock/self/oa_self_closed.html rename to openassessment/templates/legacy/self/oa_self_closed.html index 97af67ec20..ad1d7bd0ee 100644 --- a/openassessment/templates/openassessmentblock/self/oa_self_closed.html +++ b/openassessment/templates/legacy/self/oa_self_closed.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/self/oa_self_assessment.html" %} +{% extends "legacy/self/oa_self_assessment.html" %} {% load i18n %} {% block list_item %} diff --git a/openassessment/templates/openassessmentblock/self/oa_self_complete.html b/openassessment/templates/legacy/self/oa_self_complete.html similarity index 91% rename from openassessment/templates/openassessmentblock/self/oa_self_complete.html rename to openassessment/templates/legacy/self/oa_self_complete.html index cff218e730..add9c3cf7a 100644 --- a/openassessment/templates/openassessmentblock/self/oa_self_complete.html +++ b/openassessment/templates/legacy/self/oa_self_complete.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/self/oa_self_assessment.html" %} +{% extends "legacy/self/oa_self_assessment.html" %} {% load i18n %} {% block list_item %} diff --git a/openassessment/templates/openassessmentblock/self/oa_self_unavailable.html b/openassessment/templates/legacy/self/oa_self_unavailable.html similarity index 90% rename from openassessment/templates/openassessmentblock/self/oa_self_unavailable.html rename to openassessment/templates/legacy/self/oa_self_unavailable.html index 3774807997..7ed4d33e13 100644 --- a/openassessment/templates/openassessmentblock/self/oa_self_unavailable.html +++ b/openassessment/templates/legacy/self/oa_self_unavailable.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/self/oa_self_assessment.html" %} +{% extends "legacy/self/oa_self_assessment.html" %} {% load i18n %} {% block list_item %} diff --git a/openassessment/templates/openassessmentblock/staff/oa_staff_grade.html b/openassessment/templates/legacy/staff/oa_staff_grade.html similarity index 100% rename from openassessment/templates/openassessmentblock/staff/oa_staff_grade.html rename to openassessment/templates/legacy/staff/oa_staff_grade.html diff --git a/openassessment/templates/openassessmentblock/staff_area/oa_staff_area.html b/openassessment/templates/legacy/staff_area/oa_staff_area.html similarity index 98% rename from openassessment/templates/openassessmentblock/staff_area/oa_staff_area.html rename to openassessment/templates/legacy/staff_area/oa_staff_area.html index f5f98c1f19..ba8364190b 100644 --- a/openassessment/templates/openassessmentblock/staff_area/oa_staff_area.html +++ b/openassessment/templates/legacy/staff_area/oa_staff_area.html @@ -153,7 +153,7 @@

    - {% include "openassessmentblock/staff_area/oa_staff_grade_learners.html" with staff_assessment_ungraded=staff_assessment_ungraded %} + {% include "legacy/staff_area/oa_staff_grade_learners.html" with staff_assessment_ungraded=staff_assessment_ungraded %}
    diff --git a/openassessment/templates/openassessmentblock/staff_area/oa_staff_grade_learners.html b/openassessment/templates/legacy/staff_area/oa_staff_grade_learners.html similarity index 76% rename from openassessment/templates/openassessmentblock/staff_area/oa_staff_grade_learners.html rename to openassessment/templates/legacy/staff_area/oa_staff_grade_learners.html index 8ddeeca4de..5d10005643 100644 --- a/openassessment/templates/openassessmentblock/staff_area/oa_staff_grade_learners.html +++ b/openassessment/templates/legacy/staff_area/oa_staff_grade_learners.html @@ -8,7 +8,7 @@

    - {% include "openassessmentblock/staff_area/oa_staff_grade_learners_count.html" with staff_assessment_ungraded=staff_assessment_ungraded staff_assessment_in_progress=staff_assessment_in_progress %} + {% include "legacy/staff_area/oa_staff_grade_learners_count.html" with staff_assessment_ungraded=staff_assessment_ungraded staff_assessment_in_progress=staff_assessment_in_progress %}
    diff --git a/openassessment/templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html b/openassessment/templates/legacy/staff_area/oa_staff_grade_learners_assessment.html similarity index 85% rename from openassessment/templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html rename to openassessment/templates/legacy/staff_area/oa_staff_grade_learners_assessment.html index bc1ff822d0..d27c60e477 100644 --- a/openassessment/templates/openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html +++ b/openassessment/templates/legacy/staff_area/oa_staff_grade_learners_assessment.html @@ -40,14 +40,14 @@

    {% else %} {% trans "The learner's response to the prompt above" as translated_label %} {% endif %} - {% include "openassessmentblock/oa_submission_answer.html" with answer=submission.answer answer_text_label=translated_label %} + {% include "legacy/oa_submission_answer.html" with answer=submission.answer answer_text_label=translated_label %} {% trans "Associated Files" as translated_header %} - {% include "openassessmentblock/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=staff_file_urls header=translated_header class_prefix="staff-assessment" show_warning="true" including_template="staff_grade_learners_assessment" xblock_id=xblock_id %} + {% include "legacy/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=staff_file_urls header=translated_header class_prefix="staff-assessment" show_warning="true" including_template="staff_grade_learners_assessment" xblock_id=xblock_id %}

    - {% include "openassessmentblock/oa_rubric.html" with rubric_type="staff-full-grade" %} + {% include "legacy/oa_rubric.html" with rubric_type="staff-full-grade" %}
    diff --git a/openassessment/templates/openassessmentblock/staff_area/oa_staff_grade_learners_count.html b/openassessment/templates/legacy/staff_area/oa_staff_grade_learners_count.html similarity index 100% rename from openassessment/templates/openassessmentblock/staff_area/oa_staff_grade_learners_count.html rename to openassessment/templates/legacy/staff_area/oa_staff_grade_learners_count.html diff --git a/openassessment/templates/openassessmentblock/staff_area/oa_staff_override_assessment.html b/openassessment/templates/legacy/staff_area/oa_staff_override_assessment.html similarity index 82% rename from openassessment/templates/openassessmentblock/staff_area/oa_staff_override_assessment.html rename to openassessment/templates/legacy/staff_area/oa_staff_override_assessment.html index a4eedde34d..ac22bed18d 100644 --- a/openassessment/templates/openassessmentblock/staff_area/oa_staff_override_assessment.html +++ b/openassessment/templates/legacy/staff_area/oa_staff_override_assessment.html @@ -33,14 +33,14 @@

    {% else %} {% trans "The team's response to the prompt above" as translated_label %} {% endif %} - {% include "openassessmentblock/oa_submission_answer.html" with answer=submission.answer answer_text_label=translated_label %} + {% include "legacy/oa_submission_answer.html" with answer=submission.answer answer_text_label=translated_label %} {% trans "Associated Files" as translated_header %} - {% include "openassessmentblock/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=staff_file_urls header=translated_header class_prefix="staff-assessment" show_warning="true" including_template="staff_override_assessment" xblock_id=xblock_id %} + {% include "legacy/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=staff_file_urls header=translated_header class_prefix="staff-assessment" show_warning="true" including_template="staff_override_assessment" xblock_id=xblock_id %}
    - {% include "openassessmentblock/oa_rubric.html" with rubric_type="staff-override" %} + {% include "legacy/oa_rubric.html" with rubric_type="staff-override" %}
    diff --git a/openassessment/templates/openassessmentblock/staff_area/oa_student_info.html b/openassessment/templates/legacy/staff_area/oa_student_info.html similarity index 93% rename from openassessment/templates/openassessmentblock/staff_area/oa_student_info.html rename to openassessment/templates/legacy/staff_area/oa_student_info.html index a50b0fbae3..dd63a1cc60 100644 --- a/openassessment/templates/openassessmentblock/staff_area/oa_student_info.html +++ b/openassessment/templates/legacy/staff_area/oa_student_info.html @@ -58,10 +58,10 @@

    {% else %} {% trans "The team's response to the prompt above" as translated_label %} {% endif %} - {% include "openassessmentblock/oa_submission_answer.html" with answer=submission.answer answer_text_label=translated_label %} + {% include "legacy/oa_submission_answer.html" with answer=submission.answer answer_text_label=translated_label %} {% trans "Associated Files" as translated_header %} - {% include "openassessmentblock/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=staff_file_urls header=translated_header class_prefix="staff-assessment" show_warning="true" including_template="student_info" xblock_id=xblock_id %} + {% include "legacy/oa_uploaded_file.html" with file_upload_type=file_upload_type file_urls=staff_file_urls header=translated_header class_prefix="staff-assessment" show_warning="true" including_template="student_info" xblock_id=xblock_id %} {% endif %} @@ -69,17 +69,17 @@

    {% if peer_assessments %} {% trans "Peer Assessments for This Learner" as translated_title %} - {% include "openassessmentblock/staff_area/oa_student_info_assessment_detail.html" with class_type="peer" assessments=peer_assessments %} + {% include "legacy/staff_area/oa_student_info_assessment_detail.html" with class_type="peer" assessments=peer_assessments %} {% endif %} {% if submitted_assessments %} {% trans "Peer Assessments Completed by This Learner" as translated_title %} - {% include "openassessmentblock/staff_area/oa_student_info_assessment_detail.html" with class_type="submitted" assessments=submitted_assessments %} + {% include "legacy/staff_area/oa_student_info_assessment_detail.html" with class_type="submitted" assessments=submitted_assessments %} {% endif %} {% if self_assessment %} {% trans "Learner's Self Assessment" as translated_title %} - {% include "openassessmentblock/staff_area/oa_student_info_assessment_detail.html" with class_type="self" assessments=self_assessment %} + {% include "legacy/staff_area/oa_student_info_assessment_detail.html" with class_type="self" assessments=self_assessment %} {% endif %} {% if staff_assessment %} @@ -88,7 +88,7 @@

    {% else %} {% trans "Staff Assessment for this Team" as translated_title %} {% endif %} - {% include "openassessmentblock/staff_area/oa_student_info_assessment_detail.html" with class_type="staff" assessments=staff_assessment %} + {% include "legacy/staff_area/oa_student_info_assessment_detail.html" with class_type="staff" assessments=staff_assessment %} {% endif %}
    @@ -214,7 +214,7 @@
    {% trans "Unable to perform grade override" %}
    {% endif %}
    {% else %} - {% include "openassessmentblock/staff_area/oa_staff_override_assessment.html" %} + {% include "legacy/staff_area/oa_staff_override_assessment.html" %} {% endif %} diff --git a/openassessment/templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html b/openassessment/templates/legacy/staff_area/oa_student_info_assessment_detail.html similarity index 100% rename from openassessment/templates/openassessmentblock/staff_area/oa_student_info_assessment_detail.html rename to openassessment/templates/legacy/staff_area/oa_student_info_assessment_detail.html diff --git a/openassessment/templates/openassessmentblock/student_training/student_training.html b/openassessment/templates/legacy/student_training/student_training.html similarity index 98% rename from openassessment/templates/openassessmentblock/student_training/student_training.html rename to openassessment/templates/legacy/student_training/student_training.html index 2bd8666c28..f9e0a2d8f7 100644 --- a/openassessment/templates/openassessmentblock/student_training/student_training.html +++ b/openassessment/templates/legacy/student_training/student_training.html @@ -74,7 +74,7 @@

    {% trans "Learning to Assess Responses" %}
    {% trans "The response to the prompt above:" as translated_label %} - {% include "openassessmentblock/oa_submission_answer.html" with answer=training_essay.answer answer_text_label=translated_label %} + {% include "legacy/oa_submission_answer.html" with answer=training_essay.answer answer_text_label=translated_label %}
    diff --git a/openassessment/templates/openassessmentblock/student_training/student_training_cancelled.html b/openassessment/templates/legacy/student_training/student_training_cancelled.html similarity index 88% rename from openassessment/templates/openassessmentblock/student_training/student_training_cancelled.html rename to openassessment/templates/legacy/student_training/student_training_cancelled.html index d28efef3ed..c993c0806c 100644 --- a/openassessment/templates/openassessmentblock/student_training/student_training_cancelled.html +++ b/openassessment/templates/legacy/student_training/student_training_cancelled.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/student_training/student_training.html" %} +{% extends "legacy/student_training/student_training.html" %} {% load i18n %} {% load tz %} diff --git a/openassessment/templates/openassessmentblock/student_training/student_training_closed.html b/openassessment/templates/legacy/student_training/student_training_closed.html similarity index 94% rename from openassessment/templates/openassessmentblock/student_training/student_training_closed.html rename to openassessment/templates/legacy/student_training/student_training_closed.html index 4b72791a24..629c345971 100644 --- a/openassessment/templates/openassessmentblock/student_training/student_training_closed.html +++ b/openassessment/templates/legacy/student_training/student_training_closed.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/student_training/student_training.html" %} +{% extends "legacy/student_training/student_training.html" %} {% load i18n %} {% block list_item %} diff --git a/openassessment/templates/openassessmentblock/student_training/student_training_complete.html b/openassessment/templates/legacy/student_training/student_training_complete.html similarity index 88% rename from openassessment/templates/openassessmentblock/student_training/student_training_complete.html rename to openassessment/templates/legacy/student_training/student_training_complete.html index cbcd144bed..46d64f3d95 100644 --- a/openassessment/templates/openassessmentblock/student_training/student_training_complete.html +++ b/openassessment/templates/legacy/student_training/student_training_complete.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/student_training/student_training.html" %} +{% extends "legacy/student_training/student_training.html" %} {% load i18n %} {% block list_item %} diff --git a/openassessment/templates/openassessmentblock/student_training/student_training_error.html b/openassessment/templates/legacy/student_training/student_training_error.html similarity index 93% rename from openassessment/templates/openassessmentblock/student_training/student_training_error.html rename to openassessment/templates/legacy/student_training/student_training_error.html index 62fea5d578..08fd1c70c8 100644 --- a/openassessment/templates/openassessmentblock/student_training/student_training_error.html +++ b/openassessment/templates/legacy/student_training/student_training_error.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/student_training/student_training.html" %} +{% extends "legacy/student_training/student_training.html" %} {% load i18n %} {% block list_item %} diff --git a/openassessment/templates/openassessmentblock/student_training/student_training_unavailable.html b/openassessment/templates/legacy/student_training/student_training_unavailable.html similarity index 87% rename from openassessment/templates/openassessmentblock/student_training/student_training_unavailable.html rename to openassessment/templates/legacy/student_training/student_training_unavailable.html index 329d0a0d09..2bf38c368b 100644 --- a/openassessment/templates/openassessmentblock/student_training/student_training_unavailable.html +++ b/openassessment/templates/legacy/student_training/student_training_unavailable.html @@ -1,4 +1,4 @@ -{% extends "openassessmentblock/student_training/student_training.html" %} +{% extends "legacy/student_training/student_training.html" %} {% load i18n %} {% block list_item %} diff --git a/openassessment/templates/openassessmentblock/base.html b/openassessment/templates/openassessmentblock/base.html new file mode 100644 index 0000000000..2bc378f73c --- /dev/null +++ b/openassessment/templates/openassessmentblock/base.html @@ -0,0 +1,115 @@ +{% load i18n %} +{% spaceless %} + +
    + +
    +
    + {% if title %} +

    {% trans title %}

    + {% endif %} + +
    + + {% block message %} +
    +
    +

    {% trans "This assignment has several steps. In the first step, you'll provide a response to the prompt. The other steps appear below the Your Response field." %}

    +
    +
    + {% endblock %} +
    + +
      + {% for assessment in rubric_assessments %} +
    1. +
      +

      + +

      + + + + {% trans "Loading" %} + + +
      +
    2. + {% endfor %} +
    + + {% if show_staff_area %} +
    + {% endif %} +
    +
    + + +
    + + {% if leaderboard_ui_model %} +
      +
    1. +
      +

      + +

      + + + + {% trans "Loading" %} + + +
      +
    2. +
    + {% endif %} +
    + {% if show_staff_area %} +
    + {% endif %} +
    +
    +
    +
    + +{% endspaceless %} diff --git a/openassessment/tests/factories.py b/openassessment/tests/factories.py index 8f92927f4b..457d651ee0 100644 --- a/openassessment/tests/factories.py +++ b/openassessment/tests/factories.py @@ -11,6 +11,7 @@ from openassessment.assessment.models import (Assessment, AssessmentFeedback, AssessmentFeedbackOption, AssessmentPart, Criterion, CriterionOption, Rubric, StaffWorkflow, TeamStaffWorkflow) +from openassessment.assessment.models.base import SharedFileUpload User = get_user_model() @@ -165,3 +166,18 @@ class Meta: is_superuser = False last_login = datetime.datetime(2012, 1, 1, tzinfo=UTC) date_joined = datetime.datetime(2011, 1, 1, tzinfo=UTC) + + +class SharedFileUploadFactory(DjangoModelFactory): + """ Create SharedFileUploads for testing """ + class Meta: + model = SharedFileUpload + + team_id = factory.Sequence(lambda n: f'default_team_{n}') + course_id = factory.Sequence(lambda n: f'default_course_{n}') + item_id = factory.Sequence(lambda n: f'default_item_{n}') + owner_id = None + file_key = factory.Sequence(lambda n: f'shared_file_key_{n}') + description = factory.Sequence(lambda n: f'shared_file_desc_{n}') + size = factory.Sequence(lambda n: 10 + int(n)) + name = factory.Sequence(lambda n: f'shared_file_name_{n}') diff --git a/openassessment/xblock/apis/assessments/errors.py b/openassessment/xblock/apis/assessments/errors.py new file mode 100644 index 0000000000..ac3578f242 --- /dev/null +++ b/openassessment/xblock/apis/assessments/errors.py @@ -0,0 +1,17 @@ +""" +Assessment API Errors +""" + +from openassessment.assessment.errors import AssessmentError + + +class InvalidStateToAssess(AssessmentError): + pass + + +class ReviewerMustHaveSubmittedException(InvalidStateToAssess): + pass + + +class ServerClientUUIDMismatchException(AssessmentError): + pass diff --git a/openassessment/xblock/apis/assessments/peer_assessment_api.py b/openassessment/xblock/apis/assessments/peer_assessment_api.py index e628f47933..5a33e217ef 100644 --- a/openassessment/xblock/apis/assessments/peer_assessment_api.py +++ b/openassessment/xblock/apis/assessments/peer_assessment_api.py @@ -5,8 +5,20 @@ from openassessment.assessment.errors import PeerAssessmentWorkflowError from openassessment.assessment.api import peer as peer_api +from openassessment.assessment.errors.peer import PeerAssessmentInternalError, PeerAssessmentRequestError +from openassessment.assessment.models.peer import PeerWorkflowItem +from openassessment.assessment.serializers.base import serialize_assessments +from openassessment.workflow.errors import AssessmentWorkflowError +from openassessment.xblock.apis.assessments.errors import ( + ReviewerMustHaveSubmittedException, + ServerClientUUIDMismatchException, +) from openassessment.xblock.utils.data_conversion import create_submission_dict from openassessment.xblock.apis.step_data_api import StepDataAPI +from openassessment.xblock.utils.data_conversion import ( + clean_criterion_feedback, + create_rubric_dict, +) logger = logging.getLogger(__name__) @@ -16,10 +28,30 @@ def __init__(self, block, continue_grading=False): super().__init__(block, "peer-assessment") self._continue_grading = continue_grading + @property + def submission_uuid(self): + return self.workflow_data.submission_uuid + @property def assessment(self): return self.config_data.get_assessment_module("peer-assessment") + @property + def assessments(self): + return peer_api.get_assessments(self.submission_uuid) + + @property + def scored_assessments(self): + return serialize_assessments(PeerWorkflowItem.get_scored_assessments(self.submission_uuid)) + + @property + def unscored_assessments(self): + return serialize_assessments(PeerWorkflowItem.get_unscored_assessments(self.submission_uuid)) + + @property + def peer_grade(self): + return self._block.grades_data.peer_score + @property def continue_grading(self): return self._continue_grading and self.workflow_data.is_peer_complete @@ -28,10 +60,34 @@ def continue_grading(self): def file_upload_type(self): return self.config_data.file_upload_type + @property + def num_completed(self): + _, count = self.has_finished + return count + + @property + def num_received(self): + """ + Return number of peer assessments this submission has received + or None if submission not found. + """ + return peer_api.get_graded_by_count(self.submission_uuid) + + @property + def waiting_for_submissions_to_assess(self): + """ + Determine if the student is blocked, waiting on submissions to assess. + """ + peer_submission = peer_api.get_submission_to_assess( + self.submission_uuid, self.assessment["must_be_graded_by"], + peek=True + ) + return not bool(peer_submission) + @property def has_finished(self): finished, count = peer_api.has_finished_required_evaluating( - self._block.submission_uuid, self.assessment["must_grade"] + self.submission_uuid, self.assessment["must_grade"] ) return finished, count @@ -58,6 +114,10 @@ def is_skipped(self): def student_item(self): return self.config_data.student_item_dict + @property + def must_be_graded_by(self): + return self.assessment['must_be_graded_by'] + def format_submission_for_publish(self, peer_submission): student_item_dict = self.config_data.student_item_dict return { @@ -73,11 +133,20 @@ def get_submission_dict(self, peer_sub): def get_download_urls(self, peer_sub): return self._block.get_download_urls_from_submission(peer_sub) + def get_active_assessment_submission(self): + try: + return peer_api.get_active_assessment_submission( + self.submission_uuid + ) + except PeerAssessmentWorkflowError as err: + logger.exception(err) + return None + def get_peer_submission(self): peer_submission = False try: peer_submission = peer_api.get_submission_to_assess( - self.workflow_data.submission_uuid, self.assessment["must_be_graded_by"] + self.submission_uuid, self.assessment["must_be_graded_by"] ) self.config_data.publish_event( "openassessmentblock.get_peer_submission", @@ -86,3 +155,102 @@ def get_peer_submission(self): except PeerAssessmentWorkflowError as err: logger.exception(err) return peer_submission + + def assert_assessed_submission_uuid_matches(self, uuid_client): + submission = self.get_peer_submission() or {} + uuid_server = submission.get("uuid", None) + + if uuid_server != uuid_client: + logger.warning( + "Irrelevant assessment submission: expected '%s', got '%s'", + uuid_server, + uuid_client, + ) + raise ServerClientUUIDMismatchException() + + +def peer_assess( + options_selected, + overall_feedback, + criterion_feedback, + config_data, + workflow_data, + peer_step_data, + assessed_submission_uuid=None, +): + """Place a peer assessment into OpenAssessment system + + Assess a Peer Submission. Performs basic workflow validation to ensure + that an assessment can be performed as this time. + + Args: + `assessed_submission_uuid` (string): The unique identifier for the submission being assessed. + `options_selected` (dict): Dictionary mapping criterion names to option values. + `overall_feedback` (unicode): Written feedback for the submission as a whole. + `criterion_feedback` (unicode): Written feedback per the criteria for the submission. + `config_data`: ORA Config Data object + `workflow_data`: ORA Workflow Data object + `peer_step_data`: ORA Peer Step Data object + + Returns: + None + + Raises: + ReviewerMustHaveSubmittedException + ServerClientUUIDMismatchException + PeerAssessmentRequestError + PeerAssessmentWorkflowError + PeerAssessmentInternalError + AssessmentWorkflowError + """ + scorer_submission_uuid = workflow_data.submission_uuid + if not workflow_data.has_workflow: + raise ReviewerMustHaveSubmittedException() + + if assessed_submission_uuid: + peer_step_data.assert_assessed_submission_uuid_matches(assessed_submission_uuid) + + try: + assessment = peer_api.create_assessment( + scorer_submission_uuid, + config_data.student_item_dict["student_id"], + options_selected, + clean_criterion_feedback( + config_data.rubric_criteria_with_labels, + criterion_feedback, + ), + overall_feedback, + create_rubric_dict( + config_data.prompts, + config_data.rubric_criteria_with_labels, + ), + peer_step_data.must_be_graded_by, + ) + # Emit analytics event... + config_data.publish_assessment_event("openassessmentblock.peer_assess", assessment) + except (PeerAssessmentRequestError, PeerAssessmentWorkflowError): + logger.warning( + "Peer API error for submission UUID %s", + scorer_submission_uuid, + exc_info=True, + ) + raise + except PeerAssessmentInternalError: + logger.exception( + "Peer API internal error for submission UUID: %s", + scorer_submission_uuid, + ) + raise + + # Update both the workflow that the submission we"re assessing + # belongs to, as well as our own (e.g. have we evaluated enough?) + try: + if assessment: + workflow_data.update_workflow_status(assessment['submission_uuid']) + workflow_data.update_workflow_status(scorer_submission_uuid) + except AssessmentWorkflowError: + logger.exception( + "Workflow error occurred when submitting peer assessment for submission %s", + assessed_submission_uuid, + ) + raise diff --git a/openassessment/xblock/apis/assessments/self_assessment_api.py b/openassessment/xblock/apis/assessments/self_assessment_api.py index 6764b10d97..334731586a 100644 --- a/openassessment/xblock/apis/assessments/self_assessment_api.py +++ b/openassessment/xblock/apis/assessments/self_assessment_api.py @@ -1,11 +1,22 @@ """ External API for ORA Self Assessment data """ +import logging from submissions import api as submission_api from openassessment.assessment.api import self as self_api +from openassessment.assessment.errors.self import SelfAssessmentInternalError, SelfAssessmentRequestError +from openassessment.workflow.errors import AssessmentWorkflowInternalError, AssessmentWorkflowRequestError +from openassessment.xblock.apis.assessments.errors import ReviewerMustHaveSubmittedException from openassessment.xblock.apis.step_data_api import StepDataAPI -from openassessment.xblock.utils.data_conversion import create_submission_dict +from openassessment.xblock.utils.data_conversion import ( + clean_criterion_feedback, + create_rubric_dict, + create_submission_dict, +) + + +logger = logging.getLogger(__name__) class SelfAssessmentAPI(StepDataAPI): @@ -65,3 +76,68 @@ def rubric_criteria_with_labels(self): @property def prompts(self): return self.config_data.rubric_criteria + + +def self_assess( + options_selected, + criterion_feedback, + overall_feedback, + config_data, + workflow_data, + self_step_data +): + """ + Create a self-assessment for a submission. + + Args: + `options_selected` (dict): Dictionary mapping criterion names to option values. + `criterion_feedback` (unicode): Written feedback per the criteria for the submission. + `overall_feedback` (unicode): Written feedback for the submission as a whole. + `config_data`: ORA Config Data object + `workflow_data`: ORA Workflow Data object + `self_step_data`: ORA Self Step Data object + + Returns: None + + Raises: + ReviewerMustHaveSubmittedException + SelfAssessmentRequestError + AssessmentWorkflowRequestError + SelfAssessmentInternalError + AssessmentWorkflowInternalError + """ + submission_uuid = self_step_data.submission_uuid + + if not workflow_data.has_workflow: + raise ReviewerMustHaveSubmittedException() + + try: + assessment = self_api.create_assessment( + submission_uuid, + self_step_data.student_item_dict["student_id"], + options_selected, + clean_criterion_feedback( + config_data.rubric_criteria_with_labels, + criterion_feedback, + ), + overall_feedback, + create_rubric_dict( + config_data.prompts, + config_data.rubric_criteria_with_labels, + ), + ) + config_data.publish_assessment_event("openassessmentblock.self_assess", assessment) + # After we've created the self-assessment, we need to update the workflow. + workflow_data.update_workflow_status() + except ( + SelfAssessmentRequestError, + AssessmentWorkflowRequestError, + SelfAssessmentInternalError, + AssessmentWorkflowInternalError + ): + logger.warning( + "An error occurred while submitting a self assessment for the submission %s", + submission_uuid, + exc_info=True, + ) + raise diff --git a/openassessment/xblock/apis/assessments/staff_assessment_api.py b/openassessment/xblock/apis/assessments/staff_assessment_api.py index 6ed01dfee5..5e2c031170 100644 --- a/openassessment/xblock/apis/assessments/staff_assessment_api.py +++ b/openassessment/xblock/apis/assessments/staff_assessment_api.py @@ -1,15 +1,19 @@ """ External API for ORA Staff Assessment data """ +import logging from submissions import team_api as team_sub_api - from openassessment.assessment.api import staff as staff_api, teams as teams_api +from openassessment.assessment.errors.staff import StaffAssessmentError +from openassessment.workflow import api as workflow_api, team_api as team_workflow_api from openassessment.xblock.apis.step_data_api import StepDataAPI from openassessment.xblock.utils.data_conversion import ( clean_criterion_feedback, create_rubric_dict, ) +logger = logging.getLogger(__name__) + class StaffAssessmentAPI(StepDataAPI): @property @@ -38,36 +42,114 @@ def rubric_dict(self): self.config_data.prompts, self.config_data.rubric_criteria_with_labels ) - def create_team_assessment(self, data): - team_submission = team_sub_api.get_team_submission_from_individual_submission( - data["submission_uuid"] - ) - return ( - teams_api.create_assessment( - team_submission["team_submission_uuid"], - self.student_id, - data["options_selected"], - clean_criterion_feedback( - self.config_data.rubric_criteria, data["criterion_feedback"] - ), - data["overall_feedback"], - self.rubric_dict, + @property + def assessment(self): + return staff_api.get_assessment(self.workflow_data.workflow.get("submission_uuid")) + + @staticmethod + def staff_assessment_exists(submission_uuid): + return staff_api.get_latest_staff_assessment(submission_uuid) is not None + + +def staff_assess( + submission_uuid, + options_selected, + criterion_feedback, + overall_feedback, + assess_type, + config_data, + staff_step_data, +): + """ + Create a staff assessment from a team or individual submission. + """ + if config_data.is_team_assignment(): + do_assessment_fn = do_team_staff_assessment + else: + do_assessment_fn = do_staff_assessment + do_assessment_fn( + submission_uuid, + options_selected, + criterion_feedback, + overall_feedback, + assess_type, + config_data, + staff_step_data, + ) + + +def do_staff_assessment( + submission_uuid, + options_selected, + criterion_feedback, + overall_feedback, + assess_type, + config_data, + staff_step_data, +): + """ + Create a staff assessment from a staff submission. + """ + try: + assessment = staff_api.create_assessment( + submission_uuid, + staff_step_data.student_id, + options_selected, + clean_criterion_feedback( + config_data.rubric_criteria, + criterion_feedback, ), - team_submission["team_submission_uuid"], + overall_feedback, + staff_step_data.rubric_dict, + ) + config_data.publish_assessment_event("openassessmentblock.staff_assess", assessment, type=assess_type) + is_regrade = assess_type == 'regrade' + workflow_api.update_from_assessments(submission_uuid, None, {}, override_submitter_requirements=is_regrade) + except StaffAssessmentError: + logger.warning( + "An error occurred while submitting a staff assessment for the submission %s", + submission_uuid, + exc_info=True, ) + raise - def create_assessment(self, data): - return staff_api.create_assessment( - data["submission_uuid"], - self.student_id, - data["options_selected"], + +# TODO: do_team_staff_assessment_from_individual vs _from_team +def do_team_staff_assessment( + individual_submission_uuid, + options_selected, + criterion_feedback, + overall_feedback, + assess_type, + config_data, + staff_step_data, + team_submission_uuid=None, +): + if team_submission_uuid is None: + team_submission = team_sub_api.get_team_submission_from_individual_submission(individual_submission_uuid) + team_submission_uuid = team_submission['team_submission_uuid'] + try: + assessment = teams_api.create_assessment( + team_submission_uuid, + staff_step_data.student_id, + options_selected, clean_criterion_feedback( - self.config_data.rubric_criteria, data["criterion_feedback"] + config_data.rubric_criteria, criterion_feedback ), - data["overall_feedback"], - self.rubric_dict, + overall_feedback, + staff_step_data.rubric_dict, ) - - @staticmethod - def staff_assessment_exists(submission_uuid): - return staff_api.get_latest_staff_assessment(submission_uuid) is not None + config_data.publish_assessment_event("openassessmentblock.staff_assess", assessment[0], type=assess_type) + is_regrade = assess_type == "regrade" + team_workflow_api.update_from_assessments( + team_submission_uuid, + override_submitter_requirements=is_regrade + ) + except StaffAssessmentError: + logger.warning( + "An error occurred while submitting a team assessment for (%s, %s)", + individual_submission_uuid, + team_submission_uuid, + exc_info=True, + ) + raise diff --git a/openassessment/xblock/apis/assessments/student_training_api.py b/openassessment/xblock/apis/assessments/student_training_api.py index a850cbdc9a..ee690e0689 100644 --- a/openassessment/xblock/apis/assessments/student_training_api.py +++ b/openassessment/xblock/apis/assessments/student_training_api.py @@ -1,11 +1,15 @@ """ External API for ORA Student Training data """ + +import logging from openassessment.assessment.api.student_training import ( get_num_completed, get_training_example, + assess_training_example, ) - +from openassessment.assessment.errors.student_training import StudentTrainingError +from openassessment.workflow.errors import AssessmentWorkflowError from openassessment.xblock.utils.data_conversion import ( convert_training_examples_list_to_dict, create_submission_dict, @@ -13,6 +17,9 @@ from openassessment.xblock.apis.step_data_api import StepDataAPI +logger = logging.getLogger(__name__) + + class StudentTrainingAPI(StepDataAPI): def __init__(self, block): super().__init__(block, "student-training") @@ -155,3 +162,54 @@ def _parse_example(self, example): {}, f"Improperly formatted example, cannot render student training. Example: {example}", ) + + +def training_assess( + options_selected, + config_data, + workflow_data, +): + """ + Compare the scores given by the student with those given by the course author. + If they match, update the training workflow. The client can then reload this + step to view the next essay or the completed step. + + Args: + options_selected: (dict) Mapping of criterion name to selected option name + config_data: ConfigDataApi Object + workflow_data: WorkflowDataApi Object + + Returns: + (dict) Mapping of criterion name to defined "correct" option name, for any criterion in options_selected + that does not match the defined answers + + Raises: + StudentTrainingError + AssessmentWorkflowError + Exception + """ + # Check the student's scores against the course author's scores. + # This implicitly updates the student training workflow (which example essay is shown) + # as well as the assessment workflow (training/peer/self steps). + submission_uuid = workflow_data.submission_uuid + try: + corrections = assess_training_example(submission_uuid, options_selected) + config_data.publish_event( + "openassessment.student_training_assess_example", + { + "submission_uuid": submission_uuid, + "options_selected": options_selected, + "corrections": corrections, + }, + ) + except StudentTrainingError: + msg = "Could not check learner training scores for the learner with submission UUID %s" + logger.warning(msg, submission_uuid, exc_info=True) + raise + + try: + workflow_data.update_workflow_status() + except AssessmentWorkflowError: + logger.exception("Could not update workflow status for submission uuid %s", submission_uuid) + raise + return corrections diff --git a/openassessment/xblock/apis/grades_api.py b/openassessment/xblock/apis/grades_api.py new file mode 100644 index 0000000000..8f107a7a1e --- /dev/null +++ b/openassessment/xblock/apis/grades_api.py @@ -0,0 +1,89 @@ +""" +APIs for getting grade info +""" + +from openassessment.assessment.api import peer as peer_api +from openassessment.assessment.api import self as self_api +from openassessment.assessment.api import staff as staff_api + + +class GradesAPI: + def __init__(self, block): + self._block = block + + def _get_submission_uuid(self): + return self._block.submission_uuid + + @property + def self_score(self): + """ + Get self score. + + Returns: + { + "points_earned": (Int) awarded points + "points_possible": (Int) max possible points + } + """ + submission_uuid = self._get_submission_uuid() + assessment = self_api.get_assessment(submission_uuid) + + if assessment is not None: + return { + "points_earned": assessment["points_earned"], + "points_possible": assessment["points_possible"], + } + return None + + @property + def peer_score(self): + """ + Refresh workflows and get peer score. + + Returns: + { + "points_earned": (Int) calculated peer score + "points_possible": (Int) max possible points + } + """ + submission_uuid = self._get_submission_uuid() + if submission_uuid is None: + return None + + peer_requirements = self._block.workflow_requirements().get('peer') + if peer_requirements is None: + return None + + course_settings = self._block.get_course_workflow_settings() + + peer_score = peer_api.get_score( + submission_uuid, peer_requirements, course_settings + ) + + if peer_score is not None: + return { + "points_earned": peer_score["points_earned"], + "points_possible": peer_score["points_possible"], + } + return None + + @property + def staff_score(self): + """ + Get staff score. + + Returns: + { + "points_earned": (Int) awarded points + "points_possible": (Int) max possible points + } + """ + submission_uuid = self._get_submission_uuid() + assessment = staff_api.get_latest_staff_assessment(submission_uuid) + + if assessment is not None: + return { + "points_earned": assessment["points_earned"], + "points_possible": assessment["points_possible"], + } + return None diff --git a/openassessment/xblock/apis/ora_config_api.py b/openassessment/xblock/apis/ora_config_api.py index 16fab8b0f6..f8f09d4208 100644 --- a/openassessment/xblock/apis/ora_config_api.py +++ b/openassessment/xblock/apis/ora_config_api.py @@ -196,8 +196,8 @@ def get_team_submission_uuid_from_individual_submission_uuid(self, individual_su def does_team_have_submission(self, team_id): return self._block.does_team_have_submission(team_id) - def get_team_info(self): - return self._block.get_team_info() + def get_team_info(self, staff_or_preview_data=True): + return self._block.get_team_info(staff_or_preview_data) def get_student_item_dict(self, anonymous_user_id=None): return self._block.get_student_item_dict(anonymous_user_id) diff --git a/openassessment/xblock/apis/step_data_api.py b/openassessment/xblock/apis/step_data_api.py index c20a3f7b28..3d50280c5e 100644 --- a/openassessment/xblock/apis/step_data_api.py +++ b/openassessment/xblock/apis/step_data_api.py @@ -1,4 +1,5 @@ """ Base class for step data collations """ +from openassessment.xblock.apis.workflow_api import WorkflowStep from openassessment.xblock.utils.resolve_dates import DISTANT_FUTURE @@ -10,6 +11,7 @@ def __init__(self, block, step=None): self._closed_reason = closed_reason self._start_date = start_date self._due_date = due_date + self._step = WorkflowStep(step) def __repr__(self): return "{0}".format( @@ -29,6 +31,18 @@ def config_data(self): def workflow_data(self): return self._block.api_data.workflow_data + @property + def has_reached_step(self): + """Util for determining if we have reached or surpassed this step""" + if self._step == "submission": + return True + if self.workflow_data.status == self._step: + return True + step_info = self.workflow_data.status_details.get(str(self._step), {}) + if step_info.get("complete"): + return True + return False + @property def problem_closed(self): return self._problem_closed diff --git a/openassessment/xblock/apis/submissions/errors.py b/openassessment/xblock/apis/submissions/errors.py index 1672de9b5b..6c733bab9c 100644 --- a/openassessment/xblock/apis/submissions/errors.py +++ b/openassessment/xblock/apis/submissions/errors.py @@ -9,3 +9,39 @@ class NoTeamToCreateSubmissionForError(Exception): class EmptySubmissionError(Exception): pass + + +class DraftSaveException(Exception): + pass + + +class SubmissionValidationException(Exception): + pass + + +class AnswerTooLongException(Exception): + pass + + +class SubmitInternalError(Exception): + pass + + +class StudioPreviewException(Exception): + pass + + +class MultipleSubmissionsException(Exception): + pass + + +class DeleteNotAllowed(Exception): + pass + + +class OnlyOneFileAllowedException(Exception): + pass + + +class UnsupportedFileTypeException(Exception): + pass diff --git a/openassessment/xblock/apis/submissions/file_api.py b/openassessment/xblock/apis/submissions/file_api.py index bddd245870..393569d678 100644 --- a/openassessment/xblock/apis/submissions/file_api.py +++ b/openassessment/xblock/apis/submissions/file_api.py @@ -147,3 +147,14 @@ def get_all_upload_urls_for_user(self, username_or_email): def get_allowed_file_types_or_preset(self): return self._block.get_allowed_file_types_or_preset + + def has_any_file_in_upload_space(self): + # Here we check if there are existing file uploads by checking for + # an existing download url for any of the upload slots. + # Note that we can't use self.saved_files_descriptions because that + # is populated before files are actually uploaded + for potential_file_index in range(self.max_allowed_uploads): + file_url = self.get_download_url(potential_file_index) + if file_url: + return True + return False diff --git a/openassessment/xblock/apis/submissions/submissions_actions.py b/openassessment/xblock/apis/submissions/submissions_actions.py new file mode 100644 index 0000000000..e52c99281d --- /dev/null +++ b/openassessment/xblock/apis/submissions/submissions_actions.py @@ -0,0 +1,359 @@ +""" +Base stateless API actions for acting upon learner submissions +""" + +import json +import logging +import os +from submissions.api import Submission, SubmissionError, SubmissionRequestError + +from openassessment.fileupload.exceptions import FileUploadError +from openassessment.workflow.errors import AssessmentWorkflowError +from openassessment.xblock.apis.submissions.errors import ( + DeleteNotAllowed, + EmptySubmissionError, + NoTeamToCreateSubmissionForError, + DraftSaveException, + OnlyOneFileAllowedException, + SubmissionValidationException, + AnswerTooLongException, + StudioPreviewException, + MultipleSubmissionsException, + SubmitInternalError, + UnsupportedFileTypeException +) + +from openassessment.xblock.utils.validation import validate_submission +from openassessment.xblock.utils.data_conversion import ( + format_files_for_submission, + prepare_submission_for_serialization, +) +logger = logging.getLogger(__name__) # pylint: disable=invalid-name + + +def submit(data, block_config_data, block_submission_data, block_workflow_data): + student_sub_data = data["submission"] + success, msg = validate_submission( + student_sub_data, + block_config_data.prompts, + block_config_data.translate, + block_config_data.text_response, + ) + if not success: + raise SubmissionValidationException(msg) + + student_item_dict = block_config_data.student_item_dict + + # Short-circuit if no user is defined (as in Studio Preview mode) + # Since students can't submit, they will never be able to progress in the workflow + if block_config_data.in_studio_preview: + raise StudioPreviewException() + + if block_submission_data.has_submitted: + raise MultipleSubmissionsException() + + try: + # a submission for a team generates matching submissions for all members + if block_config_data.is_team_assignment(): + return create_team_submission( + student_item_dict, + student_sub_data, + block_config_data, + block_submission_data, + block_workflow_data + ) + else: + return create_submission( + student_item_dict, + student_sub_data, + block_config_data, + block_submission_data, + block_workflow_data + ) + except SubmissionRequestError as err: + # Handle the case of an answer that's too long as a special case, + # so we can display a more specific error message. + # Although we limit the number of characters the user can + # enter on the client side, the submissions API uses the JSON-serialized + # submission to calculate length. If each character submitted + # by the user takes more than 1 byte to encode (for example, double-escaped + # newline characters or non-ASCII unicode), then the user might + # exceed the limits set by the submissions API. In that case, + # we display an error message indicating that the answer is too long. + answer_too_long = any( + "maximum answer size exceeded" in answer_err.lower() + for answer_err in err.field_errors.get("answer", []) + ) + if answer_too_long: + logger.exception(f"Response exceeds maximum allowed size: {student_item_dict}") + max_size = f"({int(Submission.MAXSIZE / 1024)} KB)" + base_error = block_config_data.translate("Response exceeds maximum allowed size.") + extra_info = block_config_data.translate( + "Note: if you have a spellcheck or grammar check browser extension, " + "try disabling, reloading, and reentering your response before submitting." + ) + raise AnswerTooLongException(f"{base_error} {max_size} {extra_info}") from err + msg = ( + "The submissions API reported an invalid request error " + "when submitting a response for the user: {student_item}" + ).format(student_item=student_item_dict) + logger.exception(msg) + raise + except EmptySubmissionError: + msg = ( + "Attempted to submit submission for user {student_item}, " + "but submission contained no content." + ).format(student_item=student_item_dict) + logger.exception(msg) + raise + except ( + SubmissionError, + AssessmentWorkflowError, + NoTeamToCreateSubmissionForError, + ) as e: + msg = ( + "An unknown error occurred while submitting " + "a response for the user: {student_item}" + ).format( + student_item=student_item_dict + ) + logger.exception(msg) + raise SubmitInternalError from e + + +def create_submission( + student_item_dict, + submission_data, + block_config_data, + block_submission_data, + block_workflow_data +): + """Creates submission for the submitted assessment response or a list for a team assessment.""" + # Import is placed here to avoid model import at project startup. + from submissions import api + + # Serialize the submission + submission_dict = prepare_submission_for_serialization(submission_data) + + # Add files + uploaded_files = block_submission_data.files.get_uploads_for_submission() + submission_dict.update(format_files_for_submission(uploaded_files)) + + # Validate + if block_submission_data.submission_is_empty(submission_dict): + raise EmptySubmissionError + + # Create submission + submission = api.create_submission(student_item_dict, submission_dict) + block_workflow_data.create_workflow(submission["uuid"]) + + # Set student submission_uuid + block_config_data._block.submission_uuid = submission["uuid"] # pylint: disable=protected-access + + # Emit analytics event... + block_config_data.publish_event( + "openassessmentblock.create_submission", + { + "submission_uuid": submission["uuid"], + "attempt_number": submission["attempt_number"], + "created_at": submission["created_at"], + "submitted_at": submission["submitted_at"], + "answer": submission["answer"], + }, + ) + + return submission + + +def create_team_submission( + student_item_dict, + submission_data, + block_config_data, + block_submission_data, + block_workflow_data +): + """A student submitting for a team should generate matching submissions for every member of the team.""" + + if not block_config_data.has_team: + student_id = student_item_dict["student_id"] + course_id = block_config_data.course_id + msg = f"Student {student_id} has no team for course {course_id}" + logger.exception(msg) + raise NoTeamToCreateSubmissionForError(msg) + + # Import is placed here to avoid model import at project startup. + from submissions import team_api + + team_info = block_config_data.get_team_info() + + # Serialize the submission + submission_dict = prepare_submission_for_serialization(submission_data) + + # Add files + uploaded_files = block_submission_data.files.get_uploads_for_submission() + submission_dict.update(format_files_for_submission(uploaded_files)) + + # Validate + if block_submission_data.submission_is_empty(submission_dict): + raise EmptySubmissionError + + submitter_anonymous_user_id = block_config_data.get_anonymous_user_id_from_xmodule_runtime() + user = block_config_data.get_real_user(submitter_anonymous_user_id) + + anonymous_student_ids = block_config_data.get_anonymous_user_ids_for_team() + submission = team_api.create_submission_for_team( + block_config_data.course_id, + student_item_dict["item_id"], + team_info["team_id"], + user.id, + anonymous_student_ids, + submission_dict, + ) + + block_workflow_data.create_team_workflow(submission["team_submission_uuid"]) + + # Emit analytics event... + block_config_data.publish_event( + "openassessmentblock.create_team_submission", + { + "submission_uuid": submission["team_submission_uuid"], + "team_id": team_info["team_id"], + "attempt_number": submission["attempt_number"], + "created_at": submission["created_at"], + "submitted_at": submission["submitted_at"], + "answer": submission["answer"], + }, + ) + return submission + + +def save_submission_draft(student_submission_data, block_config_data, block_submission_data): + """ + Save the current student's response submission. + If the student already has a response saved, this will overwrite it. + + Args: + data (dict): Data should have a single key 'submission' that contains + the text of the student's response. Optionally, the data could + have a 'file_urls' key that is the path to an associated file for + this submission. + suffix (str): Not used. + + Returns: + dict: Contains a bool 'success' and unicode string 'msg'. + """ + success, msg = validate_submission( + student_submission_data, + block_config_data.prompts, + block_config_data.translate, + block_config_data.text_response, + ) + if not success: + raise SubmissionValidationException(msg) + try: + block_submission_data.saved_response = json.dumps(prepare_submission_for_serialization(student_submission_data)) + block_submission_data.has_saved = True + + # Emit analytics event... + block_config_data.publish_event( + "openassessmentblock.save_submission", + {"saved_response": block_submission_data.saved_response}, + ) + except Exception as e: # pylint: disable=broad-except + raise DraftSaveException from e + + +def append_file_data(file_data, block_config, submission_info): + """ + Appends a list of file data to the current block state + + Args: + block_config (ORAConfigAPI) + submission_info (SubmissionAPI) + files_to_append (list of { + 'description': (str) + 'name': (str) + 'size': (int) + }) + """ + try: + new_files = submission_info.files.file_manager.append_uploads(*file_data) + except FileUploadError as exc: + logger.exception( + "append_file_data: file description for data %s failed with error %s", file_data, exc, exc_info=True + ) + raise + except Exception as exc: # pylint: disable=broad-except + logger.exception( + "append_file_data: unhandled exception for data %s. Error: %s", file_data, exc, exc_info=True + ) + raise FileUploadError(exc) from exc + + # Emit analytics event... + block_config.publish_event( + "openassessmentblock.save_files_descriptions", + {"saved_response": submission_info.files.saved_files_descriptions}, + ) + return new_files + + +def remove_uploaded_file(file_index, block_config, submission_info): + """ + Removes uploaded user file. + """ + file_key = submission_info.files.get_file_key(file_index) + if not submission_info.files.can_delete_file(file_index): + raise DeleteNotAllowed() + try: + submission_info.files.delete_uploaded_file(file_index) + # Emit analytics event... + block_config.publish_event( + "openassessmentblock.remove_uploaded_file", + {"student_item_key": file_key}, + ) + logger.debug("Deleted file %s", file_key) + except FileUploadError as exc: + logger.exception( + "FileUploadError: Error when deleting file %s : %s", + file_key, + exc, + exc_info=True, + ) + raise + except Exception as exc: # pylint: disable=broad-except + logger.exception( + "FileUploadError: unhandled exception for %s. Error: %s", + file_key, + exc, + exc_info=True, + ) + raise FileUploadError(exc) from exc + + +def get_upload_url(content_type, file_name, file_index, block_config, submission_info): + """ + Request a URL to be used for uploading content for a given file + + Returns: + A URL to be used to upload content associated with this submission. + + """ + if not block_config.allow_multiple_files: + if submission_info.files.has_any_file_in_upload_space(): + raise OnlyOneFileAllowedException() + + _, file_ext = os.path.splitext(file_name) + file_ext = file_ext.strip(".") if file_ext else None + + # Validate that there are no data issues and file type is allowed + if not submission_info.files.is_supported_upload_type(file_ext, content_type): + raise UnsupportedFileTypeException(file_ext) + + # Attempt to upload + try: + key = submission_info.files.get_file_key(file_index) + url = submission_info.files.get_upload_url(key, content_type) + return url + except FileUploadError: + logger.exception("FileUploadError:Error retrieving upload URL") + raise diff --git a/openassessment/xblock/apis/submissions/submissions_api.py b/openassessment/xblock/apis/submissions/submissions_api.py index b477fbc875..6ec949be74 100644 --- a/openassessment/xblock/apis/submissions/submissions_api.py +++ b/openassessment/xblock/apis/submissions/submissions_api.py @@ -4,19 +4,17 @@ from copy import deepcopy import logging +from submissions.api import get_submission from submissions.team_api import get_team_submission +from openassessment.data import OraSubmissionAnswerFactory + from openassessment.xblock.utils.data_conversion import ( - format_files_for_submission, - prepare_submission_for_serialization, + create_submission_dict, update_saved_response_format, ) from openassessment.xblock.utils.resolve_dates import DISTANT_FUTURE from openassessment.xblock.apis.step_data_api import StepDataAPI -from openassessment.xblock.apis.submissions.errors import ( - EmptySubmissionError, - NoTeamToCreateSubmissionForError, -) from openassessment.xblock.apis.submissions.file_api import FileAPI logger = logging.getLogger(__name__) # pylint: disable=invalid-name @@ -40,7 +38,7 @@ def has_submitted(self): @property def has_been_cancelled(self): - return self.workflow and self.workflow["status"] == "cancelled" + return bool(self.workflow) and self.workflow["status"] == "cancelled" @property def cancellation_info(self): @@ -49,6 +47,20 @@ def cancellation_info(self): else: return self.workflow_data.get_workflow_cancellation_info(self.submission_uuid) + def _safe_get_cancellation_info_field(self, field): + cancellation_info = self.cancellation_info + if cancellation_info is None: + return None + return cancellation_info.get(field) + + @property + def cancelled_by(self): + return self._safe_get_cancellation_info_field('cancelled_by') + + @property + def cancelled_at(self): + return self._safe_get_cancellation_info_field('cancelled_at') + @property def has_received_final_grade(self): return self.workflow and self.workflow["status"] == "done" @@ -121,6 +133,38 @@ def submission_uuid(self): """Return a submission_uuid or None if the user hasn't submitted""" return self.workflow.get("submission_uuid") + @property + def saved_response_submission_dict(self): + """Return the current saved response in an expected format""" + return create_submission_dict( + self.saved_response, + self.config_data.prompts + ) + + def get_submission(self, submission_uuid): + """ + Get a serialized representation of an ORA submission. + Returns: + { + "text_responses": (list) [text responses] + "uploaded_files": (list) [ + { + "download_url": (url) + "description": (str) + "name": (str) + "size": (int) + } + ] + } + + Raises: + submissions.errors.SubmissionError: If there was an error loading the submission + openassessment.data.VersionNotFoundException: If the submission did not match any known + ORA answer version + """ + submission = get_submission(submission_uuid) + return OraSubmissionAnswerFactory.parse_submission_raw_answer(submission.get('answer')) + # Team Info @property @@ -147,6 +191,33 @@ def team_id(self): def team_submission_uuid(self): return self.workflow.get("team_submission_uuid") + def get_submission_team_info(self, workflow): + """ + Returns tuple (team info, team ID) + """ + if not self.is_team_assignment: + return {}, None + + team_info = self.config_data.get_team_info(staff_or_preview_data=False) + if team_info is None: + team_info = {} + + # Get the id of the team the learner is currently on + team_id = team_info.get('team_id', None) + if team_id: + # Has the team the learner is currently on already submitted? + team_info['has_submitted'] = self.config_data.does_team_have_submission(team_id) + + if workflow: + # If the learner has submitted, use the team id on the learner's submission later + # for shared files lookup. If the learner has submitted already for a different team + # and then joined another team, we should show the submission that they are actually a part of, + # rather than just their current team. If they have a submission (and therefore a workflow) then + # that takes precedence. + team_submission = get_team_submission(workflow['team_submission_uuid']) + team_id = team_submission['team_id'] + return team_info, team_id + # Submission config @property @@ -213,95 +284,3 @@ def submission_is_empty(self, submission_dict): has_content |= len(submission_dict.get("file_keys", [])) > 0 return not has_content - - def create_submission(self, student_item_dict, submission_data): - """Creates submission for the submitted assessment response or a list for a team assessment.""" - # Import is placed here to avoid model import at project startup. - from submissions import api - - # Serialize the submission - submission_dict = prepare_submission_for_serialization(submission_data) - - # Add files - uploaded_files = self.files.get_uploads_for_submission() - submission_dict.update(format_files_for_submission(uploaded_files)) - - # Validate - if self.submission_is_empty(submission_dict): - raise EmptySubmissionError - - # Create submission - submission = api.create_submission(student_item_dict, submission_dict) - self.workflow_data.create_workflow(submission["uuid"]) - - # Set student submission_uuid - self._block.submission_uuid = submission["uuid"] - - # Emit analytics event... - self.config_data.publish_event( - "openassessmentblock.create_submission", - { - "submission_uuid": submission["uuid"], - "attempt_number": submission["attempt_number"], - "created_at": submission["created_at"], - "submitted_at": submission["submitted_at"], - "answer": submission["answer"], - }, - ) - - return submission - - def create_team_submission(self, student_item_dict, submission_data): - """A student submitting for a team should generate matching submissions for every member of the team.""" - - if not self.config_data.has_team: - student_id = student_item_dict["student_id"] - course_id = self.config_data.course_id - msg = f"Student {student_id} has no team for course {course_id}" - logger.exception(msg) - raise NoTeamToCreateSubmissionForError(msg) - - # Import is placed here to avoid model import at project startup. - from submissions import team_api - - team_info = self.config_data.get_team_info() - - # Serialize the submission - submission_dict = prepare_submission_for_serialization(submission_data) - - # Add files - uploaded_files = self.files.get_uploads_for_submission() - submission_dict.update(format_files_for_submission(uploaded_files)) - - # Validate - if self.submission_is_empty(submission_dict): - raise EmptySubmissionError - - submitter_anonymous_user_id = self.config_data.get_anonymous_user_id_from_xmodule_runtime() - user = self.config_data.get_real_user(submitter_anonymous_user_id) - - anonymous_student_ids = self.config_data.get_anonymous_user_ids_for_team() - submission = team_api.create_submission_for_team( - self.config_data.course_id, - student_item_dict["item_id"], - team_info["team_id"], - user.id, - anonymous_student_ids, - submission_dict, - ) - - self.workflow_data.create_team_workflow(submission["team_submission_uuid"]) - - # Emit analytics event... - self.config_data.publish_event( - "openassessmentblock.create_team_submission", - { - "submission_uuid": submission["team_submission_uuid"], - "team_id": team_info["team_id"], - "attempt_number": submission["attempt_number"], - "created_at": submission["created_at"], - "submitted_at": submission["submitted_at"], - "answer": submission["answer"], - }, - ) - return submission diff --git a/openassessment/xblock/apis/workflow_api.py b/openassessment/xblock/apis/workflow_api.py index eeb5998d96..621ca9de95 100644 --- a/openassessment/xblock/apis/workflow_api.py +++ b/openassessment/xblock/apis/workflow_api.py @@ -3,9 +3,13 @@ """ +from enum import Enum + + class WorkflowAPI: def __init__(self, block): self._block = block + self.grades = self._block.grades_data def get_workflow_info(self, submission_uuid=None): return self._block.get_workflow_info(submission_uuid) @@ -18,6 +22,10 @@ def workflow(self): def has_workflow(self): return bool(self.workflow) + @property + def assessment_steps(self): + return self._block.assessment_steps + @property def has_status(self): return bool(self.status) @@ -68,12 +76,16 @@ def submission_uuid(self): @property def workflow_requirements(self): - return self._block.workflow_requirements + return self._block.workflow_requirements() @property def status(self): return self.workflow.get("status") + @property + def has_received_grade(self): + return bool(self.workflow.get('score')) + def get_workflow_status_counts(self): return self._block.get_workflow_status_counts() @@ -103,3 +115,64 @@ def get_team_workflow_status_counts(self): def get_team_workflow_cancellation_info(self, team_submission_uuid): return self._block.get_team_workflow_cancellation_info(team_submission_uuid) + + +class WorkflowStep: + """Utility class for comparing and serializing steps""" + + # Store one disambiguated step + canonical_step = None + step_name = None + + # Enum of workflow steps, used for canonical mapping of steps + class Step(Enum): + SUBMISSION = "submission" + PEER = "peer" + STUDENT_TRAINING = "training" + STAFF = "staff" + SELF = "self" + AI = "ai" + + _assessment_module_mappings = { + "peer-assessment": Step.PEER, + "student-training": Step.STUDENT_TRAINING, + "staff-assessment": Step.STAFF, + "self-assessment": Step.SELF, + } + + _workflow_step_mappings = { + "submission": Step.SUBMISSION, + "training": Step.STUDENT_TRAINING, + "peer": Step.PEER, + "self": Step.SELF, + "staff": Step.STAFF, + } + + _step_mappings = {**_assessment_module_mappings, **_workflow_step_mappings} + + @property + def assessment_module_name(self): + """ Get the assessment module name for the step """ + for assessment_step, canonical_step in self._assessment_module_mappings.items(): + if canonical_step == self.canonical_step: + return assessment_step + return "unknown" + + @property + def workflow_step_name(self): + """ Get the workflow step name for the step """ + for workflow_step, canonical_step in self._workflow_step_mappings.items(): + if canonical_step == self.canonical_step: + return workflow_step + return "unknown" + + def __init__(self, step_name): + # Get the "canonical" step from any representation of the step name + self.step_name = step_name + self.canonical_step = self._step_mappings.get(step_name) + + def __eq__(self, __value: object) -> bool: + return self.canonical_step == self._step_mappings.get(__value) + + def __repr__(self) -> str: + return str(self.canonical_step) diff --git a/openassessment/xblock/config_mixin.py b/openassessment/xblock/config_mixin.py index 1d0c820237..1d74a4a7ea 100644 --- a/openassessment/xblock/config_mixin.py +++ b/openassessment/xblock/config_mixin.py @@ -14,9 +14,11 @@ USER_STATE_UPLOAD_DATA = 'user_state_upload_data' RUBRIC_REUSE = 'rubric_reuse' ENHANCED_STAFF_GRADER = 'enhanced_staff_grader' +MFE_VIEWS = 'mfe_views' FEATURE_TOGGLES_BY_FLAG_NAME = { ALL_FILES_URLS: 'ENABLE_ORA_ALL_FILE_URLS', + MFE_VIEWS: 'ENABLE_ORA_MFE_VIEWS', TEAM_SUBMISSIONS: 'ENABLE_ORA_TEAM_SUBMISSIONS', USER_STATE_UPLOAD_DATA: 'ENABLE_ORA_USER_STATE_UPLOAD_DATA', RUBRIC_REUSE: 'ENABLE_ORA_RUBRIC_REUSE', @@ -89,6 +91,13 @@ def is_feature_enabled(self, flag): return False + @cached_property + def mfe_views_enabled(self): + """ + Returns a boolean specifying if mfe views are enabled. + """ + return self.is_feature_enabled(MFE_VIEWS) + @cached_property def team_submissions_enabled(self): """ diff --git a/openassessment/xblock/files_mixin.py b/openassessment/xblock/files_mixin.py index c68400b25f..87d111e629 100644 --- a/openassessment/xblock/files_mixin.py +++ b/openassessment/xblock/files_mixin.py @@ -92,12 +92,11 @@ def get_download_urls_from_submission(cls, submission): urls = [] raw_answer = submission.get('answer') answer = OraSubmissionAnswerFactory.parse_submission_raw_answer(raw_answer) - for file_upload in answer.get_file_uploads(missing_blank=True): - file_download_url = cls._get_url_by_file_key(file_upload.key) - if file_download_url: + for file_upload in answer.get_file_uploads(missing_blank=True, generate_urls=True): + if file_upload.url: urls.append( file_upload_api.FileDescriptor( - download_url=file_download_url, + download_url=file_upload.url, description=file_upload.description, name=file_upload.name, size=file_upload.size, diff --git a/openassessment/xblock/grade_mixin.py b/openassessment/xblock/grade_mixin.py index 1f3290be7f..04d1ad7752 100644 --- a/openassessment/xblock/grade_mixin.py +++ b/openassessment/xblock/grade_mixin.py @@ -55,7 +55,7 @@ def render_grade(self, data, suffix=''): # pylint: disable=unused-argument # Render the grading section based on the status of the workflow try: if status == "cancelled": - path = 'openassessmentblock/grade/oa_grade_cancelled.html' + path = 'legacy/grade/oa_grade_cancelled.html' context['score'] = workflow['score'] elif status == "done": path, context = self.render_grade_complete(workflow) @@ -68,9 +68,9 @@ def render_grade(self, data, suffix=''): # pylint: disable=unused-argument context['is_waiting_staff'] = "is--waiting--staff" context['score_explanation'] = self._get_score_explanation(workflow) - path = 'openassessmentblock/grade/oa_grade_waiting.html' + path = 'legacy/grade/oa_grade_waiting.html' elif status is None: - path = 'openassessmentblock/grade/oa_grade_not_started.html' + path = 'legacy/grade/oa_grade_not_started.html' else: # status is 'self' or 'peer', which implies that the workflow is incomplete path, context = self.render_grade_incomplete(workflow) except (sub_api.SubmissionError, PeerAssessmentError, SelfAssessmentError): @@ -159,7 +159,7 @@ def render_grade_complete(self, workflow): 'xblock_id': self.get_xblock_id() } - return ('openassessmentblock/grade/oa_grade_complete.html', context) + return ('legacy/grade/oa_grade_complete.html', context) def render_grade_incomplete(self, workflow): """ @@ -181,7 +181,7 @@ def _is_incomplete(step): incomplete_steps.append(self._("Self Assessment")) return ( - 'openassessmentblock/grade/oa_grade_incomplete.html', + 'legacy/grade/oa_grade_incomplete.html', { 'incomplete_steps': incomplete_steps, 'xblock_id': self.get_xblock_id(), diff --git a/openassessment/xblock/leaderboard_mixin.py b/openassessment/xblock/leaderboard_mixin.py index a56a0dbad7..54c563c5d8 100644 --- a/openassessment/xblock/leaderboard_mixin.py +++ b/openassessment/xblock/leaderboard_mixin.py @@ -77,7 +77,7 @@ def render_leaderboard_complete(self, student_item_dict): # Retrieve top scores from the submissions API # Since this uses the read-replica and caches the results, - # there will be some delay in the request latency. + # there will be some delay in the latency. scores = sub_api.get_top_submissions( student_item_dict['course_id'], student_item_dict['item_id'], @@ -88,12 +88,11 @@ def render_leaderboard_complete(self, student_item_dict): raw_score_content_answer = score['content'] answer = OraSubmissionAnswerFactory.parse_submission_raw_answer(raw_score_content_answer) score['files'] = [] - for uploaded_file in answer.get_file_uploads(missing_blank=True): - file_download_url = self._get_file_download_url(uploaded_file.key) - if file_download_url: + for uploaded_file in answer.get_file_uploads(missing_blank=True, generate_urls=True): + if uploaded_file.url: score['files'].append( file_upload_api.FileDescriptor( - download_url=file_download_url, + download_url=uploaded_file.url, description=uploaded_file.description, name=uploaded_file.name, size=uploaded_file.size, @@ -118,7 +117,7 @@ def render_leaderboard_complete(self, student_item_dict): 'file_upload_type': self.file_upload_type, 'xblock_id': self.get_xblock_id()} - return 'openassessmentblock/leaderboard/oa_leaderboard_show.html', context + return 'legacy/leaderboard/oa_leaderboard_show.html', context def render_leaderboard_incomplete(self): """ @@ -127,7 +126,7 @@ def render_leaderboard_incomplete(self): Returns: template_path (string), tuple of context (dict) """ - return 'openassessmentblock/leaderboard/oa_leaderboard_waiting.html', {'xblock_id': self.get_xblock_id()} + return 'legacy/leaderboard/oa_leaderboard_waiting.html', {'xblock_id': self.get_xblock_id()} def _get_file_download_url(self, file_key): """ diff --git a/openassessment/xblock/message_mixin.py b/openassessment/xblock/message_mixin.py index 889e494551..67a9e1d8ab 100644 --- a/openassessment/xblock/message_mixin.py +++ b/openassessment/xblock/message_mixin.py @@ -52,7 +52,7 @@ def render_message(self, data, suffix=''): # pylint: disable=unused-argument if status is None: path, context = self.render_message_no_team() else: - path, context = 'openassessmentblock/message/oa_message_unavailable.html', {} + path, context = 'legacy/message/oa_message_unavailable.html', {} elif status in ("done", "waiting"): path, context = self.render_message_complete(status_details) elif problem_is_closed or active_step_deadline_info.get('is_closed'): @@ -66,7 +66,7 @@ def render_message(self, data, suffix=''): # pylint: disable=unused-argument else: # Default path leads to an "instruction-unavailable" block # Default context is empty - path, context = 'openassessmentblock/message/oa_message_unavailable.html', {} + path, context = 'legacy/message/oa_message_unavailable.html', {} context['xblock_id'] = self.get_xblock_id() return self.render_assessment(path, context) @@ -94,7 +94,7 @@ def render_message_incomplete(self, status, deadline_info): "peer_not_available": self.no_peers, } - return 'openassessmentblock/message/oa_message_incomplete.html', context + return 'legacy/message/oa_message_incomplete.html', context def render_message_complete(self, status_details): """ @@ -110,7 +110,7 @@ def render_message_complete(self, status_details): "waiting": self.get_waiting_details(status_details), } - return 'openassessmentblock/message/oa_message_complete.html', context + return 'legacy/message/oa_message_complete.html', context def render_message_closed(self, status_info): """ @@ -129,7 +129,7 @@ def render_message_closed(self, status_info): "not_yet_open": (reason == "start") } - return 'openassessmentblock/message/oa_message_closed.html', context + return 'legacy/message/oa_message_closed.html', context def render_message_open(self, deadline_info): """ @@ -148,7 +148,7 @@ def render_message_open(self, deadline_info): "approaching": submission_approaching } - return 'openassessmentblock/message/oa_message_open.html', context + return 'legacy/message/oa_message_open.html', context def render_message_cancelled(self): """ @@ -163,7 +163,7 @@ def render_message_cancelled(self): context = { "is_team_assignment": self.is_team_assignment() } - return 'openassessmentblock/message/oa_message_cancelled.html', context + return 'legacy/message/oa_message_cancelled.html', context def _get_deadline_info(self): """ @@ -265,4 +265,4 @@ def render_message_no_team(self): else: teamset_name = '' context = {'teamset_name': teamset_name} - return 'openassessmentblock/message/oa_message_no_team.html', context + return 'legacy/message/oa_message_no_team.html', context diff --git a/openassessment/xblock/openassessmentblock.py b/openassessment/xblock/openassessmentblock.py index 833fd4a3f8..eb2e506b54 100644 --- a/openassessment/xblock/openassessmentblock.py +++ b/openassessment/xblock/openassessmentblock.py @@ -22,6 +22,7 @@ from openassessment.staffgrader.staff_grader_mixin import StaffGraderMixin from openassessment.workflow.errors import AssessmentWorkflowError +from openassessment.xblock.apis.grades_api import GradesAPI from openassessment.xblock.apis.submissions.submissions_api import SubmissionAPI from openassessment.xblock.course_items_listing_mixin import CourseItemsListingMixin from openassessment.xblock.utils.data_conversion import ( @@ -315,6 +316,10 @@ def staff_data(self): def student_training_data(self): return StudentTrainingAPI(self) + @property + def grades_data(self): + return GradesAPI(self) + @property def api_data(self): return ORADataAccessor(self) @@ -519,6 +524,50 @@ def get_student_item_dict(self, anonymous_user_id=None): } return student_item_dict + @togglable_mobile_support + def author_view(self, context=None): # pylint: disable=unused-argument + """The main view of OpenAssessmentBlock, displayed when viewing courses. + + View which displays the legacy UI for authoring in Studio. + + Args: + context: Not used for this view. + + Returns: + (Fragment): The HTML Fragment for this XBlock, which determines the + general frame of the Open Ended Assessment Question. + """ + # On page load, update the workflow status. + # We need to do this here because peers may have graded us, in which + # case we may have a score available. + + try: + self.update_workflow_status() + except AssessmentWorkflowError: + # Log the exception, but continue loading the page + logger.exception('An error occurred while updating the workflow on page load.') + + ui_models = self._create_ui_models() + + leaderboard_model = None + for model in ui_models: + if model["name"] == "leaderboard": + leaderboard_model = model + + # All data we intend to pass to the front end. + context_dict = { + "mfe_views": False, + "leaderboard_modal": leaderboard_model, + "prompts": self.prompts, + "prompts_type": self.prompts_type, + "rubric_assessments": ui_models, + "show_staff_area": self.is_course_staff and not self.in_studio_preview, + "title": self.title, + "xblock_id": self.get_xblock_id(), + } + template = get_template("openassessmentblock/base.html") + return self._create_fragment(template, context_dict, initialize_js_func='OpenAssessmentBlock') + @togglable_mobile_support def student_view(self, context=None): # pylint: disable=unused-argument """The main view of OpenAssessmentBlock, displayed when viewing courses. @@ -545,17 +594,68 @@ def student_view(self, context=None): # pylint: disable=unused-argument logger.exception('An error occurred while updating the workflow on page load.') ui_models = self._create_ui_models() + + leaderboard_model = None + for model in ui_models: + if model["name"] == "leaderboard": + leaderboard_model = model + + use_mfe_views = self.mfe_views_enabled and self.mfe_views_supported + # All data we intend to pass to the front end. context_dict = { - "title": self.title, + "leaderboard_modal": leaderboard_model, + "mfe_views": use_mfe_views, "prompts": self.prompts, "prompts_type": self.prompts_type, "rubric_assessments": ui_models, "show_staff_area": self.is_course_staff and not self.in_studio_preview, + "title": self.title, + "xblock_id": self.get_xblock_id(), + "course_id": self.course_id, } - template = get_template("openassessmentblock/oa_base.html") + template = get_template("openassessmentblock/base.html") return self._create_fragment(template, context_dict, initialize_js_func='OpenAssessmentBlock') + @property + def uses_default_assessment_order(self): + """ + Determine if our steps have been reordered (omission of steps is fine) + """ + last_step_index = 0 + for assessment_step in self.assessment_steps: + step_index = self.VALID_ASSESSMENT_TYPES.index(assessment_step) + + if step_index < last_step_index: + return False + last_step_index = step_index + + return True + + @property + def mfe_views_supported(self): + """ + Currently, there are some unsupported use-cases for ORA MFE views. + + Unsupported use-cases: + 1) Team assignments + 2) Assignments with reordered assessment steps + + Returns: + - False if we are in one of these unsupported configurations. + - True otherwise. + """ + + # Team assessments are currently unsupported + if self.is_team_assignment(): + return False + + # Assessment step reordering is currently unsupported + if not self.uses_default_assessment_order: + return False + + return True + def ora_blocks_listing_view(self, context=None): """This view is used in the Open Response Assessment tab in the LMS Instructor Dashboard to display all available course ORA blocks. @@ -584,7 +684,7 @@ def ora_blocks_listing_view(self, context=None): "ora_item_view_enabled": ora_item_view_enabled } - template = get_template('openassessmentblock/instructor_dashboard/oa_listing.html') + template = get_template('legacy/instructor_dashboard/oa_listing.html') min_postfix = '.min' if settings.DEBUG else '' @@ -625,7 +725,7 @@ def grade_available_responses_view(self, context=None): # pylint: disable=unuse self.get_staff_assessment_statistics_context(student_item["course_id"], student_item["item_id"]) ) - template = get_template('openassessmentblock/instructor_dashboard/oa_grade_available_responses.html') + template = get_template('legacy/instructor_dashboard/oa_grade_available_responses.html') return self._create_fragment(template, context_dict, initialize_js_func='StaffAssessmentBlock') @@ -655,7 +755,7 @@ def waiting_step_details_view(self, context=None): # pylint: disable=unused-arg self, "waiting_step_data", ) - template = get_template('openassessmentblock/instructor_dashboard/oa_waiting_step_details.html') + template = get_template('legacy/instructor_dashboard/oa_waiting_step_details.html') return self._create_fragment( template, @@ -977,7 +1077,7 @@ def render_error(self, error_msg): Response: A response object with an HTML body. """ context = {'error_msg': error_msg} - template = get_template('openassessmentblock/oa_error.html') + template = get_template('legacy/oa_error.html') return Response(template.render(context), content_type='application/html', charset='UTF-8') def is_closed(self, step=None, course_staff=None): diff --git a/openassessment/xblock/staff_area_mixin.py b/openassessment/xblock/staff_area_mixin.py index e5a65b3419..2fb599453b 100644 --- a/openassessment/xblock/staff_area_mixin.py +++ b/openassessment/xblock/staff_area_mixin.py @@ -103,7 +103,7 @@ def get_staff_path_and_context(self): Gets the path and context for the staff section of the ORA XBlock. """ context = {} - path = 'openassessmentblock/staff_area/oa_staff_area.html' + path = 'legacy/staff_area/oa_staff_area.html' student_item = self.get_student_item_dict() @@ -380,7 +380,7 @@ def render_staff_grade_form(self, data, suffix=''): # pylint: disable=W0613 self.add_team_submission_context( submission_context, individual_submission_uuid=submission['uuid'], transform_usernames=True ) - path = 'openassessmentblock/staff_area/oa_staff_grade_learners_assessment.html' + path = 'legacy/staff_area/oa_staff_grade_learners_assessment.html' return self.render_assessment(path, submission_context) return self.render_error(self._("Error loading the checked out learner response.")) return self.render_error(self._("No other learner responses are available for grading at this time.")) @@ -402,7 +402,7 @@ def render_staff_grade_counts(self, data, suffix=''): # pylint: disable=W0613 student_item_dict.get('course_id'), student_item_dict.get('item_id') ) - path = 'openassessmentblock/staff_area/oa_staff_grade_learners_count.html' + path = 'legacy/staff_area/oa_staff_grade_learners_count.html' return self.render_assessment(path, context) except PeerAssessmentInternalError: @@ -514,7 +514,7 @@ def get_student_info_path_and_context(self, student_username): # A student outside of the course will not exist and is valid pass - path = 'openassessmentblock/staff_area/oa_student_info.html' + path = 'legacy/staff_area/oa_student_info.html' return path, context def add_submission_context(self, submission_uuid, context): diff --git a/openassessment/xblock/static/dist/manifest.json b/openassessment/xblock/static/dist/manifest.json index 63152e4411..402986fe65 100644 --- a/openassessment/xblock/static/dist/manifest.json +++ b/openassessment/xblock/static/dist/manifest.json @@ -4,10 +4,10 @@ "openassessment-editor-textarea.js.map": "/openassessment-editor-textarea.b8f866ba96a1d2ad92a4.js.map", "openassessment-editor-tinymce.js": "/openassessment-editor-tinymce.2cc0cab55c3be729265e.js", "openassessment-editor-tinymce.js.map": "/openassessment-editor-tinymce.2cc0cab55c3be729265e.js.map", - "openassessment-lms.css": "/openassessment-lms.d876ac9af6fabe98df40.css", - "openassessment-lms.js": "/openassessment-lms.d876ac9af6fabe98df40.js", - "openassessment-lms.css.map": "/openassessment-lms.d876ac9af6fabe98df40.css.map", - "openassessment-lms.js.map": "/openassessment-lms.d876ac9af6fabe98df40.js.map", + "openassessment-lms.css": "/openassessment-lms.983dceadf8449ca82c4f.css", + "openassessment-lms.js": "/openassessment-lms.983dceadf8449ca82c4f.js", + "openassessment-lms.css.map": "/openassessment-lms.983dceadf8449ca82c4f.css.map", + "openassessment-lms.js.map": "/openassessment-lms.983dceadf8449ca82c4f.js.map", "openassessment-ltr.css": "/openassessment-ltr.fd8409d820154aa22da8.css", "openassessment-ltr.js": "/openassessment-ltr.fd8409d820154aa22da8.js", "openassessment-ltr.css.map": "/openassessment-ltr.fd8409d820154aa22da8.css.map", diff --git a/openassessment/xblock/static/dist/openassessment-editor-textarea.js b/openassessment/xblock/static/dist/openassessment-editor-textarea.js index 4b9ab34a34..8730b06be0 100644 --- a/openassessment/xblock/static/dist/openassessment-editor-textarea.js +++ b/openassessment/xblock/static/dist/openassessment-editor-textarea.js @@ -63,7 +63,7 @@ /******/ /******/ var hotApplyOnUpdate = true; /******/ // eslint-disable-next-line no-unused-vars -/******/ var hotCurrentHash = "9f178f80778ef11c1723"; +/******/ var hotCurrentHash = "6b7b5c2e4e1e02ddf84d"; /******/ var hotRequestTimeout = 10000; /******/ var hotCurrentModuleData = {}; /******/ var hotCurrentChildModule; diff --git a/openassessment/xblock/static/dist/openassessment-editor-tinymce.js b/openassessment/xblock/static/dist/openassessment-editor-tinymce.js index 0dae526ebc..454a610a8f 100644 --- a/openassessment/xblock/static/dist/openassessment-editor-tinymce.js +++ b/openassessment/xblock/static/dist/openassessment-editor-tinymce.js @@ -63,7 +63,7 @@ /******/ /******/ var hotApplyOnUpdate = true; /******/ // eslint-disable-next-line no-unused-vars -/******/ var hotCurrentHash = "9f178f80778ef11c1723"; +/******/ var hotCurrentHash = "6b7b5c2e4e1e02ddf84d"; /******/ var hotRequestTimeout = 10000; /******/ var hotCurrentModuleData = {}; /******/ var hotCurrentChildModule; diff --git a/openassessment/xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.css b/openassessment/xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.css new file mode 100644 index 0000000000..27db8c50bf --- /dev/null +++ b/openassessment/xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.css @@ -0,0 +1,3 @@ + + +/*# sourceMappingURL=openassessment-lms.692d92a6c84a3a501206.css.map*/ \ No newline at end of file diff --git a/openassessment/xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js b/openassessment/xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js similarity index 99% rename from openassessment/xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js rename to openassessment/xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js index 3920357c0d..2de52f7bc6 100644 --- a/openassessment/xblock/static/dist/openassessment-lms.d876ac9af6fabe98df40.js +++ b/openassessment/xblock/static/dist/openassessment-lms.692d92a6c84a3a501206.js @@ -372,5 +372,5 @@ object-assign * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * Copyright 2022 Fonticons, Inc. */ -function Qu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Zu(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0;)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return t}function Xd(e){for(var t=[],n=(e||[]).length>>>0;n--;)t[n]=e[n];return t}function Fd(e){return e.classList?Xd(e.classList):(e.getAttribute("class")||"").split(" ").filter((function(e){return e}))}function Ud(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Vd(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,": ").concat(e[n].trim(),";")}),"")}function Gd(e){return e.size!==Hd.size||e.x!==Hd.x||e.y!==Hd.y||e.rotate!==Hd.rotate||e.flipX||e.flipY}function $d(){var e="svg-inline--fa",t=Wd.familyPrefix,n=Wd.replacementClass,r=':root, :host {\n --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";\n --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";\n --fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";\n --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Thin";\n --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";\n --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";\n}\n\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\n overflow: visible;\n box-sizing: content-box;\n}\n\n.svg-inline--fa {\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285705em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n top: 0.25em;\n}\n.svg-inline--fa.fa-fw {\n width: var(--fa-fw-width, 1.25em);\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\n transform: scale(var(--fa-counter-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n transition-delay: 0s;\n transition-duration: 0s;\n }\n}\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\n transform: rotate(var(--fa-rotate-angle, none));\n}\n\n.fa-stack {\n display: inline-block;\n vertical-align: middle;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse,\n.fa-duotone.fa-inverse {\n color: var(--fa-inverse, #fff);\n}';if("fa"!==t||n!==e){var a=new RegExp("\\.".concat("fa","\\-"),"g"),i=new RegExp("\\--".concat("fa","\\-"),"g"),o=new RegExp("\\.".concat(e),"g");r=r.replace(a,".".concat(t,"-")).replace(i,"--".concat(t,"-")).replace(o,".".concat(n))}return r}var Jd=!1;function Kd(){Wd.autoAddCss&&!Jd&&(!function(e){if(e&&_d){var t=hd.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var n=hd.head.childNodes,r=null,a=n.length-1;a>-1;a--){var i=n[a],o=(i.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(r=i)}hd.head.insertBefore(t,r)}}($d()),Jd=!0)}var Qd={mixout:function(){return{dom:{css:$d,insertCss:Kd}}},hooks:function(){return{beforeDOMElementCreation:function(){Kd()},beforeI2svg:function(){Kd()}}}},Zd=md||{};Zd.___FONT_AWESOME___||(Zd.___FONT_AWESOME___={}),Zd.___FONT_AWESOME___.styles||(Zd.___FONT_AWESOME___.styles={}),Zd.___FONT_AWESOME___.hooks||(Zd.___FONT_AWESOME___.hooks={}),Zd.___FONT_AWESOME___.shims||(Zd.___FONT_AWESOME___.shims=[]);var ef=Zd.___FONT_AWESOME___,tf=[],nf=!1;function rf(e){_d&&(nf?setTimeout(e,0):tf.push(e))}function af(e){var t=e.tag,n=e.attributes,r=void 0===n?{}:n,a=e.children,i=void 0===a?[]:a;return"string"==typeof e?Ud(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,'="').concat(Ud(e[n]),'" ')}),"").trim()}(r),">").concat(i.map(af).join(""),"")}function of(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}_d&&((nf=(hd.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(hd.readyState))||hd.addEventListener("DOMContentLoaded",(function e(){hd.removeEventListener("DOMContentLoaded",e),nf=1,tf.map((function(e){return e()}))})));var sf=function(e,t,n,r){var a,i,o,s=Object.keys(e),c=s.length,l=void 0!==r?function(e,t){return function(n,r,a,i){return e.call(t,n,r,a,i)}}(t,r):t;for(void 0===n?(a=1,o=e[s[0]]):(a=0,o=n);a=55296&&a<=56319&&n2&&void 0!==arguments[2]?arguments[2]:{},r=n.skipHooks,a=void 0!==r&&r,i=lf(t);"function"!=typeof ef.hooks.addPack||a?ef.styles[e]=Zu(Zu({},ef.styles[e]||{}),i):ef.hooks.addPack(e,lf(t)),"fas"===e&&uf("fa",t)}var df=ef.styles,ff=ef.shims,pf=Object.values(Ad),mf=null,hf={},bf={},Mf={},_f={},gf={},yf=Object.keys(Ld);function vf(e,t){var n,r=t.split("-"),a=r[0],i=r.slice(1).join("-");return a!==e||""===i||(n=i,~Pd.indexOf(n))?null:i}var Lf,wf=function(){var e=function(e){return sf(df,(function(t,n,r){return t[r]=sf(n,e,{}),t}),{})};hf=e((function(e,t,n){(t[3]&&(e[t[3]]=n),t[2])&&t[2].filter((function(e){return"number"==typeof e})).forEach((function(t){e[t.toString(16)]=n}));return e})),bf=e((function(e,t,n){(e[n]=n,t[2])&&t[2].filter((function(e){return"string"==typeof e})).forEach((function(t){e[t]=n}));return e})),gf=e((function(e,t,n){var r=t[2];return e[n]=n,r.forEach((function(t){e[t]=n})),e}));var t="far"in df||Wd.autoFetchSvg,n=sf(ff,(function(e,n){var r=n[0],a=n[1],i=n[2];return"far"!==a||t||(a="fas"),"string"==typeof r&&(e.names[r]={prefix:a,iconName:i}),"number"==typeof r&&(e.unicodes[r.toString(16)]={prefix:a,iconName:i}),e}),{names:{},unicodes:{}});Mf=n.names,_f=n.unicodes,mf=Sf(Wd.styleDefault)};function Af(e,t){return(hf[e]||{})[t]}function Tf(e,t){return(gf[e]||{})[t]}function Of(e){return Mf[e]||{prefix:null,iconName:null}}function kf(){return mf}Lf=function(e){mf=Sf(e.styleDefault)},qd.push(Lf),wf();function Sf(e){var t=wd[e]||wd[Ld[e]],n=e in ef.styles?e:null;return t||n||null}function zf(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.skipLookups,r=void 0!==n&&n,a=null,i=e.reduce((function(e,t){var n=vf(Wd.familyPrefix,t);if(df[t]?(t=pf.includes(t)?Td[t]:t,a=t,e.prefix=t):yf.indexOf(t)>-1?(a=t,e.prefix=Sf(t)):n?e.iconName=n:t!==Wd.replacementClass&&e.rest.push(t),!r&&e.prefix&&e.iconName){var i="fa"===a?Of(e.iconName):{},o=Tf(e.prefix,e.iconName);i.prefix&&(a=null),e.iconName=i.iconName||o||e.iconName,e.prefix=i.prefix||e.prefix,"far"!==e.prefix||df.far||!df.fas||Wd.autoFetchSvg||(e.prefix="fas")}return e}),{prefix:null,iconName:null,rest:[]});return"fa"!==i.prefix&&"fa"!==a||(i.prefix=kf()||"fas"),i}var Ef=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}}var t,n,r;return t=e,(n=[{key:"add",value:function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r0&&s.forEach((function(t){"string"==typeof t&&(e[a][t]=o)})),e[a][i]=o})),e}}])&&td(t.prototype,n),r&&td(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}(),Nf=[],xf={},Df={},Cf=Object.keys(Df);function Yf(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),a=2;a1?t-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{};return _d?(Pf("beforeI2svg",e),jf("pseudoElements2svg",e),jf("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot;!1===Wd.autoReplaceSvg&&(Wd.autoReplaceSvg=!0),Wd.observeMutations=!0,rf((function(){Hf({autoReplaceSvgRoot:t}),Pf("watch",e)}))}},Bf={noAuto:function(){Wd.autoReplaceSvg=!1,Wd.observeMutations=!1,Pf("noAuto")},config:Wd,dom:qf,parse:{icon:function(e){if(null===e)return null;if("object"===ed(e)&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Tf(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&2===e.length){var t=0===e[1].indexOf("fa-")?e[1].slice(3):e[1],n=Sf(e[0]);return{prefix:n,iconName:Tf(n,t)||t}}if("string"==typeof e&&(e.indexOf("".concat(Wd.familyPrefix,"-"))>-1||e.match(Od))){var r=zf(e.split(" "),{skipLookups:!0});return{prefix:r.prefix||kf(),iconName:Tf(r.prefix,r.iconName)||r.iconName}}if("string"==typeof e){var a=kf();return{prefix:a,iconName:Tf(a,e)||e}}}},library:Wf,findIconDefinition:Rf,toHtml:af},Hf=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot,n=void 0===t?hd:t;(Object.keys(ef.styles).length>0||Wd.autoFetchSvg)&&_d&&Wd.autoReplaceSvg&&Bf.dom.i2svg({node:n})};function If(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map((function(e){return af(e)}))}}),Object.defineProperty(e,"node",{get:function(){if(_d){var t=hd.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function Xf(e){var t=e.icons,n=t.main,r=t.mask,a=e.prefix,i=e.iconName,o=e.transform,s=e.symbol,c=e.title,l=e.maskId,u=e.titleId,d=e.extra,f=e.watchable,p=void 0!==f&&f,m=r.found?r:n,h=m.width,b=m.height,M="fak"===a,_=[Wd.replacementClass,i?"".concat(Wd.familyPrefix,"-").concat(i):""].filter((function(e){return-1===d.classes.indexOf(e)})).filter((function(e){return""!==e||!!e})).concat(d.classes).join(" "),g={children:[],attributes:Zu(Zu({},d.attributes),{},{"data-prefix":a,"data-icon":i,class:_,role:d.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(h," ").concat(b)})},y=M&&!~d.classes.indexOf("fa-fw")?{width:"".concat(h/b*16*.0625,"em")}:{};p&&(g.attributes["data-fa-i2svg"]=""),c&&(g.children.push({tag:"title",attributes:{id:g.attributes["aria-labelledby"]||"title-".concat(u||Id())},children:[c]}),delete g.attributes.title);var v=Zu(Zu({},g),{},{prefix:a,iconName:i,main:n,mask:r,maskId:l,transform:o,symbol:s,styles:Zu(Zu({},y),d.styles)}),L=r.found&&n.found?jf("generateAbstractMask",v)||{children:[],attributes:{}}:jf("generateAbstractIcon",v)||{children:[],attributes:{}},w=L.children,A=L.attributes;return v.children=w,v.attributes=A,s?function(e){var t=e.prefix,n=e.iconName,r=e.children,a=e.attributes,i=e.symbol,o=!0===i?"".concat(t,"-").concat(Wd.familyPrefix,"-").concat(n):i;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:Zu(Zu({},a),{},{id:o}),children:r}]}]}(v):function(e){var t=e.children,n=e.main,r=e.mask,a=e.attributes,i=e.styles,o=e.transform;if(Gd(o)&&n.found&&!r.found){var s={x:n.width/n.height/2,y:.5};a.style=Vd(Zu(Zu({},i),{},{"transform-origin":"".concat(s.x+o.x/16,"em ").concat(s.y+o.y/16,"em")}))}return[{tag:"svg",attributes:a,children:t}]}(v)}function Ff(e){var t=e.content,n=e.width,r=e.height,a=e.transform,i=e.title,o=e.extra,s=e.watchable,c=void 0!==s&&s,l=Zu(Zu(Zu({},o.attributes),i?{title:i}:{}),{},{class:o.classes.join(" ")});c&&(l["data-fa-i2svg"]="");var u=Zu({},o.styles);Gd(a)&&(u.transform=function(e){var t=e.transform,n=e.width,r=void 0===n?16:n,a=e.height,i=void 0===a?16:a,o=e.startCentered,s=void 0!==o&&o,c="";return c+=s&&gd?"translate(".concat(t.x/Bd-r/2,"em, ").concat(t.y/Bd-i/2,"em) "):s?"translate(calc(-50% + ".concat(t.x/Bd,"em), calc(-50% + ").concat(t.y/Bd,"em)) "):"translate(".concat(t.x/Bd,"em, ").concat(t.y/Bd,"em) "),c+="scale(".concat(t.size/Bd*(t.flipX?-1:1),", ").concat(t.size/Bd*(t.flipY?-1:1),") "),c+="rotate(".concat(t.rotate,"deg) ")}({transform:a,startCentered:!0,width:n,height:r}),u["-webkit-transform"]=u.transform);var d=Vd(u);d.length>0&&(l.style=d);var f=[];return f.push({tag:"span",attributes:l,children:[t]}),i&&f.push({tag:"span",attributes:{class:"sr-only"},children:[i]}),f}function Uf(e){var t=e.content,n=e.title,r=e.extra,a=Zu(Zu(Zu({},r.attributes),n?{title:n}:{}),{},{class:r.classes.join(" ")}),i=Vd(r.styles);i.length>0&&(a.style=i);var o=[];return o.push({tag:"span",attributes:a,children:[t]}),n&&o.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),o}var Vf=ef.styles;function Gf(e){var t=e[0],n=e[1],r=rd(e.slice(4),1)[0];return{found:!0,width:t,height:n,icon:Array.isArray(r)?{tag:"g",attributes:{class:"".concat(Wd.familyPrefix,"-").concat(xd)},children:[{tag:"path",attributes:{class:"".concat(Wd.familyPrefix,"-").concat(Yd),fill:"currentColor",d:r[0]}},{tag:"path",attributes:{class:"".concat(Wd.familyPrefix,"-").concat(Cd),fill:"currentColor",d:r[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:r}}}}var $f={found:!1,width:512,height:512};function Jf(e,t){var n=t;return"fa"===t&&null!==Wd.styleDefault&&(t=kf()),new Promise((function(r,a){jf("missingIconAbstract");if("fa"===n){var i=Of(e)||{};e=i.iconName||e,t=i.prefix||t}if(e&&t&&Vf[t]&&Vf[t][e])return r(Gf(Vf[t][e]));!function(e,t){vd||Wd.showMissingIcons||!e||console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}(e,t),r(Zu(Zu({},$f),{},{icon:Wd.showMissingIcons&&e&&jf("missingIconAbstract")||{}}))}))}var Kf=function(){},Qf=Wd.measurePerformance&&Md&&Md.mark&&Md.measure?Md:{mark:Kf,measure:Kf},Zf=function(e){Qf.mark("".concat('FA "6.1.2"'," ").concat(e," ends")),Qf.measure("".concat('FA "6.1.2"'," ").concat(e),"".concat('FA "6.1.2"'," ").concat(e," begins"),"".concat('FA "6.1.2"'," ").concat(e," ends"))},ep=function(e){return Qf.mark("".concat('FA "6.1.2"'," ").concat(e," begins")),function(){return Zf(e)}},tp=function(){};function np(e){return"string"==typeof(e.getAttribute?e.getAttribute("data-fa-i2svg"):null)}function rp(e){return hd.createElementNS("http://www.w3.org/2000/svg",e)}function ap(e){return hd.createElement(e)}var ip={replace:function(e){var t=e[0];if(t.parentNode)if(e[1].forEach((function(e){t.parentNode.insertBefore(function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.ceFn,a=void 0===r?"svg"===t.tag?rp:ap:r;if("string"==typeof t)return hd.createTextNode(t);var i=a(t.tag);Object.keys(t.attributes||[]).forEach((function(e){i.setAttribute(e,t.attributes[e])}));var o=t.children||[];return o.forEach((function(t){i.appendChild(e(t,{ceFn:a}))})),i}(e),t)})),null===t.getAttribute("data-fa-i2svg")&&Wd.keepOriginalSource){var n=hd.createComment(function(e){var t=" ".concat(e.outerHTML," ");return t="".concat(t,"Font Awesome fontawesome.com ")}(t));t.parentNode.replaceChild(n,t)}else t.remove()},nest:function(e){var t=e[0],n=e[1];if(~Fd(t).indexOf(Wd.replacementClass))return ip.replace(e);var r=new RegExp("".concat(Wd.familyPrefix,"-.*"));if(delete n[0].attributes.id,n[0].attributes.class){var a=n[0].attributes.class.split(" ").reduce((function(e,t){return t===Wd.replacementClass||t.match(r)?e.toSvg.push(t):e.toNode.push(t),e}),{toNode:[],toSvg:[]});n[0].attributes.class=a.toSvg.join(" "),0===a.toNode.length?t.removeAttribute("class"):t.setAttribute("class",a.toNode.join(" "))}var i=n.map((function(e){return af(e)})).join("\n");t.setAttribute("data-fa-i2svg",""),t.innerHTML=i}};function op(e){e()}function sp(e,t){var n="function"==typeof t?t:tp;if(0===e.length)n();else{var r=op;"async"===Wd.mutateApproach&&(r=md.requestAnimationFrame||op),r((function(){var t=!0===Wd.autoReplaceSvg?ip.replace:ip[Wd.autoReplaceSvg]||ip.replace,r=ep("mutate");e.map(t),r(),n()}))}}var cp=!1;function lp(){cp=!0}function up(){cp=!1}var dp=null;function fp(e){if(bd&&Wd.observeMutations){var t=e.treeCallback,n=void 0===t?tp:t,r=e.nodeCallback,a=void 0===r?tp:r,i=e.pseudoElementsCallback,o=void 0===i?tp:i,s=e.observeMutationsRoot,c=void 0===s?hd:s;dp=new bd((function(e){if(!cp){var t=kf();Xd(e).forEach((function(e){if("childList"===e.type&&e.addedNodes.length>0&&!np(e.addedNodes[0])&&(Wd.searchPseudoElements&&o(e.target),n(e.target)),"attributes"===e.type&&e.target.parentNode&&Wd.searchPseudoElements&&o(e.target.parentNode),"attributes"===e.type&&np(e.target)&&~Nd.indexOf(e.attributeName))if("class"===e.attributeName&&function(e){var t=e.getAttribute?e.getAttribute("data-prefix"):null,n=e.getAttribute?e.getAttribute("data-icon"):null;return t&&n}(e.target)){var r=zf(Fd(e.target)),i=r.prefix,s=r.iconName;e.target.setAttribute("data-prefix",i||t),s&&e.target.setAttribute("data-icon",s)}else(c=e.target)&&c.classList&&c.classList.contains&&c.classList.contains(Wd.replacementClass)&&a(e.target);var c}))}})),_d&&dp.observe(c,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function pp(e){var t=e.getAttribute("style"),n=[];return t&&(n=t.split(";").reduce((function(e,t){var n=t.split(":"),r=n[0],a=n.slice(1);return r&&a.length>0&&(e[r]=a.join(":").trim()),e}),{})),n}function mp(e){var t,n,r=e.getAttribute("data-prefix"),a=e.getAttribute("data-icon"),i=void 0!==e.innerText?e.innerText.trim():"",o=zf(Fd(e));return o.prefix||(o.prefix=kf()),r&&a&&(o.prefix=r,o.iconName=a),o.iconName&&o.prefix||(o.prefix&&i.length>0&&(o.iconName=(t=o.prefix,n=e.innerText,(bf[t]||{})[n]||Af(o.prefix,cf(e.innerText)))),!o.iconName&&Wd.autoFetchSvg&&e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(o.iconName=e.firstChild.data)),o}function hp(e){var t=Xd(e.attributes).reduce((function(e,t){return"class"!==e.name&&"style"!==e.name&&(e[t.name]=t.value),e}),{}),n=e.getAttribute("title"),r=e.getAttribute("data-fa-title-id");return Wd.autoA11y&&(n?t["aria-labelledby"]="".concat(Wd.replacementClass,"-title-").concat(r||Id()):(t["aria-hidden"]="true",t.focusable="false")),t}function bp(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{styleParser:!0},n=mp(e),r=n.iconName,a=n.prefix,i=n.rest,o=hp(e),s=Yf("parseNodeAttributes",{},e),c=t.styleParser?pp(e):[];return Zu({iconName:r,title:e.getAttribute("title"),titleId:e.getAttribute("data-fa-title-id"),prefix:a,transform:Hd,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:i,styles:c,attributes:o}},s)}var Mp=ef.styles;function _p(e){var t="nest"===Wd.autoReplaceSvg?bp(e,{styleParser:!1}):bp(e);return~t.extra.classes.indexOf("fa-layers-text")?jf("generateLayersText",e,t):jf("generateSvgReplacementMutation",e,t)}function gp(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!_d)return Promise.resolve();var n=hd.documentElement.classList,r=function(e){return n.add("".concat("fontawesome-i2svg","-").concat(e))},a=function(e){return n.remove("".concat("fontawesome-i2svg","-").concat(e))},i=Wd.autoFetchSvg?Object.keys(Ld):Object.keys(Mp);i.includes("fa")||i.push("fa");var o=[".".concat("fa-layers-text",":not([").concat("data-fa-i2svg","])")].concat(i.map((function(e){return".".concat(e,":not([").concat("data-fa-i2svg","])")}))).join(", ");if(0===o.length)return Promise.resolve();var s=[];try{s=Xd(e.querySelectorAll(o))}catch(e){}if(!(s.length>0))return Promise.resolve();r("pending"),a("complete");var c=ep("onTree"),l=s.reduce((function(e,t){try{var n=_p(t);n&&e.push(n)}catch(e){vd||"MissingIcon"===e.name&&console.error(e)}return e}),[]);return new Promise((function(e,n){Promise.all(l).then((function(n){sp(n,(function(){r("active"),r("complete"),a("pending"),"function"==typeof t&&t(),c(),e()}))})).catch((function(e){c(),n(e)}))}))}function yp(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;_p(e).then((function(e){e&&sp([e],t)}))}var vp=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?Hd:n,a=t.symbol,i=void 0!==a&&a,o=t.mask,s=void 0===o?null:o,c=t.maskId,l=void 0===c?null:c,u=t.title,d=void 0===u?null:u,f=t.titleId,p=void 0===f?null:f,m=t.classes,h=void 0===m?[]:m,b=t.attributes,M=void 0===b?{}:b,_=t.styles,g=void 0===_?{}:_;if(e){var y=e.prefix,v=e.iconName,L=e.icon;return If(Zu({type:"icon"},e),(function(){return Pf("beforeDOMElementCreation",{iconDefinition:e,params:t}),Wd.autoA11y&&(d?M["aria-labelledby"]="".concat(Wd.replacementClass,"-title-").concat(p||Id()):(M["aria-hidden"]="true",M.focusable="false")),Xf({icons:{main:Gf(L),mask:s?Gf(s.icon):{found:!1,width:null,height:null,icon:{}}},prefix:y,iconName:v,transform:Zu(Zu({},Hd),r),symbol:i,title:d,maskId:l,titleId:p,extra:{attributes:M,styles:g,classes:h}})}))}},Lp={mixout:function(){return{icon:(e=vp,function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t||{}).icon?t:Rf(t||{}),a=n.mask;return a&&(a=(a||{}).icon?a:Rf(a||{})),e(r,Zu(Zu({},n),{},{mask:a}))})};var e},hooks:function(){return{mutationObserverCallbacks:function(e){return e.treeCallback=gp,e.nodeCallback=yp,e}}},provides:function(e){e.i2svg=function(e){var t=e.node,n=void 0===t?hd:t,r=e.callback;return gp(n,void 0===r?function(){}:r)},e.generateSvgReplacementMutation=function(e,t){var n=t.iconName,r=t.title,a=t.titleId,i=t.prefix,o=t.transform,s=t.symbol,c=t.mask,l=t.maskId,u=t.extra;return new Promise((function(t,d){Promise.all([Jf(n,i),c.iconName?Jf(c.iconName,c.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then((function(c){var d=rd(c,2),f=d[0],p=d[1];t([e,Xf({icons:{main:f,mask:p},prefix:i,iconName:n,transform:o,symbol:s,maskId:l,title:r,titleId:a,extra:u,watchable:!0})])})).catch(d)}))},e.generateAbstractIcon=function(e){var t,n=e.children,r=e.attributes,a=e.main,i=e.transform,o=Vd(e.styles);return o.length>0&&(r.style=o),Gd(i)&&(t=jf("generateAbstractTransformGrouping",{main:a,transform:i,containerWidth:a.width,iconWidth:a.width})),n.push(t||a.icon),{children:n,attributes:r}}}},wp={mixout:function(){return{layer:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.classes,r=void 0===n?[]:n;return If({type:"layer"},(function(){Pf("beforeDOMElementCreation",{assembler:e,params:t});var n=[];return e((function(e){Array.isArray(e)?e.map((function(e){n=n.concat(e.abstract)})):n=n.concat(e.abstract)})),[{tag:"span",attributes:{class:["".concat(Wd.familyPrefix,"-layers")].concat(ad(r)).join(" ")},children:n}]}))}}}},Ap={mixout:function(){return{counter:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.title,r=void 0===n?null:n,a=t.classes,i=void 0===a?[]:a,o=t.attributes,s=void 0===o?{}:o,c=t.styles,l=void 0===c?{}:c;return If({type:"counter",content:e},(function(){return Pf("beforeDOMElementCreation",{content:e,params:t}),Uf({content:e.toString(),title:r,extra:{attributes:s,styles:l,classes:["".concat(Wd.familyPrefix,"-layers-counter")].concat(ad(i))}})}))}}}},Tp={mixout:function(){return{text:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?Hd:n,a=t.title,i=void 0===a?null:a,o=t.classes,s=void 0===o?[]:o,c=t.attributes,l=void 0===c?{}:c,u=t.styles,d=void 0===u?{}:u;return If({type:"text",content:e},(function(){return Pf("beforeDOMElementCreation",{content:e,params:t}),Ff({content:e,transform:Zu(Zu({},Hd),r),title:i,extra:{attributes:l,styles:d,classes:["".concat(Wd.familyPrefix,"-layers-text")].concat(ad(s))}})}))}}},provides:function(e){e.generateLayersText=function(e,t){var n=t.title,r=t.transform,a=t.extra,i=null,o=null;if(gd){var s=parseInt(getComputedStyle(e).fontSize,10),c=e.getBoundingClientRect();i=c.width/s,o=c.height/s}return Wd.autoA11y&&!n&&(a.attributes["aria-hidden"]="true"),Promise.resolve([e,Ff({content:e.innerHTML,width:i,height:o,transform:r,title:n,extra:a,watchable:!0})])}}},Op=new RegExp('"',"ug"),kp=[1105920,1112319];function Sp(e,t){var n="".concat("data-fa-pseudo-element-pending").concat(t.replace(":","-"));return new Promise((function(r,a){if(null!==e.getAttribute(n))return r();var i,o,s,c=Xd(e.children).filter((function(e){return e.getAttribute("data-fa-pseudo-element")===t}))[0],l=md.getComputedStyle(e,t),u=l.getPropertyValue("font-family").match(kd),d=l.getPropertyValue("font-weight"),f=l.getPropertyValue("content");if(c&&!u)return e.removeChild(c),r();if(u&&"none"!==f&&""!==f){var p=l.getPropertyValue("content"),m=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(u[2])?wd[u[2].toLowerCase()]:Sd[d],h=function(e){var t,n,r,a,i,o=e.replace(Op,""),s=(n=0,a=(t=o).length,(i=t.charCodeAt(n))>=55296&&i<=56319&&a>n+1&&(r=t.charCodeAt(n+1))>=56320&&r<=57343?1024*(i-55296)+r-56320+65536:i),c=s>=kp[0]&&s<=kp[1],l=2===o.length&&o[0]===o[1];return{value:cf(l?o[0]:o),isSecondary:c||l}}(p),b=h.value,M=h.isSecondary,_=u[0].startsWith("FontAwesome"),g=Af(m,b),y=g;if(_){var v=(o=_f[i=b],s=Af("fas",i),o||(s?{prefix:"fas",iconName:s}:null)||{prefix:null,iconName:null});v.iconName&&v.prefix&&(g=v.iconName,m=v.prefix)}if(!g||M||c&&c.getAttribute("data-prefix")===m&&c.getAttribute("data-icon")===y)r();else{e.setAttribute(n,y),c&&e.removeChild(c);var L={iconName:null,title:null,titleId:null,prefix:null,transform:Hd,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},w=L.extra;w.attributes["data-fa-pseudo-element"]=t,Jf(g,m).then((function(a){var i=Xf(Zu(Zu({},L),{},{icons:{main:a,mask:{prefix:null,iconName:null,rest:[]}},prefix:m,iconName:y,extra:w,watchable:!0})),o=hd.createElement("svg");"::before"===t?e.insertBefore(o,e.firstChild):e.appendChild(o),o.outerHTML=i.map((function(e){return af(e)})).join("\n"),e.removeAttribute(n),r()})).catch(a)}}else r()}))}function zp(e){return Promise.all([Sp(e,"::before"),Sp(e,"::after")])}function Ep(e){return!(e.parentNode===document.head||~yd.indexOf(e.tagName.toUpperCase())||e.getAttribute("data-fa-pseudo-element")||e.parentNode&&"svg"===e.parentNode.tagName)}function Np(e){if(_d)return new Promise((function(t,n){var r=Xd(e.querySelectorAll("*")).filter(Ep).map(zp),a=ep("searchPseudoElements");lp(),Promise.all(r).then((function(){a(),up(),t()})).catch((function(){a(),up(),n()}))}))}var xp=!1,Dp=function(e){return e.toLowerCase().split(" ").reduce((function(e,t){var n=t.toLowerCase().split("-"),r=n[0],a=n.slice(1).join("-");if(r&&"h"===a)return e.flipX=!0,e;if(r&&"v"===a)return e.flipY=!0,e;if(a=parseFloat(a),isNaN(a))return e;switch(r){case"grow":e.size=e.size+a;break;case"shrink":e.size=e.size-a;break;case"left":e.x=e.x-a;break;case"right":e.x=e.x+a;break;case"up":e.y=e.y-a;break;case"down":e.y=e.y+a;break;case"rotate":e.rotate=e.rotate+a}return e}),{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0})},Cp={mixout:function(){return{parse:{transform:function(e){return Dp(e)}}}},hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-transform");return n&&(e.transform=Dp(n)),e}}},provides:function(e){e.generateAbstractTransformGrouping=function(e){var t=e.main,n=e.transform,r=e.containerWidth,a=e.iconWidth,i={transform:"translate(".concat(r/2," 256)")},o="translate(".concat(32*n.x,", ").concat(32*n.y,") "),s="scale(".concat(n.size/16*(n.flipX?-1:1),", ").concat(n.size/16*(n.flipY?-1:1),") "),c="rotate(".concat(n.rotate," 0 0)"),l={outer:i,inner:{transform:"".concat(o," ").concat(s," ").concat(c)},path:{transform:"translate(".concat(a/2*-1," -256)")}};return{tag:"g",attributes:Zu({},l.outer),children:[{tag:"g",attributes:Zu({},l.inner),children:[{tag:t.icon.tag,children:t.icon.children,attributes:Zu(Zu({},t.icon.attributes),l.path)}]}]}}}},Yp={x:0,y:0,width:"100%",height:"100%"};function Pp(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}var jp,Rp={hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-mask"),r=n?zf(n.split(" ").map((function(e){return e.trim()}))):{prefix:null,iconName:null,rest:[]};return r.prefix||(r.prefix=kf()),e.mask=r,e.maskId=t.getAttribute("data-fa-mask-id"),e}}},provides:function(e){e.generateAbstractMask=function(e){var t,n=e.children,r=e.attributes,a=e.main,i=e.mask,o=e.maskId,s=e.transform,c=a.width,l=a.icon,u=i.width,d=i.icon,f=function(e){var t=e.transform,n=e.containerWidth,r=e.iconWidth,a={transform:"translate(".concat(n/2," 256)")},i="translate(".concat(32*t.x,", ").concat(32*t.y,") "),o="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),s="rotate(".concat(t.rotate," 0 0)");return{outer:a,inner:{transform:"".concat(i," ").concat(o," ").concat(s)},path:{transform:"translate(".concat(r/2*-1," -256)")}}}({transform:s,containerWidth:u,iconWidth:c}),p={tag:"rect",attributes:Zu(Zu({},Yp),{},{fill:"white"})},m=l.children?{children:l.children.map(Pp)}:{},h={tag:"g",attributes:Zu({},f.inner),children:[Pp(Zu({tag:l.tag,attributes:Zu(Zu({},l.attributes),f.path)},m))]},b={tag:"g",attributes:Zu({},f.outer),children:[h]},M="mask-".concat(o||Id()),_="clip-".concat(o||Id()),g={tag:"mask",attributes:Zu(Zu({},Yp),{},{id:M,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[p,b]},y={tag:"defs",children:[{tag:"clipPath",attributes:{id:_},children:(t=d,"g"===t.tag?t.children:[t])},g]};return n.push(y,{tag:"rect",attributes:Zu({fill:"currentColor","clip-path":"url(#".concat(_,")"),mask:"url(#".concat(M,")")},Yp)}),{children:n,attributes:r}}}};jp={mixoutsTo:Bf}.mixoutsTo,Nf=[Qd,Lp,wp,Ap,Tp,{hooks:function(){return{mutationObserverCallbacks:function(e){return e.pseudoElementsCallback=Np,e}}},provides:function(e){e.pseudoElements2svg=function(e){var t=e.node,n=void 0===t?hd:t;Wd.searchPseudoElements&&Np(n)}}},{mixout:function(){return{dom:{unwatch:function(){lp(),xp=!0}}}},hooks:function(){return{bootstrap:function(){fp(Yf("mutationObserverCallbacks",{}))},noAuto:function(){dp&&dp.disconnect()},watch:function(e){var t=e.observeMutationsRoot;xp?up():fp(Yf("mutationObserverCallbacks",{observeMutationsRoot:t}))}}}},Cp,Rp,{provides:function(e){var t=!1;md.matchMedia&&(t=md.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var e=[],n={fill:"currentColor"},r={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};e.push({tag:"path",attributes:Zu(Zu({},n),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var a=Zu(Zu({},r),{},{attributeName:"opacity"}),i={tag:"circle",attributes:Zu(Zu({},n),{},{cx:"256",cy:"364",r:"28"}),children:[]};return t||i.children.push({tag:"animate",attributes:Zu(Zu({},r),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:Zu(Zu({},a),{},{values:"1;0;1;1;0;1;"})}),e.push(i),e.push({tag:"path",attributes:Zu(Zu({},n),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:t?[]:[{tag:"animate",attributes:Zu(Zu({},a),{},{values:"1;0;0;0;0;1;"})}]}),t||e.push({tag:"path",attributes:Zu(Zu({},n),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:Zu(Zu({},a),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:e}}}},{hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-symbol"),r=null!==n&&(""===n||n);return e.symbol=r,e}}}}],xf={},Object.keys(Df).forEach((function(e){-1===Cf.indexOf(e)&&delete Df[e]})),Nf.forEach((function(e){var t=e.mixout?e.mixout():{};if(Object.keys(t).forEach((function(e){"function"==typeof t[e]&&(jp[e]=t[e]),"object"===ed(t[e])&&Object.keys(t[e]).forEach((function(n){jp[e]||(jp[e]={}),jp[e][n]=t[e][n]}))})),e.hooks){var n=e.hooks();Object.keys(n).forEach((function(e){xf[e]||(xf[e]=[]),xf[e].push(n[e])}))}e.provides&&e.provides(Df)}));var Wp=Bf.parse,qp=Bf.icon;function Bp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Hp(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function Up(e){return function(e){if(Array.isArray(e))return Vp(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Vp(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Vp(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Vp(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0||!Array.isArray(t)&&t?Xp({},e,t):{}}var em=["forwardedRef"];function tm(e){var t=e.forwardedRef,n=Fp(e,em),r=n.icon,a=n.mask,i=n.symbol,o=n.className,s=n.title,c=n.titleId,l=n.maskId,u=Qp(r),d=Zp("classes",[].concat(Up(function(e){var t,n=e.beat,r=e.fade,a=e.beatFade,i=e.bounce,o=e.shake,s=e.flash,c=e.spin,l=e.spinPulse,u=e.spinReverse,d=e.pulse,f=e.fixedWidth,p=e.inverse,m=e.border,h=e.listItem,b=e.flip,M=e.size,_=e.rotation,g=e.pull,y=(Xp(t={"fa-beat":n,"fa-fade":r,"fa-beat-fade":a,"fa-bounce":i,"fa-shake":o,"fa-flash":s,"fa-spin":c,"fa-spin-reverse":u,"fa-spin-pulse":l,"fa-pulse":d,"fa-fw":f,"fa-inverse":p,"fa-border":m,"fa-li":h,"fa-flip":!0===b,"fa-flip-horizontal":"horizontal"===b||"both"===b,"fa-flip-vertical":"vertical"===b||"both"===b},"fa-".concat(M),null!=M),Xp(t,"fa-rotate-".concat(_),null!=_&&0!==_),Xp(t,"fa-pull-".concat(g),null!=g),Xp(t,"fa-swap-opacity",e.swapOpacity),t);return Object.keys(y).map((function(e){return y[e]?e:null})).filter((function(e){return e}))}(n)),Up(o.split(" ")))),f=Zp("transform","string"==typeof n.transform?Wp.transform(n.transform):n.transform),p=Zp("mask",Qp(a)),m=qp(u,Hp(Hp(Hp(Hp({},d),f),p),{},{symbol:i,title:s,titleId:c,maskId:l}));if(!m)return function(){var e;!Kp&&console&&"function"==typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",u),null;var h=m.abstract,b={ref:t};return Object.keys(n).forEach((function(e){tm.defaultProps.hasOwnProperty(e)||(b[e]=n[e])})),nm(h[0],b)}tm.displayName="FontAwesomeIcon",tm.propTypes={beat:En.a.bool,border:En.a.bool,beatFade:En.a.bool,bounce:En.a.bool,className:En.a.string,fade:En.a.bool,flash:En.a.bool,mask:En.a.oneOfType([En.a.object,En.a.array,En.a.string]),maskId:En.a.string,fixedWidth:En.a.bool,inverse:En.a.bool,flip:En.a.oneOf([!0,!1,"horizontal","vertical","both"]),icon:En.a.oneOfType([En.a.object,En.a.array,En.a.string]),listItem:En.a.bool,pull:En.a.oneOf(["right","left"]),pulse:En.a.bool,rotation:En.a.oneOf([0,90,180,270]),shake:En.a.bool,size:En.a.oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:En.a.bool,spinPulse:En.a.bool,spinReverse:En.a.bool,symbol:En.a.oneOfType([En.a.bool,En.a.string]),title:En.a.string,titleId:En.a.string,transform:En.a.oneOfType([En.a.string,En.a.object]),swapOpacity:En.a.bool},tm.defaultProps={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1};var nm=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof n)return n;var a=(n.children||[]).map((function(n){return e(t,n)})),i=Object.keys(n.attributes||{}).reduce((function(e,t){var r=n.attributes[t];switch(t){case"class":e.attrs.className=r,delete n.attributes.class;break;case"style":e.attrs.style=Jp(r);break;default:0===t.indexOf("aria-")||0===t.indexOf("data-")?e.attrs[t.toLowerCase()]=r:e.attrs[Gp(t)]=r}return e}),{attrs:{}}),o=r.style,s=void 0===o?{}:o,c=Fp(r,$p);return i.attrs.style=Hp(Hp({},i.attrs.style),s),t.apply(void 0,[n.tag,Hp(Hp({},i.attrs),c)].concat(Up(a)))}.bind(null,V.a.createElement),rm=function(e){var t;return"undefined"==typeof document?null:null==e?Or().body:("function"==typeof e&&(e=e()),e&&"current"in e&&(e=e.current),null!=(t=e)&&t.nodeType&&e||null)};function am(e,t){var n=Object(U.useState)((function(){return rm(e)})),r=n[0],a=n[1];if(!r){var i=rm(e);i&&a(i)}return Object(U.useEffect)((function(){t&&r&&t(r)}),[t,r]),Object(U.useEffect)((function(){var t=rm(e);t!==r&&a(t)}),[e,r]),r}var im=V.a.forwardRef((function(e,t){var n=e.flip,r=e.offset,a=e.placement,i=e.containerPadding,o=void 0===i?5:i,s=e.popperConfig,c=void 0===s?{}:s,l=e.transition,u=Oc(),d=u[0],f=u[1],p=Oc(),m=p[0],h=p[1],b=Lu(f,t),M=am(e.container),_=am(e.target),g=Object(U.useState)(!e.show),y=g[0],v=g[1],L=Xl(_,d,Ql({placement:a,enableEvents:!!e.show,containerPadding:o||5,flip:n,offset:r,arrowElement:m,popperConfig:c})),w=L.styles,A=L.attributes,T=Cn(L,["styles","attributes"]);e.show?y&&v(!1):e.transition||y||v(!0);var O=e.show||l&&!y;if(Kl(d,e.onHide,{disabled:!e.rootClose||e.rootCloseDisabled,clickTrigger:e.rootCloseEvent}),!O)return null;var k=e.children(Dn({},T,{show:!!e.show,props:Dn({},A.popper,{style:w.popper,ref:b}),arrowProps:Dn({},A.arrow,{style:w.arrow,ref:h})}));if(l){var S=e.onExit,z=e.onExiting,E=e.onEnter,N=e.onEntering,x=e.onEntered;k=V.a.createElement(l,{in:e.show,appear:!0,onExit:S,onExiting:z,onExited:function(){v(!0),e.onExited&&e.onExited.apply(e,arguments)},onEnter:E,onEntering:N,onEntered:x},k)}return M?J.a.createPortal(k,M):null}));im.displayName="Overlay",im.propTypes={show:En.a.bool,placement:En.a.oneOf(il),target:En.a.any,container:En.a.any,flip:En.a.bool,children:En.a.func.isRequired,containerPadding:En.a.number,popperConfig:En.a.object,rootClose:En.a.bool,rootCloseEvent:En.a.oneOf(["click","mousedown"]),rootCloseDisabled:En.a.bool,onHide:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Dm=V.a.forwardRef((function(e,t){var n=e.children,r=e.variant,a=xm(e,km);return V.a.createElement(Om,Nm({},a,{className:xn()({"tooltip-light":"light"===r},a.className),ref:t}),n)}));Dm.propTypes=zm(zm({},Om.propTypes),{},{id:En.a.string.isRequired,placement:En.a.oneOf(["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"]),arrowProps:En.a.shape({ref:En.a.oneOfType([En.a.func,En.a.shape({current:En.a.element})]),style:En.a.shape({})}),show:En.a.bool,popper:En.a.shape({}),bsPrefix:En.a.string,children:En.a.node,className:En.a.string,variant:En.a.string}),Dm.defaultProps=zm(zm({},Dm.defaultProps),{},{id:void 0,placement:"right",arrowProps:void 0,show:void 0,popper:void 0,children:void 0,className:void 0,variant:void 0,bsPrefix:"tooltip"});var Cm=Dm;function Ym(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Pm=["className","alt","invertColors","icon","src","iconClassNames","onClick","size","variant","iconAs","isActive"],jm=["tooltipPlacement","tooltipContent","variant","invertColors"];function Rm(){return(Rm=Object.assign||function(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var qm=V.a.forwardRef((function(e,t){var n=e.className,r=e.alt,a=e.invertColors,i=e.icon,o=e.src,s=e.iconClassNames,c=e.onClick,l=e.size,u=e.variant,d=e.iconAs,f=e.isActive,p=Wm(e,Pm),m=a?"inverse-":"",h=f?"".concat(u,"-"):"",b=d||tm;return V.a.createElement("button",Rm({"aria-label":r,className:xn()("btn-icon","btn-icon-".concat(m).concat(u),"btn-icon-".concat(l),Ym({},"btn-icon-".concat(m).concat(h,"active"),f),n),onClick:c,type:"button",ref:t},p),V.a.createElement("span",{className:"btn-icon__icon-container"},V.a.createElement(b,{className:xn()("btn-icon__icon",s),icon:i,src:o})))}));qm.defaultProps={iconAs:void 0,src:null,icon:void 0,iconClassNames:void 0,className:void 0,invertColors:!1,variant:"primary",size:"md",onClick:function(){},isActive:!1},qm.propTypes={className:En.a.string,iconAs:En.a.elementType,src:En.a.oneOfType([En.a.element,En.a.func]),alt:En.a.string.isRequired,invertColors:En.a.bool,icon:En.a.shape({prefix:En.a.string,iconName:En.a.string,icon:En.a.array}),iconClassNames:En.a.string,onClick:En.a.func,variant:En.a.oneOf(["primary","secondary","success","warning","danger","light","dark","black","brand"]),size:En.a.oneOf(["sm","md","inline"]),isActive:En.a.bool};var Bm=function(e){var t=e.tooltipPlacement,n=e.tooltipContent,r=e.variant,a=e.invertColors,i=Wm(e,jm),o=a?"inverse-":"";return V.a.createElement(Lm,{placement:t,overlay:V.a.createElement(Cm,{id:"iconbutton-tooltip-".concat(t),variant:o?"light":""},n)},V.a.createElement(qm,Rm({variant:r,invertColors:a},i)))};Bm.defaultProps={tooltipPlacement:"top",variant:"primary",invertColors:!1},Bm.propTypes={tooltipPlacement:En.a.string,tooltipContent:En.a.node.isRequired,variant:En.a.oneOf(["primary","secondary","success","warning","danger","light","dark","black","brand"]),invertColors:En.a.bool},qm.IconButtonWithTooltip=Bm;var Hm=qm;var Im=function(){return(Im=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0})).sort(zh)},Nh=["button:enabled","select:enabled","textarea:enabled","input:enabled","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]","[tabindex]","[contenteditable]","[autofocus]"].join(","),xh="".concat(Nh,", [data-focus-guard]"),Dh=function(e,t){var n;return hh((null===(n=e.shadowRoot)||void 0===n?void 0:n.children)||e.children).reduce((function(e,n){return e.concat(n.matches(t?xh:Nh)?[n]:[],Dh(n))}),[])},Ch=function(e,t){return e.reduce((function(e,n){return e.concat(Dh(n,t),n.parentNode?hh(n.parentNode.querySelectorAll(Nh)).filter((function(e){return e===n})):[])}),[])},Yh=function(e,t){return hh(e).filter((function(e){return yh(t,e)})).filter((function(e){return function(e){return!((wh(e)||function(e){return"BUTTON"===e.tagName}(e))&&("hidden"===e.type||e.disabled))}(e)}))},Ph=function(e,t){return void 0===t&&(t=new Map),hh(e).filter((function(e){return vh(t,e)}))},jh=function(e,t,n){return Eh(Yh(Ch(e,n),t),!0,n)},Rh=function(e,t){return Eh(Yh(Ch(e),t),!1)},Wh=function(e,t){return Yh((n=e.querySelectorAll("[".concat("data-autofocus-inside","]")),hh(n).map((function(e){return Ch([e])})).reduce((function(e,t){return e.concat(t)}),[])),t);var n},qh=function(e,t){return(e.shadowRoot?qh(e.shadowRoot,t):Object.getPrototypeOf(e).contains.call(e,t))||hh(e.children).some((function(e){return qh(e,t)}))},Bh=function(e){return e.activeElement?e.activeElement.shadowRoot?Bh(e.activeElement.shadowRoot):e.activeElement:void 0},Hh=function(){return document.activeElement?document.activeElement.shadowRoot?Bh(document.activeElement.shadowRoot):document.activeElement:void 0},Ih=function(e){return e.parentNode?Ih(e.parentNode):e},Xh=function(e){return bh(e).filter(Boolean).reduce((function(e,t){var n=t.getAttribute("data-focus-lock");return e.push.apply(e,n?function(e){for(var t=new Set,n=e.length,r=0;r0&&t.add(a),(i&Node.DOCUMENT_POSITION_CONTAINS)>0&&t.add(r)}return e.filter((function(e,n){return!t.has(n)}))}(hh(Ih(t).querySelectorAll("[".concat("data-focus-lock",'="').concat(n,'"]:not([').concat("data-focus-lock-disabled",'="disabled"])')))):[t]),e}),[])},Fh=function(e){return Boolean(hh(e.querySelectorAll("iframe")).some((function(e){return e===document.activeElement})))},Uh=function(e){var t=document&&Hh();return!(!t||t.dataset&&t.dataset.focusGuard)&&Xh(e).some((function(e){return qh(e,t)||Fh(e)}))},Vh=function(e,t){return Ah(e)&&e.name?function(e,t){return t.filter(Ah).filter((function(t){return t.name===e.name})).filter((function(e){return e.checked}))[0]||e}(e,t):e},Gh=function(e){return e[0]&&e.length>1?Vh(e[0],e):e[0]},$h=function(e,t){return e.length>1?e.indexOf(Vh(e[t],e)):t},Jh=function(e,t,n,r){var a=e.length,i=e[0],o=e[a-1],s=Oh(n);if(!(n&&e.indexOf(n)>=0)){var c,l,u=void 0!==n?t.indexOf(n):-1,d=r?t.indexOf(r):u,f=r?e.indexOf(r):-1,p=u-d,m=t.indexOf(i),h=t.indexOf(o),b=(c=t,l=new Set,c.forEach((function(e){return l.add(Vh(e,c))})),c.filter((function(e){return l.has(e)}))),M=(void 0!==n?b.indexOf(n):-1)-(r?b.indexOf(r):u),_=$h(e,0),g=$h(e,a-1);return-1===u||-1===f?"NEW_FOCUS":!p&&f>=0?f:u<=m&&s&&Math.abs(p)>1?g:u>=h&&s&&Math.abs(p)>1?_:p&&Math.abs(M)>1?f:u<=m?g:u>h?_:p?Math.abs(p)>1?f:(a+f+p)%a:void 0}},Kh=function(e,t){return void 0===t&&(t=[]),t.push(e),e.parentNode&&Kh(e.parentNode.host||e.parentNode,t),t},Qh=function(e,t){for(var n=Kh(e),r=Kh(t),a=0;a=0)return i}return!1},Zh=function(e,t,n){var r=bh(e),a=bh(t),i=r[0],o=!1;return a.filter(Boolean).forEach((function(e){o=Qh(o||e,e)||o,n.filter(Boolean).forEach((function(e){var t=Qh(i,e);t&&(o=!o||qh(t,o)?t:Qh(t,o))}))})),o},eb=function(e,t){var n=document&&Hh(),r=Xh(e).filter(kh),a=Zh(n||e,e,r),i=new Map,o=Rh(r,i),s=jh(r,i).filter((function(e){var t=e.node;return kh(t)}));if(s[0]||(s=o)[0]){var c,l,u,d,f=Rh([a],i).map((function(e){return e.node})),p=(c=f,l=s,u=new Map,l.forEach((function(e){return u.set(e.node,e)})),c.map((function(e){return u.get(e)})).filter(Sh)),m=p.map((function(e){return e.node})),h=Jh(m,f,n,t);if("NEW_FOCUS"===h){var b=Ph(o.map((function(e){return e.node}))).filter((d=function(e,t){return e.reduce((function(e,n){return e.concat(Wh(n,t))}),[])}(r,i),function(e){var t;return e.autofocus||!!(null===(t=Lh(e))||void 0===t?void 0:t.autofocus)||d.indexOf(e)>=0}));return{node:b&&b.length?Gh(b):Gh(Ph(m))}}return void 0===h?h:p[h]}},tb=0,nb=!1,rb=function(e,t,n){void 0===n&&(n={});var r,a,i=eb(e,t);if(!nb&&i){if(tb>2)return console.error("FocusLock: focus-fighting detected. Only one focus management system could be active. See https://github.com/theKashey/focus-lock/#focus-fighting"),nb=!0,void setTimeout((function(){nb=!1}),1);tb++,r=i.node,a=n.focusOptions,"focus"in r&&r.focus(a),"contentWindow"in r&&r.contentWindow&&r.contentWindow.focus(),tb--}},ab=function(e){var t=Xh(e).filter(kh),n=Zh(e,e,t),r=new Map,a=jh([n],r,!0),i=jh(t,r).filter((function(e){var t=e.node;return kh(t)})).map((function(e){return e.node}));return a.map((function(e){var t=e.node;return{node:t,index:e.index,lockItem:i.indexOf(t)>=0,guard:Oh(t)}}))};function ib(e){var t=window.setImmediate;void 0!==t?t(e):setTimeout(e,1)}var ob=function(){return document&&document.activeElement===document.body||!!(e=document&&Hh())&&hh(document.querySelectorAll("[".concat("data-no-focus-lock","]"))).some((function(t){return qh(t,e)}));var e},sb=null,cb=null,lb=null,ub=!1,db=function(){return!0};function fb(e,t,n,r){var a=null,i=e;do{var o=r[i];if(o.guard)o.node.dataset.focusAutoGuard&&(a=o);else{if(!o.lockItem)break;if(i!==e)return;a=null}}while((i+=n)!==t);a&&(a.node.tabIndex=0)}var pb=function(e){return e&&"current"in e?e.current:e},mb=function(){var e,t=!1;if(sb){var n=sb,r=n.observed,a=n.persistentFocus,i=n.autoFocus,o=n.shards,s=n.crossFrame,c=n.focusOptions,l=r||lb&&lb.portaledElement,u=document&&document.activeElement;if(l){var d=[l].concat(o.map(pb).filter(Boolean));if(u&&!function(e){return(sb.whiteList||db)(e)}(u)||(a||(s?Boolean(ub):"meanwhile"===ub)||!ob()||!cb&&i)&&(l&&!(Uh(d)||u&&function(e,t){return t.some((function(t){return function e(t,n,r){return n&&(n.host===t&&(!n.activeElement||r.contains(n.activeElement))||n.parentNode&&e(t,n.parentNode,r))}(e,t,t)}))}(u,d)||(e=u,lb&&lb.portaledElement===e))&&(document&&!cb&&u&&!i?(u.blur&&u.blur(),document.body.focus()):(t=rb(d,cb,{focusOptions:c}),lb={})),ub=!1,cb=document&&document.activeElement),document){var f=document&&document.activeElement,p=ab(d),m=p.map((function(e){return e.node})).indexOf(f);m>-1&&(p.filter((function(e){var t=e.guard,n=e.node;return t&&n.dataset.focusAutoGuard})).forEach((function(e){return e.node.removeAttribute("tabIndex")})),fb(m,p.length,1,p),fb(m,-1,-1,p))}}}return t},hb=function(e){mb()&&e&&(e.stopPropagation(),e.preventDefault())},bb=function(){return ib(mb)},Mb=function(e){var t=e.target,n=e.currentTarget;n.contains(t)||(lb={observerNode:n,portaledElement:t})},_b=function(){ub="just",setTimeout((function(){ub="meanwhile"}),0)};rh.assignSyncMedium(Mb),ah.assignMedium(bb),ih.assignMedium((function(e){return e({moveFocusInside:rb,focusInside:Uh})}));var gb,yb=mh((function(e){return e.filter((function(e){return!e.disabled}))}),(function(e){var t=e.slice(-1)[0];t&&!sb&&(document.addEventListener("focusin",hb),document.addEventListener("focusout",bb),window.addEventListener("blur",_b));var n=sb,r=n&&t&&t.id===n.id;sb=t,n&&!r&&(n.onDeactivation(),e.filter((function(e){return e.id===n.id})).length||n.returnFocus(!t)),t?(cb=null,r&&n.observed===t.observed||t.onActivation(),mb(),ib(mb)):(document.removeEventListener("focusin",hb),document.removeEventListener("focusout",bb),window.removeEventListener("blur",_b),cb=null)}))((function(){return null}));ph(oh,yb);function vb(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=gb||n.nc;return t&&e.setAttribute("nonce",t),e}var Lb=function(){var e=0,t=null;return{add:function(n){var r,a;0==e&&(t=vb())&&(a=n,(r=t).styleSheet?r.styleSheet.cssText=a:r.appendChild(document.createTextNode(a)),function(e){(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}(t)),e++},remove:function(){!--e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},wb=function(){var e,t=(e=Lb(),function(t,n){U.useEffect((function(){return e.add(t),function(){e.remove()}}),[t&&n])});return function(e){var n=e.styles,r=e.dynamic;return t(n,r),null}},Ab={left:0,top:0,right:0,gap:0},Tb=function(e){return parseInt(e||"",10)||0},Ob=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return Ab;var t=function(e){var t=window.getComputedStyle(document.body);var n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],a=t["padding"===e?"paddingRight":"marginRight"];return[Tb(n),Tb(r),Tb(a)]}(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},kb=wb(),Sb=function(e,t,n,r){var a=e.left,i=e.top,o=e.right,s=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(s,"px ").concat(r,";\n }\n body {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(a,"px;\n padding-top: ").concat(i,"px;\n padding-right: ").concat(o,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(s,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat("right-scroll-bar-position"," {\n right: ").concat(s,"px ").concat(r,";\n }\n \n .").concat("width-before-scroll-bar"," {\n margin-right: ").concat(s,"px ").concat(r,";\n }\n \n .").concat("right-scroll-bar-position"," .").concat("right-scroll-bar-position"," {\n right: 0 ").concat(r,";\n }\n \n .").concat("width-before-scroll-bar"," .").concat("width-before-scroll-bar"," {\n margin-right: 0 ").concat(r,";\n }\n \n body {\n ").concat("--removed-body-scroll-bar-size",": ").concat(s,"px;\n }\n")},zb=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=void 0===r?"margin":r,i=U.useMemo((function(){return Ob(a)}),[a]);return U.createElement(kb,{styles:Sb(i,!t,a,n?"":"!important")})},Eb=!1;if("undefined"!=typeof window)try{var Nb=Object.defineProperty({},"passive",{get:function(){return Eb=!0,!0}});window.addEventListener("test",Nb,Nb),window.removeEventListener("test",Nb,Nb)}catch(e){Eb=!1}var xb=!!Eb&&{passive:!1},Db=function(e,t){var n=window.getComputedStyle(e);return"hidden"!==n[t]&&!(n.overflowY===n.overflowX&&!function(e){return"TEXTAREA"===e.tagName}(e)&&"visible"===n[t])},Cb=function(e,t){var n=t;do{if("undefined"!=typeof ShadowRoot&&n instanceof ShadowRoot&&(n=n.host),Yb(e,n)){var r=Pb(e,n);if(r[1]>r[2])return!0}n=n.parentNode}while(n&&n!==document.body);return!1},Yb=function(e,t){return"v"===e?function(e){return Db(e,"overflowY")}(t):function(e){return Db(e,"overflowX")}(t)},Pb=function(e,t){return"v"===e?[(n=t).scrollTop,n.scrollHeight,n.clientHeight]:function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]}(t);var n},jb=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Rb=function(e){return[e.deltaX,e.deltaY]},Wb=function(e){return e&&"current"in e?e.current:e},qb=function(e){return"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")},Bb=0,Hb=[];ph(Qm,(function(e){var t=U.useRef([]),n=U.useRef([0,0]),r=U.useRef(),a=U.useState(Bb++)[0],i=U.useState((function(){return wb()}))[0],o=U.useRef(e);U.useEffect((function(){o.current=e}),[e]),U.useEffect((function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var t=function(e,t,n){if(n||2===arguments.length)for(var r,a=0,i=t.length;aMath.abs(l)?"h":"v";if("touches"in e&&"h"===d&&"range"===u.type)return!1;var f=Cb(d,u);if(!f)return!0;if(f?a=d:(a="v"===d?"h":"v",f=Cb(d,u)),!f)return!1;if(!r.current&&"changedTouches"in e&&(c||l)&&(r.current=a),!a)return!0;var p=r.current||a;return function(e,t,n,r,a){var i=function(e,t){return"h"===e&&"rtl"===t?-1:1}(e,window.getComputedStyle(t).direction),o=i*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{var p=Pb(e,s),m=p[0],h=p[1]-p[2]-i*m;(m||h)&&Yb(e,s)&&(d+=h,f+=m),s=s.parentNode}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(a&&0===d||!a&&o>d)||!u&&(a&&0===f||!a&&-o>f))&&(l=!0),l}(p,t,e,"h"===p?c:l,!0)}),[]),c=U.useCallback((function(e){var n=e;if(Hb.length&&Hb[Hb.length-1]===i){var r="deltaY"in n?Rb(n):jb(n),a=t.current.filter((function(e){return e.name===n.type&&e.target===n.target&&(t=e.delta,a=r,t[0]===a[0]&&t[1]===a[1]);var t,a}))[0];if(a&&a.should)n.cancelable&&n.preventDefault();else if(!a){var c=(o.current.shards||[]).map(Wb).filter(Boolean).filter((function(e){return e.contains(n.target)}));(c.length>0?s(n,c[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}}),[]),l=U.useCallback((function(e,n,r,a){var i={name:e,delta:n,target:r,should:a};t.current.push(i),setTimeout((function(){t.current=t.current.filter((function(e){return e!==i}))}),1)}),[]),u=U.useCallback((function(e){n.current=jb(e),r.current=void 0}),[]),d=U.useCallback((function(t){l(t.type,Rb(t),t.target,s(t,e.lockRef.current))}),[]),f=U.useCallback((function(t){l(t.type,jb(t),t.target,s(t,e.lockRef.current))}),[]);U.useEffect((function(){return Hb.push(i),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener("wheel",c,xb),document.addEventListener("touchmove",c,xb),document.addEventListener("touchstart",u,xb),function(){Hb=Hb.filter((function(e){return e!==i})),document.removeEventListener("wheel",c,xb),document.removeEventListener("touchmove",c,xb),document.removeEventListener("touchstart",u,xb)}}),[]);var p=e.removeScrollBar,m=e.inert;return U.createElement(U.Fragment,null,m?U.createElement(i,{styles:qb(a)}):null,p?U.createElement(zb,{gapMode:"margin"}):null)}));var Ib=new WeakMap,Xb=new WeakMap,Fb={},Ub=0,Vb=function(e,t,n){void 0===t&&(t=function(e){return"undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body}(e)),void 0===n&&(n="data-aria-hidden");var r=Array.isArray(e)?e:[e];Fb[n]||(Fb[n]=new WeakMap);var a=Fb[n],i=[],o=new Set,s=function(e){e&&!o.has(e)&&(o.add(e),s(e.parentNode))};r.forEach(s);var c=function(e){!e||r.indexOf(e)>=0||Array.prototype.forEach.call(e.children,(function(e){if(o.has(e))c(e);else{var t=e.getAttribute("aria-hidden"),r=null!==t&&"false"!==t,s=(Ib.get(e)||0)+1,l=(a.get(e)||0)+1;Ib.set(e,s),a.set(e,l),i.push(e),1===s&&r&&Xb.set(e,!0),1===l&&e.setAttribute(n,"true"),r||e.setAttribute("aria-hidden","true")}}))};return c(t),o.clear(),Ub++,function(){i.forEach((function(e){var t=Ib.get(e)-1,r=a.get(e)-1;Ib.set(e,t),a.set(e,r),t||(Xb.has(e)||e.removeAttribute("aria-hidden"),Xb.delete(e)),r||e.removeAttribute(n)})),--Ub||(Ib=new WeakMap,Ib=new WeakMap,Xb=new WeakMap,Fb={})}},Gb=wb(),$b=function(){return U.createElement(Gb,{styles:"\n [data-focus-on-hidden] {\n pointer-events: none !important;\n }\n"})},Jb=function(e){return"current"in e?e.current:e};var Kb=ph(uh,(function(e){var t=e.setLockProps,n=e.onEscapeKey,r=e.onClickOutside,a=e.shards,i=e.onActivation,o=e.onDeactivation,s=e.noIsolation,c=Object(U.useState)(void 0),l=c[0],u=c[1],d=Object(U.useRef)(null),f=Object(U.useRef)(0);return U.useEffect((function(){var e=function(e){e.defaultPrevented||"Escape"!==e.code&&"Escape"!==e.key&&27!==e.keyCode||!n||n(e)},t=function(e){e.defaultPrevented||e.target===d.current||e instanceof MouseEvent&&0!==e.button||a&&a.map(Jb).some((function(t){return t&&t.contains(e.target)||t===e.target}))||r&&r(e)},i=function(e){t(e),f.current=e.touches.length},o=function(e){f.current=e.touches.length};if(l)return document.addEventListener("keydown",e),document.addEventListener("mousedown",t),document.addEventListener("touchstart",i),document.addEventListener("touchend",o),function(){document.removeEventListener("keydown",e),document.removeEventListener("mousedown",t),document.removeEventListener("touchstart",i),document.removeEventListener("touchend",o)}}),[l,r,n]),Object(U.useEffect)((function(){if(l)return i&&i(l),function(){o&&o()}}),[!!l]),Object(U.useEffect)((function(){var e=function(){return null},n=!1;return t({onMouseDown:function(e){d.current=e.target},onTouchStart:function(e){d.current=e.target},onActivation:function(t){s||(e=Vb(function(){for(var e=0,t=0,n=arguments.length;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var kM={right:[-2,10],left:[-2,10]},SM=function(e){var t=e.children,n=e.onClose,r=e.isOpen,a=e.positionRef,i=e.isBlocking,o=e.withPortal,s=e.placement,c=e.hasArrow,l=OM(e,AM),u=o?sM:V.a.Fragment,d=kM[s]||[0,10],f=[{name:"eventListeners",options:{scroll:!1}},{name:"offset",options:{offset:function(){return d}}}];return V.a.createElement(wM,{onClose:n,isOpen:r,isBlocking:i},V.a.createElement(u,null,V.a.createElement(vM,TM({modifiers:c?f:null,target:a,placement:s},l),V.a.createElement(Zb,{scrollLock:!1,enabled:r,onEscapeKey:n,onClickOutside:n},r&&V.a.createElement("div",{className:"pgn__modal-popup__tooltip"},t,c&&V.a.createElement("div",{id:"arrow",className:"pgn__modal-popup__arrow pgn__modal-popup__arrow-".concat(s),"data-popper-arrow":""}))))))};SM.propTypes={children:En.a.node.isRequired,onClose:En.a.func.isRequired,isOpen:En.a.bool.isRequired,isBlocking:En.a.bool,withPortal:En.a.bool,positionRef:En.a.oneOfType([En.a.func,En.a.shape({current:En.a.shape({})})]),placement:vM.propTypes.placement,hasArrow:En.a.bool},SM.defaultProps={isBlocking:!1,withPortal:!1,placement:"bottom-start",positionRef:null,hasArrow:!1};var zM=SM,EM=function(e){var t=e.direction,n=e.gap,r=e.children,a=e.className;return V.a.createElement("div",{className:xn()("horizontal"===t?"pgn__hstack":"pgn__vstack",n?"pgn__stack-gap--".concat(n):"",a)},r)};EM.propTypes={children:En.a.node.isRequired,direction:En.a.oneOf(["horizontal","vertical"]),gap:En.a.number,className:En.a.string},EM.defaultProps={direction:"vertical",gap:0,className:void 0};var NM=EM;function xM(e){return function(e){if(Array.isArray(e))return YM(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||CM(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function DM(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return n}(e,t)||CM(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function CM(e,t){if(e){if("string"==typeof e)return YM(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?YM(e,t):void 0}}function YM(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:{},n=t.handleToggleOn,r=t.handleToggleOff,a=t.handleToggle,i=Object(U.useState)(e||!1),o=Ju(i,2),s=o[0],c=o[1],l=Object(U.useCallback)((function(){c(!0),n&&n(),a&&a(!0)}),[n,a]),u=Object(U.useCallback)((function(){c(!1),r&&r(),a&&a(!1)}),[r,a]),d=Object(U.useCallback)((function(){(s?u:l)()}),[s,l,u]);return[s,l,u,d]}(!1),3),a=r[0],i=r[1],o=r[2],s=DM(Object(U.useState)(null),2),c=s[0],l=s[1],u=Object(U.useContext)(Vo),d=DM(u.controlledTableSelections,1)[0].isEntireTableSelected,f=u.selectedFlatRows,p=u.rows,m=Object(vc.a)().width,h=f||p,b=DM(Object(U.useMemo)((function(){if(m0&&V.a.createElement(V.a.Fragment,null,V.a.createElement(Hm,{variant:"secondary",iconAs:qa,src:No,alt:m>Ga.small.minWidth?"More actions":"Actions",id:"actions-dropdown",ref:l,onClick:i}),V.a.createElement(zM,{positionRef:c,onClose:o,placement:"bottom-end",isOpen:a},V.a.createElement("div",{className:"pgn__datatable__overflow-actions-menu"},V.a.createElement(NM,{gap:2},_.map(g))))),V.a.createElement("div",{className:"pgn__datatable__visible-actions"},M.map(g)))};RM.defaultProps={className:null},RM.propTypes={className:En.a.string,actions:En.a.arrayOf(En.a.shape({component:En.a.oneOfType([En.a.func,En.a.element]).isRequired,args:En.a.shape({})})).isRequired};var WM=RM;function qM(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return BM(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return BM(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function BM(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0;return o||i&&!s?null:!a&&s?V.a.createElement(IM,null):V.a.createElement(FM,null)},VM=function(e){var t=e.activeValue,n=e.onChange,r=e.children,a=Object(U.useMemo)((function(){return V.a.Children.map(r,(function(e){var r=e.props.value===t;return V.a.cloneElement(e,{onClick:function(){n(e.props.value)},isActive:r,"aria-selected":r,"data-testid":"icon-btn-val-".concat(e.props.value)})}))}),[r,t,n]);return V.a.createElement("div",{className:"pgn__icon-button-toggle__container"},a)};VM.defaultProps={onChange:function(){},activeValue:void 0},VM.propTypes={activeValue:En.a.string,onChange:En.a.func,children:En.a.node.isRequired};var GM=VM;function $M(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return JM(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return JM(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function JM(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?null:V.a.createElement("div",{className:xn()("pgn__data-table-empty",n)},t)};n_.defaultProps={className:null},n_.propTypes={className:En.a.string,content:En.a.string.isRequired};var r_=n_,a_=function(e){return function(t,n,r){var a=t[n];return"number"==typeof a&&!Number.isNaN(a)&&a>e?null:new Error("".concat(n," in ").concat(r," must be a non-NaN number greater than ").concat(e,"."))}},i_=["children","className"];function o_(){return(o_=Object.assign||function(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c_=function(e){var t=e.children,n=e.className,r=s_(e,i_);return V.a.createElement(Y_,null,(function(e){var a=e.buttonRef,i=e.isOpen,o=e.toggle,s=e.triggerId;return V.a.createElement("button",o_({},r,{id:xn()(s,r.id),"aria-expanded":i,"aria-haspopup":!0,type:"button",ref:a,className:xn()("dropdown-toggle","btn",n),onClick:function(e){o(e),r.onClick&&r.onClick(e)}}),t)}))};c_.propTypes={children:En.a.node,className:En.a.string},c_.defaultProps={children:void 0,className:"btn-light"};var l_=c_,u_=["children"];function d_(){return(d_=Object.assign||function(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p_=function(e){var t=e.children,n=f_(e,u_);return V.a.createElement(Y_,null,(function(e){var r=e.handleMenuKeyDown,a=e.isOpen,i=e.menuRef,o=e.triggerId;return V.a.createElement("div",d_({},n,{"aria-labelledby":o,"aria-hidden":!a,ref:i,role:"menu",className:xn()("dropdown-menu",{show:a},n.className),onKeyDown:function(e){r(e),n.onKeyDown&&n.onKeyDown(e)}}),t)}))};p_.propTypes={children:En.a.node},p_.defaultProps={children:void 0};var m_=p_,h_=["type","children","className"];function b_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function M_(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var y_=function(e){var t=e.type,n=e.children,r=e.className,a=g_(e,h_);return V.a.createElement(t,M_(M_({},a),{},{className:xn()("dropdown-item",r)}),n)};y_.propTypes={type:En.a.string,children:En.a.node,className:En.a.string},y_.defaultProps={type:"a",children:void 0,className:null};var v_=y_;function L_(e){return(L_="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function w_(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function x_(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var D_=V.a.createContext(),C_=D_.Provider,Y_=D_.Consumer,P_=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&A_(e,t)}(i,e);var t,n,r,a=T_(i);function i(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),x_(k_(t=a.call(this,e)),"handleDocumentClick",(function(e){t.containerRef.current.contains(e.target)&&t.containerRef.current!==e.target||t.state.open&&t.close()})),x_(k_(t),"handleMenuKeyDown",(function(e){switch(e.key){case"ArrowUp":e.preventDefault(),t.focusPrevious();break;case"ArrowDown":e.preventDefault(),t.focusNext();break;case"Tab":e.preventDefault(),e.shiftKey?t.focusPrevious():t.focusNext();break;case"Escape":e.stopPropagation(),t.close()}})),x_(k_(t),"toggle",(function(){t.state.open?t.close():t.open()})),t.state={open:!1},t.uniqueId=i.idCounter,i.idCounter+=1,t.triggerId="pgn__dropdown-trigger-".concat(t.uniqueId),t.containerRef=V.a.createRef(),t.menuRef=V.a.createRef(),t.buttonRef=V.a.createRef(),t}return t=i,(n=[{key:"componentDidUpdate",value:function(e,t){t.open!==this.state.open&&(this.state.open?this.focusFirst():this.buttonRef.current.focus())}},{key:"componentWillUnmount",value:function(){document.removeEventListener("click",this.handleDocumentClick,!0)}},{key:"getFocusableElements",value:function(){return Array.from(this.menuRef.current.querySelectorAll('button:not([disabled]), [href]:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled])'))}},{key:"close",value:function(){document.removeEventListener("click",this.handleDocumentClick,!0),this.setState({open:!1})}},{key:"open",value:function(){document.addEventListener("click",this.handleDocumentClick,!0),this.setState({open:!0})}},{key:"focusFirst",value:function(){var e=this.getFocusableElements();e.length&&e[0].focus()}},{key:"focusNext",value:function(){var e=this.getFocusableElements();if(0!==e.length){var t=e.indexOf(document.activeElement);e[(t+1)%e.length].focus()}}},{key:"focusPrevious",value:function(){var e=this.getFocusableElements();if(0!==e.length){var t=e.indexOf(document.activeElement);e[(t-1+e.length)%e.length].focus()}}},{key:"render",value:function(){var e=this.props,t=e.children,n=N_(e,z_);return V.a.createElement("div",E_({},n,{className:xn()("dropdown",{show:this.state.open},n.className),ref:this.containerRef}),V.a.createElement(C_,{value:{buttonRef:this.buttonRef,handleMenuKeyDown:this.handleMenuKeyDown,isOpen:this.state.open,menuRef:this.menuRef,toggle:this.toggle,triggerId:this.triggerId}},t))}}])&&w_(t.prototype,n),r&&w_(t,r),i}(V.a.Component);x_(P_,"idCounter",0),P_.propTypes={children:En.a.node.isRequired},P_.Item=v_,P_.Button=l_,P_.Menu=m_;var j_=Da(P_,"Dropdown",{menuItems:{deprType:Ea.MOVED_AND_FORMAT,message:"They should be components sent as children.",newName:"children",transform:function(e,t){return Array.isArray(e)?V.a.createElement(V.a.Fragment,null,V.a.createElement(l_,null,V.a.isValidElement(t.iconElement)?t.iconElement:null,t.title),V.a.createElement(m_,null,e.map((function(e,t){return V.a.isValidElement(e)?V.a.cloneElement(e,{className:"dropdown-item",key:t}):V.a.createElement(v_,{key:t,href:e.href},e.label)})))):null}},title:{deprType:Ea.REMOVED,message:"It should be specified inside the Dropdown.Button component"},buttonType:{deprType:Ea.REMOVED,message:"It should be specified as a className prop"},iconElement:{deprType:Ea.REMOVED,message:"It should be specified inside the buttonContent prop."}});j_.propTypes=P_.propTypes,j_.defaultProps=P_.defaultProps,j_.Item=P_.Item,j_.Button=P_.Button,j_.Menu=P_.Menu;var R_=j_;function W_(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return q_(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return q_(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function q_(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var V_=V.a.forwardRef((function(e,t){var n=e.show,r=e.autoClose,a=e.onToggle,i=U_(e,B_),o=W_(V.a.useState(n),2),s=o[0],c=o[1];return V.a.createElement(Hu,I_({show:s,onToggle:function(e,t,n){if(e)c(!0);else{var i=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0;return V.a.createElement("div",{className:"pgn__data-table-side-filters"},V.a.createElement("h3",{className:"pgn__data-table-side-filters-title"},t||V.a.createElement(_a,{id:"pgn.DataTable.SidebarFilters.title",defaultMessage:"Filters",description:"Title for the sidebar filters component"})),V.a.createElement("hr",null),i.map((function(e){return V.a.createElement("div",{key:e.Header,className:"pgn__data-table-side-filters-item"},e.render("Filter"))})),o&&V.a.createElement(V.a.Fragment,null,V.a.createElement(fc,{className:"pgn__data-table-side-filters-status",showFilteredFields:!1,variant:"tertiary"})))};Cg.propTypes={title:En.a.oneOfType([En.a.string,En.a.element])},Cg.defaultProps={title:void 0};var Yg=Cg,Pg=function(e){var t=e.filtersTitle,n=e.className,r=e.children,a=Object(U.useContext)(Vo),i=a.setFilter,o=a.showFiltersInSidebar;return V.a.createElement("div",{className:xn()("pgn__data-table-layout-wrapper",n)},o&&i&&V.a.createElement("div",{className:"pgn__data-table-layout-sidebar"},V.a.createElement(Yg,{title:t})),V.a.createElement("div",{className:"pgn__data-table-layout-main"},r))};Pg.defaultProps={className:null,filtersTitle:void 0},Pg.propTypes={className:En.a.string,children:En.a.node.isRequired,filtersTitle:En.a.oneOfType([En.a.string,En.a.element])};var jg=Pg,Rg=function(e){var t=e.getToggleAllRowsExpandedProps,n=e.isAllRowsExpanded;return V.a.createElement("span",t(),n?V.a.createElement(Oi,{variant:"link",size:"inline"},V.a.createElement(_a,{id:"pgn.DataTable.ExpandAll.collapseAllLabel",defaultMessage:"Collapse all",description:"Label of an action button that collapses all expandable rows of DataTable."})):V.a.createElement(Oi,{variant:"link",size:"inline"},V.a.createElement(_a,{id:"pgn.DataTable.ExpandAll.expandAllLabel",defaultMessage:"Expand all",description:"Label of an action button that expands all expandable rows of DataTable."})))};Rg.propTypes={getToggleAllRowsExpandedProps:En.a.func.isRequired,isAllRowsExpanded:En.a.bool.isRequired};var Wg=Rg,qg=function(e){var t=e.row;return V.a.createElement("span",t.getToggleRowExpandedProps(),t.isExpanded?V.a.createElement(Hm,{src:wo,iconAs:qa,alt:"Collapse row",size:"inline"}):V.a.createElement(Hm,{src:To,iconAs:qa,alt:"Expand row",size:"inline"}))};qg.propTypes={row:En.a.shape({isExpanded:En.a.bool,getToggleRowExpandedProps:En.a.func.isRequired}).isRequired};var Bg=qg,Hg=n(25),Ig=n.n(Hg);function Xg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Fg(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:$g,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET SELECTED ROWS":var n=Ig()([].concat(Vg(e.selectedRows),Vg(t.rows)),(function(e){return e.id})),r=Fg(Fg({},e),{},{selectedRows:n});return n.length===t.itemCount&&(r.isEntireTableSelected=!0),r;case"SELECT ALL ROWS ALL PAGES":return Fg(Fg({},e),{},{isEntireTableSelected:!0});case"DELETE ROW":return{selectedRows:e.selectedRows.filter((function(e){return e.id!==t.rowId})),isEntireTableSelected:!1};case"ADD ROW":var a=Ig()([].concat(Vg(e.selectedRows),[t.row]),(function(e){return e.id})),i=a.length===t.itemCount;return{selectedRows:a,isEntireTableSelected:i};case"CLEAR SELECTION":return $g;case"CLEAR PAGE SELECTION":return{isEntireTableSelected:!1,selectedRows:e.selectedRows.filter((function(e){return!t.rowIds.includes(e.id)}))};default:return e}};function Kg(e){return function(e){if(Array.isArray(e))return ey(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||Zg(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qg(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return n}(e,t)||Zg(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Zg(e,t){if(e){if("string"==typeof e)return ey(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ey(e,t):void 0}}function ey(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function cy(e){var t=e.columns,n=e.data,r=e.defaultColumnValues,a=e.additionalColumns,i=e.isSelectable,o=e.isPaginated,s=e.manualPagination,c=e.pageCount,l=e.itemCount,u=e.isFilterable,d=e.manualFilters,f=e.fetchData,p=e.initialState,m=e.isSortable,h=e.manualSortBy,b=e.isExpandable,M=e.renderRowSubComponent,_=e.bulkActions,g=e.tableActions,y=e.numBreakoutFilters,v=e.initialTableOptions,L=e.EmptyTableComponent,w=e.manualSelectColumn,A=e.showFiltersInSidebar,T=e.dataViewToggleOptions,O=e.disableElevation,k=e.isLoading,S=e.children,z=sy(e,ry),E=Object(U.useMemo)((function(){return r}),[r]),N=Object(U.useMemo)((function(){return iy({columns:t,data:n,defaultColumn:E,manualFilters:d,manualPagination:s,manualSortBy:h,initialState:p},v)}),[t,n,E,d,s,p,v,h]),x=Qg(Object(U.useReducer)(Jg,$g),2),D=x[0],C=x[1];o&&s&&(N.pageCount=c||-1);var Y=uc({tableOptions:N,isFilterable:u,isSelectable:i,isPaginated:o,isSortable:m,isExpandable:b});Y.push((function(e){e.visibleColumns.push((function(e){return sc(i,e,a,w)}))}));var P={},j=D.selectedRows;if(j.length>0){var R={};j.forEach((function(e){R[e.id]=!0})),Y.push((function(e){e.useControlledState.push((function(e){return iy(iy({},e),{},{selectedRowIds:R})}))})),P.selectedFlatRows=j}var W=[D,C],q=Qi.useTable.apply(void 0,Kg(Y)),B=iy({},q.state);delete B.selectedRowIds,Object(U.useEffect)((function(){f&&f(B)}),[f,JSON.stringify(B)]);var H=function(e,t){var n=e.toggleAllRowsSelected,r=Qo(t,2),a=r[0],i=a.selectedRows,o=a.isEntireTableSelected,s=r[1];return{clearSelection:function(){i.length>0||o?s({type:"CLEAR SELECTION"}):n(!1)}}}(q,W),I=iy(iy(iy(iy({},q),{},{itemCount:l,numBreakoutFilters:y,bulkActions:_,tableActions:g,controlledTableSelections:W,showFiltersInSidebar:A,dataViewToggleOptions:T,renderRowSubComponent:M,disableElevation:O,isLoading:k},P),H),z);return V.a.createElement(Vo.Provider,{value:I},V.a.createElement(jg,null,V.a.createElement("div",{className:xn()("pgn__data-table-wrapper",{"hide-shadow":!!O})},S||V.a.createElement(V.a.Fragment,null,V.a.createElement(t_,null),V.a.createElement(ts,null),V.a.createElement(L,{content:"No results found"}),V.a.createElement(Mg,null)))))}cy.defaultProps={additionalColumns:[],defaultColumnValues:{},isFilterable:!1,isPaginated:!1,isSelectable:!1,isSortable:!1,manualFilters:!1,manualPagination:!1,manualSortBy:!1,fetchData:null,initialState:{},initialTableOptions:{},EmptyTableComponent:r_,children:null,bulkActions:[],tableActions:[],numBreakoutFilters:1,manualSelectColumn:void 0,SelectionStatusComponent:gc,FilterStatusComponent:fc,RowStatusComponent:mc,showFiltersInSidebar:!1,dataViewToggleOptions:{isDataViewToggleEnabled:!1,onDataViewToggle:function(){},defaultActiveStateValue:"card",togglePlacement:"left"},disableElevation:!1,renderRowSubComponent:void 0,isExpandable:!1,isLoading:!1},cy.propTypes={columns:En.a.arrayOf(En.a.shape({Header:En.a.oneOfType([En.a.func,En.a.node]).isRequired,accessor:(ty=En.a.string,ny="Cell",cc(ty,(function(e){return!e[ny]}),"not ".concat(ny))),Cell:En.a.oneOfType([En.a.func,En.a.element]),Filter:En.a.func,filter:En.a.string,filterChoices:En.a.arrayOf(En.a.shape({name:En.a.string,number:En.a.number,value:En.a.string}))})).isRequired,data:En.a.arrayOf(En.a.shape({})).isRequired,isSelectable:En.a.bool,manualSelectColumn:En.a.shape({id:En.a.string.isRequired,Header:En.a.oneOfType([En.a.func,En.a.node]).isRequired,Cell:En.a.func.isRequired,disableSortBy:En.a.bool.isRequired}),isSortable:En.a.bool,manualSortBy:En.a.bool,isPaginated:En.a.bool,manualPagination:En.a.bool,pageCount:lc(En.a.number,"manualPagination"),isFilterable:En.a.bool,manualFilters:En.a.bool,defaultColumnValues:En.a.shape({Filter:En.a.oneOfType([En.a.func,En.a.node])}),additionalColumns:En.a.arrayOf(En.a.shape({id:En.a.string.isRequired,Header:En.a.oneOfType([En.a.string,En.a.node]),Cell:En.a.oneOfType([En.a.func,En.a.node])})),fetchData:En.a.func,initialState:En.a.shape({pageSize:lc(En.a.number,"isPaginated"),pageIndex:lc(En.a.number,"isPaginated"),filters:lc(En.a.arrayOf(En.a.shape()),"manualFilters"),sortBy:lc(En.a.arrayOf(En.a.shape()),"manualSortBy")}),initialTableOptions:En.a.shape({}),itemCount:En.a.number.isRequired,bulkActions:En.a.oneOfType([En.a.arrayOf(En.a.oneOfType([En.a.shape({buttonText:En.a.string.isRequired,handleClick:En.a.func.isRequired,className:En.a.string,variant:En.a.string,disabled:En.a.bool}),En.a.func,En.a.element])),En.a.func,En.a.element]),tableActions:En.a.oneOfType([En.a.arrayOf(En.a.oneOfType([En.a.shape({buttonText:En.a.string.isRequired,handleClick:En.a.func.isRequired,className:En.a.string,variant:En.a.string,disabled:En.a.bool}),En.a.func,En.a.element])),En.a.func,En.a.element]),numBreakoutFilters:En.a.oneOf([1,2,3,4]),EmptyTableComponent:En.a.func,RowStatusComponent:En.a.func,SelectionStatusComponent:En.a.func,FilterStatusComponent:En.a.func,children:En.a.oneOfType([En.a.arrayOf(En.a.node),En.a.node]),showFiltersInSidebar:En.a.bool,dataViewToggleOptions:En.a.shape({isDataViewToggleEnabled:En.a.bool,onDataViewToggle:En.a.func,defaultActiveStateValue:En.a.string,togglePlacement:En.a.string}),disableElevation:En.a.bool,renderRowSubComponent:En.a.func,isExpandable:En.a.bool,isLoading:En.a.bool},cy.BulkActions=IM,cy.EmptyTable=r_,cy.DropdownFilters=$u,cy.FilterStatus=fc,cy.RowStatus=mc,cy.SelectionStatus=gc,cy.SmartStatus=yc,cy.Table=ts,cy.TableCell=Uo,cy.TableControlBar=t_,cy.TableFilters=wg,cy.TableFooter=Mg,cy.TableHeaderCell=Ro,cy.TableHeaderRow=Bo,cy.TablePagination=mg,cy.TablePaginationMinimal=hg,cy.TableActions=FM,cy.ControlledSelectionStatus=vg,cy.ControlledSelect=Sg,cy.ControlledSelectHeader=Dg,cy.ExpandAll=Wg,cy.ExpandRow=Bg;var ly=cy;function uy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function dy(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n header .").concat(this.SLIDABLE_CLASS),this.element).focus())}},{key:"srClear",value:function(){$(this.READER_FEEDBACK_CLASS).html("")}},{key:"srReadTexts",value:function(e){var t=$(this.READER_FEEDBACK_CLASS),n="";this.srClear(),$.each(e,(function(e,t){n="".concat(n,"

    ").concat(t,"

    \n")})),t.html(n)}},{key:"areSRStepsLoading",value:function(){return this.responseView.isRendering||this.peerView.isRendering||this.selfView.isRendering||this.gradeView.isRendering||this.trainingView.isRendering||this.staffView.isRendering}},{key:"announceStatusChangeToSRandFocus",value:function(e,t,n,r,a){var i=this.getStatus(e,r,n);void 0!==t&&$(e,r.element).hasClass("is--showing")&&void 0!==a?($(a,r.element).focus(),this.srStatusUpdates.push(i)):r.announceStatus&&this.srStatusUpdates.push(i),!this.areSRStepsLoading()&&this.srStatusUpdates.length>0&&(this.srReadTexts(this.srStatusUpdates),this.srStatusUpdates=[]),r.announceStatus=!1}},{key:"getStatus",value:function(e,t,n){var r="".concat(e," .step__header .step__title "),a="".concat(r,".step__label"),i="".concat(r,".step__status");return n&&(i="".concat(r,".grade__value")),"".concat($(a,t.element).text().trim()," ").concat($(i,t.element).text().trim())}},{key:"setUpCollapseExpand",value:function(e){var t=this;$(".".concat(t.SLIDABLE_CONTROLS_CLASS),e).each((function(){$(this).on("click",(function(e){e.preventDefault();var n=$(e.target).closest(".".concat(t.SLIDABLE_CONTROLS_CLASS)),r=n.closest(".".concat(t.SLIDABLE_CONTAINER_CLASS)),a=n.find(".".concat(t.SLIDABLE_CLASS)),i=n.next(".".concat(t.SLIDABLE_CONTENT_CLASS));r.hasClass("is--showing")?(i.slideUp(),a.attr("aria-expanded","false"),r.removeClass("is--showing")):r.hasClass("has--error")||r.hasClass("is--empty")||r.hasClass("is--unavailable")||(i.slideDown(),a.attr("aria-expanded","true"),r.addClass("is--showing")),r.removeClass("is--initially--collapsed ")}))}))}},{key:"bindLatexPreview",value:function(e){e.find(".submission__preview__item").hide(),e.find(".submission__preview").click((function(t){t.preventDefault();var n=$(t.target).data("input"),r=e.find('textarea[data-preview="'.concat(n,'"]')).val(),a=e.find('.preview_content[data-preview="'.concat(n,'"]'));a.html(r.replace(/\r\n|\r|\n/g,"
    ")),a.parent().parent().parent().show(),MathJax.Hub.Queue(["Typeset",MathJax.Hub,a[0]])}))}},{key:"getUsageID",value:function(){return this.usageID||(this.usageID=$(this.element).data("usage-id")),this.usageID}},{key:"load",value:function(){this.responseView.load(),this.loadAssessmentModules(),this.staffAreaView.load()}},{key:"loadAssessmentModules",value:function(e){this.trainingView.load(e),this.peerView.load(e),this.staffView.load(e),this.selfView.load(e),this.gradeView.load(e),this.leaderboardView.load(e)}},{key:"loadMessageView",value:function(){this.messageView.load()}},{key:"toggleActionError",value:function(e,t){var n=this.element,r=null;if("save"===e?r=".response__submission__actions":"submit"===e||"peer"===e||"self"===e||"student-training"===e?r=".step__actions":"feedback_assess"===e?r=".submission__feedback__actions":"upload"===e?r=".upload__error":"delete"===e&&(r=".delete__error"),null===r?null!==t&&console.log(t):($("".concat(r," .message__content"),n).html("

    ".concat(t?_.escape(t):"","

    ")),$(r,n).toggleClass("has--error",null!==t),$("".concat(r," > .message"),n).focus()),null!==t){var a=$("".concat(r," .message__title")).text();this.srReadTexts([a,t])}}},{key:"showLoadError",value:function(e,t){t||(t=gettext("Unable to load"));var n=$(".step--".concat(e));n.toggleClass("has--error",!0),n.removeClass("is--showing"),n.find(".ui-slidable").attr("aria-expanded","false"),n.find(".step__status__value i").removeClass().addClass("icon fa fa-exclamation-triangle"),n.find(".step__status__value .copy").html(_.escape(t))}},{key:"unsavedWarningEnabled",value:function(e,t,n){if(void 0===e)return null!==window.onbeforeunload;var r=$(this.element).data("usage-id");e?(void 0!==this.unsavedChanges[r]&&this.unsavedChanges[r]||(this.unsavedChanges[r]={}),this.unsavedChanges[r][t]=n,window.onbeforeunload=function(){var e,n=this;return Object.keys(this.unsavedChanges).some((function(r){if(n.unsavedChanges.hasOwnProperty(r)){var a=n.unsavedChanges[r];return Object.keys(a).some((function(n){return!!a.hasOwnProperty(t)&&(e=a[t],!0)}))}return!1})),e}):void 0!==this.unsavedChanges[r]&&(delete this.unsavedChanges[r][t],$.isEmptyObject(this.unsavedChanges[r])&&delete this.unsavedChanges[r],$.isEmptyObject(this.unsavedChanges)&&(window.onbeforeunload=null))}},{key:"buttonEnabled",value:function(e,t){var n=$(e,this.element);return void 0===t?!n.prop("disabled"):(n.prop("disabled",!t),t)}}])&&wy(t.prototype,n),r&&wy(t,r),e}();window.OpenAssessmentBlock=function(e,t,n){var a=new r.a(e,t);new Ty(e,t,a,n).load()},window.CourseOpenResponsesListingBlock=function(e,t,n){new a.a(e,t,n).refreshGrids()},window.StaffAssessmentBlock=function(e,t,n){var a=new r.a(e,t);new Ty(e,t,a,n).staffAreaView.installHandlers()},window.WaitingStepDetailsBlock=function(e,t,n){var a=new r.a(e,t),i=new Ty(e,t,a,n);Ly(i,n)}},,,,,,,,,,,function(e,t,n){"use strict";(function(e){var r=n(0);function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0;)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return t}function Xd(e){for(var t=[],n=(e||[]).length>>>0;n--;)t[n]=e[n];return t}function Fd(e){return e.classList?Xd(e.classList):(e.getAttribute("class")||"").split(" ").filter((function(e){return e}))}function Ud(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Vd(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,": ").concat(e[n].trim(),";")}),"")}function Gd(e){return e.size!==Hd.size||e.x!==Hd.x||e.y!==Hd.y||e.rotate!==Hd.rotate||e.flipX||e.flipY}function $d(){var e="svg-inline--fa",t=Wd.familyPrefix,n=Wd.replacementClass,r=':root, :host {\n --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";\n --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";\n --fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";\n --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Thin";\n --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";\n --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";\n}\n\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\n overflow: visible;\n box-sizing: content-box;\n}\n\n.svg-inline--fa {\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285705em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n top: 0.25em;\n}\n.svg-inline--fa.fa-fw {\n width: var(--fa-fw-width, 1.25em);\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\n transform: scale(var(--fa-counter-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0);\n animation-delay: var(--fa-animation-delay, 0);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n transition-delay: 0s;\n transition-duration: 0s;\n }\n}\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\n transform: rotate(var(--fa-rotate-angle, none));\n}\n\n.fa-stack {\n display: inline-block;\n vertical-align: middle;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse,\n.fa-duotone.fa-inverse {\n color: var(--fa-inverse, #fff);\n}';if("fa"!==t||n!==e){var a=new RegExp("\\.".concat("fa","\\-"),"g"),i=new RegExp("\\--".concat("fa","\\-"),"g"),o=new RegExp("\\.".concat(e),"g");r=r.replace(a,".".concat(t,"-")).replace(i,"--".concat(t,"-")).replace(o,".".concat(n))}return r}var Jd=!1;function Kd(){Wd.autoAddCss&&!Jd&&(!function(e){if(e&&_d){var t=hd.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var n=hd.head.childNodes,r=null,a=n.length-1;a>-1;a--){var i=n[a],o=(i.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(r=i)}hd.head.insertBefore(t,r)}}($d()),Jd=!0)}var Qd={mixout:function(){return{dom:{css:$d,insertCss:Kd}}},hooks:function(){return{beforeDOMElementCreation:function(){Kd()},beforeI2svg:function(){Kd()}}}},Zd=md||{};Zd.___FONT_AWESOME___||(Zd.___FONT_AWESOME___={}),Zd.___FONT_AWESOME___.styles||(Zd.___FONT_AWESOME___.styles={}),Zd.___FONT_AWESOME___.hooks||(Zd.___FONT_AWESOME___.hooks={}),Zd.___FONT_AWESOME___.shims||(Zd.___FONT_AWESOME___.shims=[]);var ef=Zd.___FONT_AWESOME___,tf=[],nf=!1;function rf(e){_d&&(nf?setTimeout(e,0):tf.push(e))}function af(e){var t=e.tag,n=e.attributes,r=void 0===n?{}:n,a=e.children,i=void 0===a?[]:a;return"string"==typeof e?Ud(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,'="').concat(Ud(e[n]),'" ')}),"").trim()}(r),">").concat(i.map(af).join(""),"")}function of(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}_d&&((nf=(hd.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(hd.readyState))||hd.addEventListener("DOMContentLoaded",(function e(){hd.removeEventListener("DOMContentLoaded",e),nf=1,tf.map((function(e){return e()}))})));var sf=function(e,t,n,r){var a,i,o,s=Object.keys(e),c=s.length,l=void 0!==r?function(e,t){return function(n,r,a,i){return e.call(t,n,r,a,i)}}(t,r):t;for(void 0===n?(a=1,o=e[s[0]]):(a=0,o=n);a=55296&&a<=56319&&n2&&void 0!==arguments[2]?arguments[2]:{},r=n.skipHooks,a=void 0!==r&&r,i=lf(t);"function"!=typeof ef.hooks.addPack||a?ef.styles[e]=Zu(Zu({},ef.styles[e]||{}),i):ef.hooks.addPack(e,lf(t)),"fas"===e&&uf("fa",t)}var df=ef.styles,ff=ef.shims,pf=Object.values(Ad),mf=null,hf={},bf={},Mf={},_f={},gf={},yf=Object.keys(Ld);function vf(e,t){var n,r=t.split("-"),a=r[0],i=r.slice(1).join("-");return a!==e||""===i||(n=i,~Pd.indexOf(n))?null:i}var Lf,wf=function(){var e=function(e){return sf(df,(function(t,n,r){return t[r]=sf(n,e,{}),t}),{})};hf=e((function(e,t,n){(t[3]&&(e[t[3]]=n),t[2])&&t[2].filter((function(e){return"number"==typeof e})).forEach((function(t){e[t.toString(16)]=n}));return e})),bf=e((function(e,t,n){(e[n]=n,t[2])&&t[2].filter((function(e){return"string"==typeof e})).forEach((function(t){e[t]=n}));return e})),gf=e((function(e,t,n){var r=t[2];return e[n]=n,r.forEach((function(t){e[t]=n})),e}));var t="far"in df||Wd.autoFetchSvg,n=sf(ff,(function(e,n){var r=n[0],a=n[1],i=n[2];return"far"!==a||t||(a="fas"),"string"==typeof r&&(e.names[r]={prefix:a,iconName:i}),"number"==typeof r&&(e.unicodes[r.toString(16)]={prefix:a,iconName:i}),e}),{names:{},unicodes:{}});Mf=n.names,_f=n.unicodes,mf=Sf(Wd.styleDefault)};function Af(e,t){return(hf[e]||{})[t]}function Tf(e,t){return(gf[e]||{})[t]}function Of(e){return Mf[e]||{prefix:null,iconName:null}}function kf(){return mf}Lf=function(e){mf=Sf(e.styleDefault)},qd.push(Lf),wf();function Sf(e){var t=wd[e]||wd[Ld[e]],n=e in ef.styles?e:null;return t||n||null}function zf(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.skipLookups,r=void 0!==n&&n,a=null,i=e.reduce((function(e,t){var n=vf(Wd.familyPrefix,t);if(df[t]?(t=pf.includes(t)?Td[t]:t,a=t,e.prefix=t):yf.indexOf(t)>-1?(a=t,e.prefix=Sf(t)):n?e.iconName=n:t!==Wd.replacementClass&&e.rest.push(t),!r&&e.prefix&&e.iconName){var i="fa"===a?Of(e.iconName):{},o=Tf(e.prefix,e.iconName);i.prefix&&(a=null),e.iconName=i.iconName||o||e.iconName,e.prefix=i.prefix||e.prefix,"far"!==e.prefix||df.far||!df.fas||Wd.autoFetchSvg||(e.prefix="fas")}return e}),{prefix:null,iconName:null,rest:[]});return"fa"!==i.prefix&&"fa"!==a||(i.prefix=kf()||"fas"),i}var Ef=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}}var t,n,r;return t=e,(n=[{key:"add",value:function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r0&&s.forEach((function(t){"string"==typeof t&&(e[a][t]=o)})),e[a][i]=o})),e}}])&&td(t.prototype,n),r&&td(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}(),Nf=[],xf={},Df={},Cf=Object.keys(Df);function Yf(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),a=2;a1?t-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{};return _d?(Pf("beforeI2svg",e),jf("pseudoElements2svg",e),jf("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot;!1===Wd.autoReplaceSvg&&(Wd.autoReplaceSvg=!0),Wd.observeMutations=!0,rf((function(){Hf({autoReplaceSvgRoot:t}),Pf("watch",e)}))}},Bf={noAuto:function(){Wd.autoReplaceSvg=!1,Wd.observeMutations=!1,Pf("noAuto")},config:Wd,dom:qf,parse:{icon:function(e){if(null===e)return null;if("object"===ed(e)&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Tf(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&2===e.length){var t=0===e[1].indexOf("fa-")?e[1].slice(3):e[1],n=Sf(e[0]);return{prefix:n,iconName:Tf(n,t)||t}}if("string"==typeof e&&(e.indexOf("".concat(Wd.familyPrefix,"-"))>-1||e.match(Od))){var r=zf(e.split(" "),{skipLookups:!0});return{prefix:r.prefix||kf(),iconName:Tf(r.prefix,r.iconName)||r.iconName}}if("string"==typeof e){var a=kf();return{prefix:a,iconName:Tf(a,e)||e}}}},library:Wf,findIconDefinition:Rf,toHtml:af},Hf=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.autoReplaceSvgRoot,n=void 0===t?hd:t;(Object.keys(ef.styles).length>0||Wd.autoFetchSvg)&&_d&&Wd.autoReplaceSvg&&Bf.dom.i2svg({node:n})};function If(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map((function(e){return af(e)}))}}),Object.defineProperty(e,"node",{get:function(){if(_d){var t=hd.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function Xf(e){var t=e.icons,n=t.main,r=t.mask,a=e.prefix,i=e.iconName,o=e.transform,s=e.symbol,c=e.title,l=e.maskId,u=e.titleId,d=e.extra,f=e.watchable,p=void 0!==f&&f,m=r.found?r:n,h=m.width,b=m.height,M="fak"===a,_=[Wd.replacementClass,i?"".concat(Wd.familyPrefix,"-").concat(i):""].filter((function(e){return-1===d.classes.indexOf(e)})).filter((function(e){return""!==e||!!e})).concat(d.classes).join(" "),g={children:[],attributes:Zu(Zu({},d.attributes),{},{"data-prefix":a,"data-icon":i,class:_,role:d.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(h," ").concat(b)})},y=M&&!~d.classes.indexOf("fa-fw")?{width:"".concat(h/b*16*.0625,"em")}:{};p&&(g.attributes["data-fa-i2svg"]=""),c&&(g.children.push({tag:"title",attributes:{id:g.attributes["aria-labelledby"]||"title-".concat(u||Id())},children:[c]}),delete g.attributes.title);var v=Zu(Zu({},g),{},{prefix:a,iconName:i,main:n,mask:r,maskId:l,transform:o,symbol:s,styles:Zu(Zu({},y),d.styles)}),L=r.found&&n.found?jf("generateAbstractMask",v)||{children:[],attributes:{}}:jf("generateAbstractIcon",v)||{children:[],attributes:{}},w=L.children,A=L.attributes;return v.children=w,v.attributes=A,s?function(e){var t=e.prefix,n=e.iconName,r=e.children,a=e.attributes,i=e.symbol,o=!0===i?"".concat(t,"-").concat(Wd.familyPrefix,"-").concat(n):i;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:Zu(Zu({},a),{},{id:o}),children:r}]}]}(v):function(e){var t=e.children,n=e.main,r=e.mask,a=e.attributes,i=e.styles,o=e.transform;if(Gd(o)&&n.found&&!r.found){var s={x:n.width/n.height/2,y:.5};a.style=Vd(Zu(Zu({},i),{},{"transform-origin":"".concat(s.x+o.x/16,"em ").concat(s.y+o.y/16,"em")}))}return[{tag:"svg",attributes:a,children:t}]}(v)}function Ff(e){var t=e.content,n=e.width,r=e.height,a=e.transform,i=e.title,o=e.extra,s=e.watchable,c=void 0!==s&&s,l=Zu(Zu(Zu({},o.attributes),i?{title:i}:{}),{},{class:o.classes.join(" ")});c&&(l["data-fa-i2svg"]="");var u=Zu({},o.styles);Gd(a)&&(u.transform=function(e){var t=e.transform,n=e.width,r=void 0===n?16:n,a=e.height,i=void 0===a?16:a,o=e.startCentered,s=void 0!==o&&o,c="";return c+=s&&gd?"translate(".concat(t.x/Bd-r/2,"em, ").concat(t.y/Bd-i/2,"em) "):s?"translate(calc(-50% + ".concat(t.x/Bd,"em), calc(-50% + ").concat(t.y/Bd,"em)) "):"translate(".concat(t.x/Bd,"em, ").concat(t.y/Bd,"em) "),c+="scale(".concat(t.size/Bd*(t.flipX?-1:1),", ").concat(t.size/Bd*(t.flipY?-1:1),") "),c+="rotate(".concat(t.rotate,"deg) ")}({transform:a,startCentered:!0,width:n,height:r}),u["-webkit-transform"]=u.transform);var d=Vd(u);d.length>0&&(l.style=d);var f=[];return f.push({tag:"span",attributes:l,children:[t]}),i&&f.push({tag:"span",attributes:{class:"sr-only"},children:[i]}),f}function Uf(e){var t=e.content,n=e.title,r=e.extra,a=Zu(Zu(Zu({},r.attributes),n?{title:n}:{}),{},{class:r.classes.join(" ")}),i=Vd(r.styles);i.length>0&&(a.style=i);var o=[];return o.push({tag:"span",attributes:a,children:[t]}),n&&o.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),o}var Vf=ef.styles;function Gf(e){var t=e[0],n=e[1],r=rd(e.slice(4),1)[0];return{found:!0,width:t,height:n,icon:Array.isArray(r)?{tag:"g",attributes:{class:"".concat(Wd.familyPrefix,"-").concat(xd)},children:[{tag:"path",attributes:{class:"".concat(Wd.familyPrefix,"-").concat(Yd),fill:"currentColor",d:r[0]}},{tag:"path",attributes:{class:"".concat(Wd.familyPrefix,"-").concat(Cd),fill:"currentColor",d:r[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:r}}}}var $f={found:!1,width:512,height:512};function Jf(e,t){var n=t;return"fa"===t&&null!==Wd.styleDefault&&(t=kf()),new Promise((function(r,a){jf("missingIconAbstract");if("fa"===n){var i=Of(e)||{};e=i.iconName||e,t=i.prefix||t}if(e&&t&&Vf[t]&&Vf[t][e])return r(Gf(Vf[t][e]));!function(e,t){vd||Wd.showMissingIcons||!e||console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}(e,t),r(Zu(Zu({},$f),{},{icon:Wd.showMissingIcons&&e&&jf("missingIconAbstract")||{}}))}))}var Kf=function(){},Qf=Wd.measurePerformance&&Md&&Md.mark&&Md.measure?Md:{mark:Kf,measure:Kf},Zf=function(e){Qf.mark("".concat('FA "6.1.2"'," ").concat(e," ends")),Qf.measure("".concat('FA "6.1.2"'," ").concat(e),"".concat('FA "6.1.2"'," ").concat(e," begins"),"".concat('FA "6.1.2"'," ").concat(e," ends"))},ep=function(e){return Qf.mark("".concat('FA "6.1.2"'," ").concat(e," begins")),function(){return Zf(e)}},tp=function(){};function np(e){return"string"==typeof(e.getAttribute?e.getAttribute("data-fa-i2svg"):null)}function rp(e){return hd.createElementNS("http://www.w3.org/2000/svg",e)}function ap(e){return hd.createElement(e)}var ip={replace:function(e){var t=e[0];if(t.parentNode)if(e[1].forEach((function(e){t.parentNode.insertBefore(function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.ceFn,a=void 0===r?"svg"===t.tag?rp:ap:r;if("string"==typeof t)return hd.createTextNode(t);var i=a(t.tag);Object.keys(t.attributes||[]).forEach((function(e){i.setAttribute(e,t.attributes[e])}));var o=t.children||[];return o.forEach((function(t){i.appendChild(e(t,{ceFn:a}))})),i}(e),t)})),null===t.getAttribute("data-fa-i2svg")&&Wd.keepOriginalSource){var n=hd.createComment(function(e){var t=" ".concat(e.outerHTML," ");return t="".concat(t,"Font Awesome fontawesome.com ")}(t));t.parentNode.replaceChild(n,t)}else t.remove()},nest:function(e){var t=e[0],n=e[1];if(~Fd(t).indexOf(Wd.replacementClass))return ip.replace(e);var r=new RegExp("".concat(Wd.familyPrefix,"-.*"));if(delete n[0].attributes.id,n[0].attributes.class){var a=n[0].attributes.class.split(" ").reduce((function(e,t){return t===Wd.replacementClass||t.match(r)?e.toSvg.push(t):e.toNode.push(t),e}),{toNode:[],toSvg:[]});n[0].attributes.class=a.toSvg.join(" "),0===a.toNode.length?t.removeAttribute("class"):t.setAttribute("class",a.toNode.join(" "))}var i=n.map((function(e){return af(e)})).join("\n");t.setAttribute("data-fa-i2svg",""),t.innerHTML=i}};function op(e){e()}function sp(e,t){var n="function"==typeof t?t:tp;if(0===e.length)n();else{var r=op;"async"===Wd.mutateApproach&&(r=md.requestAnimationFrame||op),r((function(){var t=!0===Wd.autoReplaceSvg?ip.replace:ip[Wd.autoReplaceSvg]||ip.replace,r=ep("mutate");e.map(t),r(),n()}))}}var cp=!1;function lp(){cp=!0}function up(){cp=!1}var dp=null;function fp(e){if(bd&&Wd.observeMutations){var t=e.treeCallback,n=void 0===t?tp:t,r=e.nodeCallback,a=void 0===r?tp:r,i=e.pseudoElementsCallback,o=void 0===i?tp:i,s=e.observeMutationsRoot,c=void 0===s?hd:s;dp=new bd((function(e){if(!cp){var t=kf();Xd(e).forEach((function(e){if("childList"===e.type&&e.addedNodes.length>0&&!np(e.addedNodes[0])&&(Wd.searchPseudoElements&&o(e.target),n(e.target)),"attributes"===e.type&&e.target.parentNode&&Wd.searchPseudoElements&&o(e.target.parentNode),"attributes"===e.type&&np(e.target)&&~Nd.indexOf(e.attributeName))if("class"===e.attributeName&&function(e){var t=e.getAttribute?e.getAttribute("data-prefix"):null,n=e.getAttribute?e.getAttribute("data-icon"):null;return t&&n}(e.target)){var r=zf(Fd(e.target)),i=r.prefix,s=r.iconName;e.target.setAttribute("data-prefix",i||t),s&&e.target.setAttribute("data-icon",s)}else(c=e.target)&&c.classList&&c.classList.contains&&c.classList.contains(Wd.replacementClass)&&a(e.target);var c}))}})),_d&&dp.observe(c,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function pp(e){var t=e.getAttribute("style"),n=[];return t&&(n=t.split(";").reduce((function(e,t){var n=t.split(":"),r=n[0],a=n.slice(1);return r&&a.length>0&&(e[r]=a.join(":").trim()),e}),{})),n}function mp(e){var t,n,r=e.getAttribute("data-prefix"),a=e.getAttribute("data-icon"),i=void 0!==e.innerText?e.innerText.trim():"",o=zf(Fd(e));return o.prefix||(o.prefix=kf()),r&&a&&(o.prefix=r,o.iconName=a),o.iconName&&o.prefix||(o.prefix&&i.length>0&&(o.iconName=(t=o.prefix,n=e.innerText,(bf[t]||{})[n]||Af(o.prefix,cf(e.innerText)))),!o.iconName&&Wd.autoFetchSvg&&e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(o.iconName=e.firstChild.data)),o}function hp(e){var t=Xd(e.attributes).reduce((function(e,t){return"class"!==e.name&&"style"!==e.name&&(e[t.name]=t.value),e}),{}),n=e.getAttribute("title"),r=e.getAttribute("data-fa-title-id");return Wd.autoA11y&&(n?t["aria-labelledby"]="".concat(Wd.replacementClass,"-title-").concat(r||Id()):(t["aria-hidden"]="true",t.focusable="false")),t}function bp(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{styleParser:!0},n=mp(e),r=n.iconName,a=n.prefix,i=n.rest,o=hp(e),s=Yf("parseNodeAttributes",{},e),c=t.styleParser?pp(e):[];return Zu({iconName:r,title:e.getAttribute("title"),titleId:e.getAttribute("data-fa-title-id"),prefix:a,transform:Hd,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:i,styles:c,attributes:o}},s)}var Mp=ef.styles;function _p(e){var t="nest"===Wd.autoReplaceSvg?bp(e,{styleParser:!1}):bp(e);return~t.extra.classes.indexOf("fa-layers-text")?jf("generateLayersText",e,t):jf("generateSvgReplacementMutation",e,t)}function gp(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!_d)return Promise.resolve();var n=hd.documentElement.classList,r=function(e){return n.add("".concat("fontawesome-i2svg","-").concat(e))},a=function(e){return n.remove("".concat("fontawesome-i2svg","-").concat(e))},i=Wd.autoFetchSvg?Object.keys(Ld):Object.keys(Mp);i.includes("fa")||i.push("fa");var o=[".".concat("fa-layers-text",":not([").concat("data-fa-i2svg","])")].concat(i.map((function(e){return".".concat(e,":not([").concat("data-fa-i2svg","])")}))).join(", ");if(0===o.length)return Promise.resolve();var s=[];try{s=Xd(e.querySelectorAll(o))}catch(e){}if(!(s.length>0))return Promise.resolve();r("pending"),a("complete");var c=ep("onTree"),l=s.reduce((function(e,t){try{var n=_p(t);n&&e.push(n)}catch(e){vd||"MissingIcon"===e.name&&console.error(e)}return e}),[]);return new Promise((function(e,n){Promise.all(l).then((function(n){sp(n,(function(){r("active"),r("complete"),a("pending"),"function"==typeof t&&t(),c(),e()}))})).catch((function(e){c(),n(e)}))}))}function yp(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;_p(e).then((function(e){e&&sp([e],t)}))}var vp=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?Hd:n,a=t.symbol,i=void 0!==a&&a,o=t.mask,s=void 0===o?null:o,c=t.maskId,l=void 0===c?null:c,u=t.title,d=void 0===u?null:u,f=t.titleId,p=void 0===f?null:f,m=t.classes,h=void 0===m?[]:m,b=t.attributes,M=void 0===b?{}:b,_=t.styles,g=void 0===_?{}:_;if(e){var y=e.prefix,v=e.iconName,L=e.icon;return If(Zu({type:"icon"},e),(function(){return Pf("beforeDOMElementCreation",{iconDefinition:e,params:t}),Wd.autoA11y&&(d?M["aria-labelledby"]="".concat(Wd.replacementClass,"-title-").concat(p||Id()):(M["aria-hidden"]="true",M.focusable="false")),Xf({icons:{main:Gf(L),mask:s?Gf(s.icon):{found:!1,width:null,height:null,icon:{}}},prefix:y,iconName:v,transform:Zu(Zu({},Hd),r),symbol:i,title:d,maskId:l,titleId:p,extra:{attributes:M,styles:g,classes:h}})}))}},Lp={mixout:function(){return{icon:(e=vp,function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t||{}).icon?t:Rf(t||{}),a=n.mask;return a&&(a=(a||{}).icon?a:Rf(a||{})),e(r,Zu(Zu({},n),{},{mask:a}))})};var e},hooks:function(){return{mutationObserverCallbacks:function(e){return e.treeCallback=gp,e.nodeCallback=yp,e}}},provides:function(e){e.i2svg=function(e){var t=e.node,n=void 0===t?hd:t,r=e.callback;return gp(n,void 0===r?function(){}:r)},e.generateSvgReplacementMutation=function(e,t){var n=t.iconName,r=t.title,a=t.titleId,i=t.prefix,o=t.transform,s=t.symbol,c=t.mask,l=t.maskId,u=t.extra;return new Promise((function(t,d){Promise.all([Jf(n,i),c.iconName?Jf(c.iconName,c.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then((function(c){var d=rd(c,2),f=d[0],p=d[1];t([e,Xf({icons:{main:f,mask:p},prefix:i,iconName:n,transform:o,symbol:s,maskId:l,title:r,titleId:a,extra:u,watchable:!0})])})).catch(d)}))},e.generateAbstractIcon=function(e){var t,n=e.children,r=e.attributes,a=e.main,i=e.transform,o=Vd(e.styles);return o.length>0&&(r.style=o),Gd(i)&&(t=jf("generateAbstractTransformGrouping",{main:a,transform:i,containerWidth:a.width,iconWidth:a.width})),n.push(t||a.icon),{children:n,attributes:r}}}},wp={mixout:function(){return{layer:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.classes,r=void 0===n?[]:n;return If({type:"layer"},(function(){Pf("beforeDOMElementCreation",{assembler:e,params:t});var n=[];return e((function(e){Array.isArray(e)?e.map((function(e){n=n.concat(e.abstract)})):n=n.concat(e.abstract)})),[{tag:"span",attributes:{class:["".concat(Wd.familyPrefix,"-layers")].concat(ad(r)).join(" ")},children:n}]}))}}}},Ap={mixout:function(){return{counter:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.title,r=void 0===n?null:n,a=t.classes,i=void 0===a?[]:a,o=t.attributes,s=void 0===o?{}:o,c=t.styles,l=void 0===c?{}:c;return If({type:"counter",content:e},(function(){return Pf("beforeDOMElementCreation",{content:e,params:t}),Uf({content:e.toString(),title:r,extra:{attributes:s,styles:l,classes:["".concat(Wd.familyPrefix,"-layers-counter")].concat(ad(i))}})}))}}}},Tp={mixout:function(){return{text:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?Hd:n,a=t.title,i=void 0===a?null:a,o=t.classes,s=void 0===o?[]:o,c=t.attributes,l=void 0===c?{}:c,u=t.styles,d=void 0===u?{}:u;return If({type:"text",content:e},(function(){return Pf("beforeDOMElementCreation",{content:e,params:t}),Ff({content:e,transform:Zu(Zu({},Hd),r),title:i,extra:{attributes:l,styles:d,classes:["".concat(Wd.familyPrefix,"-layers-text")].concat(ad(s))}})}))}}},provides:function(e){e.generateLayersText=function(e,t){var n=t.title,r=t.transform,a=t.extra,i=null,o=null;if(gd){var s=parseInt(getComputedStyle(e).fontSize,10),c=e.getBoundingClientRect();i=c.width/s,o=c.height/s}return Wd.autoA11y&&!n&&(a.attributes["aria-hidden"]="true"),Promise.resolve([e,Ff({content:e.innerHTML,width:i,height:o,transform:r,title:n,extra:a,watchable:!0})])}}},Op=new RegExp('"',"ug"),kp=[1105920,1112319];function Sp(e,t){var n="".concat("data-fa-pseudo-element-pending").concat(t.replace(":","-"));return new Promise((function(r,a){if(null!==e.getAttribute(n))return r();var i,o,s,c=Xd(e.children).filter((function(e){return e.getAttribute("data-fa-pseudo-element")===t}))[0],l=md.getComputedStyle(e,t),u=l.getPropertyValue("font-family").match(kd),d=l.getPropertyValue("font-weight"),f=l.getPropertyValue("content");if(c&&!u)return e.removeChild(c),r();if(u&&"none"!==f&&""!==f){var p=l.getPropertyValue("content"),m=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(u[2])?wd[u[2].toLowerCase()]:Sd[d],h=function(e){var t,n,r,a,i,o=e.replace(Op,""),s=(n=0,a=(t=o).length,(i=t.charCodeAt(n))>=55296&&i<=56319&&a>n+1&&(r=t.charCodeAt(n+1))>=56320&&r<=57343?1024*(i-55296)+r-56320+65536:i),c=s>=kp[0]&&s<=kp[1],l=2===o.length&&o[0]===o[1];return{value:cf(l?o[0]:o),isSecondary:c||l}}(p),b=h.value,M=h.isSecondary,_=u[0].startsWith("FontAwesome"),g=Af(m,b),y=g;if(_){var v=(o=_f[i=b],s=Af("fas",i),o||(s?{prefix:"fas",iconName:s}:null)||{prefix:null,iconName:null});v.iconName&&v.prefix&&(g=v.iconName,m=v.prefix)}if(!g||M||c&&c.getAttribute("data-prefix")===m&&c.getAttribute("data-icon")===y)r();else{e.setAttribute(n,y),c&&e.removeChild(c);var L={iconName:null,title:null,titleId:null,prefix:null,transform:Hd,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},w=L.extra;w.attributes["data-fa-pseudo-element"]=t,Jf(g,m).then((function(a){var i=Xf(Zu(Zu({},L),{},{icons:{main:a,mask:{prefix:null,iconName:null,rest:[]}},prefix:m,iconName:y,extra:w,watchable:!0})),o=hd.createElement("svg");"::before"===t?e.insertBefore(o,e.firstChild):e.appendChild(o),o.outerHTML=i.map((function(e){return af(e)})).join("\n"),e.removeAttribute(n),r()})).catch(a)}}else r()}))}function zp(e){return Promise.all([Sp(e,"::before"),Sp(e,"::after")])}function Ep(e){return!(e.parentNode===document.head||~yd.indexOf(e.tagName.toUpperCase())||e.getAttribute("data-fa-pseudo-element")||e.parentNode&&"svg"===e.parentNode.tagName)}function Np(e){if(_d)return new Promise((function(t,n){var r=Xd(e.querySelectorAll("*")).filter(Ep).map(zp),a=ep("searchPseudoElements");lp(),Promise.all(r).then((function(){a(),up(),t()})).catch((function(){a(),up(),n()}))}))}var xp=!1,Dp=function(e){return e.toLowerCase().split(" ").reduce((function(e,t){var n=t.toLowerCase().split("-"),r=n[0],a=n.slice(1).join("-");if(r&&"h"===a)return e.flipX=!0,e;if(r&&"v"===a)return e.flipY=!0,e;if(a=parseFloat(a),isNaN(a))return e;switch(r){case"grow":e.size=e.size+a;break;case"shrink":e.size=e.size-a;break;case"left":e.x=e.x-a;break;case"right":e.x=e.x+a;break;case"up":e.y=e.y-a;break;case"down":e.y=e.y+a;break;case"rotate":e.rotate=e.rotate+a}return e}),{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0})},Cp={mixout:function(){return{parse:{transform:function(e){return Dp(e)}}}},hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-transform");return n&&(e.transform=Dp(n)),e}}},provides:function(e){e.generateAbstractTransformGrouping=function(e){var t=e.main,n=e.transform,r=e.containerWidth,a=e.iconWidth,i={transform:"translate(".concat(r/2," 256)")},o="translate(".concat(32*n.x,", ").concat(32*n.y,") "),s="scale(".concat(n.size/16*(n.flipX?-1:1),", ").concat(n.size/16*(n.flipY?-1:1),") "),c="rotate(".concat(n.rotate," 0 0)"),l={outer:i,inner:{transform:"".concat(o," ").concat(s," ").concat(c)},path:{transform:"translate(".concat(a/2*-1," -256)")}};return{tag:"g",attributes:Zu({},l.outer),children:[{tag:"g",attributes:Zu({},l.inner),children:[{tag:t.icon.tag,children:t.icon.children,attributes:Zu(Zu({},t.icon.attributes),l.path)}]}]}}}},Yp={x:0,y:0,width:"100%",height:"100%"};function Pp(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}var jp,Rp={hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-mask"),r=n?zf(n.split(" ").map((function(e){return e.trim()}))):{prefix:null,iconName:null,rest:[]};return r.prefix||(r.prefix=kf()),e.mask=r,e.maskId=t.getAttribute("data-fa-mask-id"),e}}},provides:function(e){e.generateAbstractMask=function(e){var t,n=e.children,r=e.attributes,a=e.main,i=e.mask,o=e.maskId,s=e.transform,c=a.width,l=a.icon,u=i.width,d=i.icon,f=function(e){var t=e.transform,n=e.containerWidth,r=e.iconWidth,a={transform:"translate(".concat(n/2," 256)")},i="translate(".concat(32*t.x,", ").concat(32*t.y,") "),o="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),s="rotate(".concat(t.rotate," 0 0)");return{outer:a,inner:{transform:"".concat(i," ").concat(o," ").concat(s)},path:{transform:"translate(".concat(r/2*-1," -256)")}}}({transform:s,containerWidth:u,iconWidth:c}),p={tag:"rect",attributes:Zu(Zu({},Yp),{},{fill:"white"})},m=l.children?{children:l.children.map(Pp)}:{},h={tag:"g",attributes:Zu({},f.inner),children:[Pp(Zu({tag:l.tag,attributes:Zu(Zu({},l.attributes),f.path)},m))]},b={tag:"g",attributes:Zu({},f.outer),children:[h]},M="mask-".concat(o||Id()),_="clip-".concat(o||Id()),g={tag:"mask",attributes:Zu(Zu({},Yp),{},{id:M,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[p,b]},y={tag:"defs",children:[{tag:"clipPath",attributes:{id:_},children:(t=d,"g"===t.tag?t.children:[t])},g]};return n.push(y,{tag:"rect",attributes:Zu({fill:"currentColor","clip-path":"url(#".concat(_,")"),mask:"url(#".concat(M,")")},Yp)}),{children:n,attributes:r}}}};jp={mixoutsTo:Bf}.mixoutsTo,Nf=[Qd,Lp,wp,Ap,Tp,{hooks:function(){return{mutationObserverCallbacks:function(e){return e.pseudoElementsCallback=Np,e}}},provides:function(e){e.pseudoElements2svg=function(e){var t=e.node,n=void 0===t?hd:t;Wd.searchPseudoElements&&Np(n)}}},{mixout:function(){return{dom:{unwatch:function(){lp(),xp=!0}}}},hooks:function(){return{bootstrap:function(){fp(Yf("mutationObserverCallbacks",{}))},noAuto:function(){dp&&dp.disconnect()},watch:function(e){var t=e.observeMutationsRoot;xp?up():fp(Yf("mutationObserverCallbacks",{observeMutationsRoot:t}))}}}},Cp,Rp,{provides:function(e){var t=!1;md.matchMedia&&(t=md.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var e=[],n={fill:"currentColor"},r={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};e.push({tag:"path",attributes:Zu(Zu({},n),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var a=Zu(Zu({},r),{},{attributeName:"opacity"}),i={tag:"circle",attributes:Zu(Zu({},n),{},{cx:"256",cy:"364",r:"28"}),children:[]};return t||i.children.push({tag:"animate",attributes:Zu(Zu({},r),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:Zu(Zu({},a),{},{values:"1;0;1;1;0;1;"})}),e.push(i),e.push({tag:"path",attributes:Zu(Zu({},n),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:t?[]:[{tag:"animate",attributes:Zu(Zu({},a),{},{values:"1;0;0;0;0;1;"})}]}),t||e.push({tag:"path",attributes:Zu(Zu({},n),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:Zu(Zu({},a),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:e}}}},{hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-symbol"),r=null!==n&&(""===n||n);return e.symbol=r,e}}}}],xf={},Object.keys(Df).forEach((function(e){-1===Cf.indexOf(e)&&delete Df[e]})),Nf.forEach((function(e){var t=e.mixout?e.mixout():{};if(Object.keys(t).forEach((function(e){"function"==typeof t[e]&&(jp[e]=t[e]),"object"===ed(t[e])&&Object.keys(t[e]).forEach((function(n){jp[e]||(jp[e]={}),jp[e][n]=t[e][n]}))})),e.hooks){var n=e.hooks();Object.keys(n).forEach((function(e){xf[e]||(xf[e]=[]),xf[e].push(n[e])}))}e.provides&&e.provides(Df)}));var Wp=Bf.parse,qp=Bf.icon;function Bp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Hp(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function Up(e){return function(e){if(Array.isArray(e))return Vp(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Vp(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Vp(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Vp(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0||!Array.isArray(t)&&t?Xp({},e,t):{}}var em=["forwardedRef"];function tm(e){var t=e.forwardedRef,n=Fp(e,em),r=n.icon,a=n.mask,i=n.symbol,o=n.className,s=n.title,c=n.titleId,l=n.maskId,u=Qp(r),d=Zp("classes",[].concat(Up(function(e){var t,n=e.beat,r=e.fade,a=e.beatFade,i=e.bounce,o=e.shake,s=e.flash,c=e.spin,l=e.spinPulse,u=e.spinReverse,d=e.pulse,f=e.fixedWidth,p=e.inverse,m=e.border,h=e.listItem,b=e.flip,M=e.size,_=e.rotation,g=e.pull,y=(Xp(t={"fa-beat":n,"fa-fade":r,"fa-beat-fade":a,"fa-bounce":i,"fa-shake":o,"fa-flash":s,"fa-spin":c,"fa-spin-reverse":u,"fa-spin-pulse":l,"fa-pulse":d,"fa-fw":f,"fa-inverse":p,"fa-border":m,"fa-li":h,"fa-flip":!0===b,"fa-flip-horizontal":"horizontal"===b||"both"===b,"fa-flip-vertical":"vertical"===b||"both"===b},"fa-".concat(M),null!=M),Xp(t,"fa-rotate-".concat(_),null!=_&&0!==_),Xp(t,"fa-pull-".concat(g),null!=g),Xp(t,"fa-swap-opacity",e.swapOpacity),t);return Object.keys(y).map((function(e){return y[e]?e:null})).filter((function(e){return e}))}(n)),Up(o.split(" ")))),f=Zp("transform","string"==typeof n.transform?Wp.transform(n.transform):n.transform),p=Zp("mask",Qp(a)),m=qp(u,Hp(Hp(Hp(Hp({},d),f),p),{},{symbol:i,title:s,titleId:c,maskId:l}));if(!m)return function(){var e;!Kp&&console&&"function"==typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",u),null;var h=m.abstract,b={ref:t};return Object.keys(n).forEach((function(e){tm.defaultProps.hasOwnProperty(e)||(b[e]=n[e])})),nm(h[0],b)}tm.displayName="FontAwesomeIcon",tm.propTypes={beat:En.a.bool,border:En.a.bool,beatFade:En.a.bool,bounce:En.a.bool,className:En.a.string,fade:En.a.bool,flash:En.a.bool,mask:En.a.oneOfType([En.a.object,En.a.array,En.a.string]),maskId:En.a.string,fixedWidth:En.a.bool,inverse:En.a.bool,flip:En.a.oneOf([!0,!1,"horizontal","vertical","both"]),icon:En.a.oneOfType([En.a.object,En.a.array,En.a.string]),listItem:En.a.bool,pull:En.a.oneOf(["right","left"]),pulse:En.a.bool,rotation:En.a.oneOf([0,90,180,270]),shake:En.a.bool,size:En.a.oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:En.a.bool,spinPulse:En.a.bool,spinReverse:En.a.bool,symbol:En.a.oneOfType([En.a.bool,En.a.string]),title:En.a.string,titleId:En.a.string,transform:En.a.oneOfType([En.a.string,En.a.object]),swapOpacity:En.a.bool},tm.defaultProps={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1};var nm=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof n)return n;var a=(n.children||[]).map((function(n){return e(t,n)})),i=Object.keys(n.attributes||{}).reduce((function(e,t){var r=n.attributes[t];switch(t){case"class":e.attrs.className=r,delete n.attributes.class;break;case"style":e.attrs.style=Jp(r);break;default:0===t.indexOf("aria-")||0===t.indexOf("data-")?e.attrs[t.toLowerCase()]=r:e.attrs[Gp(t)]=r}return e}),{attrs:{}}),o=r.style,s=void 0===o?{}:o,c=Fp(r,$p);return i.attrs.style=Hp(Hp({},i.attrs.style),s),t.apply(void 0,[n.tag,Hp(Hp({},i.attrs),c)].concat(Up(a)))}.bind(null,V.a.createElement),rm=function(e){var t;return"undefined"==typeof document?null:null==e?Or().body:("function"==typeof e&&(e=e()),e&&"current"in e&&(e=e.current),null!=(t=e)&&t.nodeType&&e||null)};function am(e,t){var n=Object(U.useState)((function(){return rm(e)})),r=n[0],a=n[1];if(!r){var i=rm(e);i&&a(i)}return Object(U.useEffect)((function(){t&&r&&t(r)}),[t,r]),Object(U.useEffect)((function(){var t=rm(e);t!==r&&a(t)}),[e,r]),r}var im=V.a.forwardRef((function(e,t){var n=e.flip,r=e.offset,a=e.placement,i=e.containerPadding,o=void 0===i?5:i,s=e.popperConfig,c=void 0===s?{}:s,l=e.transition,u=Oc(),d=u[0],f=u[1],p=Oc(),m=p[0],h=p[1],b=Lu(f,t),M=am(e.container),_=am(e.target),g=Object(U.useState)(!e.show),y=g[0],v=g[1],L=Xl(_,d,Ql({placement:a,enableEvents:!!e.show,containerPadding:o||5,flip:n,offset:r,arrowElement:m,popperConfig:c})),w=L.styles,A=L.attributes,T=Cn(L,["styles","attributes"]);e.show?y&&v(!1):e.transition||y||v(!0);var O=e.show||l&&!y;if(Kl(d,e.onHide,{disabled:!e.rootClose||e.rootCloseDisabled,clickTrigger:e.rootCloseEvent}),!O)return null;var k=e.children(Dn({},T,{show:!!e.show,props:Dn({},A.popper,{style:w.popper,ref:b}),arrowProps:Dn({},A.arrow,{style:w.arrow,ref:h})}));if(l){var S=e.onExit,z=e.onExiting,E=e.onEnter,N=e.onEntering,x=e.onEntered;k=V.a.createElement(l,{in:e.show,appear:!0,onExit:S,onExiting:z,onExited:function(){v(!0),e.onExited&&e.onExited.apply(e,arguments)},onEnter:E,onEntering:N,onEntered:x},k)}return M?J.a.createPortal(k,M):null}));im.displayName="Overlay",im.propTypes={show:En.a.bool,placement:En.a.oneOf(il),target:En.a.any,container:En.a.any,flip:En.a.bool,children:En.a.func.isRequired,containerPadding:En.a.number,popperConfig:En.a.object,rootClose:En.a.bool,rootCloseEvent:En.a.oneOf(["click","mousedown"]),rootCloseDisabled:En.a.bool,onHide:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Dm=V.a.forwardRef((function(e,t){var n=e.children,r=e.variant,a=xm(e,km);return V.a.createElement(Om,Nm({},a,{className:xn()({"tooltip-light":"light"===r},a.className),ref:t}),n)}));Dm.propTypes=zm(zm({},Om.propTypes),{},{id:En.a.string.isRequired,placement:En.a.oneOf(["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"]),arrowProps:En.a.shape({ref:En.a.oneOfType([En.a.func,En.a.shape({current:En.a.element})]),style:En.a.shape({})}),show:En.a.bool,popper:En.a.shape({}),bsPrefix:En.a.string,children:En.a.node,className:En.a.string,variant:En.a.string}),Dm.defaultProps=zm(zm({},Dm.defaultProps),{},{id:void 0,placement:"right",arrowProps:void 0,show:void 0,popper:void 0,children:void 0,className:void 0,variant:void 0,bsPrefix:"tooltip"});var Cm=Dm;function Ym(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Pm=["className","alt","invertColors","icon","src","iconClassNames","onClick","size","variant","iconAs","isActive"],jm=["tooltipPlacement","tooltipContent","variant","invertColors"];function Rm(){return(Rm=Object.assign||function(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var qm=V.a.forwardRef((function(e,t){var n=e.className,r=e.alt,a=e.invertColors,i=e.icon,o=e.src,s=e.iconClassNames,c=e.onClick,l=e.size,u=e.variant,d=e.iconAs,f=e.isActive,p=Wm(e,Pm),m=a?"inverse-":"",h=f?"".concat(u,"-"):"",b=d||tm;return V.a.createElement("button",Rm({"aria-label":r,className:xn()("btn-icon","btn-icon-".concat(m).concat(u),"btn-icon-".concat(l),Ym({},"btn-icon-".concat(m).concat(h,"active"),f),n),onClick:c,type:"button",ref:t},p),V.a.createElement("span",{className:"btn-icon__icon-container"},V.a.createElement(b,{className:xn()("btn-icon__icon",s),icon:i,src:o})))}));qm.defaultProps={iconAs:void 0,src:null,icon:void 0,iconClassNames:void 0,className:void 0,invertColors:!1,variant:"primary",size:"md",onClick:function(){},isActive:!1},qm.propTypes={className:En.a.string,iconAs:En.a.elementType,src:En.a.oneOfType([En.a.element,En.a.func]),alt:En.a.string.isRequired,invertColors:En.a.bool,icon:En.a.shape({prefix:En.a.string,iconName:En.a.string,icon:En.a.array}),iconClassNames:En.a.string,onClick:En.a.func,variant:En.a.oneOf(["primary","secondary","success","warning","danger","light","dark","black","brand"]),size:En.a.oneOf(["sm","md","inline"]),isActive:En.a.bool};var Bm=function(e){var t=e.tooltipPlacement,n=e.tooltipContent,r=e.variant,a=e.invertColors,i=Wm(e,jm),o=a?"inverse-":"";return V.a.createElement(Lm,{placement:t,overlay:V.a.createElement(Cm,{id:"iconbutton-tooltip-".concat(t),variant:o?"light":""},n)},V.a.createElement(qm,Rm({variant:r,invertColors:a},i)))};Bm.defaultProps={tooltipPlacement:"top",variant:"primary",invertColors:!1},Bm.propTypes={tooltipPlacement:En.a.string,tooltipContent:En.a.node.isRequired,variant:En.a.oneOf(["primary","secondary","success","warning","danger","light","dark","black","brand"]),invertColors:En.a.bool},qm.IconButtonWithTooltip=Bm;var Hm=qm;var Im=function(){return(Im=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0})).sort(zh)},Nh=["button:enabled","select:enabled","textarea:enabled","input:enabled","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]","[tabindex]","[contenteditable]","[autofocus]"].join(","),xh="".concat(Nh,", [data-focus-guard]"),Dh=function(e,t){var n;return hh((null===(n=e.shadowRoot)||void 0===n?void 0:n.children)||e.children).reduce((function(e,n){return e.concat(n.matches(t?xh:Nh)?[n]:[],Dh(n))}),[])},Ch=function(e,t){return e.reduce((function(e,n){return e.concat(Dh(n,t),n.parentNode?hh(n.parentNode.querySelectorAll(Nh)).filter((function(e){return e===n})):[])}),[])},Yh=function(e,t){return hh(e).filter((function(e){return yh(t,e)})).filter((function(e){return function(e){return!((wh(e)||function(e){return"BUTTON"===e.tagName}(e))&&("hidden"===e.type||e.disabled))}(e)}))},Ph=function(e,t){return void 0===t&&(t=new Map),hh(e).filter((function(e){return vh(t,e)}))},jh=function(e,t,n){return Eh(Yh(Ch(e,n),t),!0,n)},Rh=function(e,t){return Eh(Yh(Ch(e),t),!1)},Wh=function(e,t){return Yh((n=e.querySelectorAll("[".concat("data-autofocus-inside","]")),hh(n).map((function(e){return Ch([e])})).reduce((function(e,t){return e.concat(t)}),[])),t);var n},qh=function(e,t){return(e.shadowRoot?qh(e.shadowRoot,t):Object.getPrototypeOf(e).contains.call(e,t))||hh(e.children).some((function(e){return qh(e,t)}))},Bh=function(e){return e.activeElement?e.activeElement.shadowRoot?Bh(e.activeElement.shadowRoot):e.activeElement:void 0},Hh=function(){return document.activeElement?document.activeElement.shadowRoot?Bh(document.activeElement.shadowRoot):document.activeElement:void 0},Ih=function(e){return e.parentNode?Ih(e.parentNode):e},Xh=function(e){return bh(e).filter(Boolean).reduce((function(e,t){var n=t.getAttribute("data-focus-lock");return e.push.apply(e,n?function(e){for(var t=new Set,n=e.length,r=0;r0&&t.add(a),(i&Node.DOCUMENT_POSITION_CONTAINS)>0&&t.add(r)}return e.filter((function(e,n){return!t.has(n)}))}(hh(Ih(t).querySelectorAll("[".concat("data-focus-lock",'="').concat(n,'"]:not([').concat("data-focus-lock-disabled",'="disabled"])')))):[t]),e}),[])},Fh=function(e){return Boolean(hh(e.querySelectorAll("iframe")).some((function(e){return e===document.activeElement})))},Uh=function(e){var t=document&&Hh();return!(!t||t.dataset&&t.dataset.focusGuard)&&Xh(e).some((function(e){return qh(e,t)||Fh(e)}))},Vh=function(e,t){return Ah(e)&&e.name?function(e,t){return t.filter(Ah).filter((function(t){return t.name===e.name})).filter((function(e){return e.checked}))[0]||e}(e,t):e},Gh=function(e){return e[0]&&e.length>1?Vh(e[0],e):e[0]},$h=function(e,t){return e.length>1?e.indexOf(Vh(e[t],e)):t},Jh=function(e,t,n,r){var a=e.length,i=e[0],o=e[a-1],s=Oh(n);if(!(n&&e.indexOf(n)>=0)){var c,l,u=void 0!==n?t.indexOf(n):-1,d=r?t.indexOf(r):u,f=r?e.indexOf(r):-1,p=u-d,m=t.indexOf(i),h=t.indexOf(o),b=(c=t,l=new Set,c.forEach((function(e){return l.add(Vh(e,c))})),c.filter((function(e){return l.has(e)}))),M=(void 0!==n?b.indexOf(n):-1)-(r?b.indexOf(r):u),_=$h(e,0),g=$h(e,a-1);return-1===u||-1===f?"NEW_FOCUS":!p&&f>=0?f:u<=m&&s&&Math.abs(p)>1?g:u>=h&&s&&Math.abs(p)>1?_:p&&Math.abs(M)>1?f:u<=m?g:u>h?_:p?Math.abs(p)>1?f:(a+f+p)%a:void 0}},Kh=function(e,t){return void 0===t&&(t=[]),t.push(e),e.parentNode&&Kh(e.parentNode.host||e.parentNode,t),t},Qh=function(e,t){for(var n=Kh(e),r=Kh(t),a=0;a=0)return i}return!1},Zh=function(e,t,n){var r=bh(e),a=bh(t),i=r[0],o=!1;return a.filter(Boolean).forEach((function(e){o=Qh(o||e,e)||o,n.filter(Boolean).forEach((function(e){var t=Qh(i,e);t&&(o=!o||qh(t,o)?t:Qh(t,o))}))})),o},eb=function(e,t){var n=document&&Hh(),r=Xh(e).filter(kh),a=Zh(n||e,e,r),i=new Map,o=Rh(r,i),s=jh(r,i).filter((function(e){var t=e.node;return kh(t)}));if(s[0]||(s=o)[0]){var c,l,u,d,f=Rh([a],i).map((function(e){return e.node})),p=(c=f,l=s,u=new Map,l.forEach((function(e){return u.set(e.node,e)})),c.map((function(e){return u.get(e)})).filter(Sh)),m=p.map((function(e){return e.node})),h=Jh(m,f,n,t);if("NEW_FOCUS"===h){var b=Ph(o.map((function(e){return e.node}))).filter((d=function(e,t){return e.reduce((function(e,n){return e.concat(Wh(n,t))}),[])}(r,i),function(e){var t;return e.autofocus||!!(null===(t=Lh(e))||void 0===t?void 0:t.autofocus)||d.indexOf(e)>=0}));return{node:b&&b.length?Gh(b):Gh(Ph(m))}}return void 0===h?h:p[h]}},tb=0,nb=!1,rb=function(e,t,n){void 0===n&&(n={});var r,a,i=eb(e,t);if(!nb&&i){if(tb>2)return console.error("FocusLock: focus-fighting detected. Only one focus management system could be active. See https://github.com/theKashey/focus-lock/#focus-fighting"),nb=!0,void setTimeout((function(){nb=!1}),1);tb++,r=i.node,a=n.focusOptions,"focus"in r&&r.focus(a),"contentWindow"in r&&r.contentWindow&&r.contentWindow.focus(),tb--}},ab=function(e){var t=Xh(e).filter(kh),n=Zh(e,e,t),r=new Map,a=jh([n],r,!0),i=jh(t,r).filter((function(e){var t=e.node;return kh(t)})).map((function(e){return e.node}));return a.map((function(e){var t=e.node;return{node:t,index:e.index,lockItem:i.indexOf(t)>=0,guard:Oh(t)}}))};function ib(e){var t=window.setImmediate;void 0!==t?t(e):setTimeout(e,1)}var ob=function(){return document&&document.activeElement===document.body||!!(e=document&&Hh())&&hh(document.querySelectorAll("[".concat("data-no-focus-lock","]"))).some((function(t){return qh(t,e)}));var e},sb=null,cb=null,lb=null,ub=!1,db=function(){return!0};function fb(e,t,n,r){var a=null,i=e;do{var o=r[i];if(o.guard)o.node.dataset.focusAutoGuard&&(a=o);else{if(!o.lockItem)break;if(i!==e)return;a=null}}while((i+=n)!==t);a&&(a.node.tabIndex=0)}var pb=function(e){return e&&"current"in e?e.current:e},mb=function(){var e,t=!1;if(sb){var n=sb,r=n.observed,a=n.persistentFocus,i=n.autoFocus,o=n.shards,s=n.crossFrame,c=n.focusOptions,l=r||lb&&lb.portaledElement,u=document&&document.activeElement;if(l){var d=[l].concat(o.map(pb).filter(Boolean));if(u&&!function(e){return(sb.whiteList||db)(e)}(u)||(a||(s?Boolean(ub):"meanwhile"===ub)||!ob()||!cb&&i)&&(l&&!(Uh(d)||u&&function(e,t){return t.some((function(t){return function e(t,n,r){return n&&(n.host===t&&(!n.activeElement||r.contains(n.activeElement))||n.parentNode&&e(t,n.parentNode,r))}(e,t,t)}))}(u,d)||(e=u,lb&&lb.portaledElement===e))&&(document&&!cb&&u&&!i?(u.blur&&u.blur(),document.body.focus()):(t=rb(d,cb,{focusOptions:c}),lb={})),ub=!1,cb=document&&document.activeElement),document){var f=document&&document.activeElement,p=ab(d),m=p.map((function(e){return e.node})).indexOf(f);m>-1&&(p.filter((function(e){var t=e.guard,n=e.node;return t&&n.dataset.focusAutoGuard})).forEach((function(e){return e.node.removeAttribute("tabIndex")})),fb(m,p.length,1,p),fb(m,-1,-1,p))}}}return t},hb=function(e){mb()&&e&&(e.stopPropagation(),e.preventDefault())},bb=function(){return ib(mb)},Mb=function(e){var t=e.target,n=e.currentTarget;n.contains(t)||(lb={observerNode:n,portaledElement:t})},_b=function(){ub="just",setTimeout((function(){ub="meanwhile"}),0)};rh.assignSyncMedium(Mb),ah.assignMedium(bb),ih.assignMedium((function(e){return e({moveFocusInside:rb,focusInside:Uh})}));var gb,yb=mh((function(e){return e.filter((function(e){return!e.disabled}))}),(function(e){var t=e.slice(-1)[0];t&&!sb&&(document.addEventListener("focusin",hb),document.addEventListener("focusout",bb),window.addEventListener("blur",_b));var n=sb,r=n&&t&&t.id===n.id;sb=t,n&&!r&&(n.onDeactivation(),e.filter((function(e){return e.id===n.id})).length||n.returnFocus(!t)),t?(cb=null,r&&n.observed===t.observed||t.onActivation(),mb(),ib(mb)):(document.removeEventListener("focusin",hb),document.removeEventListener("focusout",bb),window.removeEventListener("blur",_b),cb=null)}))((function(){return null}));ph(oh,yb);function vb(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=gb||n.nc;return t&&e.setAttribute("nonce",t),e}var Lb=function(){var e=0,t=null;return{add:function(n){var r,a;0==e&&(t=vb())&&(a=n,(r=t).styleSheet?r.styleSheet.cssText=a:r.appendChild(document.createTextNode(a)),function(e){(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}(t)),e++},remove:function(){!--e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},wb=function(){var e,t=(e=Lb(),function(t,n){U.useEffect((function(){return e.add(t),function(){e.remove()}}),[t&&n])});return function(e){var n=e.styles,r=e.dynamic;return t(n,r),null}},Ab={left:0,top:0,right:0,gap:0},Tb=function(e){return parseInt(e||"",10)||0},Ob=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return Ab;var t=function(e){var t=window.getComputedStyle(document.body);var n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],a=t["padding"===e?"paddingRight":"marginRight"];return[Tb(n),Tb(r),Tb(a)]}(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},kb=wb(),Sb=function(e,t,n,r){var a=e.left,i=e.top,o=e.right,s=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(s,"px ").concat(r,";\n }\n body {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(a,"px;\n padding-top: ").concat(i,"px;\n padding-right: ").concat(o,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(s,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat("right-scroll-bar-position"," {\n right: ").concat(s,"px ").concat(r,";\n }\n \n .").concat("width-before-scroll-bar"," {\n margin-right: ").concat(s,"px ").concat(r,";\n }\n \n .").concat("right-scroll-bar-position"," .").concat("right-scroll-bar-position"," {\n right: 0 ").concat(r,";\n }\n \n .").concat("width-before-scroll-bar"," .").concat("width-before-scroll-bar"," {\n margin-right: 0 ").concat(r,";\n }\n \n body {\n ").concat("--removed-body-scroll-bar-size",": ").concat(s,"px;\n }\n")},zb=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=void 0===r?"margin":r,i=U.useMemo((function(){return Ob(a)}),[a]);return U.createElement(kb,{styles:Sb(i,!t,a,n?"":"!important")})},Eb=!1;if("undefined"!=typeof window)try{var Nb=Object.defineProperty({},"passive",{get:function(){return Eb=!0,!0}});window.addEventListener("test",Nb,Nb),window.removeEventListener("test",Nb,Nb)}catch(e){Eb=!1}var xb=!!Eb&&{passive:!1},Db=function(e,t){var n=window.getComputedStyle(e);return"hidden"!==n[t]&&!(n.overflowY===n.overflowX&&!function(e){return"TEXTAREA"===e.tagName}(e)&&"visible"===n[t])},Cb=function(e,t){var n=t;do{if("undefined"!=typeof ShadowRoot&&n instanceof ShadowRoot&&(n=n.host),Yb(e,n)){var r=Pb(e,n);if(r[1]>r[2])return!0}n=n.parentNode}while(n&&n!==document.body);return!1},Yb=function(e,t){return"v"===e?function(e){return Db(e,"overflowY")}(t):function(e){return Db(e,"overflowX")}(t)},Pb=function(e,t){return"v"===e?[(n=t).scrollTop,n.scrollHeight,n.clientHeight]:function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]}(t);var n},jb=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Rb=function(e){return[e.deltaX,e.deltaY]},Wb=function(e){return e&&"current"in e?e.current:e},qb=function(e){return"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")},Bb=0,Hb=[];ph(Qm,(function(e){var t=U.useRef([]),n=U.useRef([0,0]),r=U.useRef(),a=U.useState(Bb++)[0],i=U.useState((function(){return wb()}))[0],o=U.useRef(e);U.useEffect((function(){o.current=e}),[e]),U.useEffect((function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var t=function(e,t,n){if(n||2===arguments.length)for(var r,a=0,i=t.length;aMath.abs(l)?"h":"v";if("touches"in e&&"h"===d&&"range"===u.type)return!1;var f=Cb(d,u);if(!f)return!0;if(f?a=d:(a="v"===d?"h":"v",f=Cb(d,u)),!f)return!1;if(!r.current&&"changedTouches"in e&&(c||l)&&(r.current=a),!a)return!0;var p=r.current||a;return function(e,t,n,r,a){var i=function(e,t){return"h"===e&&"rtl"===t?-1:1}(e,window.getComputedStyle(t).direction),o=i*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{var p=Pb(e,s),m=p[0],h=p[1]-p[2]-i*m;(m||h)&&Yb(e,s)&&(d+=h,f+=m),s=s.parentNode}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(a&&0===d||!a&&o>d)||!u&&(a&&0===f||!a&&-o>f))&&(l=!0),l}(p,t,e,"h"===p?c:l,!0)}),[]),c=U.useCallback((function(e){var n=e;if(Hb.length&&Hb[Hb.length-1]===i){var r="deltaY"in n?Rb(n):jb(n),a=t.current.filter((function(e){return e.name===n.type&&e.target===n.target&&(t=e.delta,a=r,t[0]===a[0]&&t[1]===a[1]);var t,a}))[0];if(a&&a.should)n.cancelable&&n.preventDefault();else if(!a){var c=(o.current.shards||[]).map(Wb).filter(Boolean).filter((function(e){return e.contains(n.target)}));(c.length>0?s(n,c[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}}),[]),l=U.useCallback((function(e,n,r,a){var i={name:e,delta:n,target:r,should:a};t.current.push(i),setTimeout((function(){t.current=t.current.filter((function(e){return e!==i}))}),1)}),[]),u=U.useCallback((function(e){n.current=jb(e),r.current=void 0}),[]),d=U.useCallback((function(t){l(t.type,Rb(t),t.target,s(t,e.lockRef.current))}),[]),f=U.useCallback((function(t){l(t.type,jb(t),t.target,s(t,e.lockRef.current))}),[]);U.useEffect((function(){return Hb.push(i),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener("wheel",c,xb),document.addEventListener("touchmove",c,xb),document.addEventListener("touchstart",u,xb),function(){Hb=Hb.filter((function(e){return e!==i})),document.removeEventListener("wheel",c,xb),document.removeEventListener("touchmove",c,xb),document.removeEventListener("touchstart",u,xb)}}),[]);var p=e.removeScrollBar,m=e.inert;return U.createElement(U.Fragment,null,m?U.createElement(i,{styles:qb(a)}):null,p?U.createElement(zb,{gapMode:"margin"}):null)}));var Ib=new WeakMap,Xb=new WeakMap,Fb={},Ub=0,Vb=function(e,t,n){void 0===t&&(t=function(e){return"undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body}(e)),void 0===n&&(n="data-aria-hidden");var r=Array.isArray(e)?e:[e];Fb[n]||(Fb[n]=new WeakMap);var a=Fb[n],i=[],o=new Set,s=function(e){e&&!o.has(e)&&(o.add(e),s(e.parentNode))};r.forEach(s);var c=function(e){!e||r.indexOf(e)>=0||Array.prototype.forEach.call(e.children,(function(e){if(o.has(e))c(e);else{var t=e.getAttribute("aria-hidden"),r=null!==t&&"false"!==t,s=(Ib.get(e)||0)+1,l=(a.get(e)||0)+1;Ib.set(e,s),a.set(e,l),i.push(e),1===s&&r&&Xb.set(e,!0),1===l&&e.setAttribute(n,"true"),r||e.setAttribute("aria-hidden","true")}}))};return c(t),o.clear(),Ub++,function(){i.forEach((function(e){var t=Ib.get(e)-1,r=a.get(e)-1;Ib.set(e,t),a.set(e,r),t||(Xb.has(e)||e.removeAttribute("aria-hidden"),Xb.delete(e)),r||e.removeAttribute(n)})),--Ub||(Ib=new WeakMap,Ib=new WeakMap,Xb=new WeakMap,Fb={})}},Gb=wb(),$b=function(){return U.createElement(Gb,{styles:"\n [data-focus-on-hidden] {\n pointer-events: none !important;\n }\n"})},Jb=function(e){return"current"in e?e.current:e};var Kb=ph(uh,(function(e){var t=e.setLockProps,n=e.onEscapeKey,r=e.onClickOutside,a=e.shards,i=e.onActivation,o=e.onDeactivation,s=e.noIsolation,c=Object(U.useState)(void 0),l=c[0],u=c[1],d=Object(U.useRef)(null),f=Object(U.useRef)(0);return U.useEffect((function(){var e=function(e){e.defaultPrevented||"Escape"!==e.code&&"Escape"!==e.key&&27!==e.keyCode||!n||n(e)},t=function(e){e.defaultPrevented||e.target===d.current||e instanceof MouseEvent&&0!==e.button||a&&a.map(Jb).some((function(t){return t&&t.contains(e.target)||t===e.target}))||r&&r(e)},i=function(e){t(e),f.current=e.touches.length},o=function(e){f.current=e.touches.length};if(l)return document.addEventListener("keydown",e),document.addEventListener("mousedown",t),document.addEventListener("touchstart",i),document.addEventListener("touchend",o),function(){document.removeEventListener("keydown",e),document.removeEventListener("mousedown",t),document.removeEventListener("touchstart",i),document.removeEventListener("touchend",o)}}),[l,r,n]),Object(U.useEffect)((function(){if(l)return i&&i(l),function(){o&&o()}}),[!!l]),Object(U.useEffect)((function(){var e=function(){return null},n=!1;return t({onMouseDown:function(e){d.current=e.target},onTouchStart:function(e){d.current=e.target},onActivation:function(t){s||(e=Vb(function(){for(var e=0,t=0,n=arguments.length;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var kM={right:[-2,10],left:[-2,10]},SM=function(e){var t=e.children,n=e.onClose,r=e.isOpen,a=e.positionRef,i=e.isBlocking,o=e.withPortal,s=e.placement,c=e.hasArrow,l=OM(e,AM),u=o?sM:V.a.Fragment,d=kM[s]||[0,10],f=[{name:"eventListeners",options:{scroll:!1}},{name:"offset",options:{offset:function(){return d}}}];return V.a.createElement(wM,{onClose:n,isOpen:r,isBlocking:i},V.a.createElement(u,null,V.a.createElement(vM,TM({modifiers:c?f:null,target:a,placement:s},l),V.a.createElement(Zb,{scrollLock:!1,enabled:r,onEscapeKey:n,onClickOutside:n},r&&V.a.createElement("div",{className:"pgn__modal-popup__tooltip"},t,c&&V.a.createElement("div",{id:"arrow",className:"pgn__modal-popup__arrow pgn__modal-popup__arrow-".concat(s),"data-popper-arrow":""}))))))};SM.propTypes={children:En.a.node.isRequired,onClose:En.a.func.isRequired,isOpen:En.a.bool.isRequired,isBlocking:En.a.bool,withPortal:En.a.bool,positionRef:En.a.oneOfType([En.a.func,En.a.shape({current:En.a.shape({})})]),placement:vM.propTypes.placement,hasArrow:En.a.bool},SM.defaultProps={isBlocking:!1,withPortal:!1,placement:"bottom-start",positionRef:null,hasArrow:!1};var zM=SM,EM=function(e){var t=e.direction,n=e.gap,r=e.children,a=e.className;return V.a.createElement("div",{className:xn()("horizontal"===t?"pgn__hstack":"pgn__vstack",n?"pgn__stack-gap--".concat(n):"",a)},r)};EM.propTypes={children:En.a.node.isRequired,direction:En.a.oneOf(["horizontal","vertical"]),gap:En.a.number,className:En.a.string},EM.defaultProps={direction:"vertical",gap:0,className:void 0};var NM=EM;function xM(e){return function(e){if(Array.isArray(e))return YM(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||CM(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function DM(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return n}(e,t)||CM(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function CM(e,t){if(e){if("string"==typeof e)return YM(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?YM(e,t):void 0}}function YM(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:{},n=t.handleToggleOn,r=t.handleToggleOff,a=t.handleToggle,i=Object(U.useState)(e||!1),o=Ju(i,2),s=o[0],c=o[1],l=Object(U.useCallback)((function(){c(!0),n&&n(),a&&a(!0)}),[n,a]),u=Object(U.useCallback)((function(){c(!1),r&&r(),a&&a(!1)}),[r,a]),d=Object(U.useCallback)((function(){(s?u:l)()}),[s,l,u]);return[s,l,u,d]}(!1),3),a=r[0],i=r[1],o=r[2],s=DM(Object(U.useState)(null),2),c=s[0],l=s[1],u=Object(U.useContext)(Vo),d=DM(u.controlledTableSelections,1)[0].isEntireTableSelected,f=u.selectedFlatRows,p=u.rows,m=Object(vc.a)().width,h=f||p,b=DM(Object(U.useMemo)((function(){if(m0&&V.a.createElement(V.a.Fragment,null,V.a.createElement(Hm,{variant:"secondary",iconAs:qa,src:No,alt:m>Ga.small.minWidth?"More actions":"Actions",id:"actions-dropdown",ref:l,onClick:i}),V.a.createElement(zM,{positionRef:c,onClose:o,placement:"bottom-end",isOpen:a},V.a.createElement("div",{className:"pgn__datatable__overflow-actions-menu"},V.a.createElement(NM,{gap:2},_.map(g))))),V.a.createElement("div",{className:"pgn__datatable__visible-actions"},M.map(g)))};RM.defaultProps={className:null},RM.propTypes={className:En.a.string,actions:En.a.arrayOf(En.a.shape({component:En.a.oneOfType([En.a.func,En.a.element]).isRequired,args:En.a.shape({})})).isRequired};var WM=RM;function qM(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return BM(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return BM(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function BM(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0;return o||i&&!s?null:!a&&s?V.a.createElement(IM,null):V.a.createElement(FM,null)},VM=function(e){var t=e.activeValue,n=e.onChange,r=e.children,a=Object(U.useMemo)((function(){return V.a.Children.map(r,(function(e){var r=e.props.value===t;return V.a.cloneElement(e,{onClick:function(){n(e.props.value)},isActive:r,"aria-selected":r,"data-testid":"icon-btn-val-".concat(e.props.value)})}))}),[r,t,n]);return V.a.createElement("div",{className:"pgn__icon-button-toggle__container"},a)};VM.defaultProps={onChange:function(){},activeValue:void 0},VM.propTypes={activeValue:En.a.string,onChange:En.a.func,children:En.a.node.isRequired};var GM=VM;function $M(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return JM(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return JM(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function JM(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?null:V.a.createElement("div",{className:xn()("pgn__data-table-empty",n)},t)};n_.defaultProps={className:null},n_.propTypes={className:En.a.string,content:En.a.string.isRequired};var r_=n_,a_=function(e){return function(t,n,r){var a=t[n];return"number"==typeof a&&!Number.isNaN(a)&&a>e?null:new Error("".concat(n," in ").concat(r," must be a non-NaN number greater than ").concat(e,"."))}},i_=["children","className"];function o_(){return(o_=Object.assign||function(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c_=function(e){var t=e.children,n=e.className,r=s_(e,i_);return V.a.createElement(Y_,null,(function(e){var a=e.buttonRef,i=e.isOpen,o=e.toggle,s=e.triggerId;return V.a.createElement("button",o_({},r,{id:xn()(s,r.id),"aria-expanded":i,"aria-haspopup":!0,type:"button",ref:a,className:xn()("dropdown-toggle","btn",n),onClick:function(e){o(e),r.onClick&&r.onClick(e)}}),t)}))};c_.propTypes={children:En.a.node,className:En.a.string},c_.defaultProps={children:void 0,className:"btn-light"};var l_=c_,u_=["children"];function d_(){return(d_=Object.assign||function(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p_=function(e){var t=e.children,n=f_(e,u_);return V.a.createElement(Y_,null,(function(e){var r=e.handleMenuKeyDown,a=e.isOpen,i=e.menuRef,o=e.triggerId;return V.a.createElement("div",d_({},n,{"aria-labelledby":o,"aria-hidden":!a,ref:i,role:"menu",className:xn()("dropdown-menu",{show:a},n.className),onKeyDown:function(e){r(e),n.onKeyDown&&n.onKeyDown(e)}}),t)}))};p_.propTypes={children:En.a.node},p_.defaultProps={children:void 0};var m_=p_,h_=["type","children","className"];function b_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function M_(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var y_=function(e){var t=e.type,n=e.children,r=e.className,a=g_(e,h_);return V.a.createElement(t,M_(M_({},a),{},{className:xn()("dropdown-item",r)}),n)};y_.propTypes={type:En.a.string,children:En.a.node,className:En.a.string},y_.defaultProps={type:"a",children:void 0,className:null};var v_=y_;function L_(e){return(L_="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function w_(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function x_(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var D_=V.a.createContext(),C_=D_.Provider,Y_=D_.Consumer,P_=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&A_(e,t)}(i,e);var t,n,r,a=T_(i);function i(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),x_(k_(t=a.call(this,e)),"handleDocumentClick",(function(e){t.containerRef.current.contains(e.target)&&t.containerRef.current!==e.target||t.state.open&&t.close()})),x_(k_(t),"handleMenuKeyDown",(function(e){switch(e.key){case"ArrowUp":e.preventDefault(),t.focusPrevious();break;case"ArrowDown":e.preventDefault(),t.focusNext();break;case"Tab":e.preventDefault(),e.shiftKey?t.focusPrevious():t.focusNext();break;case"Escape":e.stopPropagation(),t.close()}})),x_(k_(t),"toggle",(function(){t.state.open?t.close():t.open()})),t.state={open:!1},t.uniqueId=i.idCounter,i.idCounter+=1,t.triggerId="pgn__dropdown-trigger-".concat(t.uniqueId),t.containerRef=V.a.createRef(),t.menuRef=V.a.createRef(),t.buttonRef=V.a.createRef(),t}return t=i,(n=[{key:"componentDidUpdate",value:function(e,t){t.open!==this.state.open&&(this.state.open?this.focusFirst():this.buttonRef.current.focus())}},{key:"componentWillUnmount",value:function(){document.removeEventListener("click",this.handleDocumentClick,!0)}},{key:"getFocusableElements",value:function(){return Array.from(this.menuRef.current.querySelectorAll('button:not([disabled]), [href]:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled])'))}},{key:"close",value:function(){document.removeEventListener("click",this.handleDocumentClick,!0),this.setState({open:!1})}},{key:"open",value:function(){document.addEventListener("click",this.handleDocumentClick,!0),this.setState({open:!0})}},{key:"focusFirst",value:function(){var e=this.getFocusableElements();e.length&&e[0].focus()}},{key:"focusNext",value:function(){var e=this.getFocusableElements();if(0!==e.length){var t=e.indexOf(document.activeElement);e[(t+1)%e.length].focus()}}},{key:"focusPrevious",value:function(){var e=this.getFocusableElements();if(0!==e.length){var t=e.indexOf(document.activeElement);e[(t-1+e.length)%e.length].focus()}}},{key:"render",value:function(){var e=this.props,t=e.children,n=N_(e,z_);return V.a.createElement("div",E_({},n,{className:xn()("dropdown",{show:this.state.open},n.className),ref:this.containerRef}),V.a.createElement(C_,{value:{buttonRef:this.buttonRef,handleMenuKeyDown:this.handleMenuKeyDown,isOpen:this.state.open,menuRef:this.menuRef,toggle:this.toggle,triggerId:this.triggerId}},t))}}])&&w_(t.prototype,n),r&&w_(t,r),i}(V.a.Component);x_(P_,"idCounter",0),P_.propTypes={children:En.a.node.isRequired},P_.Item=v_,P_.Button=l_,P_.Menu=m_;var j_=Da(P_,"Dropdown",{menuItems:{deprType:Ea.MOVED_AND_FORMAT,message:"They should be components sent as children.",newName:"children",transform:function(e,t){return Array.isArray(e)?V.a.createElement(V.a.Fragment,null,V.a.createElement(l_,null,V.a.isValidElement(t.iconElement)?t.iconElement:null,t.title),V.a.createElement(m_,null,e.map((function(e,t){return V.a.isValidElement(e)?V.a.cloneElement(e,{className:"dropdown-item",key:t}):V.a.createElement(v_,{key:t,href:e.href},e.label)})))):null}},title:{deprType:Ea.REMOVED,message:"It should be specified inside the Dropdown.Button component"},buttonType:{deprType:Ea.REMOVED,message:"It should be specified as a className prop"},iconElement:{deprType:Ea.REMOVED,message:"It should be specified inside the buttonContent prop."}});j_.propTypes=P_.propTypes,j_.defaultProps=P_.defaultProps,j_.Item=P_.Item,j_.Button=P_.Button,j_.Menu=P_.Menu;var R_=j_;function W_(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return q_(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return q_(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function q_(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var V_=V.a.forwardRef((function(e,t){var n=e.show,r=e.autoClose,a=e.onToggle,i=U_(e,B_),o=W_(V.a.useState(n),2),s=o[0],c=o[1];return V.a.createElement(Hu,I_({show:s,onToggle:function(e,t,n){if(e)c(!0);else{var i=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0;return V.a.createElement("div",{className:"pgn__data-table-side-filters"},V.a.createElement("h3",{className:"pgn__data-table-side-filters-title"},t||V.a.createElement(_a,{id:"pgn.DataTable.SidebarFilters.title",defaultMessage:"Filters",description:"Title for the sidebar filters component"})),V.a.createElement("hr",null),i.map((function(e){return V.a.createElement("div",{key:e.Header,className:"pgn__data-table-side-filters-item"},e.render("Filter"))})),o&&V.a.createElement(V.a.Fragment,null,V.a.createElement(fc,{className:"pgn__data-table-side-filters-status",showFilteredFields:!1,variant:"tertiary"})))};Cg.propTypes={title:En.a.oneOfType([En.a.string,En.a.element])},Cg.defaultProps={title:void 0};var Yg=Cg,Pg=function(e){var t=e.filtersTitle,n=e.className,r=e.children,a=Object(U.useContext)(Vo),i=a.setFilter,o=a.showFiltersInSidebar;return V.a.createElement("div",{className:xn()("pgn__data-table-layout-wrapper",n)},o&&i&&V.a.createElement("div",{className:"pgn__data-table-layout-sidebar"},V.a.createElement(Yg,{title:t})),V.a.createElement("div",{className:"pgn__data-table-layout-main"},r))};Pg.defaultProps={className:null,filtersTitle:void 0},Pg.propTypes={className:En.a.string,children:En.a.node.isRequired,filtersTitle:En.a.oneOfType([En.a.string,En.a.element])};var jg=Pg,Rg=function(e){var t=e.getToggleAllRowsExpandedProps,n=e.isAllRowsExpanded;return V.a.createElement("span",t(),n?V.a.createElement(Oi,{variant:"link",size:"inline"},V.a.createElement(_a,{id:"pgn.DataTable.ExpandAll.collapseAllLabel",defaultMessage:"Collapse all",description:"Label of an action button that collapses all expandable rows of DataTable."})):V.a.createElement(Oi,{variant:"link",size:"inline"},V.a.createElement(_a,{id:"pgn.DataTable.ExpandAll.expandAllLabel",defaultMessage:"Expand all",description:"Label of an action button that expands all expandable rows of DataTable."})))};Rg.propTypes={getToggleAllRowsExpandedProps:En.a.func.isRequired,isAllRowsExpanded:En.a.bool.isRequired};var Wg=Rg,qg=function(e){var t=e.row;return V.a.createElement("span",t.getToggleRowExpandedProps(),t.isExpanded?V.a.createElement(Hm,{src:wo,iconAs:qa,alt:"Collapse row",size:"inline"}):V.a.createElement(Hm,{src:To,iconAs:qa,alt:"Expand row",size:"inline"}))};qg.propTypes={row:En.a.shape({isExpanded:En.a.bool,getToggleRowExpandedProps:En.a.func.isRequired}).isRequired};var Bg=qg,Hg=n(25),Ig=n.n(Hg);function Xg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Fg(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:$g,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET SELECTED ROWS":var n=Ig()([].concat(Vg(e.selectedRows),Vg(t.rows)),(function(e){return e.id})),r=Fg(Fg({},e),{},{selectedRows:n});return n.length===t.itemCount&&(r.isEntireTableSelected=!0),r;case"SELECT ALL ROWS ALL PAGES":return Fg(Fg({},e),{},{isEntireTableSelected:!0});case"DELETE ROW":return{selectedRows:e.selectedRows.filter((function(e){return e.id!==t.rowId})),isEntireTableSelected:!1};case"ADD ROW":var a=Ig()([].concat(Vg(e.selectedRows),[t.row]),(function(e){return e.id})),i=a.length===t.itemCount;return{selectedRows:a,isEntireTableSelected:i};case"CLEAR SELECTION":return $g;case"CLEAR PAGE SELECTION":return{isEntireTableSelected:!1,selectedRows:e.selectedRows.filter((function(e){return!t.rowIds.includes(e.id)}))};default:return e}};function Kg(e){return function(e){if(Array.isArray(e))return ey(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||Zg(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qg(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return n}(e,t)||Zg(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Zg(e,t){if(e){if("string"==typeof e)return ey(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ey(e,t):void 0}}function ey(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function cy(e){var t=e.columns,n=e.data,r=e.defaultColumnValues,a=e.additionalColumns,i=e.isSelectable,o=e.isPaginated,s=e.manualPagination,c=e.pageCount,l=e.itemCount,u=e.isFilterable,d=e.manualFilters,f=e.fetchData,p=e.initialState,m=e.isSortable,h=e.manualSortBy,b=e.isExpandable,M=e.renderRowSubComponent,_=e.bulkActions,g=e.tableActions,y=e.numBreakoutFilters,v=e.initialTableOptions,L=e.EmptyTableComponent,w=e.manualSelectColumn,A=e.showFiltersInSidebar,T=e.dataViewToggleOptions,O=e.disableElevation,k=e.isLoading,S=e.children,z=sy(e,ry),E=Object(U.useMemo)((function(){return r}),[r]),N=Object(U.useMemo)((function(){return iy({columns:t,data:n,defaultColumn:E,manualFilters:d,manualPagination:s,manualSortBy:h,initialState:p},v)}),[t,n,E,d,s,p,v,h]),x=Qg(Object(U.useReducer)(Jg,$g),2),D=x[0],C=x[1];o&&s&&(N.pageCount=c||-1);var Y=uc({tableOptions:N,isFilterable:u,isSelectable:i,isPaginated:o,isSortable:m,isExpandable:b});Y.push((function(e){e.visibleColumns.push((function(e){return sc(i,e,a,w)}))}));var P={},j=D.selectedRows;if(j.length>0){var R={};j.forEach((function(e){R[e.id]=!0})),Y.push((function(e){e.useControlledState.push((function(e){return iy(iy({},e),{},{selectedRowIds:R})}))})),P.selectedFlatRows=j}var W=[D,C],q=Qi.useTable.apply(void 0,Kg(Y)),B=iy({},q.state);delete B.selectedRowIds,Object(U.useEffect)((function(){f&&f(B)}),[f,JSON.stringify(B)]);var H=function(e,t){var n=e.toggleAllRowsSelected,r=Qo(t,2),a=r[0],i=a.selectedRows,o=a.isEntireTableSelected,s=r[1];return{clearSelection:function(){i.length>0||o?s({type:"CLEAR SELECTION"}):n(!1)}}}(q,W),I=iy(iy(iy(iy({},q),{},{itemCount:l,numBreakoutFilters:y,bulkActions:_,tableActions:g,controlledTableSelections:W,showFiltersInSidebar:A,dataViewToggleOptions:T,renderRowSubComponent:M,disableElevation:O,isLoading:k},P),H),z);return V.a.createElement(Vo.Provider,{value:I},V.a.createElement(jg,null,V.a.createElement("div",{className:xn()("pgn__data-table-wrapper",{"hide-shadow":!!O})},S||V.a.createElement(V.a.Fragment,null,V.a.createElement(t_,null),V.a.createElement(ts,null),V.a.createElement(L,{content:"No results found"}),V.a.createElement(Mg,null)))))}cy.defaultProps={additionalColumns:[],defaultColumnValues:{},isFilterable:!1,isPaginated:!1,isSelectable:!1,isSortable:!1,manualFilters:!1,manualPagination:!1,manualSortBy:!1,fetchData:null,initialState:{},initialTableOptions:{},EmptyTableComponent:r_,children:null,bulkActions:[],tableActions:[],numBreakoutFilters:1,manualSelectColumn:void 0,SelectionStatusComponent:gc,FilterStatusComponent:fc,RowStatusComponent:mc,showFiltersInSidebar:!1,dataViewToggleOptions:{isDataViewToggleEnabled:!1,onDataViewToggle:function(){},defaultActiveStateValue:"card",togglePlacement:"left"},disableElevation:!1,renderRowSubComponent:void 0,isExpandable:!1,isLoading:!1},cy.propTypes={columns:En.a.arrayOf(En.a.shape({Header:En.a.oneOfType([En.a.func,En.a.node]).isRequired,accessor:(ty=En.a.string,ny="Cell",cc(ty,(function(e){return!e[ny]}),"not ".concat(ny))),Cell:En.a.oneOfType([En.a.func,En.a.element]),Filter:En.a.func,filter:En.a.string,filterChoices:En.a.arrayOf(En.a.shape({name:En.a.string,number:En.a.number,value:En.a.string}))})).isRequired,data:En.a.arrayOf(En.a.shape({})).isRequired,isSelectable:En.a.bool,manualSelectColumn:En.a.shape({id:En.a.string.isRequired,Header:En.a.oneOfType([En.a.func,En.a.node]).isRequired,Cell:En.a.func.isRequired,disableSortBy:En.a.bool.isRequired}),isSortable:En.a.bool,manualSortBy:En.a.bool,isPaginated:En.a.bool,manualPagination:En.a.bool,pageCount:lc(En.a.number,"manualPagination"),isFilterable:En.a.bool,manualFilters:En.a.bool,defaultColumnValues:En.a.shape({Filter:En.a.oneOfType([En.a.func,En.a.node])}),additionalColumns:En.a.arrayOf(En.a.shape({id:En.a.string.isRequired,Header:En.a.oneOfType([En.a.string,En.a.node]),Cell:En.a.oneOfType([En.a.func,En.a.node])})),fetchData:En.a.func,initialState:En.a.shape({pageSize:lc(En.a.number,"isPaginated"),pageIndex:lc(En.a.number,"isPaginated"),filters:lc(En.a.arrayOf(En.a.shape()),"manualFilters"),sortBy:lc(En.a.arrayOf(En.a.shape()),"manualSortBy")}),initialTableOptions:En.a.shape({}),itemCount:En.a.number.isRequired,bulkActions:En.a.oneOfType([En.a.arrayOf(En.a.oneOfType([En.a.shape({buttonText:En.a.string.isRequired,handleClick:En.a.func.isRequired,className:En.a.string,variant:En.a.string,disabled:En.a.bool}),En.a.func,En.a.element])),En.a.func,En.a.element]),tableActions:En.a.oneOfType([En.a.arrayOf(En.a.oneOfType([En.a.shape({buttonText:En.a.string.isRequired,handleClick:En.a.func.isRequired,className:En.a.string,variant:En.a.string,disabled:En.a.bool}),En.a.func,En.a.element])),En.a.func,En.a.element]),numBreakoutFilters:En.a.oneOf([1,2,3,4]),EmptyTableComponent:En.a.func,RowStatusComponent:En.a.func,SelectionStatusComponent:En.a.func,FilterStatusComponent:En.a.func,children:En.a.oneOfType([En.a.arrayOf(En.a.node),En.a.node]),showFiltersInSidebar:En.a.bool,dataViewToggleOptions:En.a.shape({isDataViewToggleEnabled:En.a.bool,onDataViewToggle:En.a.func,defaultActiveStateValue:En.a.string,togglePlacement:En.a.string}),disableElevation:En.a.bool,renderRowSubComponent:En.a.func,isExpandable:En.a.bool,isLoading:En.a.bool},cy.BulkActions=IM,cy.EmptyTable=r_,cy.DropdownFilters=$u,cy.FilterStatus=fc,cy.RowStatus=mc,cy.SelectionStatus=gc,cy.SmartStatus=yc,cy.Table=ts,cy.TableCell=Uo,cy.TableControlBar=t_,cy.TableFilters=wg,cy.TableFooter=Mg,cy.TableHeaderCell=Ro,cy.TableHeaderRow=Bo,cy.TablePagination=mg,cy.TablePaginationMinimal=hg,cy.TableActions=FM,cy.ControlledSelectionStatus=vg,cy.ControlledSelect=Sg,cy.ControlledSelectHeader=Dg,cy.ExpandAll=Wg,cy.ExpandRow=Bg;var ly=cy;function uy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function dy(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n header .").concat(this.SLIDABLE_CLASS),this.element).focus())}},{key:"srClear",value:function(){$(this.READER_FEEDBACK_CLASS).html("")}},{key:"srReadTexts",value:function(e){var t=$(this.READER_FEEDBACK_CLASS),n="";this.srClear(),$.each(e,(function(e,t){n="".concat(n,"

    ").concat(t,"

    \n")})),t.html(n)}},{key:"areSRStepsLoading",value:function(){return this.responseView.isRendering||this.peerView.isRendering||this.selfView.isRendering||this.gradeView.isRendering||this.trainingView.isRendering||this.staffView.isRendering}},{key:"announceStatusChangeToSRandFocus",value:function(e,t,n,r,a){var i=this.getStatus(e,r,n);void 0!==t&&$(e,r.element).hasClass("is--showing")&&void 0!==a?($(a,r.element).focus(),this.srStatusUpdates.push(i)):r.announceStatus&&this.srStatusUpdates.push(i),!this.areSRStepsLoading()&&this.srStatusUpdates.length>0&&(this.srReadTexts(this.srStatusUpdates),this.srStatusUpdates=[]),r.announceStatus=!1}},{key:"getStatus",value:function(e,t,n){var r="".concat(e," .step__header .step__title "),a="".concat(r,".step__label"),i="".concat(r,".step__status");return n&&(i="".concat(r,".grade__value")),"".concat($(a,t.element).text().trim()," ").concat($(i,t.element).text().trim())}},{key:"setUpCollapseExpand",value:function(e){var t=this;$(".".concat(t.SLIDABLE_CONTROLS_CLASS),e).each((function(){$(this).on("click",(function(e){e.preventDefault();var n=$(e.target).closest(".".concat(t.SLIDABLE_CONTROLS_CLASS)),r=n.closest(".".concat(t.SLIDABLE_CONTAINER_CLASS)),a=n.find(".".concat(t.SLIDABLE_CLASS)),i=n.next(".".concat(t.SLIDABLE_CONTENT_CLASS));r.hasClass("is--showing")?(i.slideUp(),a.attr("aria-expanded","false"),r.removeClass("is--showing")):r.hasClass("has--error")||r.hasClass("is--empty")||r.hasClass("is--unavailable")||(i.slideDown(),a.attr("aria-expanded","true"),r.addClass("is--showing")),r.removeClass("is--initially--collapsed ")}))}))}},{key:"bindLatexPreview",value:function(e){e.find(".submission__preview__item").hide(),e.find(".submission__preview").click((function(t){t.preventDefault();var n=$(t.target).data("input"),r=e.find('textarea[data-preview="'.concat(n,'"]')).val(),a=e.find('.preview_content[data-preview="'.concat(n,'"]'));a.html(r.replace(/\r\n|\r|\n/g,"
    ")),a.parent().parent().parent().show(),MathJax.Hub.Queue(["Typeset",MathJax.Hub,a[0]])}))}},{key:"getUsageID",value:function(){return this.usageID||(this.usageID=$(this.element).data("usage-id")),this.usageID}},{key:"load",value:function(){this.responseView.load(),this.loadAssessmentModules(),this.staffAreaView.load()}},{key:"loadAssessmentModules",value:function(e){this.trainingView.load(e),this.peerView.load(e),this.staffView.load(e),this.selfView.load(e),this.gradeView.load(e),this.leaderboardView.load(e)}},{key:"loadMessageView",value:function(){this.messageView.load()}},{key:"toggleActionError",value:function(e,t){var n=this.element,r=null;if("save"===e?r=".response__submission__actions":"submit"===e||"peer"===e||"self"===e||"student-training"===e?r=".step__actions":"feedback_assess"===e?r=".submission__feedback__actions":"upload"===e?r=".upload__error":"delete"===e&&(r=".delete__error"),null===r?null!==t&&console.log(t):($("".concat(r," .message__content"),n).html("

    ".concat(t?_.escape(t):"","

    ")),$(r,n).toggleClass("has--error",null!==t),$("".concat(r," > .message"),n).focus()),null!==t){var a=$("".concat(r," .message__title")).text();this.srReadTexts([a,t])}}},{key:"showLoadError",value:function(e,t){t||(t=gettext("Unable to load"));var n=$(".step--".concat(e));n.toggleClass("has--error",!0),n.removeClass("is--showing"),n.find(".ui-slidable").attr("aria-expanded","false"),n.find(".step__status__value i").removeClass().addClass("icon fa fa-exclamation-triangle"),n.find(".step__status__value .copy").html(_.escape(t))}},{key:"unsavedWarningEnabled",value:function(e,t,n){if(void 0===e)return null!==window.onbeforeunload;var r=$(this.element).data("usage-id");e?(void 0!==this.unsavedChanges[r]&&this.unsavedChanges[r]||(this.unsavedChanges[r]={}),this.unsavedChanges[r][t]=n,window.onbeforeunload=function(){var e,n=this;return Object.keys(this.unsavedChanges).some((function(r){if(n.unsavedChanges.hasOwnProperty(r)){var a=n.unsavedChanges[r];return Object.keys(a).some((function(n){return!!a.hasOwnProperty(t)&&(e=a[t],!0)}))}return!1})),e}):void 0!==this.unsavedChanges[r]&&(delete this.unsavedChanges[r][t],$.isEmptyObject(this.unsavedChanges[r])&&delete this.unsavedChanges[r],$.isEmptyObject(this.unsavedChanges)&&(window.onbeforeunload=null))}},{key:"buttonEnabled",value:function(e,t){var n=$(e,this.element);return void 0===t?!n.prop("disabled"):(n.prop("disabled",!t),t)}}])&&wy(t.prototype,n),r&&wy(t,r),e}();window.OpenAssessmentBlock=function(e,t,n){var a=new r.a(e,t);new Ty(e,t,a,n).load()},window.CourseOpenResponsesListingBlock=function(e,t,n){new a.a(e,t,n).refreshGrids()},window.StaffAssessmentBlock=function(e,t,n){var a=new r.a(e,t);new Ty(e,t,a,n).staffAreaView.installHandlers()},window.WaitingStepDetailsBlock=function(e,t,n){var a=new r.a(e,t),i=new Ty(e,t,a,n);Ly(i,n)}},,,,,,,,,,,function(e,t,n){"use strict";(function(e){var r=n(0);function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n>>0;for(t=0;t0)for(n=0;n<_.length;n++)l(a=t[r=_[n]])||(e[r]=a);return e}function v(e){y(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===g&&(g=!0,a.updateOffset(this),g=!1)}function L(e){return e instanceof v||null!=e&&null!=e._isAMomentObject}function w(e){!1===a.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function A(e,t){var n=!0;return p((function(){if(null!=a.deprecationHandler&&a.deprecationHandler(null,e),n){var r,i,o,c=[];for(i=0;i=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}a.suppressDeprecationWarnings=!1,a.deprecationHandler=null,T=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)s(e,t)&&n.push(t);return n};var x=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,D=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,C={},Y={};function P(e,t,n,r){var a=r;"string"==typeof r&&(a=function(){return this[r]()}),e&&(Y[e]=a),t&&(Y[t[0]]=function(){return N(a.apply(this,arguments),t[1],t[2])}),n&&(Y[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function j(e,t){return e.isValid()?(t=R(t,e.localeData()),C[t]=C[t]||function(e){var t,n,r,a=e.match(x);for(t=0,n=a.length;t=0&&D.test(e);)e=e.replace(D,r),D.lastIndex=0,n-=1;return e}var W={};function q(e,t){var n=e.toLowerCase();W[n]=W[n+"s"]=W[t]=e}function B(e){return"string"==typeof e?W[e]||W[e.toLowerCase()]:void 0}function H(e){var t,n,r={};for(n in e)s(e,n)&&(t=B(n))&&(r[t]=e[n]);return r}var I={};function X(e,t){I[e]=t}function F(e){return e%4==0&&e%100!=0||e%400==0}function U(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function V(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=U(t)),n}function G(e,t){return function(n){return null!=n?(J(this,e,n),a.updateOffset(this,t),this):$(this,e)}}function $(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function J(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&F(e.year())&&1===e.month()&&29===e.date()?(n=V(n),e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Le(n,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](n))}var K,Q=/\d/,Z=/\d\d/,ee=/\d{3}/,te=/\d{4}/,ne=/[+-]?\d{6}/,re=/\d\d?/,ae=/\d\d\d\d?/,ie=/\d\d\d\d\d\d?/,oe=/\d{1,3}/,se=/\d{1,4}/,ce=/[+-]?\d{1,6}/,le=/\d+/,ue=/[+-]?\d+/,de=/Z|[+-]\d\d:?\d\d/gi,fe=/Z|[+-]\d\d(?::?\d\d)?/gi,pe=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;function me(e,t,n){K[e]=S(t)?t:function(e,r){return e&&n?n:t}}function he(e,t){return s(K,e)?K[e](t._strict,t._locale):new RegExp(be(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,r,a){return t||n||r||a}))))}function be(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}K={};var Me,_e={};function ge(e,t){var n,r=t;for("string"==typeof e&&(e=[e]),u(t)&&(r=function(e,n){n[t]=V(e)}),n=0;n68?1900:2e3)};var De=G("FullYear",!0);function Ce(e,t,n,r,a,i,o){var s;return e<100&&e>=0?(s=new Date(e+400,t,n,r,a,i,o),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,n,r,a,i,o),s}function Ye(e){var t,n;return e<100&&e>=0?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function Pe(e,t,n){var r=7+t-n;return-(7+Ye(e,0,r).getUTCDay()-t)%7+r-1}function je(e,t,n,r,a){var i,o,s=1+7*(t-1)+(7+n-r)%7+Pe(e,r,a);return s<=0?o=xe(i=e-1)+s:s>xe(e)?(i=e+1,o=s-xe(e)):(i=e,o=s),{year:i,dayOfYear:o}}function Re(e,t,n){var r,a,i=Pe(e.year(),t,n),o=Math.floor((e.dayOfYear()-i-1)/7)+1;return o<1?r=o+We(a=e.year()-1,t,n):o>We(e.year(),t,n)?(r=o-We(e.year(),t,n),a=e.year()+1):(a=e.year(),r=o),{week:r,year:a}}function We(e,t,n){var r=Pe(e,t,n),a=Pe(e+1,t,n);return(xe(e)-r+a)/7}function qe(e,t){return e.slice(t,7).concat(e.slice(0,t))}P("w",["ww",2],"wo","week"),P("W",["WW",2],"Wo","isoWeek"),q("week","w"),q("isoWeek","W"),X("week",5),X("isoWeek",5),me("w",re),me("ww",re,Z),me("W",re),me("WW",re,Z),ye(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=V(e)})),P("d",0,"do","day"),P("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),P("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),P("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),P("e",0,0,"weekday"),P("E",0,0,"isoWeekday"),q("day","d"),q("weekday","e"),q("isoWeekday","E"),X("day",11),X("weekday",11),X("isoWeekday",11),me("d",re),me("e",re),me("E",re),me("dd",(function(e,t){return t.weekdaysMinRegex(e)})),me("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),me("dddd",(function(e,t){return t.weekdaysRegex(e)})),ye(["dd","ddd","dddd"],(function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:h(n).invalidWeekday=e})),ye(["d","e","E"],(function(e,t,n,r){t[r]=V(e)}));var Be="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),He="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ie="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Xe=pe,Fe=pe,Ue=pe;function Ve(e,t,n){var r,a,i,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)i=m([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(a=Me.call(this._weekdaysParse,o))?a:null:"ddd"===t?-1!==(a=Me.call(this._shortWeekdaysParse,o))?a:null:-1!==(a=Me.call(this._minWeekdaysParse,o))?a:null:"dddd"===t?-1!==(a=Me.call(this._weekdaysParse,o))||-1!==(a=Me.call(this._shortWeekdaysParse,o))||-1!==(a=Me.call(this._minWeekdaysParse,o))?a:null:"ddd"===t?-1!==(a=Me.call(this._shortWeekdaysParse,o))||-1!==(a=Me.call(this._weekdaysParse,o))||-1!==(a=Me.call(this._minWeekdaysParse,o))?a:null:-1!==(a=Me.call(this._minWeekdaysParse,o))||-1!==(a=Me.call(this._weekdaysParse,o))||-1!==(a=Me.call(this._shortWeekdaysParse,o))?a:null}function Ge(){function e(e,t){return t.length-e.length}var t,n,r,a,i,o=[],s=[],c=[],l=[];for(t=0;t<7;t++)n=m([2e3,1]).day(t),r=be(this.weekdaysMin(n,"")),a=be(this.weekdaysShort(n,"")),i=be(this.weekdays(n,"")),o.push(r),s.push(a),c.push(i),l.push(r),l.push(a),l.push(i);o.sort(e),s.sort(e),c.sort(e),l.sort(e),this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function $e(){return this.hours()%12||12}function Je(e,t){P(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function Ke(e,t){return t._meridiemParse}P("H",["HH",2],0,"hour"),P("h",["hh",2],0,$e),P("k",["kk",2],0,(function(){return this.hours()||24})),P("hmm",0,0,(function(){return""+$e.apply(this)+N(this.minutes(),2)})),P("hmmss",0,0,(function(){return""+$e.apply(this)+N(this.minutes(),2)+N(this.seconds(),2)})),P("Hmm",0,0,(function(){return""+this.hours()+N(this.minutes(),2)})),P("Hmmss",0,0,(function(){return""+this.hours()+N(this.minutes(),2)+N(this.seconds(),2)})),Je("a",!0),Je("A",!1),q("hour","h"),X("hour",13),me("a",Ke),me("A",Ke),me("H",re),me("h",re),me("k",re),me("HH",re,Z),me("hh",re,Z),me("kk",re,Z),me("hmm",ae),me("hmmss",ie),me("Hmm",ae),me("Hmmss",ie),ge(["H","HH"],3),ge(["k","kk"],(function(e,t,n){var r=V(e);t[3]=24===r?0:r})),ge(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),ge(["h","hh"],(function(e,t,n){t[3]=V(e),h(n).bigHour=!0})),ge("hmm",(function(e,t,n){var r=e.length-2;t[3]=V(e.substr(0,r)),t[4]=V(e.substr(r)),h(n).bigHour=!0})),ge("hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=V(e.substr(0,r)),t[4]=V(e.substr(r,2)),t[5]=V(e.substr(a)),h(n).bigHour=!0})),ge("Hmm",(function(e,t,n){var r=e.length-2;t[3]=V(e.substr(0,r)),t[4]=V(e.substr(r))})),ge("Hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=V(e.substr(0,r)),t[4]=V(e.substr(r,2)),t[5]=V(e.substr(a))}));var Qe,Ze=G("Hours",!0),et={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:we,monthsShort:Ae,week:{dow:0,doy:6},weekdays:Be,weekdaysMin:Ie,weekdaysShort:He,meridiemParse:/[ap]\.?m?\.?/i},tt={},nt={};function rt(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n0;){if(r=it(a.slice(0,t).join("-")))return r;if(n&&n.length>=t&&rt(a,n)>=t-1)break;t--}i++}return Qe}(e)}function lt(e){var t,n=e._a;return n&&-2===h(e).overflow&&(t=n[1]<0||n[1]>11?1:n[2]<1||n[2]>Le(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,h(e)._overflowDayOfYear&&(t<0||t>2)&&(t=2),h(e)._overflowWeeks&&-1===t&&(t=7),h(e)._overflowWeekday&&-1===t&&(t=8),h(e).overflow=t),e}var ut=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,dt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ft=/Z|[+-]\d\d(?::?\d\d)?/,pt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],mt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],ht=/^\/?Date\((-?\d+)/i,bt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Mt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function _t(e){var t,n,r,a,i,o,s=e._i,c=ut.exec(s)||dt.exec(s);if(c){for(h(e).iso=!0,t=0,n=pt.length;t7)&&(c=!0)):(i=e._locale._week.dow,o=e._locale._week.doy,l=Re(Ot(),i,o),n=vt(t.gg,e._a[0],l.year),r=vt(t.w,l.week),null!=t.d?((a=t.d)<0||a>6)&&(c=!0):null!=t.e?(a=t.e+i,(t.e<0||t.e>6)&&(c=!0)):a=i),r<1||r>We(n,i,o)?h(e)._overflowWeeks=!0:null!=c?h(e)._overflowWeekday=!0:(s=je(n,r,a,i,o),e._a[0]=s.year,e._dayOfYear=s.dayOfYear)}(e),null!=e._dayOfYear&&(o=vt(e._a[0],r[0]),(e._dayOfYear>xe(o)||0===e._dayOfYear)&&(h(e)._overflowDayOfYear=!0),n=Ye(o,0,e._dayOfYear),e._a[1]=n.getUTCMonth(),e._a[2]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=s[t]=r[t];for(;t<7;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?Ye:Ce).apply(null,s),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(h(e).weekdayMismatch=!0)}}function wt(e){if(e._f!==a.ISO_8601)if(e._f!==a.RFC_2822){e._a=[],h(e).empty=!0;var t,n,r,i,o,s,c=""+e._i,l=c.length,u=0;for(r=R(e._f,e._locale).match(x)||[],t=0;t0&&h(e).unusedInput.push(o),c=c.slice(c.indexOf(n)+n.length),u+=n.length),Y[i]?(n?h(e).empty=!1:h(e).unusedTokens.push(i),ve(i,n,e)):e._strict&&!n&&h(e).unusedTokens.push(i);h(e).charsLeftOver=l-u,c.length>0&&h(e).unusedInput.push(c),e._a[3]<=12&&!0===h(e).bigHour&&e._a[3]>0&&(h(e).bigHour=void 0),h(e).parsedDateParts=e._a.slice(0),h(e).meridiem=e._meridiem,e._a[3]=function(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}(e._locale,e._a[3],e._meridiem),null!==(s=h(e).era)&&(e._a[0]=e._locale.erasConvertYear(s,e._a[0])),Lt(e),lt(e)}else yt(e);else _t(e)}function At(e){var t=e._i,n=e._f;return e._locale=e._locale||ct(e._l),null===t||void 0===n&&""===t?M({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),L(t)?new v(lt(t)):(d(t)?e._d=t:i(n)?function(e){var t,n,r,a,i,o,s=!1;if(0===e._f.length)return h(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;athis?this:e:M()}));function zt(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return Ot();for(n=t[0],r=1;r=0?new Date(e+400,t,n)-126227808e5:new Date(e,t,n).valueOf()}function an(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-126227808e5:Date.UTC(e,t,n)}function on(e,t){return t.erasAbbrRegex(e)}function sn(){var e,t,n=[],r=[],a=[],i=[],o=this.eras();for(e=0,t=o.length;e(i=We(e,r,a))&&(t=i),un.call(this,e,t,n,r,a))}function un(e,t,n,r,a){var i=je(e,t,n,r,a),o=Ye(i.year,0,i.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}P("N",0,0,"eraAbbr"),P("NN",0,0,"eraAbbr"),P("NNN",0,0,"eraAbbr"),P("NNNN",0,0,"eraName"),P("NNNNN",0,0,"eraNarrow"),P("y",["y",1],"yo","eraYear"),P("y",["yy",2],0,"eraYear"),P("y",["yyy",3],0,"eraYear"),P("y",["yyyy",4],0,"eraYear"),me("N",on),me("NN",on),me("NNN",on),me("NNNN",(function(e,t){return t.erasNameRegex(e)})),me("NNNNN",(function(e,t){return t.erasNarrowRegex(e)})),ge(["N","NN","NNN","NNNN","NNNNN"],(function(e,t,n,r){var a=n._locale.erasParse(e,r,n._strict);a?h(n).era=a:h(n).invalidEra=e})),me("y",le),me("yy",le),me("yyy",le),me("yyyy",le),me("yo",(function(e,t){return t._eraYearOrdinalRegex||le})),ge(["y","yy","yyy","yyyy"],0),ge(["yo"],(function(e,t,n,r){var a;n._locale._eraYearOrdinalRegex&&(a=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[0]=n._locale.eraYearOrdinalParse(e,a):t[0]=parseInt(e,10)})),P(0,["gg",2],0,(function(){return this.weekYear()%100})),P(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),cn("gggg","weekYear"),cn("ggggg","weekYear"),cn("GGGG","isoWeekYear"),cn("GGGGG","isoWeekYear"),q("weekYear","gg"),q("isoWeekYear","GG"),X("weekYear",1),X("isoWeekYear",1),me("G",ue),me("g",ue),me("GG",re,Z),me("gg",re,Z),me("GGGG",se,te),me("gggg",se,te),me("GGGGG",ce,ne),me("ggggg",ce,ne),ye(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=V(e)})),ye(["gg","GG"],(function(e,t,n,r){t[r]=a.parseTwoDigitYear(e)})),P("Q",0,"Qo","quarter"),q("quarter","Q"),X("quarter",7),me("Q",Q),ge("Q",(function(e,t){t[1]=3*(V(e)-1)})),P("D",["DD",2],"Do","date"),q("date","D"),X("date",9),me("D",re),me("DD",re,Z),me("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),ge(["D","DD"],2),ge("Do",(function(e,t){t[2]=V(e.match(re)[0])}));var dn=G("Date",!0);P("DDD",["DDDD",3],"DDDo","dayOfYear"),q("dayOfYear","DDD"),X("dayOfYear",4),me("DDD",oe),me("DDDD",ee),ge(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=V(e)})),P("m",["mm",2],0,"minute"),q("minute","m"),X("minute",14),me("m",re),me("mm",re,Z),ge(["m","mm"],4);var fn=G("Minutes",!1);P("s",["ss",2],0,"second"),q("second","s"),X("second",15),me("s",re),me("ss",re,Z),ge(["s","ss"],5);var pn,mn,hn=G("Seconds",!1);for(P("S",0,0,(function(){return~~(this.millisecond()/100)})),P(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),P(0,["SSS",3],0,"millisecond"),P(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),P(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),P(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),P(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),P(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),P(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),q("millisecond","ms"),X("millisecond",16),me("S",oe,Q),me("SS",oe,Z),me("SSS",oe,ee),pn="SSSS";pn.length<=9;pn+="S")me(pn,le);function bn(e,t){t[6]=V(1e3*("0."+e))}for(pn="S";pn.length<=9;pn+="S")ge(pn,bn);mn=G("Milliseconds",!1),P("z",0,0,"zoneAbbr"),P("zz",0,0,"zoneName");var Mn=v.prototype;function _n(e){return e}Mn.add=Vt,Mn.calendar=function(e,t){1===arguments.length&&(arguments[0]?Jt(arguments[0])?(e=arguments[0],t=void 0):Kt(arguments[0])&&(t=arguments[0],e=void 0):(e=void 0,t=void 0));var n=e||Ot(),r=jt(n,this).startOf("day"),i=a.calendarFormat(this,r)||"sameElse",o=t&&(S(t[i])?t[i].call(this,n):t[i]);return this.format(o||this.localeData().calendar(i,this,Ot(n)))},Mn.clone=function(){return new v(this)},Mn.diff=function(e,t,n){var r,a,i;if(!this.isValid())return NaN;if(!(r=jt(e,this)).isValid())return NaN;switch(a=6e4*(r.utcOffset()-this.utcOffset()),t=B(t)){case"year":i=Qt(this,r)/12;break;case"month":i=Qt(this,r);break;case"quarter":i=Qt(this,r)/3;break;case"second":i=(this-r)/1e3;break;case"minute":i=(this-r)/6e4;break;case"hour":i=(this-r)/36e5;break;case"day":i=(this-r-a)/864e5;break;case"week":i=(this-r-a)/6048e5;break;default:i=this-r}return n?i:U(i)},Mn.endOf=function(e){var t,n;if(void 0===(e=B(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?an:rn,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-nn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-nn(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-nn(t,1e3)-1}return this._d.setTime(t),a.updateOffset(this,!0),this},Mn.format=function(e){e||(e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var t=j(this,e);return this.localeData().postformat(t)},Mn.from=function(e,t){return this.isValid()&&(L(e)&&e.isValid()||Ot(e).isValid())?Ht({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},Mn.fromNow=function(e){return this.from(Ot(),e)},Mn.to=function(e,t){return this.isValid()&&(L(e)&&e.isValid()||Ot(e).isValid())?Ht({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},Mn.toNow=function(e){return this.to(Ot(),e)},Mn.get=function(e){return S(this[e=B(e)])?this[e]():this},Mn.invalidAt=function(){return h(this).overflow},Mn.isAfter=function(e,t){var n=L(e)?e:Ot(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=B(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()9999?j(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):S(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",j(n,"Z")):j(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},Mn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,r="moment",a="";return this.isLocal()||(r=0===this.utcOffset()?"moment.utc":"moment.parseZone",a="Z"),e="["+r+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=a+'[")]',this.format(e+t+"-MM-DD[T]HH:mm:ss.SSS"+n)},"undefined"!=typeof Symbol&&null!=Symbol.for&&(Mn[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),Mn.toJSON=function(){return this.isValid()?this.toISOString():null},Mn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},Mn.unix=function(){return Math.floor(this.valueOf()/1e3)},Mn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},Mn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Mn.eraName=function(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;ethis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Mn.isLocal=function(){return!!this.isValid()&&!this._isUTC},Mn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},Mn.isUtc=Wt,Mn.isUTC=Wt,Mn.zoneAbbr=function(){return this._isUTC?"UTC":""},Mn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},Mn.dates=A("dates accessor is deprecated. Use date instead.",dn),Mn.months=A("months accessor is deprecated. Use month instead",Ee),Mn.years=A("years accessor is deprecated. Use year instead",De),Mn.zone=A("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),Mn.isDSTShifted=A("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e,t={};return y(t,this),(t=At(t))._a?(e=t._isUTC?m(t._a):Ot(t._a),this._isDSTShifted=this.isValid()&&function(e,t,n){var r,a=Math.min(e.length,t.length),i=Math.abs(e.length-t.length),o=0;for(r=0;r0):this._isDSTShifted=!1,this._isDSTShifted}));var gn=E.prototype;function yn(e,t,n,r){var a=ct(),i=m().set(r,t);return a[n](i,e)}function vn(e,t,n){if(u(e)&&(t=e,e=void 0),e=e||"",null!=t)return yn(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=yn(e,r,n,"month");return a}function Ln(e,t,n,r){"boolean"==typeof e?(u(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,u(t)&&(n=t,t=void 0),t=t||"");var a,i=ct(),o=e?i._week.dow:0,s=[];if(null!=n)return yn(t,(n+o)%7,r,"day");for(a=0;a<7;a++)s[a]=yn(t,(a+o)%7,r,"day");return s}gn.calendar=function(e,t,n){var r=this._calendar[e]||this._calendar.sameElse;return S(r)?r.call(t,n):r},gn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(x).map((function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e})).join(""),this._longDateFormat[e])},gn.invalidDate=function(){return this._invalidDate},gn.ordinal=function(e){return this._ordinal.replace("%d",e)},gn.preparse=_n,gn.postformat=_n,gn.relativeTime=function(e,t,n,r){var a=this._relativeTime[n];return S(a)?a(e,t,n,r):a.replace(/%d/i,e)},gn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return S(n)?n(t):n.replace(/%s/i,t)},gn.set=function(e){var t,n;for(n in e)s(e,n)&&(S(t=e[n])?this[n]=t:this["_"+n]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},gn.eras=function(e,t){var n,r,i,o=this._eras||ct("en")._eras;for(n=0,r=o.length;n=0)return c[r]},gn.erasConvertYear=function(e,t){var n=e.since<=e.until?1:-1;return void 0===t?a(e.since).year():a(e.since).year()+(t-e.offset)*n},gn.erasAbbrRegex=function(e){return s(this,"_erasAbbrRegex")||sn.call(this),e?this._erasAbbrRegex:this._erasRegex},gn.erasNameRegex=function(e){return s(this,"_erasNameRegex")||sn.call(this),e?this._erasNameRegex:this._erasRegex},gn.erasNarrowRegex=function(e){return s(this,"_erasNarrowRegex")||sn.call(this),e?this._erasNarrowRegex:this._erasRegex},gn.months=function(e,t){return e?i(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Te).test(t)?"format":"standalone"][e.month()]:i(this._months)?this._months:this._months.standalone},gn.monthsShort=function(e,t){return e?i(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Te.test(t)?"format":"standalone"][e.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},gn.monthsParse=function(e,t,n){var r,a,i;if(this._monthsParseExact)return Se.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(a=m([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(i="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[r]=new RegExp(i.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[r].test(e))return r;if(n&&"MMM"===t&&this._shortMonthsParse[r].test(e))return r;if(!n&&this._monthsParse[r].test(e))return r}},gn.monthsRegex=function(e){return this._monthsParseExact?(s(this,"_monthsRegex")||Ne.call(this),e?this._monthsStrictRegex:this._monthsRegex):(s(this,"_monthsRegex")||(this._monthsRegex=ke),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},gn.monthsShortRegex=function(e){return this._monthsParseExact?(s(this,"_monthsRegex")||Ne.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(s(this,"_monthsShortRegex")||(this._monthsShortRegex=Oe),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},gn.week=function(e){return Re(e,this._week.dow,this._week.doy).week},gn.firstDayOfYear=function(){return this._week.doy},gn.firstDayOfWeek=function(){return this._week.dow},gn.weekdays=function(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?qe(n,this._week.dow):e?n[e.day()]:n},gn.weekdaysMin=function(e){return!0===e?qe(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},gn.weekdaysShort=function(e){return!0===e?qe(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},gn.weekdaysParse=function(e,t,n){var r,a,i;if(this._weekdaysParseExact)return Ve.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=m([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(i="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}},gn.weekdaysRegex=function(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Ge.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(s(this,"_weekdaysRegex")||(this._weekdaysRegex=Xe),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},gn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Ge.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(s(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Fe),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},gn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Ge.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(s(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Ue),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},gn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},gn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},ot("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===V(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),a.lang=A("moment.lang is deprecated. Use moment.locale instead.",ot),a.langData=A("moment.langData is deprecated. Use moment.localeData instead.",ct);var wn=Math.abs;function An(e,t,n,r){var a=Ht(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function Tn(e){return e<0?Math.floor(e):Math.ceil(e)}function On(e){return 4800*e/146097}function kn(e){return 146097*e/4800}function Sn(e){return function(){return this.as(e)}}var zn=Sn("ms"),En=Sn("s"),Nn=Sn("m"),xn=Sn("h"),Dn=Sn("d"),Cn=Sn("w"),Yn=Sn("M"),Pn=Sn("Q"),jn=Sn("y");function Rn(e){return function(){return this.isValid()?this._data[e]:NaN}}var Wn=Rn("milliseconds"),qn=Rn("seconds"),Bn=Rn("minutes"),Hn=Rn("hours"),In=Rn("days"),Xn=Rn("months"),Fn=Rn("years"),Un=Math.round,Vn={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function Gn(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}var $n=Math.abs;function Jn(e){return(e>0)-(e<0)||+e}function Kn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r,a,i,o,s,c=$n(this._milliseconds)/1e3,l=$n(this._days),u=$n(this._months),d=this.asSeconds();return d?(e=U(c/60),t=U(e/60),c%=60,e%=60,n=U(u/12),u%=12,r=c?c.toFixed(3).replace(/\.?0+$/,""):"",a=d<0?"-":"",i=Jn(this._months)!==Jn(d)?"-":"",o=Jn(this._days)!==Jn(d)?"-":"",s=Jn(this._milliseconds)!==Jn(d)?"-":"",a+"P"+(n?i+n+"Y":"")+(u?i+u+"M":"")+(l?o+l+"D":"")+(t||e||c?"T":"")+(t?s+t+"H":"")+(e?s+e+"M":"")+(c?s+r+"S":"")):"P0D"}var Qn=Nt.prototype;return Qn.isValid=function(){return this._isValid},Qn.abs=function(){var e=this._data;return this._milliseconds=wn(this._milliseconds),this._days=wn(this._days),this._months=wn(this._months),e.milliseconds=wn(e.milliseconds),e.seconds=wn(e.seconds),e.minutes=wn(e.minutes),e.hours=wn(e.hours),e.months=wn(e.months),e.years=wn(e.years),this},Qn.add=function(e,t){return An(this,e,t,1)},Qn.subtract=function(e,t){return An(this,e,t,-1)},Qn.as=function(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=B(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+On(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(kn(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}},Qn.asMilliseconds=zn,Qn.asSeconds=En,Qn.asMinutes=Nn,Qn.asHours=xn,Qn.asDays=Dn,Qn.asWeeks=Cn,Qn.asMonths=Yn,Qn.asQuarters=Pn,Qn.asYears=jn,Qn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*V(this._months/12):NaN},Qn._bubble=function(){var e,t,n,r,a,i=this._milliseconds,o=this._days,s=this._months,c=this._data;return i>=0&&o>=0&&s>=0||i<=0&&o<=0&&s<=0||(i+=864e5*Tn(kn(s)+o),o=0,s=0),c.milliseconds=i%1e3,e=U(i/1e3),c.seconds=e%60,t=U(e/60),c.minutes=t%60,n=U(t/60),c.hours=n%24,o+=U(n/24),a=U(On(o)),s+=a,o-=Tn(kn(a)),r=U(s/12),s%=12,c.days=o,c.months=s,c.years=r,this},Qn.clone=function(){return Ht(this)},Qn.get=function(e){return e=B(e),this.isValid()?this[e+"s"]():NaN},Qn.milliseconds=Wn,Qn.seconds=qn,Qn.minutes=Bn,Qn.hours=Hn,Qn.days=In,Qn.weeks=function(){return U(this.days()/7)},Qn.months=Xn,Qn.years=Fn,Qn.humanize=function(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,r,a=!1,i=Vn;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(a=e),"object"==typeof t&&(i=Object.assign({},Vn,t),null!=t.s&&null==t.ss&&(i.ss=t.s-1)),n=this.localeData(),r=function(e,t,n,r){var a=Ht(e).abs(),i=Un(a.as("s")),o=Un(a.as("m")),s=Un(a.as("h")),c=Un(a.as("d")),l=Un(a.as("M")),u=Un(a.as("w")),d=Un(a.as("y")),f=i<=n.ss&&["s",i]||i0,f[4]=r,Gn.apply(null,f)}(this,!a,i,n),a&&(r=n.pastFuture(+this,r)),n.postformat(r)},Qn.toISOString=Kn,Qn.toString=Kn,Qn.toJSON=Kn,Qn.locale=Zt,Qn.localeData=tn,Qn.toIsoString=A("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Kn),Qn.lang=en,P("X",0,0,"unix"),P("x",0,0,"valueOf"),me("x",ue),me("X",/[+-]?\d+(\.\d{1,3})?/),ge("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e))})),ge("x",(function(e,t,n){n._d=new Date(V(e))})), +//! moment.js +a.version="2.29.1",t=Ot,a.fn=Mn,a.min=function(){var e=[].slice.call(arguments,0);return zt("isBefore",e)},a.max=function(){var e=[].slice.call(arguments,0);return zt("isAfter",e)},a.now=function(){return Date.now?Date.now():+new Date},a.utc=m,a.unix=function(e){return Ot(1e3*e)},a.months=function(e,t){return vn(e,t,"months")},a.isDate=d,a.locale=ot,a.invalid=M,a.duration=Ht,a.isMoment=L,a.weekdays=function(e,t,n){return Ln(e,t,n,"weekdays")},a.parseZone=function(){return Ot.apply(null,arguments).parseZone()},a.localeData=ct,a.isDuration=xt,a.monthsShort=function(e,t){return vn(e,t,"monthsShort")},a.weekdaysMin=function(e,t,n){return Ln(e,t,n,"weekdaysMin")},a.defineLocale=st,a.updateLocale=function(e,t){if(null!=t){var n,r,a=et;null!=tt[e]&&null!=tt[e].parentLocale?tt[e].set(z(tt[e]._config,t)):(null!=(r=it(e))&&(a=r._config),t=z(a,t),null==r&&(t.abbr=e),(n=new E(t)).parentLocale=tt[e],tt[e]=n),ot(e)}else null!=tt[e]&&(null!=tt[e].parentLocale?(tt[e]=tt[e].parentLocale,e===ot()&&ot(e)):null!=tt[e]&&delete tt[e]);return tt[e]},a.locales=function(){return T(tt)},a.weekdaysShort=function(e,t,n){return Ln(e,t,n,"weekdaysShort")},a.normalizeUnits=B,a.relativeTimeRounding=function(e){return void 0===e?Un:"function"==typeof e&&(Un=e,!0)},a.relativeTimeThreshold=function(e,t){return void 0!==Vn[e]&&(void 0===t?Vn[e]:(Vn[e]=t,"s"===e&&(Vn.ss=t-1),!0))},a.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},a.prototype=Mn,a.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},a}()}).call(this,n(30)(e))},function(e,t,n){"use strict";(function(e){n.d(t,"e",(function(){return r})),n.d(t,"p",(function(){return a})),n.d(t,"a",(function(){return i})),n.d(t,"c",(function(){return o})),n.d(t,"d",(function(){return s})),n.d(t,"o",(function(){return c})),n.d(t,"q",(function(){return l})),n.d(t,"t",(function(){return u})),n.d(t,"i",(function(){return d})),n.d(t,"r",(function(){return f})),n.d(t,"s",(function(){return p})),n.d(t,"k",(function(){return m})),n.d(t,"m",(function(){return h})),n.d(t,"j",(function(){return b})),n.d(t,"l",(function(){return M})),n.d(t,"g",(function(){return _})),n.d(t,"f",(function(){return g})),n.d(t,"h",(function(){return y})),n.d(t,"n",(function(){return v})),n.d(t,"b",(function(){return L}));var r="1.13.2",a="object"==typeof self&&self.self===self&&self||"object"==typeof e&&e.global===e&&e||Function("return this")()||{},i=Array.prototype,o=Object.prototype,s="undefined"!=typeof Symbol?Symbol.prototype:null,c=i.push,l=i.slice,u=o.toString,d=o.hasOwnProperty,f="undefined"!=typeof ArrayBuffer,p="undefined"!=typeof DataView,m=Array.isArray,h=Object.keys,b=Object.create,M=f&&ArrayBuffer.isView,_=isNaN,g=isFinite,y=!{toString:null}.propertyIsEnumerable("toString"),v=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],L=Math.pow(2,53)-1}).call(this,n(7))},function(e,t,n){var r; +/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t=0&&n<=a.b}}function Y(e){return function(t){return null==t?void 0:t[e]}}var P=Y("byteLength"),j=C(P),R=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var W=a.r?function(e){return a.l?Object(a.l)(e)&&!O(e):j(e)&&R.test(a.t.call(e))}:D(!1),q=Y("length");function B(e,t){t=function(e){for(var t={},n=e.length,r=0;r":">",'"':""","'":"'","`":"`"},We=je(Re),qe=je(le(Re)),Be=F.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},He=/(.)^/,Ie={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Xe=/\\|'|\r|\n|\u2028|\u2029/g;function Fe(e){return"\\"+Ie[e]}var Ue=/^\s*(\w|\$)+\s*$/;function Ve(e,t,n){!t&&n&&(t=n),t=me({},t,F.templateSettings);var r=RegExp([(t.escape||He).source,(t.interpolate||He).source,(t.evaluate||He).source].join("|")+"|$","g"),a=0,i="__p+='";e.replace(r,(function(t,n,r,o,s){return i+=e.slice(a,s).replace(Xe,Fe),a=s+t.length,n?i+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?i+="'+\n((__t=("+r+"))==null?'':__t)+\n'":o&&(i+="';\n"+o+"\n__p+='"),t})),i+="';\n";var o,s=t.variable;if(s){if(!Ue.test(s))throw new Error("variable is not a bare identifier: "+s)}else i="with(obj||{}){\n"+i+"}\n",s="obj";i="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{o=new Function(s,"_",i)}catch(e){throw e.source=i,e}var c=function(e){return o.call(this,e,F)};return c.source="function("+s+"){\n"+i+"}",c}function Ge(e,t,n){var r=(t=ye(t)).length;if(!r)return v(n)?n.call(e):n;for(var a=0;a1)rt(s,t-1,n,r),a=r.length;else for(var c=0,l=s.length;ct?(r&&(clearTimeout(r),r=null),s=l,o=e.apply(a,i),r||(a=i=null)):r||!1===n.trailing||(r=setTimeout(c,u)),o};return l.cancel=function(){clearTimeout(r),s=0,r=a=i=null},l}function lt(e,t,n){var r,a,o,s,c,l=function(){var i=Pe()-a;t>i?r=setTimeout(l,t-i):(r=null,n||(s=e.apply(c,o)),r||(o=c=null))},u=i((function(i){return c=this,o=i,a=Pe(),r||(r=setTimeout(l,t),n&&(s=e.apply(c,o))),s}));return u.cancel=function(){clearTimeout(r),r=o=c=null},u}function ut(e,t){return et(t,e)}function dt(e){return function(){return!e.apply(this,arguments)}}function ft(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}}function pt(e,t){return function(){if(--e<1)return t.apply(this,arguments)}}function mt(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}}var ht=et(mt,2);function bt(e,t,n){t=Ee(t,n);for(var r,a=H(e),i=0,o=a.length;i0?0:a-1;i>=0&&i0?s=o>=0?o:Math.max(o+c,s):c=o>=0?Math.min(o+1,c):o+c+1;else if(n&&o&&c)return r[o=n(r,i)]===i?o:-1;if(i!=i)return(o=t(a.q.call(r,s,c),x))>=0?o+s:-1;for(o=e>0?s:c-1;o>=0&&o0?0:o-1;for(a||(r=t[i?i[s]:s],s+=e);s>=0&&s=3;return t(e,ke(n,a,4),r,i)}}var zt=St(1),Et=St(-1);function Nt(e,t,n){var r=[];return t=Ee(t,n),Ot(e,(function(e,n,a){t(e,n,a)&&r.push(e)})),r}function xt(e,t,n){return Nt(e,dt(Ee(t)),n)}function Dt(e,t,n){t=Ee(t,n);for(var r=!nt(e)&&H(e),a=(r||e).length,i=0;i=0}var Pt=i((function(e,t,n){var r,a;return v(t)?a=t:(t=ye(t),r=t.slice(0,-1),t=t[t.length-1]),kt(e,(function(e){var i=a;if(!i){if(r&&r.length&&(e=ve(e,r)),null==e)return;i=e[t]}return null==i?i:i.apply(e,n)}))}));function jt(e,t){return kt(e,Oe(t))}function Rt(e,t){return Nt(e,Te(t))}function Wt(e,t,n){var r,a,i=-1/0,o=-1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,c=(e=nt(e)?e:se(e)).length;si&&(i=r);else t=Ee(t,n),Ot(e,(function(e,n,r){((a=t(e,n,r))>o||a===-1/0&&i===-1/0)&&(i=e,o=a)}));return i}function qt(e,t,n){var r,a,i=1/0,o=1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,c=(e=nt(e)?e:se(e)).length;sr||void 0===n)return 1;if(n1&&(r=ke(r,t[1])),t=$(e)):(r=Qt,t=rt(t,!1,!1),e=Object(e));for(var a=0,i=t.length;a1&&(n=t[1])):(t=kt(rt(t,!1,!1),String),r=function(e,n){return!Yt(t,n)}),Zt(e,r,n)}));function tn(e,t,n){return a.q.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))}function nn(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[0]:tn(e,e.length-t)}function rn(e,t,n){return a.q.call(e,null==t||n?1:t)}function an(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[e.length-1]:rn(e,Math.max(0,e.length-t))}function on(e){return Nt(e,Boolean)}function sn(e,t){return rt(e,t,!1)}var cn=i((function(e,t){return t=rt(t,!0,!0),Nt(e,(function(e){return!Yt(t,e)}))})),ln=i((function(e,t){return cn(e,t)}));function un(e,t,n,r){l(t)||(r=n,n=t,t=!1),null!=n&&(n=Ee(n,r));for(var a=[],i=[],o=0,s=q(e);o1?r.rejectWith(this,[gettext("Multiple teams returned for course")]):0===e.count?r.resolveWith(this,[null]):r.resolveWith(this,[e.results[0]])})).fail((function(){r.rejectWith(this,[gettext("Could not load teams information.")])}))})).promise()}},{key:"getUsername",value:function(){var e=this.url("get_student_username");return $.Deferred((function(t){$.ajax({type:"POST",url:e,data:JSON.stringify({}),contentType:a}).done((function(e){null===e.username?t.rejectWith(this,[gettext("User lookup failed")]):t.resolveWith(this,[e.username])})).fail((function(){t.rejectWith(this,[gettext("Error when looking up username")])}))}))}},{key:"cloneRubric",value:function(e){var t=this.url("get_rubric"),n={target_rubric_block_id:String(e)};return $.Deferred((function(e){$.ajax({type:"POST",url:t,data:JSON.stringify(n),contentType:a}).done((function(t){t.success?e.resolveWith(this,[t.rubric]):e.rejectWith(this,[t.msg])})).fail((function(){e.rejectWith(this,[gettext("Failed to clone rubric")])}))}))}}])&&r(t.prototype,n),i&&r(t,i),e}();t.a=i},,,function(e,t,n){e.exports={xs:"0",sm:"576px",md:"768px",lg:"992px",xl:"1200px",xxl:"1400px"}},,function(e,t,n){var r,a,i; +/*! + * jQuery JavaScript Library v2.2.4 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-05-20T17:23Z + */a="undefined"!=typeof window?window:this,i=function(n,a){var i=[],o=n.document,s=i.slice,c=i.concat,l=i.push,u=i.indexOf,d={},f=d.toString,p=d.hasOwnProperty,m={},h=function(e,t){return new h.fn.init(e,t)},b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,M=/^-ms-/,_=/-([\da-z])/gi,g=function(e,t){return t.toUpperCase()};function y(e){var t=!!e&&"length"in e&&e.length,n=h.type(e);return"function"!==n&&!h.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}h.fn=h.prototype={jquery:"2.2.4",constructor:h,selector:"",length:0,toArray:function(){return s.call(this)},get:function(e){return null!=e?e<0?this[e+this.length]:this[e]:s.call(this)},pushStack:function(e){var t=h.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e){return h.each(this,e)},map:function(e){return this.pushStack(h.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n=0},isPlainObject:function(e){var t;if("object"!==h.type(e)||e.nodeType||h.isWindow(e))return!1;if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype||{},"isPrototypeOf"))return!1;for(t in e);return void 0===t||p.call(e,t)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?d[f.call(e)]||"object":typeof e},globalEval:function(e){var t,n=eval;(e=h.trim(e))&&(1===e.indexOf("use strict")?((t=o.createElement("script")).text=e,o.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(M,"ms-").replace(_,g)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var n,r=0;if(y(e))for(n=e.length;r+~]|"+P+")"+P+"*"),X=new RegExp("="+P+"*([^\\]'\"]*?)"+P+"*\\]","g"),F=new RegExp(W),U=new RegExp("^"+j+"$"),V={ID:new RegExp("^#("+j+")"),CLASS:new RegExp("^\\.("+j+")"),TAG:new RegExp("^("+j+"|[*])"),ATTR:new RegExp("^"+R),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:new RegExp("^(?:"+Y+")$","i"),needsContext:new RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,$=/^h\d$/i,J=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Q=/[+~]/,Z=/'|\\/g,ee=new RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),te=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},ne=function(){f()};try{x.apply(z=D.call(v.childNodes),v.childNodes),z[v.childNodes.length].nodeType}catch(e){x={apply:z.length?function(e,t){N.apply(e,D.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function re(e,t,r,a){var i,s,l,u,d,m,M,_,L=t&&t.ownerDocument,w=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==w&&9!==w&&11!==w)return r;if(!a&&((t?t.ownerDocument||t:v)!==p&&f(t),t=t||p,h)){if(11!==w&&(m=K.exec(e)))if(i=m[1]){if(9===w){if(!(l=t.getElementById(i)))return r;if(l.id===i)return r.push(l),r}else if(L&&(l=L.getElementById(i))&&g(t,l)&&l.id===i)return r.push(l),r}else{if(m[2])return x.apply(r,t.getElementsByTagName(e)),r;if((i=m[3])&&n.getElementsByClassName&&t.getElementsByClassName)return x.apply(r,t.getElementsByClassName(i)),r}if(n.qsa&&!O[e+" "]&&(!b||!b.test(e))){if(1!==w)L=t,_=e;else if("object"!==t.nodeName.toLowerCase()){for((u=t.getAttribute("id"))?u=u.replace(Z,"\\$&"):t.setAttribute("id",u=y),s=(M=o(e)).length,d=U.test(u)?"#"+u:"[id='"+u+"']";s--;)M[s]=d+" "+me(M[s]);_=M.join(","),L=Q.test(e)&&fe(t.parentNode)||t}if(_)try{return x.apply(r,L.querySelectorAll(_)),r}catch(e){}finally{u===y&&t.removeAttribute("id")}}}return c(e.replace(B,"$1"),t,r,a)}function ae(){var e=[];return function t(n,a){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=a}}function ie(e){return e[y]=!0,e}function oe(e){var t=p.createElement("div");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function se(e,t){for(var n=e.split("|"),a=n.length;a--;)r.attrHandle[n[a]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||1<<31)-(~e.sourceIndex||1<<31);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function le(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function ue(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return ie((function(t){return t=+t,ie((function(n,r){for(var a,i=e([],n.length,t),o=i.length;o--;)n[a=i[o]]&&(n[a]=!(r[a]=n[a]))}))}))}function fe(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=re.support={},i=re.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},f=re.setDocument=function(e){var t,a,o=e?e.ownerDocument||e:v;return o!==p&&9===o.nodeType&&o.documentElement?(m=(p=o).documentElement,h=!i(p),(a=p.defaultView)&&a.top!==a&&(a.addEventListener?a.addEventListener("unload",ne,!1):a.attachEvent&&a.attachEvent("onunload",ne)),n.attributes=oe((function(e){return e.className="i",!e.getAttribute("className")})),n.getElementsByTagName=oe((function(e){return e.appendChild(p.createComment("")),!e.getElementsByTagName("*").length})),n.getElementsByClassName=J.test(p.getElementsByClassName),n.getById=oe((function(e){return m.appendChild(e).id=y,!p.getElementsByName||!p.getElementsByName(y).length})),n.getById?(r.find.ID=function(e,t){if(void 0!==t.getElementById&&h){var n=t.getElementById(e);return n?[n]:[]}},r.filter.ID=function(e){var t=e.replace(ee,te);return function(e){return e.getAttribute("id")===t}}):(delete r.find.ID,r.filter.ID=function(e){var t=e.replace(ee,te);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],a=0,i=t.getElementsByTagName(e);if("*"===e){for(;n=i[a++];)1===n.nodeType&&r.push(n);return r}return i},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&h)return t.getElementsByClassName(e)},M=[],b=[],(n.qsa=J.test(p.querySelectorAll))&&(oe((function(e){m.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&b.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||b.push("\\["+P+"*(?:value|"+Y+")"),e.querySelectorAll("[id~="+y+"-]").length||b.push("~="),e.querySelectorAll(":checked").length||b.push(":checked"),e.querySelectorAll("a#"+y+"+*").length||b.push(".#.+[+~]")})),oe((function(e){var t=p.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&b.push("name"+P+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||b.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),b.push(",.*:")}))),(n.matchesSelector=J.test(_=m.matches||m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&oe((function(e){n.disconnectedMatch=_.call(e,"div"),_.call(e,"[s!='']:x"),M.push("!=",W)})),b=b.length&&new RegExp(b.join("|")),M=M.length&&new RegExp(M.join("|")),t=J.test(m.compareDocumentPosition),g=t||J.test(m.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},k=t?function(e,t){if(e===t)return d=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===p||e.ownerDocument===v&&g(v,e)?-1:t===p||t.ownerDocument===v&&g(v,t)?1:u?C(u,e)-C(u,t):0:4&r?-1:1)}:function(e,t){if(e===t)return d=!0,0;var n,r=0,a=e.parentNode,i=t.parentNode,o=[e],s=[t];if(!a||!i)return e===p?-1:t===p?1:a?-1:i?1:u?C(u,e)-C(u,t):0;if(a===i)return ce(e,t);for(n=e;n=n.parentNode;)o.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;o[r]===s[r];)r++;return r?ce(o[r],s[r]):o[r]===v?-1:s[r]===v?1:0},p):p},re.matches=function(e,t){return re(e,null,null,t)},re.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&f(e),t=t.replace(X,"='$1']"),n.matchesSelector&&h&&!O[t+" "]&&(!M||!M.test(t))&&(!b||!b.test(t)))try{var r=_.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return re(t,p,null,[e]).length>0},re.contains=function(e,t){return(e.ownerDocument||e)!==p&&f(e),g(e,t)},re.attr=function(e,t){(e.ownerDocument||e)!==p&&f(e);var a=r.attrHandle[t.toLowerCase()],i=a&&S.call(r.attrHandle,t.toLowerCase())?a(e,t,!h):void 0;return void 0!==i?i:n.attributes||!h?e.getAttribute(t):(i=e.getAttributeNode(t))&&i.specified?i.value:null},re.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},re.uniqueSort=function(e){var t,r=[],a=0,i=0;if(d=!n.detectDuplicates,u=!n.sortStable&&e.slice(0),e.sort(k),d){for(;t=e[i++];)t===e[i]&&(a=r.push(i));for(;a--;)e.splice(r[a],1)}return u=null,e},a=re.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=a(t);return n},(r=re.selectors={cacheLength:50,createPseudo:ie,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ee,te),e[3]=(e[3]||e[4]||e[5]||"").replace(ee,te),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||re.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&re.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&F.test(n)&&(t=o(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ee,te).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=A[e+" "];return t||(t=new RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&A(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(r){var a=re.attr(r,e);return null==a?"!="===t:!t||(a+="","="===t?a===n:"!="===t?a!==n:"^="===t?n&&0===a.indexOf(n):"*="===t?n&&a.indexOf(n)>-1:"$="===t?n&&a.slice(-n.length)===n:"~="===t?(" "+a.replace(q," ")+" ").indexOf(n)>-1:"|="===t&&(a===n||a.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,a){var i="nth"!==e.slice(0,3),o="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===a?function(e){return!!e.parentNode}:function(t,n,c){var l,u,d,f,p,m,h=i!==o?"nextSibling":"previousSibling",b=t.parentNode,M=s&&t.nodeName.toLowerCase(),_=!c&&!s,g=!1;if(b){if(i){for(;h;){for(f=t;f=f[h];)if(s?f.nodeName.toLowerCase()===M:1===f.nodeType)return!1;m=h="only"===e&&!m&&"nextSibling"}return!0}if(m=[o?b.firstChild:b.lastChild],o&&_){for(g=(p=(l=(u=(d=(f=b)[y]||(f[y]={}))[f.uniqueID]||(d[f.uniqueID]={}))[e]||[])[0]===L&&l[1])&&l[2],f=p&&b.childNodes[p];f=++p&&f&&f[h]||(g=p=0)||m.pop();)if(1===f.nodeType&&++g&&f===t){u[e]=[L,p,g];break}}else if(_&&(g=p=(l=(u=(d=(f=t)[y]||(f[y]={}))[f.uniqueID]||(d[f.uniqueID]={}))[e]||[])[0]===L&&l[1]),!1===g)for(;(f=++p&&f&&f[h]||(g=p=0)||m.pop())&&((s?f.nodeName.toLowerCase()!==M:1!==f.nodeType)||!++g||(_&&((u=(d=f[y]||(f[y]={}))[f.uniqueID]||(d[f.uniqueID]={}))[e]=[L,g]),f!==t)););return(g-=a)===r||g%r==0&&g/r>=0}}},PSEUDO:function(e,t){var n,a=r.pseudos[e]||r.setFilters[e.toLowerCase()]||re.error("unsupported pseudo: "+e);return a[y]?a(t):a.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?ie((function(e,n){for(var r,i=a(e,t),o=i.length;o--;)e[r=C(e,i[o])]=!(n[r]=i[o])})):function(e){return a(e,0,n)}):a}},pseudos:{not:ie((function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[y]?ie((function(e,t,n,a){for(var i,o=r(e,null,a,[]),s=e.length;s--;)(i=o[s])&&(e[s]=!(t[s]=i))})):function(e,a,i){return t[0]=e,r(t,null,i,n),t[0]=null,!n.pop()}})),has:ie((function(e){return function(t){return re(e,t).length>0}})),contains:ie((function(e){return e=e.replace(ee,te),function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}})),lang:ie((function(e){return U.test(e||"")||re.error("unsupported lang: "+e),e=e.replace(ee,te).toLowerCase(),function(t){var n;do{if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===m},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return $.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:de((function(){return[0]})),last:de((function(e,t){return[t-1]})),eq:de((function(e,t,n){return[n<0?n+t:n]})),even:de((function(e,t){for(var n=0;n=0;)e.push(r);return e})),gt:de((function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){for(var a=e.length;a--;)if(!e[a](t,n,r))return!1;return!0}:e[0]}function Me(e,t,n,r,a){for(var i,o=[],s=0,c=e.length,l=null!=t;s-1&&(i[l]=!(o[l]=d))}}else M=Me(M===o?M.splice(m,M.length):M),a?a(null,o,M,c):x.apply(o,M)}))}function ge(e){for(var t,n,a,i=e.length,o=r.relative[e[0].type],s=o||r.relative[" "],c=o?1:0,u=he((function(e){return e===t}),s,!0),d=he((function(e){return C(t,e)>-1}),s,!0),f=[function(e,n,r){var a=!o&&(r||n!==l)||((t=n).nodeType?u(e,n,r):d(e,n,r));return t=null,a}];c1&&be(f),c>1&&me(e.slice(0,c-1).concat({value:" "===e[c-2].type?"*":""})).replace(B,"$1"),n,c0,a=e.length>0,i=function(i,o,s,c,u){var d,m,b,M=0,_="0",g=i&&[],y=[],v=l,w=i||a&&r.find.TAG("*",u),A=L+=null==v?1:Math.random()||.1,T=w.length;for(u&&(l=o===p||o||u);_!==T&&null!=(d=w[_]);_++){if(a&&d){for(m=0,o||d.ownerDocument===p||(f(d),s=!h);b=e[m++];)if(b(d,o||p,s)){c.push(d);break}u&&(L=A)}n&&((d=!b&&d)&&M--,i&&g.push(d))}if(M+=_,n&&_!==M){for(m=0;b=t[m++];)b(g,y,o,s);if(i){if(M>0)for(;_--;)g[_]||y[_]||(y[_]=E.call(c));y=Me(y)}x.apply(c,y),u&&!i&&y.length>0&&M+t.length>1&&re.uniqueSort(c)}return u&&(L=A,l=v),g};return n?ie(i):i}(i,a))).selector=e}return s},c=re.select=function(e,t,a,i){var c,l,u,d,f,p="function"==typeof e&&e,m=!i&&o(e=p.selector||e);if(a=a||[],1===m.length){if((l=m[0]=m[0].slice(0)).length>2&&"ID"===(u=l[0]).type&&n.getById&&9===t.nodeType&&h&&r.relative[l[1].type]){if(!(t=(r.find.ID(u.matches[0].replace(ee,te),t)||[])[0]))return a;p&&(t=t.parentNode),e=e.slice(l.shift().value.length)}for(c=V.needsContext.test(e)?0:l.length;c--&&(u=l[c],!r.relative[d=u.type]);)if((f=r.find[d])&&(i=f(u.matches[0].replace(ee,te),Q.test(l[0].type)&&fe(t.parentNode)||t))){if(l.splice(c,1),!(e=i.length&&me(l)))return x.apply(a,i),a;break}}return(p||s(e,m))(i,t,!h,a,!t||Q.test(e)&&fe(t.parentNode)||t),a},n.sortStable=y.split("").sort(k).join("")===y,n.detectDuplicates=!!d,f(),n.sortDetached=oe((function(e){return 1&e.compareDocumentPosition(p.createElement("div"))})),oe((function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")}))||se("type|href|height|width",(function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)})),n.attributes&&oe((function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}))||se("value",(function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue})),oe((function(e){return null==e.getAttribute("disabled")}))||se(Y,(function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null})),re}(n);h.find=v,h.expr=v.selectors,h.expr[":"]=h.expr.pseudos,h.uniqueSort=h.unique=v.uniqueSort,h.text=v.getText,h.isXMLDoc=v.isXML,h.contains=v.contains;var L=function(e,t,n){for(var r=[],a=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(a&&h(e).is(n))break;r.push(e)}return r},w=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},A=h.expr.match.needsContext,T=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,O=/^.[^:#\[\.,]*$/;function k(e,t,n){if(h.isFunction(t))return h.grep(e,(function(e,r){return!!t.call(e,r,e)!==n}));if(t.nodeType)return h.grep(e,(function(e){return e===t!==n}));if("string"==typeof t){if(O.test(t))return h.filter(t,e,n);t=h.filter(t,e)}return h.grep(e,(function(e){return u.call(t,e)>-1!==n}))}h.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?h.find.matchesSelector(r,e)?[r]:[]:h.find.matches(e,h.grep(t,(function(e){return 1===e.nodeType})))},h.fn.extend({find:function(e){var t,n=this.length,r=[],a=this;if("string"!=typeof e)return this.pushStack(h(e).filter((function(){for(t=0;t1?h.unique(r):r)).selector=this.selector?this.selector+" "+e:e,r},filter:function(e){return this.pushStack(k(this,e||[],!1))},not:function(e){return this.pushStack(k(this,e||[],!0))},is:function(e){return!!k(this,"string"==typeof e&&A.test(e)?h(e):e||[],!1).length}});var S,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;(h.fn.init=function(e,t,n){var r,a;if(!e)return this;if(n=n||S,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:z.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof h?t[0]:t,h.merge(this,h.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:o,!0)),T.test(r[1])&&h.isPlainObject(t))for(r in t)h.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(a=o.getElementById(r[2]))&&a.parentNode&&(this.length=1,this[0]=a),this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):h.isFunction(e)?void 0!==n.ready?n.ready(e):e(h):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),h.makeArray(e,this))}).prototype=h.fn,S=h(o);var E=/^(?:parents|prev(?:Until|All))/,N={children:!0,contents:!0,next:!0,prev:!0};function x(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}h.fn.extend({has:function(e){var t=h(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&h.find.matchesSelector(n,e))){i.push(n);break}return this.pushStack(i.length>1?h.uniqueSort(i):i)},index:function(e){return e?"string"==typeof e?u.call(h(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(h.uniqueSort(h.merge(this.get(),h(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),h.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return L(e,"parentNode")},parentsUntil:function(e,t,n){return L(e,"parentNode",n)},next:function(e){return x(e,"nextSibling")},prev:function(e){return x(e,"previousSibling")},nextAll:function(e){return L(e,"nextSibling")},prevAll:function(e){return L(e,"previousSibling")},nextUntil:function(e,t,n){return L(e,"nextSibling",n)},prevUntil:function(e,t,n){return L(e,"previousSibling",n)},siblings:function(e){return w((e.parentNode||{}).firstChild,e)},children:function(e){return w(e.firstChild)},contents:function(e){return e.contentDocument||h.merge([],e.childNodes)}},(function(e,t){h.fn[e]=function(n,r){var a=h.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(a=h.filter(r,a)),this.length>1&&(N[e]||h.uniqueSort(a),E.test(e)&&a.reverse()),this.pushStack(a)}}));var D,C=/\S+/g;function Y(){o.removeEventListener("DOMContentLoaded",Y),n.removeEventListener("load",Y),h.ready()}h.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return h.each(e.match(C)||[],(function(e,n){t[n]=!0})),t}(e):h.extend({},e);var t,n,r,a,i=[],o=[],s=-1,c=function(){for(a=e.once,r=t=!0;o.length;s=-1)for(n=o.shift();++s-1;)i.splice(n,1),n<=s&&s--})),this},has:function(e){return e?h.inArray(e,i)>-1:i.length>0},empty:function(){return i&&(i=[]),this},disable:function(){return a=o=[],i=n="",this},disabled:function(){return!i},lock:function(){return a=o=[],n||(i=n=""),this},locked:function(){return!!a},fireWith:function(e,n){return a||(n=[e,(n=n||[]).slice?n.slice():n],o.push(n),t||c()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},h.extend({Deferred:function(e){var t=[["resolve","done",h.Callbacks("once memory"),"resolved"],["reject","fail",h.Callbacks("once memory"),"rejected"],["notify","progress",h.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return a.done(arguments).fail(arguments),this},then:function(){var e=arguments;return h.Deferred((function(n){h.each(t,(function(t,i){var o=h.isFunction(e[t])&&e[t];a[i[1]]((function(){var e=o&&o.apply(this,arguments);e&&h.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[i[0]+"With"](this===r?n.promise():this,o?[e]:arguments)}))})),e=null})).promise()},promise:function(e){return null!=e?h.extend(e,r):r}},a={};return r.pipe=r.then,h.each(t,(function(e,i){var o=i[2],s=i[3];r[i[1]]=o.add,s&&o.add((function(){n=s}),t[1^e][2].disable,t[2][2].lock),a[i[0]]=function(){return a[i[0]+"With"](this===a?r:this,arguments),this},a[i[0]+"With"]=o.fireWith})),r.promise(a),e&&e.call(a,a),a},when:function(e){var t,n,r,a=0,i=s.call(arguments),o=i.length,c=1!==o||e&&h.isFunction(e.promise)?o:0,l=1===c?e:h.Deferred(),u=function(e,n,r){return function(a){n[e]=this,r[e]=arguments.length>1?s.call(arguments):a,r===t?l.notifyWith(n,r):--c||l.resolveWith(n,r)}};if(o>1)for(t=new Array(o),n=new Array(o),r=new Array(o);a0||(D.resolveWith(o,[h]),h.fn.triggerHandler&&(h(o).triggerHandler("ready"),h(o).off("ready"))))}}),h.ready.promise=function(e){return D||(D=h.Deferred(),"complete"===o.readyState||"loading"!==o.readyState&&!o.documentElement.doScroll?n.setTimeout(h.ready):(o.addEventListener("DOMContentLoaded",Y),n.addEventListener("load",Y))),D.promise(e)},h.ready.promise();var P=function(e,t,n,r,a,i,o){var s=0,c=e.length,l=null==n;if("object"===h.type(n))for(s in a=!0,n)P(e,t,s,n[s],!0,i,o);else if(void 0!==r&&(a=!0,h.isFunction(r)||(o=!0),l&&(o?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(h(e),n)})),t))for(;s-1&&void 0!==n&&q.set(this,e,t)}))}),null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each((function(){q.remove(this,e)}))}}),h.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=W.get(e,t),n&&(!r||h.isArray(n)?r=W.access(e,t,h.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=h.queue(e,t),r=n.length,a=n.shift(),i=h._queueHooks(e,t);"inprogress"===a&&(a=n.shift(),r--),a&&("fx"===t&&n.unshift("inprogress"),delete i.stop,a.call(e,(function(){h.dequeue(e,t)}),i)),!r&&i&&i.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return W.get(e,n)||W.access(e,n,{empty:h.Callbacks("once memory").add((function(){W.remove(e,[t+"queue",n])}))})}}),h.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length",""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function Z(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&h.nodeName(e,t)?h.merge([e],n):n}function ee(e,t){for(var n=0,r=e.length;n-1)a&&a.push(i);else if(l=h.contains(i.ownerDocument,i),o=Z(d.appendChild(i),"script"),l&&ee(o),n)for(u=0;i=o[u++];)K.test(i.type||"")&&n.push(i);return d}te=o.createDocumentFragment().appendChild(o.createElement("div")),(ne=o.createElement("input")).setAttribute("type","radio"),ne.setAttribute("checked","checked"),ne.setAttribute("name","t"),te.appendChild(ne),m.checkClone=te.cloneNode(!0).cloneNode(!0).lastChild.checked,te.innerHTML="",m.noCloneChecked=!!te.cloneNode(!0).lastChild.defaultValue;var ie=/^key/,oe=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,se=/^([^.]*)(?:\.(.+)|)/;function ce(){return!0}function le(){return!1}function ue(){try{return o.activeElement}catch(e){}}function de(e,t,n,r,a,i){var o,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)de(e,s,n,r,t[s],i);return e}if(null==r&&null==a?(a=n,r=n=void 0):null==a&&("string"==typeof n?(a=r,r=void 0):(a=r,r=n,n=void 0)),!1===a)a=le;else if(!a)return e;return 1===i&&(o=a,(a=function(e){return h().off(e),o.apply(this,arguments)}).guid=o.guid||(o.guid=h.guid++)),e.each((function(){h.event.add(this,t,a,r,n)}))}h.event={global:{},add:function(e,t,n,r,a){var i,o,s,c,l,u,d,f,p,m,b,M=W.get(e);if(M)for(n.handler&&(n=(i=n).handler,a=i.selector),n.guid||(n.guid=h.guid++),(c=M.events)||(c=M.events={}),(o=M.handle)||(o=M.handle=function(t){return void 0!==h&&h.event.triggered!==t.type?h.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(C)||[""]).length;l--;)p=b=(s=se.exec(t[l])||[])[1],m=(s[2]||"").split(".").sort(),p&&(d=h.event.special[p]||{},p=(a?d.delegateType:d.bindType)||p,d=h.event.special[p]||{},u=h.extend({type:p,origType:b,data:r,handler:n,guid:n.guid,selector:a,needsContext:a&&h.expr.match.needsContext.test(a),namespace:m.join(".")},i),(f=c[p])||((f=c[p]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(e,r,m,o)||e.addEventListener&&e.addEventListener(p,o)),d.add&&(d.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),a?f.splice(f.delegateCount++,0,u):f.push(u),h.event.global[p]=!0)},remove:function(e,t,n,r,a){var i,o,s,c,l,u,d,f,p,m,b,M=W.hasData(e)&&W.get(e);if(M&&(c=M.events)){for(l=(t=(t||"").match(C)||[""]).length;l--;)if(p=b=(s=se.exec(t[l])||[])[1],m=(s[2]||"").split(".").sort(),p){for(d=h.event.special[p]||{},f=c[p=(r?d.delegateType:d.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=i=f.length;i--;)u=f[i],!a&&b!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||r&&r!==u.selector&&("**"!==r||!u.selector)||(f.splice(i,1),u.selector&&f.delegateCount--,d.remove&&d.remove.call(e,u));o&&!f.length&&(d.teardown&&!1!==d.teardown.call(e,m,M.handle)||h.removeEvent(e,p,M.handle),delete c[p])}else for(p in c)h.event.remove(e,p+t[l],n,r,!0);h.isEmptyObject(c)&&W.remove(e,"handle events")}},dispatch:function(e){e=h.event.fix(e);var t,n,r,a,i,o=[],c=s.call(arguments),l=(W.get(this,"events")||{})[e.type]||[],u=h.event.special[e.type]||{};if(c[0]=e,e.delegateTarget=this,!u.preDispatch||!1!==u.preDispatch.call(this,e)){for(o=h.event.handlers.call(this,e,l),t=0;(a=o[t++])&&!e.isPropagationStopped();)for(e.currentTarget=a.elem,n=0;(i=a.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(i.namespace)||(e.handleObj=i,e.data=i.data,void 0!==(r=((h.event.special[i.origType]||{}).handle||i.handler).apply(a.elem,c))&&!1===(e.result=r)&&(e.preventDefault(),e.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,a,i,o=[],s=t.delegateCount,c=e.target;if(s&&c.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&(!0!==c.disabled||"click"!==e.type)){for(r=[],n=0;n-1:h.find(a,this,null,[c]).length),r[a]&&r.push(i);r.length&&o.push({elem:c,handlers:r})}return s]*)\/>/gi,pe=/\s*$/g;function Me(e,t){return h.nodeName(e,"table")&&h.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function _e(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function ge(e){var t=he.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function ye(e,t){var n,r,a,i,o,s,c,l;if(1===t.nodeType){if(W.hasData(e)&&(i=W.access(e),o=W.set(t,i),l=i.events))for(a in delete o.handle,o.events={},l)for(n=0,r=l[a].length;n1&&"string"==typeof b&&!m.checkClone&&me.test(b))return e.each((function(a){var i=e.eq(a);M&&(t[0]=b.call(this,a,i.html())),ve(i,t,n,r)}));if(f&&(i=(a=ae(t,e[0].ownerDocument,!1,e,r)).firstChild,1===a.childNodes.length&&(a=i),i||r)){for(s=(o=h.map(Z(a,"script"),_e)).length;d")},clone:function(e,t,n){var r,a,i,o,s,c,l,u=e.cloneNode(!0),d=h.contains(e.ownerDocument,e);if(!(m.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||h.isXMLDoc(e)))for(o=Z(u),r=0,a=(i=Z(e)).length;r0&&ee(o,!d&&Z(e,"script")),u},cleanData:function(e){for(var t,n,r,a=h.event.special,i=0;void 0!==(n=e[i]);i++)if(j(n)){if(t=n[W.expando]){if(t.events)for(r in t.events)a[r]?h.event.remove(n,r):h.removeEvent(n,r,t.handle);n[W.expando]=void 0}n[q.expando]&&(n[q.expando]=void 0)}}}),h.fn.extend({domManip:ve,detach:function(e){return Le(this,e,!0)},remove:function(e){return Le(this,e)},text:function(e){return P(this,(function(e){return void 0===e?h.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return ve(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Me(this,e).appendChild(e)}))},prepend:function(){return ve(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Me(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return ve(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return ve(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(h.cleanData(Z(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return h.clone(this,e,t)}))},html:function(e){return P(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!pe.test(e)&&!Q[(J.exec(e)||["",""])[1].toLowerCase()]){e=h.htmlPrefilter(e);try{for(;n")).appendTo(t.documentElement))[0].contentDocument).write(),t.close(),n=Te(e,t),we.detach()),Ae[e]=n),n}var ke=/^margin/,Se=new RegExp("^("+X+")(?!px)[a-z%]+$","i"),ze=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=n),t.getComputedStyle(e)},Ee=function(e,t,n,r){var a,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in a=n.apply(e,r||[]),t)e.style[i]=o[i];return a},Ne=o.documentElement;function xe(e,t,n){var r,a,i,o,s=e.style;return""!==(o=(n=n||ze(e))?n.getPropertyValue(t)||n[t]:void 0)&&void 0!==o||h.contains(e.ownerDocument,e)||(o=h.style(e,t)),n&&!m.pixelMarginRight()&&Se.test(o)&&ke.test(t)&&(r=s.width,a=s.minWidth,i=s.maxWidth,s.minWidth=s.maxWidth=s.width=o,o=n.width,s.width=r,s.minWidth=a,s.maxWidth=i),void 0!==o?o+"":o}function De(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){var e,t,r,a,i=o.createElement("div"),s=o.createElement("div");function c(){s.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",s.innerHTML="",Ne.appendChild(i);var o=n.getComputedStyle(s);e="1%"!==o.top,a="2px"===o.marginLeft,t="4px"===o.width,s.style.marginRight="50%",r="4px"===o.marginRight,Ne.removeChild(i)}s.style&&(s.style.backgroundClip="content-box",s.cloneNode(!0).style.backgroundClip="",m.clearCloneStyle="content-box"===s.style.backgroundClip,i.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",i.appendChild(s),h.extend(m,{pixelPosition:function(){return c(),e},boxSizingReliable:function(){return null==t&&c(),t},pixelMarginRight:function(){return null==t&&c(),r},reliableMarginLeft:function(){return null==t&&c(),a},reliableMarginRight:function(){var e,t=s.appendChild(o.createElement("div"));return t.style.cssText=s.style.cssText="-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",t.style.marginRight=t.style.width="0",s.style.width="1px",Ne.appendChild(i),e=!parseFloat(n.getComputedStyle(t).marginRight),Ne.removeChild(i),s.removeChild(t),e}}))}();var Ce=/^(none|table(?!-c[ea]).+)/,Ye={position:"absolute",visibility:"hidden",display:"block"},Pe={letterSpacing:"0",fontWeight:"400"},je=["Webkit","O","Moz","ms"],Re=o.createElement("div").style;function We(e){if(e in Re)return e;for(var t=e[0].toUpperCase()+e.slice(1),n=je.length;n--;)if((e=je[n]+t)in Re)return e}function qe(e,t,n){var r=F.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Be(e,t,n,r,a){for(var i=n===(r?"border":"content")?4:"width"===t?1:0,o=0;i<4;i+=2)"margin"===n&&(o+=h.css(e,n+U[i],!0,a)),r?("content"===n&&(o-=h.css(e,"padding"+U[i],!0,a)),"margin"!==n&&(o-=h.css(e,"border"+U[i]+"Width",!0,a))):(o+=h.css(e,"padding"+U[i],!0,a),"padding"!==n&&(o+=h.css(e,"border"+U[i]+"Width",!0,a)));return o}function He(e,t,n){var r=!0,a="width"===t?e.offsetWidth:e.offsetHeight,i=ze(e),o="border-box"===h.css(e,"boxSizing",!1,i);if(a<=0||null==a){if(((a=xe(e,t,i))<0||null==a)&&(a=e.style[t]),Se.test(a))return a;r=o&&(m.boxSizingReliable()||a===e.style[t]),a=parseFloat(a)||0}return a+Be(e,t,n||(o?"border":"content"),r,i)+"px"}function Ie(e,t){for(var n,r,a,i=[],o=0,s=e.length;o1)},show:function(){return Ie(this,!0)},hide:function(){return Ie(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each((function(){V(this)?h(this).show():h(this).hide()}))}}),h.Tween=Xe,Xe.prototype={constructor:Xe,init:function(e,t,n,r,a,i){this.elem=e,this.prop=n,this.easing=a||h.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=i||(h.cssNumber[n]?"":"px")},cur:function(){var e=Xe.propHooks[this.prop];return e&&e.get?e.get(this):Xe.propHooks._default.get(this)},run:function(e){var t,n=Xe.propHooks[this.prop];return this.options.duration?this.pos=t=h.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Xe.propHooks._default.set(this),this}},Xe.prototype.init.prototype=Xe.prototype,Xe.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=h.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){h.fx.step[e.prop]?h.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[h.cssProps[e.prop]]&&!h.cssHooks[e.prop]?e.elem[e.prop]=e.now:h.style(e.elem,e.prop,e.now+e.unit)}}},Xe.propHooks.scrollTop=Xe.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},h.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},h.fx=Xe.prototype.init,h.fx.step={};var Fe,Ue,Ve=/^(?:toggle|show|hide)$/,Ge=/queueHooks$/;function $e(){return n.setTimeout((function(){Fe=void 0})),Fe=h.now()}function Je(e,t){var n,r=0,a={height:e};for(t=t?1:0;r<4;r+=2-t)a["margin"+(n=U[r])]=a["padding"+n]=e;return t&&(a.opacity=a.width=e),a}function Ke(e,t,n){for(var r,a=(Qe.tweeners[t]||[]).concat(Qe.tweeners["*"]),i=0,o=a.length;i1)},removeAttr:function(e){return this.each((function(){h.removeAttr(this,e)}))}}),h.extend({attr:function(e,t,n){var r,a,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return void 0===e.getAttribute?h.prop(e,t,n):(1===i&&h.isXMLDoc(e)||(t=t.toLowerCase(),a=h.attrHooks[t]||(h.expr.match.bool.test(t)?Ze:void 0)),void 0!==n?null===n?void h.removeAttr(e,t):a&&"set"in a&&void 0!==(r=a.set(e,n,t))?r:(e.setAttribute(t,n+""),n):a&&"get"in a&&null!==(r=a.get(e,t))?r:null==(r=h.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!m.radioValue&&"radio"===t&&h.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,a=0,i=t&&t.match(C);if(i&&1===e.nodeType)for(;n=i[a++];)r=h.propFix[n]||n,h.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)}}),Ze={set:function(e,t,n){return!1===t?h.removeAttr(e,n):e.setAttribute(n,n),n}},h.each(h.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=et[t]||h.find.attr;et[t]=function(e,t,r){var a,i;return r||(i=et[t],et[t]=a,a=null!=n(e,t,r)?t.toLowerCase():null,et[t]=i),a}}));var tt=/^(?:input|select|textarea|button)$/i,nt=/^(?:a|area)$/i;h.fn.extend({prop:function(e,t){return P(this,h.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[h.propFix[e]||e]}))}}),h.extend({prop:function(e,t,n){var r,a,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return 1===i&&h.isXMLDoc(e)||(t=h.propFix[t]||t,a=h.propHooks[t]),void 0!==n?a&&"set"in a&&void 0!==(r=a.set(e,n,t))?r:e[t]=n:a&&"get"in a&&null!==(r=a.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=h.find.attr(e,"tabindex");return t?parseInt(t,10):tt.test(e.nodeName)||nt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),m.optSelected||(h.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),h.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){h.propFix[this.toLowerCase()]=this}));var rt=/[\t\r\n\f]/g;function at(e){return e.getAttribute&&e.getAttribute("class")||""}h.fn.extend({addClass:function(e){var t,n,r,a,i,o,s,c=0;if(h.isFunction(e))return this.each((function(t){h(this).addClass(e.call(this,t,at(this)))}));if("string"==typeof e&&e)for(t=e.match(C)||[];n=this[c++];)if(a=at(n),r=1===n.nodeType&&(" "+a+" ").replace(rt," ")){for(o=0;i=t[o++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");a!==(s=h.trim(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,a,i,o,s,c=0;if(h.isFunction(e))return this.each((function(t){h(this).removeClass(e.call(this,t,at(this)))}));if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(C)||[];n=this[c++];)if(a=at(n),r=1===n.nodeType&&(" "+a+" ").replace(rt," ")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>-1;)r=r.replace(" "+i+" "," ");a!==(s=h.trim(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):h.isFunction(e)?this.each((function(n){h(this).toggleClass(e.call(this,n,at(this),t),t)})):this.each((function(){var t,r,a,i;if("string"===n)for(r=0,a=h(this),i=e.match(C)||[];t=i[r++];)a.hasClass(t)?a.removeClass(t):a.addClass(t);else void 0!==e&&"boolean"!==n||((t=at(this))&&W.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":W.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+at(n)+" ").replace(rt," ").indexOf(t)>-1)return!0;return!1}});var it=/\r/g,ot=/[\x20\t\r\n\f]+/g;h.fn.extend({val:function(e){var t,n,r,a=this[0];return arguments.length?(r=h.isFunction(e),this.each((function(n){var a;1===this.nodeType&&(null==(a=r?e.call(this,n,h(this).val()):e)?a="":"number"==typeof a?a+="":h.isArray(a)&&(a=h.map(a,(function(e){return null==e?"":e+""}))),(t=h.valHooks[this.type]||h.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,a,"value")||(this.value=a))}))):a?(t=h.valHooks[a.type]||h.valHooks[a.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(a,"value"))?n:"string"==typeof(n=a.value)?n.replace(it,""):null==n?"":n:void 0}}),h.extend({valHooks:{option:{get:function(e){var t=h.find.attr(e,"value");return null!=t?t:h.trim(h.text(e)).replace(ot," ")}},select:{get:function(e){for(var t,n,r=e.options,a=e.selectedIndex,i="select-one"===e.type||a<0,o=i?null:[],s=i?a+1:r.length,c=a<0?s:i?a:0;c-1)&&(n=!0);return n||(e.selectedIndex=-1),i}}}}),h.each(["radio","checkbox"],(function(){h.valHooks[this]={set:function(e,t){if(h.isArray(t))return e.checked=h.inArray(h(e).val(),t)>-1}},m.checkOn||(h.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}));var st=/^(?:focusinfocus|focusoutblur)$/;h.extend(h.event,{trigger:function(e,t,r,a){var i,s,c,l,u,d,f,m=[r||o],b=p.call(e,"type")?e.type:e,M=p.call(e,"namespace")?e.namespace.split("."):[];if(s=c=r=r||o,3!==r.nodeType&&8!==r.nodeType&&!st.test(b+h.event.triggered)&&(b.indexOf(".")>-1&&(M=b.split("."),b=M.shift(),M.sort()),u=b.indexOf(":")<0&&"on"+b,(e=e[h.expando]?e:new h.Event(b,"object"==typeof e&&e)).isTrigger=a?2:3,e.namespace=M.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+M.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=r),t=null==t?[e]:h.makeArray(t,[e]),f=h.event.special[b]||{},a||!f.trigger||!1!==f.trigger.apply(r,t))){if(!a&&!f.noBubble&&!h.isWindow(r)){for(l=f.delegateType||b,st.test(l+b)||(s=s.parentNode);s;s=s.parentNode)m.push(s),c=s;c===(r.ownerDocument||o)&&m.push(c.defaultView||c.parentWindow||n)}for(i=0;(s=m[i++])&&!e.isPropagationStopped();)e.type=i>1?l:f.bindType||b,(d=(W.get(s,"events")||{})[e.type]&&W.get(s,"handle"))&&d.apply(s,t),(d=u&&s[u])&&d.apply&&j(s)&&(e.result=d.apply(s,t),!1===e.result&&e.preventDefault());return e.type=b,a||e.isDefaultPrevented()||f._default&&!1!==f._default.apply(m.pop(),t)||!j(r)||u&&h.isFunction(r[b])&&!h.isWindow(r)&&((c=r[u])&&(r[u]=null),h.event.triggered=b,r[b](),h.event.triggered=void 0,c&&(r[u]=c)),e.result}},simulate:function(e,t,n){var r=h.extend(new h.Event,n,{type:e,isSimulated:!0});h.event.trigger(r,null,t)}}),h.fn.extend({trigger:function(e,t){return this.each((function(){h.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return h.event.trigger(e,t,n,!0)}}),h.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),(function(e,t){h.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}})),h.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),m.focusin="onfocusin"in n,m.focusin||h.each({focus:"focusin",blur:"focusout"},(function(e,t){var n=function(e){h.event.simulate(t,e.target,h.event.fix(e))};h.event.special[t]={setup:function(){var r=this.ownerDocument||this,a=W.access(r,t);a||r.addEventListener(e,n,!0),W.access(r,t,(a||0)+1)},teardown:function(){var r=this.ownerDocument||this,a=W.access(r,t)-1;a?W.access(r,t,a):(r.removeEventListener(e,n,!0),W.remove(r,t))}}}));var ct=n.location,lt=h.now(),ut=/\?/;h.parseJSON=function(e){return JSON.parse(e+"")},h.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new n.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||h.error("Invalid XML: "+e),t};var dt=/#.*$/,ft=/([?&])_=[^&]*/,pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,mt=/^(?:GET|HEAD)$/,ht=/^\/\//,bt={},Mt={},_t="*/".concat("*"),gt=o.createElement("a");function yt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,a=0,i=t.toLowerCase().match(C)||[];if(h.isFunction(n))for(;r=i[a++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function vt(e,t,n,r){var a={},i=e===Mt;function o(s){var c;return a[s]=!0,h.each(e[s]||[],(function(e,s){var l=s(t,n,r);return"string"!=typeof l||i||a[l]?i?!(c=l):void 0:(t.dataTypes.unshift(l),o(l),!1)})),c}return o(t.dataTypes[0])||!a["*"]&&o("*")}function Lt(e,t){var n,r,a=h.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((a[n]?e:r||(r={}))[n]=t[n]);return r&&h.extend(!0,e,r),e}gt.href=ct.href,h.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ct.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":_t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":h.parseJSON,"text xml":h.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Lt(Lt(e,h.ajaxSettings),t):Lt(h.ajaxSettings,e)},ajaxPrefilter:yt(bt),ajaxTransport:yt(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var r,a,i,s,c,l,u,d,f=h.ajaxSetup({},t),p=f.context||f,m=f.context&&(p.nodeType||p.jquery)?h(p):h.event,b=h.Deferred(),M=h.Callbacks("once memory"),_=f.statusCode||{},g={},y={},v=0,L="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===v){if(!s)for(s={};t=pt.exec(i);)s[t[1].toLowerCase()]=t[2];t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===v?i:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return v||(e=y[n]=y[n]||e,g[e]=t),this},overrideMimeType:function(e){return v||(f.mimeType=e),this},statusCode:function(e){var t;if(e)if(v<2)for(t in e)_[t]=[_[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||L;return r&&r.abort(t),A(0,t),this}};if(b.promise(w).complete=M.add,w.success=w.done,w.error=w.fail,f.url=((e||f.url||ct.href)+"").replace(dt,"").replace(ht,ct.protocol+"//"),f.type=t.method||t.type||f.method||f.type,f.dataTypes=h.trim(f.dataType||"*").toLowerCase().match(C)||[""],null==f.crossDomain){l=o.createElement("a");try{l.href=f.url,l.href=l.href,f.crossDomain=gt.protocol+"//"+gt.host!=l.protocol+"//"+l.host}catch(e){f.crossDomain=!0}}if(f.data&&f.processData&&"string"!=typeof f.data&&(f.data=h.param(f.data,f.traditional)),vt(bt,f,t,w),2===v)return w;for(d in(u=h.event&&f.global)&&0==h.active++&&h.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!mt.test(f.type),a=f.url,f.hasContent||(f.data&&(a=f.url+=(ut.test(a)?"&":"?")+f.data,delete f.data),!1===f.cache&&(f.url=ft.test(a)?a.replace(ft,"$1_="+lt++):a+(ut.test(a)?"&":"?")+"_="+lt++)),f.ifModified&&(h.lastModified[a]&&w.setRequestHeader("If-Modified-Since",h.lastModified[a]),h.etag[a]&&w.setRequestHeader("If-None-Match",h.etag[a])),(f.data&&f.hasContent&&!1!==f.contentType||t.contentType)&&w.setRequestHeader("Content-Type",f.contentType),w.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+_t+"; q=0.01":""):f.accepts["*"]),f.headers)w.setRequestHeader(d,f.headers[d]);if(f.beforeSend&&(!1===f.beforeSend.call(p,w,f)||2===v))return w.abort();for(d in L="abort",{success:1,error:1,complete:1})w[d](f[d]);if(r=vt(Mt,f,t,w)){if(w.readyState=1,u&&m.trigger("ajaxSend",[w,f]),2===v)return w;f.async&&f.timeout>0&&(c=n.setTimeout((function(){w.abort("timeout")}),f.timeout));try{v=1,r.send(g,A)}catch(e){if(!(v<2))throw e;A(-1,e)}}else A(-1,"No Transport");function A(e,t,o,s){var l,d,g,y,L,A=t;2!==v&&(v=2,c&&n.clearTimeout(c),r=void 0,i=s||"",w.readyState=e>0?4:0,l=e>=200&&e<300||304===e,o&&(y=function(e,t,n){for(var r,a,i,o,s=e.contents,c=e.dataTypes;"*"===c[0];)c.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(a in s)if(s[a]&&s[a].test(r)){c.unshift(a);break}if(c[0]in n)i=c[0];else{for(a in n){if(!c[0]||e.converters[a+" "+c[0]]){i=a;break}o||(o=a)}i=i||o}if(i)return i!==c[0]&&c.unshift(i),n[i]}(f,w,o)),y=function(e,t,n,r){var a,i,o,s,c,l={},u=e.dataTypes.slice();if(u[1])for(o in e.converters)l[o.toLowerCase()]=e.converters[o];for(i=u.shift();i;)if(e.responseFields[i]&&(n[e.responseFields[i]]=t),!c&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),c=i,i=u.shift())if("*"===i)i=c;else if("*"!==c&&c!==i){if(!(o=l[c+" "+i]||l["* "+i]))for(a in l)if((s=a.split(" "))[1]===i&&(o=l[c+" "+s[0]]||l["* "+s[0]])){!0===o?o=l[a]:!0!==l[a]&&(i=s[0],u.unshift(s[1]));break}if(!0!==o)if(o&&e.throws)t=o(t);else try{t=o(t)}catch(e){return{state:"parsererror",error:o?e:"No conversion from "+c+" to "+i}}}return{state:"success",data:t}}(f,y,w,l),l?(f.ifModified&&((L=w.getResponseHeader("Last-Modified"))&&(h.lastModified[a]=L),(L=w.getResponseHeader("etag"))&&(h.etag[a]=L)),204===e||"HEAD"===f.type?A="nocontent":304===e?A="notmodified":(A=y.state,d=y.data,l=!(g=y.error))):(g=A,!e&&A||(A="error",e<0&&(e=0))),w.status=e,w.statusText=(t||A)+"",l?b.resolveWith(p,[d,A,w]):b.rejectWith(p,[w,A,g]),w.statusCode(_),_=void 0,u&&m.trigger(l?"ajaxSuccess":"ajaxError",[w,f,l?d:g]),M.fireWith(p,[w,A]),u&&(m.trigger("ajaxComplete",[w,f]),--h.active||h.event.trigger("ajaxStop")))}return w},getJSON:function(e,t,n){return h.get(e,t,n,"json")},getScript:function(e,t){return h.get(e,void 0,t,"script")}}),h.each(["get","post"],(function(e,t){h[t]=function(e,n,r,a){return h.isFunction(n)&&(a=a||r,r=n,n=void 0),h.ajax(h.extend({url:e,type:t,dataType:a,data:n,success:r},h.isPlainObject(e)&&e))}})),h._evalUrl=function(e){return h.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,throws:!0})},h.fn.extend({wrapAll:function(e){var t;return h.isFunction(e)?this.each((function(t){h(this).wrapAll(e.call(this,t))})):(this[0]&&(t=h(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this)},wrapInner:function(e){return h.isFunction(e)?this.each((function(t){h(this).wrapInner(e.call(this,t))})):this.each((function(){var t=h(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=h.isFunction(e);return this.each((function(n){h(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(){return this.parent().each((function(){h.nodeName(this,"body")||h(this).replaceWith(this.childNodes)})).end()}}),h.expr.filters.hidden=function(e){return!h.expr.filters.visible(e)},h.expr.filters.visible=function(e){return e.offsetWidth>0||e.offsetHeight>0||e.getClientRects().length>0};var wt=/%20/g,At=/\[\]$/,Tt=/\r?\n/g,Ot=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function St(e,t,n,r){var a;if(h.isArray(t))h.each(t,(function(t,a){n||At.test(e)?r(e,a):St(e+"["+("object"==typeof a&&null!=a?t:"")+"]",a,n,r)}));else if(n||"object"!==h.type(t))r(e,t);else for(a in t)St(e+"["+a+"]",t[a],n,r)}h.param=function(e,t){var n,r=[],a=function(e,t){t=h.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=h.ajaxSettings&&h.ajaxSettings.traditional),h.isArray(e)||e.jquery&&!h.isPlainObject(e))h.each(e,(function(){a(this.name,this.value)}));else for(n in e)St(n,e[n],t,a);return r.join("&").replace(wt,"+")},h.fn.extend({serialize:function(){return h.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=h.prop(this,"elements");return e?h.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!h(this).is(":disabled")&&kt.test(this.nodeName)&&!Ot.test(e)&&(this.checked||!$.test(e))})).map((function(e,t){var n=h(this).val();return null==n?null:h.isArray(n)?h.map(n,(function(e){return{name:t.name,value:e.replace(Tt,"\r\n")}})):{name:t.name,value:n.replace(Tt,"\r\n")}})).get()}}),h.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(e){}};var zt={0:200,1223:204},Et=h.ajaxSettings.xhr();m.cors=!!Et&&"withCredentials"in Et,m.ajax=Et=!!Et,h.ajaxTransport((function(e){var t,r;if(m.cors||Et&&!e.crossDomain)return{send:function(a,i){var o,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(o in e.xhrFields)s[o]=e.xhrFields[o];for(o in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||a["X-Requested-With"]||(a["X-Requested-With"]="XMLHttpRequest"),a)s.setRequestHeader(o,a[o]);t=function(e){return function(){t&&(t=r=s.onload=s.onerror=s.onabort=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?i(0,"error"):i(s.status,s.statusText):i(zt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),r=s.onerror=t("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&n.setTimeout((function(){t&&r()}))},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),h.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return h.globalEval(e),e}}}),h.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),h.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain)return{send:function(r,a){t=h("