Compare commits
23 Commits
open-relea
...
mashal-m/p
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
24cc41d8e5 | ||
|
|
135e90c40c | ||
|
|
d9b88b4ca9 | ||
|
|
e3d9b4fc79 | ||
|
|
054304902f | ||
|
|
ba9bddbda1 | ||
|
|
cd11c08818 | ||
|
|
a4dc746fcb | ||
|
|
88b0e9a820 | ||
|
|
ddb2f47471 | ||
|
|
3f967ad468 | ||
|
|
3d102bd323 | ||
|
|
706d69aeca | ||
|
|
6d3ed03cac | ||
|
|
21a35cde82 | ||
|
|
66f85ee17e | ||
|
|
140cfc1639 | ||
|
|
26906d45f7 | ||
|
|
a753170cb7 | ||
|
|
690140ce46 | ||
|
|
6764a9766c | ||
|
|
c646b88543 | ||
|
|
b1d11119db |
2
.env
2
.env
@@ -30,3 +30,5 @@ ENTERPRISE_MARKETING_URL=''
|
||||
ENTERPRISE_MARKETING_UTM_SOURCE=''
|
||||
ENTERPRISE_MARKETING_UTM_CAMPAIGN=''
|
||||
ENTERPRISE_MARKETING_FOOTER_UTM_MEDIUM=''
|
||||
APP_ID=''
|
||||
MFE_CONFIG_API_URL=''
|
||||
|
||||
@@ -36,3 +36,5 @@ ENTERPRISE_MARKETING_URL='http://example.com'
|
||||
ENTERPRISE_MARKETING_UTM_SOURCE='example.com'
|
||||
ENTERPRISE_MARKETING_UTM_CAMPAIGN='example.com Referral'
|
||||
ENTERPRISE_MARKETING_FOOTER_UTM_MEDIUM='Footer'
|
||||
APP_ID=''
|
||||
MFE_CONFIG_API_URL=''
|
||||
|
||||
@@ -4,9 +4,13 @@ const config = createConfig('eslint', {
|
||||
rules: {
|
||||
'import/no-named-as-default': 'off',
|
||||
'import/no-named-as-default-member': 'off',
|
||||
'import/no-import-module-exports': 'off',
|
||||
'import/no-self-import': 'off',
|
||||
'spaced-comment': ['error', 'always', { 'block': { 'exceptions': ['*'] } }],
|
||||
'react-hooks/rules-of-hooks': 'off',
|
||||
"react/forbid-prop-types": ["error", { "forbid": ["any", "array"] }], // arguable object proptype is use when I do not care about the shape of the object
|
||||
'no-import-assign': 'off',
|
||||
'no-promise-executor-return': 'off',
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
6
.github/CODEOWNERS
vendored
Normal file
6
.github/CODEOWNERS
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
# Code owners for frontend-app-ora-grading
|
||||
|
||||
# These owners will be the default owners for everything in
|
||||
# the repo. Unless a later match takes precedence, they will
|
||||
# be requested for review when someone opens a pull request.
|
||||
* @edx/content-aurora
|
||||
19
.github/workflows/add-depr-ticket-to-depr-board.yml
vendored
Normal file
19
.github/workflows/add-depr-ticket-to-depr-board.yml
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
# Run the workflow that adds new tickets that are either:
|
||||
# - labelled "DEPR"
|
||||
# - title starts with "[DEPR]"
|
||||
# - body starts with "Proposal Date" (this is the first template field)
|
||||
# to the org-wide DEPR project board
|
||||
|
||||
name: Add newly created DEPR issues to the DEPR project board
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
|
||||
jobs:
|
||||
routeissue:
|
||||
uses: openedx/.github/.github/workflows/add-depr-ticket-to-depr-board.yml@master
|
||||
secrets:
|
||||
GITHUB_APP_ID: ${{ secrets.GRAPHQL_AUTH_APP_ID }}
|
||||
GITHUB_APP_PRIVATE_KEY: ${{ secrets.GRAPHQL_AUTH_APP_PEM }}
|
||||
SLACK_BOT_TOKEN: ${{ secrets.SLACK_ISSUE_BOT_TOKEN }}
|
||||
20
.github/workflows/add-remove-label-on-comment.yml
vendored
Normal file
20
.github/workflows/add-remove-label-on-comment.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
# This workflow runs when a comment is made on the ticket
|
||||
# If the comment starts with "label: " it tries to apply
|
||||
# the label indicated in rest of comment.
|
||||
# If the comment starts with "remove label: ", it tries
|
||||
# to remove the indicated label.
|
||||
# Note: Labels are allowed to have spaces and this script does
|
||||
# not parse spaces (as often a space is legitimate), so the command
|
||||
# "label: really long lots of words label" will apply the
|
||||
# label "really long lots of words label"
|
||||
|
||||
name: Allows for the adding and removing of labels via comment
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
add_remove_labels:
|
||||
uses: openedx/.github/.github/workflows/add-remove-label-on-comment.yml@master
|
||||
|
||||
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
node: [12, 14, 16]
|
||||
node: [16]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
run: npm run build
|
||||
|
||||
- name: Run Coverage
|
||||
uses: codecov/codecov-action@v2
|
||||
uses: codecov/codecov-action@v3
|
||||
|
||||
- name: Send failure notification
|
||||
if: ${{ failure() }}
|
||||
|
||||
12
.github/workflows/self-assign-issue.yml
vendored
Normal file
12
.github/workflows/self-assign-issue.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# This workflow runs when a comment is made on the ticket
|
||||
# If the comment starts with "assign me" it assigns the author to the
|
||||
# ticket (case insensitive)
|
||||
|
||||
name: Assign comment author to ticket if they say "assign me"
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
self_assign_by_comment:
|
||||
uses: openedx/.github/.github/workflows/self-assign-issue.yml@master
|
||||
12
Makefile
12
Makefile
@@ -8,13 +8,11 @@ transifex_langs = "ar,fr,es_419,zh_CN"
|
||||
transifex_utils = ./node_modules/.bin/transifex-utils.js
|
||||
i18n = ./src/i18n
|
||||
transifex_input = $(i18n)/transifex_input.json
|
||||
tx_url1 = https://www.transifex.com/api/2/project/edx-platform/resource/$(transifex_resource)/translation/en/strings/
|
||||
tx_url2 = https://www.transifex.com/api/2/project/edx-platform/resource/$(transifex_resource)/source/
|
||||
|
||||
# This directory must match .babelrc .
|
||||
transifex_temp = ./temp/babel-plugin-react-intl
|
||||
|
||||
NPM_TESTS=build i18n_extract lint test is-es5
|
||||
NPM_TESTS=build i18n_extract lint test
|
||||
|
||||
.PHONY: test
|
||||
test: $(addprefix test.npm.,$(NPM_TESTS)) ## validate ci suite
|
||||
@@ -49,15 +47,15 @@ push_translations:
|
||||
# Pushing strings to Transifex...
|
||||
tx push -s
|
||||
# Fetching hashes from Transifex...
|
||||
./node_modules/reactifex/bash_scripts/get_hashed_strings.sh $(tx_url1)
|
||||
./node_modules/@edx/reactifex/bash_scripts/get_hashed_strings_v3.sh
|
||||
# Writing out comments to file...
|
||||
$(transifex_utils) $(transifex_temp) --comments
|
||||
$(transifex_utils) $(transifex_temp) --comments --v3-scripts-path
|
||||
# Pushing comments to Transifex...
|
||||
./node_modules/reactifex/bash_scripts/put_comments.sh $(tx_url2)
|
||||
./node_modules/@edx/reactifex/bash_scripts/put_comments_v3.sh
|
||||
|
||||
# Pulls translations from Transifex.
|
||||
pull_translations:
|
||||
tx pull -f --mode reviewed --languages=$(transifex_langs)
|
||||
tx pull -t -f --mode reviewed --languages=$(transifex_langs)
|
||||
|
||||
# This target is used by CI.
|
||||
validate-no-uncommitted-package-lock-changes:
|
||||
|
||||
13538
package-lock.json
generated
13538
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
13
package.json
13
package.json
@@ -8,8 +8,6 @@
|
||||
},
|
||||
"scripts": {
|
||||
"build": "fedx-scripts webpack",
|
||||
"coveralls": "cat ./coverage/lcov.info | coveralls",
|
||||
"is-es5": "es-check es5 ./dist/*.js",
|
||||
"i18n_extract": "BABEL_ENV=i18n fedx-scripts babel src --quiet > /dev/null",
|
||||
"lint": "fedx-scripts eslint --ext .jsx,.js src/",
|
||||
"lint-fix": "fedx-scripts eslint --fix --ext .jsx,.js src/",
|
||||
@@ -29,8 +27,8 @@
|
||||
"@edx/brand": "npm:@edx/brand-edx.org@^2.0.3",
|
||||
"@edx/frontend-component-footer": "^11.1.1",
|
||||
"@edx/frontend-component-header": "^3.1.1",
|
||||
"@edx/frontend-platform": "^2.4.0",
|
||||
"@edx/paragon": "^19.9.0",
|
||||
"@edx/frontend-platform": "^2.5.1",
|
||||
"@edx/paragon": "^20.28.4",
|
||||
"@fortawesome/fontawesome-svg-core": "^1.2.36",
|
||||
"@fortawesome/free-brands-svg-icons": "^5.15.4",
|
||||
"@fortawesome/free-solid-svg-icons": "^5.15.4",
|
||||
@@ -57,6 +55,7 @@
|
||||
"query-string": "7.0.1",
|
||||
"react": "^16.14.0",
|
||||
"react-dom": "^16.14.0",
|
||||
"react-helmet": "^6.1.0",
|
||||
"react-intl": "^5.20.9",
|
||||
"react-pdf": "^5.5.0",
|
||||
"react-redux": "^7.2.4",
|
||||
@@ -74,13 +73,13 @@
|
||||
"whatwg-fetch": "^3.6.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@edx/frontend-build": "^11.0.2",
|
||||
"@edx/browserslist-config": "^1.1.1",
|
||||
"@edx/frontend-build": "12.4",
|
||||
"@edx/reactifex": "^2.1.1",
|
||||
"@testing-library/jest-dom": "^5.14.1",
|
||||
"@testing-library/react": "^12.1.0",
|
||||
"axios-mock-adapter": "^1.20.0",
|
||||
"codecov": "^3.8.3",
|
||||
"enzyme-adapter-react-16": "^1.15.6",
|
||||
"es-check": "^6.0.0",
|
||||
"fetch-mock": "^9.11.0",
|
||||
"husky": "^7.0.0",
|
||||
"identity-obj-proxy": "^3.0.0",
|
||||
|
||||
@@ -13,10 +13,12 @@ import CTA from 'containers/CTA';
|
||||
import ListView from 'containers/ListView';
|
||||
|
||||
import './App.scss';
|
||||
import Head from './components/Head';
|
||||
|
||||
export const App = ({ courseMetadata, isEnabled }) => (
|
||||
<Router>
|
||||
<div>
|
||||
<Head />
|
||||
<Header
|
||||
courseTitle={courseMetadata.title}
|
||||
courseNumber={courseMetadata.number}
|
||||
|
||||
@@ -25,6 +25,7 @@ jest.mock('@edx/frontend-component-footer', () => 'Footer');
|
||||
jest.mock('containers/DemoWarning', () => 'DemoWarning');
|
||||
jest.mock('containers/CTA', () => 'CTA');
|
||||
jest.mock('containers/ListView', () => 'ListView');
|
||||
jest.mock('components/Head', () => 'Head');
|
||||
|
||||
const logo = 'fakeLogo.png';
|
||||
let el;
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
exports[`App router component snapshot: disabled (show demo warning) 1`] = `
|
||||
<BrowserRouter>
|
||||
<div>
|
||||
<Head />
|
||||
<Header
|
||||
courseNumber="course-number"
|
||||
courseOrg="course-org"
|
||||
@@ -23,6 +24,7 @@ exports[`App router component snapshot: disabled (show demo warning) 1`] = `
|
||||
exports[`App router component snapshot: enabled 1`] = `
|
||||
<BrowserRouter>
|
||||
<div>
|
||||
<Head />
|
||||
<Header
|
||||
courseNumber="course-number"
|
||||
courseOrg="course-org"
|
||||
|
||||
14
src/components/Head/__snapshots__/index.test.jsx.snap
Normal file
14
src/components/Head/__snapshots__/index.test.jsx.snap
Normal file
@@ -0,0 +1,14 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`Head snapshot 1`] = `
|
||||
<Helmet>
|
||||
<title>
|
||||
ORA staff grading | site-name
|
||||
</title>
|
||||
<link
|
||||
href="favicon-url"
|
||||
rel="shortcut icon"
|
||||
type="image/x-icon"
|
||||
/>
|
||||
</Helmet>
|
||||
`;
|
||||
20
src/components/Head/index.jsx
Normal file
20
src/components/Head/index.jsx
Normal file
@@ -0,0 +1,20 @@
|
||||
import React from 'react';
|
||||
import { Helmet } from 'react-helmet';
|
||||
import { useIntl } from '@edx/frontend-platform/i18n';
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
|
||||
import messages from './messages';
|
||||
|
||||
const Head = () => {
|
||||
const { formatMessage } = useIntl();
|
||||
return (
|
||||
<Helmet>
|
||||
<title>
|
||||
{formatMessage(messages.PageTitle, { siteName: getConfig().SITE_NAME })}
|
||||
</title>
|
||||
<link rel="shortcut icon" href={getConfig().FAVICON_URL} type="image/x-icon" />
|
||||
</Helmet>
|
||||
);
|
||||
};
|
||||
|
||||
export default Head;
|
||||
25
src/components/Head/index.test.jsx
Normal file
25
src/components/Head/index.test.jsx
Normal file
@@ -0,0 +1,25 @@
|
||||
import React from 'react';
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
import { shallow } from 'enzyme';
|
||||
import Head from '.';
|
||||
|
||||
jest.mock('react-helmet', () => ({
|
||||
Helmet: 'Helmet',
|
||||
}));
|
||||
|
||||
jest.mock('@edx/frontend-platform', () => ({
|
||||
getConfig: () => ({
|
||||
SITE_NAME: 'site-name',
|
||||
FAVICON_URL: 'favicon-url',
|
||||
}),
|
||||
}));
|
||||
|
||||
describe('Head', () => {
|
||||
it('snapshot', () => {
|
||||
const el = shallow(<Head />);
|
||||
expect(el).toMatchSnapshot();
|
||||
|
||||
expect(el.find('title').text()).toContain(getConfig().SITE_NAME);
|
||||
expect(el.find('link').prop('href')).toEqual(getConfig().FAVICON_URL);
|
||||
});
|
||||
});
|
||||
11
src/components/Head/messages.js
Normal file
11
src/components/Head/messages.js
Normal file
@@ -0,0 +1,11 @@
|
||||
import { defineMessages } from '@edx/frontend-platform/i18n';
|
||||
|
||||
const messages = defineMessages({
|
||||
PageTitle: {
|
||||
id: 'PageTitle',
|
||||
defaultMessage: 'ORA staff grading | {siteName}',
|
||||
description: 'Title tag',
|
||||
},
|
||||
});
|
||||
|
||||
export default messages;
|
||||
@@ -33,27 +33,25 @@ export class RadioCriterion extends React.Component {
|
||||
isInvalid,
|
||||
} = this.props;
|
||||
return (
|
||||
<>
|
||||
<Form.RadioSet name={config.name} value={data}>
|
||||
{config.options.map((option) => (
|
||||
<Form.Radio
|
||||
className="criteria-option"
|
||||
key={option.name}
|
||||
value={option.name}
|
||||
description={intl.formatMessage(messages.optionPoints, { points: option.points })}
|
||||
onChange={this.onChange}
|
||||
disabled={!isGrading}
|
||||
>
|
||||
{option.label}
|
||||
</Form.Radio>
|
||||
))}
|
||||
{isInvalid && (
|
||||
<Form.Control.Feedback type="invalid" className="feedback-error-msg">
|
||||
{intl.formatMessage(messages.rubricSelectedError)}
|
||||
</Form.Control.Feedback>
|
||||
)}
|
||||
</Form.RadioSet>
|
||||
</>
|
||||
<Form.RadioSet name={config.name} value={data}>
|
||||
{config.options.map((option) => (
|
||||
<Form.Radio
|
||||
className="criteria-option"
|
||||
key={option.name}
|
||||
value={option.name}
|
||||
description={intl.formatMessage(messages.optionPoints, { points: option.points })}
|
||||
onChange={this.onChange}
|
||||
disabled={!isGrading}
|
||||
>
|
||||
{option.label}
|
||||
</Form.Radio>
|
||||
))}
|
||||
{isInvalid && (
|
||||
<Form.Control.Feedback type="invalid" className="feedback-error-msg">
|
||||
{intl.formatMessage(messages.rubricSelectedError)}
|
||||
</Form.Control.Feedback>
|
||||
)}
|
||||
</Form.RadioSet>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,91 +1,85 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`Radio Criterion Container snapshot is grading 1`] = `
|
||||
<React.Fragment>
|
||||
<Form.RadioSet
|
||||
name="random name"
|
||||
value="selected radio option"
|
||||
<Form.RadioSet
|
||||
name="random name"
|
||||
value="selected radio option"
|
||||
>
|
||||
<Form.Radio
|
||||
className="criteria-option"
|
||||
description="1 points"
|
||||
disabled={false}
|
||||
onChange={[MockFunction this.onChange]}
|
||||
value="option name"
|
||||
>
|
||||
<Form.Radio
|
||||
className="criteria-option"
|
||||
description="1 points"
|
||||
disabled={false}
|
||||
onChange={[MockFunction this.onChange]}
|
||||
value="option name"
|
||||
>
|
||||
this label
|
||||
</Form.Radio>
|
||||
<Form.Radio
|
||||
className="criteria-option"
|
||||
description="2 points"
|
||||
disabled={false}
|
||||
onChange={[MockFunction this.onChange]}
|
||||
value="option name 2"
|
||||
>
|
||||
this label 2
|
||||
</Form.Radio>
|
||||
</Form.RadioSet>
|
||||
</React.Fragment>
|
||||
this label
|
||||
</Form.Radio>
|
||||
<Form.Radio
|
||||
className="criteria-option"
|
||||
description="2 points"
|
||||
disabled={false}
|
||||
onChange={[MockFunction this.onChange]}
|
||||
value="option name 2"
|
||||
>
|
||||
this label 2
|
||||
</Form.Radio>
|
||||
</Form.RadioSet>
|
||||
`;
|
||||
|
||||
exports[`Radio Criterion Container snapshot is not grading 1`] = `
|
||||
<React.Fragment>
|
||||
<Form.RadioSet
|
||||
name="random name"
|
||||
value="selected radio option"
|
||||
<Form.RadioSet
|
||||
name="random name"
|
||||
value="selected radio option"
|
||||
>
|
||||
<Form.Radio
|
||||
className="criteria-option"
|
||||
description="1 points"
|
||||
disabled={true}
|
||||
onChange={[MockFunction this.onChange]}
|
||||
value="option name"
|
||||
>
|
||||
<Form.Radio
|
||||
className="criteria-option"
|
||||
description="1 points"
|
||||
disabled={true}
|
||||
onChange={[MockFunction this.onChange]}
|
||||
value="option name"
|
||||
>
|
||||
this label
|
||||
</Form.Radio>
|
||||
<Form.Radio
|
||||
className="criteria-option"
|
||||
description="2 points"
|
||||
disabled={true}
|
||||
onChange={[MockFunction this.onChange]}
|
||||
value="option name 2"
|
||||
>
|
||||
this label 2
|
||||
</Form.Radio>
|
||||
</Form.RadioSet>
|
||||
</React.Fragment>
|
||||
this label
|
||||
</Form.Radio>
|
||||
<Form.Radio
|
||||
className="criteria-option"
|
||||
description="2 points"
|
||||
disabled={true}
|
||||
onChange={[MockFunction this.onChange]}
|
||||
value="option name 2"
|
||||
>
|
||||
this label 2
|
||||
</Form.Radio>
|
||||
</Form.RadioSet>
|
||||
`;
|
||||
|
||||
exports[`Radio Criterion Container snapshot radio contain invalid response 1`] = `
|
||||
<React.Fragment>
|
||||
<Form.RadioSet
|
||||
name="random name"
|
||||
value="selected radio option"
|
||||
<Form.RadioSet
|
||||
name="random name"
|
||||
value="selected radio option"
|
||||
>
|
||||
<Form.Radio
|
||||
className="criteria-option"
|
||||
description="1 points"
|
||||
disabled={false}
|
||||
onChange={[MockFunction this.onChange]}
|
||||
value="option name"
|
||||
>
|
||||
<Form.Radio
|
||||
className="criteria-option"
|
||||
description="1 points"
|
||||
disabled={false}
|
||||
onChange={[MockFunction this.onChange]}
|
||||
value="option name"
|
||||
>
|
||||
this label
|
||||
</Form.Radio>
|
||||
<Form.Radio
|
||||
className="criteria-option"
|
||||
description="2 points"
|
||||
disabled={false}
|
||||
onChange={[MockFunction this.onChange]}
|
||||
value="option name 2"
|
||||
>
|
||||
this label 2
|
||||
</Form.Radio>
|
||||
<Form.Control.Feedback
|
||||
className="feedback-error-msg"
|
||||
type="invalid"
|
||||
>
|
||||
Rubric selection is required
|
||||
</Form.Control.Feedback>
|
||||
</Form.RadioSet>
|
||||
</React.Fragment>
|
||||
this label
|
||||
</Form.Radio>
|
||||
<Form.Radio
|
||||
className="criteria-option"
|
||||
description="2 points"
|
||||
disabled={false}
|
||||
onChange={[MockFunction this.onChange]}
|
||||
value="option name 2"
|
||||
>
|
||||
this label 2
|
||||
</Form.Radio>
|
||||
<Form.Control.Feedback
|
||||
className="feedback-error-msg"
|
||||
type="invalid"
|
||||
>
|
||||
Rubric selection is required
|
||||
</Form.Control.Feedback>
|
||||
</Form.RadioSet>
|
||||
`;
|
||||
|
||||
@@ -52,7 +52,7 @@ export class SubmissionsTable extends React.Component {
|
||||
formatDate = ({ value }) => {
|
||||
const date = new Date(moment(value));
|
||||
return date.toLocaleString();
|
||||
}
|
||||
};
|
||||
|
||||
formatGrade = ({ value: score }) => (
|
||||
score === null ? '-' : `${score.pointsEarned}/${score.pointsPossible}`
|
||||
@@ -65,7 +65,7 @@ export class SubmissionsTable extends React.Component {
|
||||
handleViewAllResponsesClick = (data) => () => {
|
||||
const getsubmissionUUID = (row) => row.original.submissionUUID;
|
||||
this.props.loadSelectionForReview(data.map(getsubmissionUUID));
|
||||
}
|
||||
};
|
||||
|
||||
render() {
|
||||
if (!this.props.listData.length) {
|
||||
|
||||
@@ -29,9 +29,7 @@ export const listData = createSelector(
|
||||
},
|
||||
);
|
||||
|
||||
export const isEmptySubmissionData = createSelector(
|
||||
[module.listData], (data) => data.length === 0,
|
||||
);
|
||||
export const isEmptySubmissionData = createSelector([module.listData], (data) => data.length === 0);
|
||||
|
||||
export default StrictDict({
|
||||
...simpleSelectors,
|
||||
|
||||
@@ -1,104 +1,105 @@
|
||||
{
|
||||
"ora-grading.demoAlert.warningMessage": "Grade submission is disabled in the Demo mode of the new ORA Staff Grader.",
|
||||
"ora-grading.demoAlert.confirm": "Confirm",
|
||||
"ora-grading.demoAlert.title": "Demo submit prevented",
|
||||
"ora-grading.FilePopoverContent.filePopoverNameTitle": "File Name",
|
||||
"ora-grading.FilePopoverCellContent.filePopoverDescriptionTitle": "File Description",
|
||||
"ora-grading.FilePopoverCellContent.fileSizeTitle": "File Size",
|
||||
"ora-grading.InfoPopover.fileInfo": "File info",
|
||||
"ora-grading.ResponseDisplay.FileRenderer.retryButton": "Retry",
|
||||
"ora-grading.ResponseDisplay.FileRenderer.fileNotFound": "File not found",
|
||||
"ora-grading.ResponseDisplay.FileRenderer.unknownError": "Unknown errors",
|
||||
"ora-grading.InfoPopover.alt-text": "Display more info",
|
||||
"ora-grading.CriterionFeedback.addCommentsLabel": "Add comments",
|
||||
"ora-grading.CriterionFeedback.commentsLabel": "Comments",
|
||||
"ora-grading.CriterionFeedback.optional": "(Optional)",
|
||||
"ora-grading.RadioCriterion.optionPoints": "{points} points",
|
||||
"ora-grading.RadioCriterion.rubricSelectedError": "Rubric selection is required",
|
||||
"ora-grading.CriterionFeedback.criterionFeedbackError": "The feedback is required",
|
||||
"ora-grading.CTA.feedbackMessage": "Thanks for using the new ORA staff grading experience. ",
|
||||
"ora-grading.CTA.linkMessage": "Provide some feedback",
|
||||
"ora-grading.CTA.letUsKnowMessage": " and let us know what you think!",
|
||||
"ora-grading.ReviewModal.demoHeading": "Demo Mode",
|
||||
"ora-grading.ReviewModal.demoMessage": "You are demoing the new ORA staff grading experience. You will be unable to submit grades until you activate the feature. This will become the default grading experience on May 9th (05/09/2022). To opt-in early, or opt-out, please contact Partner Support.",
|
||||
"ora-grading.ListView.ListViewBreadcrumbs.backToResponses": "Back to all open responses",
|
||||
"ora-grading.ListView.noResultsFoundTitle": "Nothing here yet",
|
||||
"ora-grading.ListView.noResultsFoundBody": "When learners submit responses, they will appear here",
|
||||
"ora-grading.ListView.viewAllResponses": "View all responses",
|
||||
"ora-grading.ListView.viewSelectedResponses": "View selected responses ({value})",
|
||||
"ora-grading.ListView.tableHeaders.username": "Username",
|
||||
"ora-grading.ListView.tableHeaders.teamName": "Team name",
|
||||
"ora-grading.ListView.tableHeaders.learnerSubmissionDate": "Learner submission date",
|
||||
"ora-grading.ListView.tableHeaders.teamSubmissionDate": "Team submission date",
|
||||
"ora-grading.ListView.tableHeaders.grade": "Grade",
|
||||
"ora-grading.ListView.tableHeaders.gradingStatus": "Grading status",
|
||||
"ora-grading.ListView.loadErrorHeading": "Error loading submissions",
|
||||
"ora-grading.ListView.loadErrorMessage1": "An error occurred while loading the submissions for this response. Try reloading the page or going {backToResponses}.",
|
||||
"ora-grading.ListView.backToResponsesLowercase": "back to all Open Responses",
|
||||
"ora-grading.ListView.reloadSubmissions": "Reload submissions",
|
||||
"ora-grading.ListView.loadingResponses": "Loading responses",
|
||||
"ora-grading.ResponseDisplay.FilePopoverCell.filePopoverNameTitle": "File Name",
|
||||
"ora-grading.ResponseDisplay.FilePopoverCell.filePopoverDescriptionTitle": "File Description",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.tableNameHeader": "Name",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.tableExtensionHeader": "File Extension",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.tablePopoverHeader": "File Metadata",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.downloadFiles": "Download files",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.downloading": "Downloading",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.downloaded": "Downloaded!",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.retryDownload": "Retry download",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.submissionFile": "Submission Files",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.fileSizeExceed": "Exceeded the allow download size",
|
||||
"ora-grading.ReviewActions.overrideConfirmTitle": "Are you sure you want to override this grade?",
|
||||
"ora-grading.ReviewActions.overrideConfirmWarning": "This cannot be undone. The learner may have already received their grade.",
|
||||
"ora-grading.ReviewActions.overrideConfirmContinue": "Continue grade override",
|
||||
"ora-grading.ReviewActions.StartGradingButton.startGrading": "Start grading",
|
||||
"ora-grading.ReviewActions.StartGradingButton.overrideGrade": "Override grade",
|
||||
"ora-grading.ReviewActions.StartGradingButton.stopGrading": "Stop grading this response",
|
||||
"ora-grading.ReviewActions.StopGradingConfirmModal.override.title": "Are you sure you want to stop grade override?",
|
||||
"ora-grading.ReviewActions.StopGradingConfirmModal.title": "Are you sure you want to stop grading this response?",
|
||||
"ora-grading.ReviewActions.StopGradingConfirmModal.warning": "Your progress will be lost.",
|
||||
"ora-grading.ReviewActions.StopGradingConfirmModal.override.confirmText": "Stop grade override",
|
||||
"ora-grading.ReviewActions.StopGradingConfirmModal.confirmText": "Cancel grading",
|
||||
"ora-grading.ReviewActions.goBack": "Go back",
|
||||
"ora-grading.ReviewActions.loadPrevious": "Load previous submission",
|
||||
"ora-grading.ReviewActions.loadNext": "Load next submission",
|
||||
"ora-grading.ReviewActions.navigationLabel": "{current} of {total}",
|
||||
"ora-grading.ReviewActions.pointsDisplay": "Score: {pointsEarned}/{pointsPossible}",
|
||||
"ora-grading.ReviewActions.hideRubric": "Hide Rubric",
|
||||
"ora-grading.ReviewActions.showRubric": "Show Rubric",
|
||||
"ora-grading.ReviewModal.closeReviewConfirm.title": "Are you sure you want to close this modal?",
|
||||
"ora-grading.ReviewModal.closeReviewConfirmWarning": "This cannot be undone. This will discard unsaved work and stop this grading process.",
|
||||
"ora-grading.ReviewModal.goBack": "Go back",
|
||||
"ora-grading.ReviewModal.CloseReviewConfirmModal.confirmText": "Close Modal",
|
||||
"ora-grading.ReviewModal.loadingResponse": "Loading response",
|
||||
"ora-grading.ReviewModal.demoTitleMessage": "Grading Demo",
|
||||
"ora-grading.ReviewModal.loadErrorHeading": "Error loading submissions",
|
||||
"ora-grading.ReviewModal.loadErrorMessage1": "An error occurred while loading this submission. Try reloading this submission.",
|
||||
"ora-grading.ReviewModal.reloadSubmission": "Reload submission",
|
||||
"ora-grading.ReviewModal.gradeNotSubmitted.heading": "Grade not submitted",
|
||||
"ora-grading.ReviewModal.gradeNotSubmitted.Content": "We're sorry, something went wrong when we tried to submit this grade. Please try again.",
|
||||
"ora-grading.ReviewModal.resubmitGrade": "Resubmit grate",
|
||||
"ora-grading.ReviewModal.dismiss": "Dismiss",
|
||||
"ora-grading.ReviewModal.errorSubmittingGrade.Heading": "Error submitting grade",
|
||||
"ora-grading.ReviewModal.errorSubmittingGrade.Content": "It looks like someone else got here first! Your grade submission has been rejected",
|
||||
"ora-grading.ReviewModal.errorLockContestedHeading": "The lock owned by another user",
|
||||
"ora-grading.ReviewModal.errorLockContested": "The lock owned by another user",
|
||||
"ora-grading.ReviewModal.errorLockBadRequestHeading": "Invalid request. Please check your input.",
|
||||
"ora-grading.ReviewModal.errorLockBadRequest": "Invalid request. Please check your input.",
|
||||
"ora-grading.ReviewModal.errorDownloadFailed": "Couldn't download files",
|
||||
"ora-grading.ReviewModal.errorDownloadFailedContent": "We're sorry, something went wrong when we tried to download these files. Please try again.",
|
||||
"ora-grading.ReviewModal.errorRetryDownload": "Retry download",
|
||||
"ora-grading.ReviewModal.errorDownloadFailedFiles": "Failed files:",
|
||||
"ora-grading.Rubric.gradeSubmitted": "Grade Submitted",
|
||||
"ora-grading.Rubric.rubric": "Rubric",
|
||||
"ora-grading.Rubric.submitGrade": "Submit grade",
|
||||
"ora-grading.Rubric.submittingGrade": "Submitting grade",
|
||||
"ora-grading.Rubric.overallComments": "Overall comments",
|
||||
"ora-grading.Rubric.addComments": "Add comments (Optional)",
|
||||
"ora-grading.Rubric.comments": "Comments (Optional)",
|
||||
"ora-grading.RubricFeedback.error": "The overall feedback is required",
|
||||
"ora-grading.lms-api.gradingStatusDisplay.ungraded": "Ungraded",
|
||||
"ora-grading.lms-api.gradingStatusDisplay.locked": "Currently being graded by someone else",
|
||||
"ora-grading.lms-api.gradingStatusDisplay.graded": "Grading Completed",
|
||||
"ora-grading.lms-api.gradingStatusDisplay.inProgress": "You are currently grading this response"
|
||||
"ora-grading.demoAlert.warningMessage": "إرسال الدرجات معطّل في الوضع التجريبي لمصحح الإجابات المفتوحة الجديد ﻷعضاء الطاقم..",
|
||||
"ora-grading.demoAlert.confirm": "تأكيد",
|
||||
"ora-grading.demoAlert.title": "تم منع الإرسال التجريبي",
|
||||
"ora-grading.FilePopoverContent.filePopoverNameTitle": "اسم الملف",
|
||||
"ora-grading.FilePopoverCellContent.filePopoverDescriptionTitle": "وصف الملف",
|
||||
"ora-grading.FilePopoverCellContent.fileSizeTitle": "حجم الملف",
|
||||
"ora-grading.InfoPopover.fileInfo": "معلومات الملف",
|
||||
"ora-grading.ResponseDisplay.FileRenderer.retryButton": "إعادة المحاولة",
|
||||
"ora-grading.ResponseDisplay.FileRenderer.fileNotFound": "الملف غير موجود",
|
||||
"ora-grading.ResponseDisplay.FileRenderer.unknownError": "أخطاء غير معروفة",
|
||||
"PageTitle": "مصحح الإجابات المفتوحة ﻷعضاء الطاقم | {siteName}",
|
||||
"ora-grading.InfoPopover.alt-text": "عرض مزيد من المعلومات",
|
||||
"ora-grading.CriterionFeedback.addCommentsLabel": "إضافة تعليقات",
|
||||
"ora-grading.CriterionFeedback.commentsLabel": "التعليقات",
|
||||
"ora-grading.CriterionFeedback.optional": "(اختياري)",
|
||||
"ora-grading.RadioCriterion.optionPoints": "{points} نقطة",
|
||||
"ora-grading.RadioCriterion.rubricSelectedError": "اختيار سلم التنقيط",
|
||||
"ora-grading.CriterionFeedback.criterionFeedbackError": "التعليق مطلوب",
|
||||
"ora-grading.CTA.feedbackMessage": "نشكرك على استخدام التجربة الجديدة لتصحيح الإجابات المفتوحة ﻷعضاء الطاقم.",
|
||||
"ora-grading.CTA.linkMessage": "قدّم بعض الملاحظات",
|
||||
"ora-grading.CTA.letUsKnowMessage": " و دعنا نعرف رأيك!",
|
||||
"ora-grading.ReviewModal.demoHeading": "الوضع التجريبي",
|
||||
"ora-grading.ReviewModal.demoMessage": "أنت تستعرض التجربة الجديدة لتصحيح الإجابات المفتوحة ﻷعضاء الطاقم. لن تستطيع إرسال درجات حتى تقوم بتنشيط الميزة. ستصبح تجربة التصحيح هذه هي الافتراضية اعتبارًا من 9 مايو (05/09/2022). للاشتراك مبكرًا أو الانسحاب، يرجى الاتصال بدعم الشركاء.",
|
||||
"ora-grading.ListView.ListViewBreadcrumbs.backToResponses": "رجوع إلى جميع الإجابات المفتوحة",
|
||||
"ora-grading.ListView.noResultsFoundTitle": "لا شيء هنا بعد",
|
||||
"ora-grading.ListView.noResultsFoundBody": "ستظهر هنا إجابات المتعلمين غتدما يرسلونها",
|
||||
"ora-grading.ListView.viewAllResponses": "عرض جميع الإجابات",
|
||||
"ora-grading.ListView.viewSelectedResponses": "عرض الردود المحددة ({value})",
|
||||
"ora-grading.ListView.tableHeaders.username": "اسم المستخدم",
|
||||
"ora-grading.ListView.tableHeaders.teamName": "اسم الفريق",
|
||||
"ora-grading.ListView.tableHeaders.learnerSubmissionDate": "تاريخ إرسال المتعلّم",
|
||||
"ora-grading.ListView.tableHeaders.teamSubmissionDate": "تاريخ إرسال الفريق",
|
||||
"ora-grading.ListView.tableHeaders.grade": "الدرجة",
|
||||
"ora-grading.ListView.tableHeaders.gradingStatus": "وضع الدرجات",
|
||||
"ora-grading.ListView.loadErrorHeading": "خطأ أثناء تحميل الإجابات",
|
||||
"ora-grading.ListView.loadErrorMessage1": "حدث خطأ أثناء تحميل عمليات الإرسال لهذه الاستجابة. حاول إعادة تحميل الصفحة أو الانتقال إلى {backToResponses}.",
|
||||
"ora-grading.ListView.backToResponsesLowercase": "العودة إلى جميع الردود المفتوحة",
|
||||
"ora-grading.ListView.reloadSubmissions": "إعادة تحميل الإجابات",
|
||||
"ora-grading.ListView.loadingResponses": "تحميل الإرسالات",
|
||||
"ora-grading.ResponseDisplay.FilePopoverCell.filePopoverNameTitle": "اسم الملف",
|
||||
"ora-grading.ResponseDisplay.FilePopoverCell.filePopoverDescriptionTitle": "وصف الملف",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.tableNameHeader": "الاسم",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.tableExtensionHeader": "نسق الملف",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.tablePopoverHeader": "البيانات الوصفية للملف",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.downloadFiles": "تحميل الملفات",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.downloading": "التحميل جارٍ",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.downloaded": "تم التحميل!",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.retryDownload": "تكرار محاولة التحميل",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.submissionFile": "ملفات الإجابة",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.fileSizeExceed": "تم تجاوز حجم التحميلات المسموح به",
|
||||
"ora-grading.ReviewActions.overrideConfirmTitle": "هل أنت من رغبتك في تبديل هذه الدرجة؟",
|
||||
"ora-grading.ReviewActions.overrideConfirmWarning": "لا يمكن التراجع عن هذا. قد يكون المتعلم قد اطّلع على درجته.",
|
||||
"ora-grading.ReviewActions.overrideConfirmContinue": "متابعة تبديل الدرجة",
|
||||
"ora-grading.ReviewActions.StartGradingButton.startGrading": "ابدأ التنقيط",
|
||||
"ora-grading.ReviewActions.StartGradingButton.overrideGrade": "تبديل الدرجة",
|
||||
"ora-grading.ReviewActions.StartGradingButton.stopGrading": "التوقف عن تنقيط هذه الإجابة",
|
||||
"ora-grading.ReviewActions.StopGradingConfirmModal.override.title": "هل أنت متأكد من رغبتك في العدول عن تبديل الدرجة؟",
|
||||
"ora-grading.ReviewActions.StopGradingConfirmModal.title": "هل أنت متأكد من رغبتك في العدول عن تنقيط هذه الاستجابة؟",
|
||||
"ora-grading.ReviewActions.StopGradingConfirmModal.warning": "ستفقد تقدّمك.",
|
||||
"ora-grading.ReviewActions.StopGradingConfirmModal.override.confirmText": "العدول عن تبديل الدرجة",
|
||||
"ora-grading.ReviewActions.StopGradingConfirmModal.confirmText": "إلغاء التنقيط",
|
||||
"ora-grading.ReviewActions.goBack": "العودة إلى ما سبق",
|
||||
"ora-grading.ReviewActions.loadPrevious": "تحميل الإرسال السابق",
|
||||
"ora-grading.ReviewActions.loadNext": "تحميل الإرسال التالي",
|
||||
"ora-grading.ReviewActions.navigationLabel": "{current} من {total}",
|
||||
"ora-grading.ReviewActions.pointsDisplay": "النتيجة: {pointsEarned}\\{pointsPossible}",
|
||||
"ora-grading.ReviewActions.hideRubric": "إخفاء سلم التنقيط",
|
||||
"ora-grading.ReviewActions.showRubric": "إظهار سلم التنقيط",
|
||||
"ora-grading.ReviewModal.closeReviewConfirm.title": "هل أنت متأكد من رغبتك في إغلاق هذا النموذج؟",
|
||||
"ora-grading.ReviewModal.closeReviewConfirmWarning": "لن تستطيع التراجع. سيؤدي هذا الإجراء إلى تجاهل ما لم تحفظه و إيقاف عملية التنقيط هذه.",
|
||||
"ora-grading.ReviewModal.goBack": "العودة للخلف",
|
||||
"ora-grading.ReviewModal.CloseReviewConfirmModal.confirmText": "إغلاق النافذة",
|
||||
"ora-grading.ReviewModal.loadingResponse": "تحميل الإجابة جارٍ",
|
||||
"ora-grading.ReviewModal.demoTitleMessage": "عرض الدرجات",
|
||||
"ora-grading.ReviewModal.loadErrorHeading": "خطأ في تحميل عمليات الإرسال",
|
||||
"ora-grading.ReviewModal.loadErrorMessage1": "حدث خطأ أثناء تحميل هذا الإرسال. حاول إعادة تحميل هذا الإرسال.",
|
||||
"ora-grading.ReviewModal.reloadSubmission": "إعادة تحميل التقديم",
|
||||
"ora-grading.ReviewModal.gradeNotSubmitted.heading": "لم يتم تقديم الدرجة",
|
||||
"ora-grading.ReviewModal.gradeNotSubmitted.Content": "نأسف ، حدث خطأ ما عندما حاولنا إرسال هذه الدرجة. حاول مرة اخرى.",
|
||||
"ora-grading.ReviewModal.resubmitGrade": "إعادة إرسال الدرجة",
|
||||
"ora-grading.ReviewModal.dismiss": "تجاهل",
|
||||
"ora-grading.ReviewModal.errorSubmittingGrade.Heading": "خطأ في إرسال الدرجة",
|
||||
"ora-grading.ReviewModal.errorSubmittingGrade.Content": "يبدو أن شخصًا آخر قد سبقك إلى هنا! تم رفض إرسال درجتك",
|
||||
"ora-grading.ReviewModal.errorLockContestedHeading": "القفل بيد مستخدم آخر",
|
||||
"ora-grading.ReviewModal.errorLockContested": "القفل بيد مستخدم آخر",
|
||||
"ora-grading.ReviewModal.errorLockBadRequestHeading": "الطلب غير صالح. تحقق من مدخلاتك رجاءً.",
|
||||
"ora-grading.ReviewModal.errorLockBadRequest": "الطلب غير صالح. تحقق من مدخلاتك رجاءً.",
|
||||
"ora-grading.ReviewModal.errorDownloadFailed": "تعذر تحميل الملفات",
|
||||
"ora-grading.ReviewModal.errorDownloadFailedContent": "نحن آسفون، حدث خطأ ما حينما حاولنا تنزيل هذه الملفات. رجاءً حاول مجددًًا",
|
||||
"ora-grading.ReviewModal.errorRetryDownload": "إعادة تجريب التحميل",
|
||||
"ora-grading.ReviewModal.errorDownloadFailedFiles": "الملفات الفاشلة:",
|
||||
"ora-grading.Rubric.gradeSubmitted": "أرسلت الدرجة",
|
||||
"ora-grading.Rubric.rubric": "سلم التنقيط",
|
||||
"ora-grading.Rubric.submitGrade": "إرسال الدرجة",
|
||||
"ora-grading.Rubric.submittingGrade": "إرسال الدرجة جارٍ",
|
||||
"ora-grading.Rubric.overallComments": "مجمل التعليقات",
|
||||
"ora-grading.Rubric.addComments": "إضافة تعليقات (اختياري)",
|
||||
"ora-grading.Rubric.comments": "التعليقات (اختياري)",
|
||||
"ora-grading.RubricFeedback.error": "التعليق العام مطلوب",
|
||||
"ora-grading.lms-api.gradingStatusDisplay.ungraded": "غير منقّط",
|
||||
"ora-grading.lms-api.gradingStatusDisplay.locked": "شخص آخر يقوم بتنقيطه حاليا",
|
||||
"ora-grading.lms-api.gradingStatusDisplay.graded": "تم التنقيط",
|
||||
"ora-grading.lms-api.gradingStatusDisplay.inProgress": "أنت تقوم حاليا بتنقيط هذه الإجابة"
|
||||
}
|
||||
@@ -9,6 +9,7 @@
|
||||
"ora-grading.ResponseDisplay.FileRenderer.retryButton": "Reintentar",
|
||||
"ora-grading.ResponseDisplay.FileRenderer.fileNotFound": "Archivo no encontrado",
|
||||
"ora-grading.ResponseDisplay.FileRenderer.unknownError": "Errores desconocidos",
|
||||
"PageTitle": "Clasificación del personal de ORA | {siteName}",
|
||||
"ora-grading.InfoPopover.alt-text": "Mostrar más información",
|
||||
"ora-grading.CriterionFeedback.addCommentsLabel": "Añadir comentarios",
|
||||
"ora-grading.CriterionFeedback.commentsLabel": "Comentarios",
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
"ora-grading.ResponseDisplay.FileRenderer.retryButton": "Réessayez",
|
||||
"ora-grading.ResponseDisplay.FileRenderer.fileNotFound": "Fichier introuvable",
|
||||
"ora-grading.ResponseDisplay.FileRenderer.unknownError": "Erreurs inconnues",
|
||||
"ora-grading.InfoPopover.alt-text": "Afficher plus d'informations",
|
||||
"PageTitle": "ORA staff grading | {siteName}",
|
||||
"ora-grading.InfoPopover.alt-text": "Afficher plus d'informations",
|
||||
"ora-grading.CriterionFeedback.addCommentsLabel": "Ajoutez des commentaires",
|
||||
"ora-grading.CriterionFeedback.commentsLabel": "Commentaires",
|
||||
"ora-grading.CriterionFeedback.optional": "(Optionnel)",
|
||||
@@ -20,20 +21,20 @@
|
||||
"ora-grading.CTA.linkMessage": "Fournir des commentaires",
|
||||
"ora-grading.CTA.letUsKnowMessage": "et dites-nous ce que vous en pensez !",
|
||||
"ora-grading.ReviewModal.demoHeading": "Mode de démonstration",
|
||||
"ora-grading.ReviewModal.demoMessage": "Vous présentez la nouvelle expérience de notation du personnel ORA. Vous ne pourrez pas soumettre de notes tant que vous n'aurez pas activé la fonctionnalité. Cela deviendra l'expérience de notation par défaut le 9 mai (05/09/2022). Pour vous inscrire plus tôt ou vous désinscrire, veuillez contacter l'assistance aux partenaires.",
|
||||
"ora-grading.ReviewModal.demoMessage": "Vous présentez la nouvelle expérience de notation du personnel ORA. Vous ne pourrez pas soumettre de notes tant que vous n'aurez pas activé la fonctionnalité. Cela deviendra l'expérience de notation par défaut le 9 mai (05/09/2022). Pour vous inscrire plus tôt ou vous désinscrire, veuillez contacter l'assistance aux partenaires.",
|
||||
"ora-grading.ListView.ListViewBreadcrumbs.backToResponses": "Retour à toutes les réponses ouvertes",
|
||||
"ora-grading.ListView.noResultsFoundTitle": "Rien ici encore",
|
||||
"ora-grading.ListView.noResultsFoundBody": "Lorsque les apprenants soumettront des réponses, elles apparaîtront ici",
|
||||
"ora-grading.ListView.viewAllResponses": "Afficher toutes les réponses",
|
||||
"ora-grading.ListView.viewSelectedResponses": "Afficher les réponses sélectionnées ({value})",
|
||||
"ora-grading.ListView.tableHeaders.username": "Nom d’utilisateur",
|
||||
"ora-grading.ListView.tableHeaders.teamName": "Nom de l'équipe",
|
||||
"ora-grading.ListView.tableHeaders.learnerSubmissionDate": "Date de soumission de l'apprenant",
|
||||
"ora-grading.ListView.tableHeaders.teamSubmissionDate": "Date de soumission de l'équipe",
|
||||
"ora-grading.ListView.tableHeaders.teamName": "Nom de l'équipe",
|
||||
"ora-grading.ListView.tableHeaders.learnerSubmissionDate": "Date de soumission de l'apprenant",
|
||||
"ora-grading.ListView.tableHeaders.teamSubmissionDate": "Date de soumission de l'équipe",
|
||||
"ora-grading.ListView.tableHeaders.grade": "Note",
|
||||
"ora-grading.ListView.tableHeaders.gradingStatus": "Statut du classement",
|
||||
"ora-grading.ListView.loadErrorHeading": "Erreur lors du chargement des soumissions",
|
||||
"ora-grading.ListView.loadErrorMessage1": "Une erreur s'est produite lors du chargement des soumissions pour cette réponse. Essayez de recharger la page ou d'aller {backToResponses}.",
|
||||
"ora-grading.ListView.loadErrorMessage1": "Une erreur s'est produite lors du chargement des soumissions pour cette réponse. Essayez de recharger la page ou d'aller {backToResponses}.",
|
||||
"ora-grading.ListView.backToResponsesLowercase": "retour à toutes les réponses ouvertes",
|
||||
"ora-grading.ListView.reloadSubmissions": "Recharger les soumissions",
|
||||
"ora-grading.ListView.loadingResponses": "Chargement des réponses",
|
||||
@@ -49,7 +50,7 @@
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.submissionFile": "Fichiers de soumission",
|
||||
"ora-grading.ResponseDisplay.SubmissionFiles.fileSizeExceed": "Dépassement de la taille de téléchargement autorisée",
|
||||
"ora-grading.ReviewActions.overrideConfirmTitle": "Êtes-vous sûr de vouloir remplacer cette note ?",
|
||||
"ora-grading.ReviewActions.overrideConfirmWarning": "Ça ne peut pas être annulé. L'apprenant peut avoir déjà reçu sa note.",
|
||||
"ora-grading.ReviewActions.overrideConfirmWarning": "Ça ne peut pas être annulé. L'apprenant peut avoir déjà reçu sa note.",
|
||||
"ora-grading.ReviewActions.overrideConfirmContinue": "Continuer le remplacement de la note",
|
||||
"ora-grading.ReviewActions.StartGradingButton.startGrading": "Commencer la notation",
|
||||
"ora-grading.ReviewActions.StartGradingButton.overrideGrade": "Remplacer la note",
|
||||
@@ -73,20 +74,20 @@
|
||||
"ora-grading.ReviewModal.loadingResponse": "Chargement de la réponse",
|
||||
"ora-grading.ReviewModal.demoTitleMessage": "Démonstration de correcteur",
|
||||
"ora-grading.ReviewModal.loadErrorHeading": "Erreur lors du chargement des soumissions",
|
||||
"ora-grading.ReviewModal.loadErrorMessage1": "Une erreur s'est produite lors du chargement de cette soumission. Essayez de recharger cette soumission.",
|
||||
"ora-grading.ReviewModal.loadErrorMessage1": "Une erreur s'est produite lors du chargement de cette soumission. Essayez de recharger cette soumission.",
|
||||
"ora-grading.ReviewModal.reloadSubmission": "Recharger la soumission",
|
||||
"ora-grading.ReviewModal.gradeNotSubmitted.heading": "Note non soumise",
|
||||
"ora-grading.ReviewModal.gradeNotSubmitted.Content": "Nous sommes désolés, une erreur s'est produite lorsque nous avons essayé d'envoyer cette note. Veuillez réessayer.",
|
||||
"ora-grading.ReviewModal.gradeNotSubmitted.Content": "Nous sommes désolés, une erreur s'est produite lorsque nous avons essayé d'envoyer cette note. Veuillez réessayer.",
|
||||
"ora-grading.ReviewModal.resubmitGrade": "Resoumettre la grille",
|
||||
"ora-grading.ReviewModal.dismiss": "Ignorer",
|
||||
"ora-grading.ReviewModal.errorSubmittingGrade.Heading": "Erreur lors de l'envoi de la note",
|
||||
"ora-grading.ReviewModal.errorSubmittingGrade.Content": "Il semble que quelqu'un d'autre soit arrivé le premier ! Votre soumission de note a été rejetée",
|
||||
"ora-grading.ReviewModal.errorSubmittingGrade.Heading": "Erreur lors de l'envoi de la note",
|
||||
"ora-grading.ReviewModal.errorSubmittingGrade.Content": "Il semble que quelqu'un d'autre soit arrivé le premier ! Votre soumission de note a été rejetée",
|
||||
"ora-grading.ReviewModal.errorLockContestedHeading": "La serrure appartenant à un autre utilisateur",
|
||||
"ora-grading.ReviewModal.errorLockContested": "La serrure appartenant à un autre utilisateur",
|
||||
"ora-grading.ReviewModal.errorLockBadRequestHeading": "Requête invalide. Veuillez vérifier votre entrée.",
|
||||
"ora-grading.ReviewModal.errorLockBadRequest": "Requête invalide. Veuillez vérifier votre entrée.",
|
||||
"ora-grading.ReviewModal.errorDownloadFailed": "Impossible de télécharger les fichiers",
|
||||
"ora-grading.ReviewModal.errorDownloadFailedContent": "Nous sommes désolés, une erreur s'est produite lorsque nous avons essayé de télécharger ces fichiers. Veuillez réessayer.",
|
||||
"ora-grading.ReviewModal.errorDownloadFailedContent": "Nous sommes désolés, une erreur s'est produite lorsque nous avons essayé de télécharger ces fichiers. Veuillez réessayer.",
|
||||
"ora-grading.ReviewModal.errorRetryDownload": "Réessayez le téléchargement",
|
||||
"ora-grading.ReviewModal.errorDownloadFailedFiles": "Fichiers ayant échoué :",
|
||||
"ora-grading.Rubric.gradeSubmitted": "Note soumise",
|
||||
@@ -98,7 +99,7 @@
|
||||
"ora-grading.Rubric.comments": "Commentaires (optionnel)",
|
||||
"ora-grading.RubricFeedback.error": "La rétroaction globale est requise",
|
||||
"ora-grading.lms-api.gradingStatusDisplay.ungraded": "Non noté",
|
||||
"ora-grading.lms-api.gradingStatusDisplay.locked": "Actuellement noté par quelqu'un d'autre",
|
||||
"ora-grading.lms-api.gradingStatusDisplay.locked": "Actuellement noté par quelqu'un d'autre",
|
||||
"ora-grading.lms-api.gradingStatusDisplay.graded": "Classement terminé",
|
||||
"ora-grading.lms-api.gradingStatusDisplay.inProgress": "Vous notez actuellement cette réponse"
|
||||
}
|
||||
@@ -9,6 +9,7 @@
|
||||
"ora-grading.ResponseDisplay.FileRenderer.retryButton": "Retry",
|
||||
"ora-grading.ResponseDisplay.FileRenderer.fileNotFound": "File not found",
|
||||
"ora-grading.ResponseDisplay.FileRenderer.unknownError": "Unknown errors",
|
||||
"PageTitle": "ORA staff grading | {siteName}",
|
||||
"ora-grading.InfoPopover.alt-text": "Display more info",
|
||||
"ora-grading.CriterionFeedback.addCommentsLabel": "Add comments",
|
||||
"ora-grading.CriterionFeedback.commentsLabel": "Comments",
|
||||
|
||||
@@ -17,7 +17,7 @@ import {
|
||||
|
||||
import { messages as footerMessages } from '@edx/frontend-component-footer';
|
||||
import { messages as headerMesssages } from '@edx/frontend-component-header';
|
||||
|
||||
import { messages as paragonMessages } from '@edx/paragon';
|
||||
import { IntlProvider } from '@edx/frontend-platform/i18n';
|
||||
|
||||
import messages from './i18n';
|
||||
@@ -56,6 +56,7 @@ initialize({
|
||||
messages,
|
||||
headerMesssages,
|
||||
footerMessages,
|
||||
paragonMessages,
|
||||
],
|
||||
requireAuthenticatedUser: true,
|
||||
});
|
||||
|
||||
@@ -10,6 +10,7 @@ import {
|
||||
|
||||
import { messages as footerMessages } from '@edx/frontend-component-footer';
|
||||
import { messages as headerMesssages } from '@edx/frontend-component-header';
|
||||
import { messages as paragonMessages } from '@edx/paragon';
|
||||
|
||||
import appMessages from './i18n';
|
||||
import * as app from '.';
|
||||
@@ -70,7 +71,7 @@ describe('app registry', () => {
|
||||
test('initialize is called with footerMessages and requireAuthenticatedUser', () => {
|
||||
expect(initialize).toHaveBeenCalledTimes(1);
|
||||
const initializeArg = initialize.mock.calls[0][0];
|
||||
expect(initializeArg.messages).toEqual([appMessages, headerMesssages, footerMessages]);
|
||||
expect(initializeArg.messages).toEqual([appMessages, headerMesssages, footerMessages, paragonMessages]);
|
||||
expect(initializeArg.requireAuthenticatedUser).toEqual(true);
|
||||
});
|
||||
test('initialize config loads support url if available', () => {
|
||||
|
||||
@@ -18,11 +18,17 @@ jest.mock('react', () => ({
|
||||
jest.mock('@edx/frontend-platform/i18n', () => {
|
||||
const i18n = jest.requireActual('@edx/frontend-platform/i18n');
|
||||
const PropTypes = jest.requireActual('prop-types');
|
||||
const { formatMessage } = jest.requireActual('./testUtils');
|
||||
const formatDate = jest.fn(date => new Date(date).toLocaleDateString()).mockName('useIntl.formatDate');
|
||||
return {
|
||||
...i18n,
|
||||
intlShape: PropTypes.shape({
|
||||
formatMessage: PropTypes.func,
|
||||
}),
|
||||
useIntl: () => ({
|
||||
formatMessage,
|
||||
formatDate,
|
||||
}),
|
||||
defineMessages: m => m,
|
||||
FormattedMessage: () => 'FormattedMessage',
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user